1# Makefile for
2#  fastcap - capacitance calculation program
3#  busgen - bus crossing input file generator
4#  capgen - || plate capacitor input file generator
5#  cubegen - cubic capacitor input file generator
6#  pipedgen - parallelepiped input file generator
7#  pyragen - pyramid input file generator
8
9# assumed places for unaliased executables - must be same in all Makefile.*
10SHELL = /bin/sh
11AWK = awk
12RM = /bin/rm
13
14MAKETYPE = other
15# normally overidden by master Makefile
16TYPE = other
17
18INCL = .
19IO = .
20DIR = .
21MUL = .
22ALC = .
23COM = .
24GEN = .
25BIN = ../bin
26TOP = ..
27
28OBJS = $(MUL)/mulGlobal.o $(MUL)/mulSetup.o $(MUL)/mulMats.o $(MUL)/mulDo.o \
29$(IO)/mulDisplay.o $(MUL)/mulMulti.o \
30$(MUL)/mulLocal.o $(DIR)/direct.o $(DIR)/calcp.o $(MUL)/fastcap.o \
31$(DIR)/blkDirect.o $(ALC)/uglyalloc.o \
32$(IO)/patran.o $(IO)/quickif.o $(MUL)/electric.o \
33$(IO)/input.o $(IO)/psMatDisplay.o $(MUL)/capsolve.o $(IO)/savemat_mod.o \
34$(IO)/zbufInOut.o $(IO)/zbuf2fastcap.o $(IO)/zbufProj.o $(IO)/zbufSort.o
35
36SRCS = $(MUL)/mulGlobal.c $(MUL)/mulSetup.c $(MUL)/mulMats.c $(MUL)/mulDo.c \
37$(IO)/mulDisplay.c $(MUL)/mulMulti.c \
38$(MUL)/mulLocal.c $(DIR)/direct.c $(DIR)/calcp.c $(MUL)/fastcap.c \
39$(DIR)/blkDirect.c $(ALC)/uglyalloc.c \
40$(IO)/patran.c $(IO)/quickif.c $(MUL)/electric.c \
41$(IO)/input.c $(IO)/psMatDisplay.c $(MUL)/capsolve.c $(IO)/savemat_mod.c \
42$(IO)/zbufInOut.c $(IO)/zbuf2fastcap.c $(IO)/zbufProj.c $(IO)/zbufSort.c
43
44OBJSB = $(GEN)/busgen.o $(GEN)/disrect.o $(COM)/epsilon.o
45SRCSB = $(GEN)/busgen.c $(GEN)/disrect.c $(COM)/epsilon.c
46
47OBJSP = $(GEN)/pltcapgen.o $(GEN)/disrect.o $(COM)/epsilon.o
48SRCSP = $(GEN)/pltcapgen.c $(GEN)/disrect.c $(COM)/epsilon.c
49
50OBJSC = $(GEN)/cubegen.o $(GEN)/disrect.o $(COM)/epsilon.o
51SRCSC = $(GEN)/cubegen.c $(GEN)/disrect.c $(COM)/epsilon.c
52
53OBJST = $(GEN)/teragen.o $(GEN)/disrect.o $(GEN)/distri.o $(COM)/epsilon.o
54SRCST = $(GEN)/teragen.c $(GEN)/disrect.c $(GEN)/distri.c $(COM)/epsilon.c
55
56OBJSI = $(GEN)/pipedgen.o $(GEN)/disrect.o $(COM)/epsilon.o
57SRCSI = $(GEN)/pipedgen.c $(GEN)/disrect.c $(COM)/epsilon.c
58
59LIBS = -lm
60
61# These compile flags are needed to account for differences in the
62#  resource usage system call used to get CPU time and memory use data
63#  - also used to select the correct CC macro definition for AIX machines
64#
65# for generic machine use (timers not supported)
66CFLAGS = -O -DOTHER
67# for most machines running 4.2/3 use (only necessary if timers are needed)
68#CFLAGS = -O -DFOUR
69# for most machines running System V use (only necessary if timers are needed)
70#CFLAGS = -O -DFIVE
71# for IBM AIX systems use
72#CC = xlc
73
74default:
75	@echo Please specify what to make:
76	@echo "  fastcap - capacitance calculation program"
77	@echo "  busgen - bus crossing input file generator"
78	@echo "  capgen - || plate capacitor input file generator"
79	@echo "  cubegen - cubic capacitor input file generator"
80	@echo "  pyragen - pyramid capacitor input file generator"
81	@echo "  pipedgen - parallelepiped capacitor input file generator"
82	@echo "  all - all of the above"
83
84fastcap: $(OBJS)
85	$(CC) -o $@.temp.out $(CFLAGS) $(OBJS) $(LIBS)
86	mv $@.temp.out $(BIN)/fastcap
87
88busgen: $(OBJSB)
89	$(CC) -o $@.temp.out $(CFLAGS) $(OBJSB) $(LIBS)
90	mv $@.temp.out $(BIN)/busgen
91
92capgen: $(OBJSP)
93	$(CC) -o $@.temp.out $(CFLAGS) $(OBJSP) $(LIBS)
94	mv $@.temp.out $(BIN)/capgen
95
96cubegen: $(OBJSC)
97	$(CC) -o $@.temp.out $(CFLAGS) $(OBJSC) $(LIBS)
98	mv $@.temp.out $(BIN)/cubegen
99
100pyragen: $(OBJST)
101	$(CC) -o $@.temp.out $(CFLAGS) $(OBJST) $(LIBS)
102	mv $@.temp.out $(BIN)/pyragen
103
104pipedgen: $(OBJSI)
105	$(CC) -o $@.temp.out $(CFLAGS) $(OBJSI) $(LIBS)
106	mv $@.temp.out $(BIN)/pipedgen
107
108all : fastcap busgen capgen cubegen pyragen pipedgen
109
110setmake:
111	@$(SHELL) setmake.sh $(AWK) $(TYPE) $(TOP) $(RM)
112clean:
113	$(RM) -f *.o
114
115$(OBJS) : $(INCL)/mulStruct.h $(INCL)/mulGlobal.h $(INCL)/patran.h \
116$(INCL)/resusage.h Makefile
117$(SRCS) : $(INCL)/mulStruct.h $(INCL)/mulGlobal.h $(INCL)/patran.h \
118$(INCL)/resusage.h Makefile
119$(IO)/quickif.c $(IO)/quickif.o : $(IO)/quickif.h Makefile
120