1: # ==================================================================
2: # Makefile for CAPA 5.1
3: # ==================================================================
4:
5: VER = 5.1
6: BUGFIX = 0
7: #CC = i486-linuxlibc1-gcc -DCAPA_VER=\"$(VER).$(BUGFIX)\" -DCOMPILE_DATE=\"`date +'%b-%d-%Y'`\"
8: CC = cc -DCAPA_VER=\"$(VER).$(BUGFIX)\" -DCOMPILE_DATE=\"`date +'%b-%d-%Y'`\"
9: CFLAG = -g -Wall
10: DEF = -DUSE_DYNAMIC_SYMBOLS
11: LEX = flex
12: YACC = bison
13: AR = ar
14: MV = mv
15: RM = rm
16: STRIP = echo
17: #STRIP = strip
18: LEXFLAG = -v
19:
20: # OSF1, SunOS, Linux, NEXTSTEP, HP-UX, IRIX
21:
22: ARCH = $(shell uname)
23: OSF1 = -lcurses #-ltermcap
24: SunOS = /home/capa/source/lib/libncurses.a
25: Linux = /usr/lib/libncurses.a
26: NEXTSTEP = -lcurses -ltermcap
27: HP-UX = -lcurses -ltermcap
28: IRIX = -lcurses -ltermcap
29: FreeBSD = -lncurses -ltermcap
30:
31: P_FLAGS = -lfl -lm
32:
33: S_FLAGS = $($(ARCH)) $(P_FLAGS)
34:
35: OSF1FLAG = -O3 -Olimit 2048
36:
37: #ARCH = $(shell uname)
38: # Architecture speicifc subdirectory
39: # output from uname command
40: #
41: # Architectural note:
42: # on NeXT compiling libcapa after the final step,
43: # ranlib libcapa4.5.a
44: #
45: # HP-UX
46: # alloca() could not linked by ld
47: # file capaParserFun.c contains alloca definition
48: # add <stdlib.h> and <alloca.h> after __hpux
49: # gmake is not available on HP-UX DECS
50:
51: PAR_SRC = capaCommon.c capaLexerFun.c \
52: capaParserFun.c capaFunction.c capaParserUtils.c \
53: capaMapExpr.c capaUnit.c com.c linpack.c ranlib.c \
54: capaCgiUtils.c capaSubjective.c capaRQO.c capaFormulaLexer.c capaFormulaParser.c
55:
56: UNIT_SRC = capaUnit.c
57:
58:
59: P_SRC_DIST = pProj/Makefile \
60: pProj/capaCommon.c pProj/capaLexerFun.c \
61: pProj/capaParserFun.c pProj/capaFunction.c \
62: pProj/capaMapExpr.c \
63: pProj/com.c pProj/linpack.c \
64: pProj/ranlib.c \
65: pProj/capaCommon.h pProj/capaFunction.h \
66: pProj/capaParser.h pProj/capaToken.h \
67: pProj/ranlib.h pProj/lex_debug.h \
68: pProj/allcapaid.c pProj/capalogin.c \
69: pProj/qztotex.c pProj/capaUnit.c \
70: pProj/qzparse.c pProj/capaCgiUtils.c \
71: pProj/capaCGI.h pProj/capaHTML.c \
72: pProj/capaSubjective.c pProj/capaFormula.h \
73: pProj/capaFormulaLexer.c pProj/capaFormulaParser.c pProj/capaParserUtils.c
74:
75: BIN_DIST = pProj/$(ARCH)/capalogin pProj/$(ARCH)/qztotex pProj/$(ARCH)/allcapaid pProj/$(ARCH)/qzparse #pProj/$(ARCH)/setdbheader
76: BIN_DIST_NOPATH = capalogin allcapaid qzparse capahtml capasbin
77:
78: PAR_OBJ = $(PAR_SRC:.c=.o)
79:
80: UNIT_OBJ = $(UNIT_SRC:.c=.o)
81:
82: ARCH_OBJ = $(ARCH)/capaCommon.o $(ARCH)/capaLexerFun.o \
83: $(ARCH)/capaParserFun.o $(ARCH)/capaFunction.o \
84: $(ARCH)/capaUnit.o \
85: $(ARCH)/capaCgiUtils.o $(ARCH)/capaSubjective.o \
86: $(ARCH)/capaMapExpr.o $(ARCH)/com.o \
87: $(ARCH)/linpack.o $(ARCH)/ranlib.o $(ARCH)/capaRQO.o \
88: $(ARCH)/capaFormulaLexer.o $(ARCH)/capaFormulaParser.o $(ARCH)/capaParserUtils.o
89:
90: ## ===================================================================
91:
92: # conditional macros in alpha
93: #
94: # libcapa:=MACRO=string
95:
96:
97: all: libcapa capalogin capahtml capasbin allcapaid qzparse
98:
99: dmalloc:
100: $(MAKE) DEF="-DDMALLOC -DDMALLOC_FUNC_CHECK $(DEF)" P_FLAGS="-ldmalloc $(P_FLAGS)" libcapa capasbin #qzparse
101:
102: libcapa:
103: $(MAKE) objdir
104: $(MAKE) allobj
105: if test -f $(ARCH)/libcapa$(VER).a ; then $(RM) $(ARCH)/libcapa$(VER).a ; fi
106: (cd $(ARCH); $(AR) q libcapa$(VER).a $(PAR_OBJ) )
107: if test $(ARCH) = "NEXTSTEP" ; then \
108: (cd $(ARCH); ranlib libcapa$(VER).a ) ; fi
109:
110:
111: binclean:
112: $(RM) $(ARCH)/*.o $(ARCH)/*.a
113:
114:
115: package:
116: @(cd $(ARCH);tar cvvf ../capabin.`uname`.$(VER).tar $(BIN_DIST_NOPATH) )
117:
118:
119: dist: libcapa capalogin qztotex allcapaid
120: @(cd $(ARCH);tar cvvf ../../parser.bin.`uname`.$(VER).tar $(BIN_DIST_NOPATH) )
121:
122:
123: capadist: libcapa capalogin qztotex allcapaid
124: @(cd $(ARCH);tar uvvf ../../capa.bin.`uname`.$(CAPA_VER).tar $(BIN_DIST_NOPATH) )
125:
126:
127: srcdist:
128: @(cd ..;tar cvvf parser.src.$(VER).tar $(P_SRC_DIST) )
129:
130:
131: capasrcdist:
132: @(cd ..;tar uvvf capa.src.$(CAPA_VER).tar $(P_SRC_DIST) )
133:
134: # ----------------------------------------------------------------
135:
136: objdir:
137: -@ [ -d $(ARCH) ] || ( mkdir $(ARCH); chmod 755 $(ARCH) )
138:
139: allobj:
140: ( ofile="" ; \
141: cfile="" ; \
142: prefix="" ; \
143: CCFLAG="$(CFLAG) $(DEF)";\
144: if test $(ARCH) = "AIX" ; then CCFLAG="-O3 -DAIX $(DEF)"; fi;\
145: if test $(ARCH) = "OSF1" ; then CCFLAG="$(OSF1FLAG) $(DEF)"; fi;\
146: if test $(ARCH) = "NEXTSTEP" ; then CCFLAG="-arch i386 -arch m68k $(DEF)"; fi;\
147: if test $(ARCH) = "SunOS" ; then CCFLAG="-xO3 $(DEF)"; fi;\
148: if test $(ARCH) = "HP-UX" ; then CCFLAG="-O -Ae -Dhpux $(DEF)"; fi;\
149: if test $(ARCH) = "IRIX" ; then CCFLAG="-O2 -DIRIX $(DEF)"; fi;\
150: for prefix in $(PAR_SRC:.c=) out ; do \
151: if [ $${prefix} = "out" ] ; then break; fi ; \
152: cfile="$$prefix.c" ; \
153: ofile="./$(ARCH)/$$prefix.o" ; \
154: cmd="$(CC) $$CCFLAG -c $$cfile -o $$ofile"; \
155: echo $$cmd ; \
156: $$cmd ; \
157: done )
158:
159: .c.o:
160: echo "TARGET:"$@
161: echo "DEPEND:"$<
162:
163: capalogin :
164: (CCFLAG="$(CFLAG) $(DEF)";\
165: if test $(ARCH) = "AIX" ; then CCFLAG="-O3 -DAIX $(DEF)"; fi;\
166: if test $(ARCH) = "OSF1" ; then CCFLAG="$(OSF1FLAG) $(DEF)"; fi;\
167: if test $(ARCH) = "SunOS" ; then CCFLAG="-xO3 $(DEF)"; fi;\
168: if test $(ARCH) = "HP-UX" ; then CCFLAG="-O -Ae -Dhpux $(DEF)"; fi;\
169: if test $(ARCH) = "NEXTSTEP" ; then CCFLAG="-arch i386 -arch m68k $(DEF)"; fi;\
170: if test $(ARCH) = "IRIX" ; then CCFLAG="-O2 -DIRIX $(DEF)"; fi;\
171: CMD="$(CC) $$CCFLAG -o $(ARCH)/$@ $@.c -L$(ARCH) -lcapa$(VER) $(S_FLAGS)"; \
172: echo $$CMD ;\
173: $$CMD )
174: $(STRIP) $(ARCH)/$@
175:
176: allcapaid qzparse:
177: (CCFLAG="$(CFLAG) $(DEF)";\
178: if test $(ARCH) = "AIX" ; then CCFLAG="-O3 -DAIX $(DEF)"; fi;\
179: if test $(ARCH) = "OSF1" ; then CCFLAG="$(OSF1FLAG) $(DEF)"; fi;\
180: if test $(ARCH) = "SunOS" ; then CCFLAG="-xO3 $(DEF)"; fi;\
181: if test $(ARCH) = "HP-UX" ; then CCFLAG="-O -Ae -Dhpux $(DEF)"; fi;\
182: if test $(ARCH) = "NEXTSTEP" ; then CCFLAG="-arch i386 -arch m68k $(DEF)"; fi;\
183: if test $(ARCH) = "IRIX" ; then CCFLAG="-O2 -DIRIX $(DEF)"; fi;\
184: CMD="$(CC) $$CCFLAG -o $(ARCH)/$@ $@.c -L$(ARCH) -lcapa$(VER) $(P_FLAGS)"; \
185: echo $$CMD ;\
186: $$CMD )
187: $(STRIP) $(ARCH)/$@
188:
189: capahtml capasbin:
190: (CCFLAG="$(CFLAG) $(DEF)";\
191: if test $(ARCH) = "AIX" ; then CCFLAG="-O3 -DAIX $(DEF)"; fi;\
192: if test $(ARCH) = "OSF1" ; then CCFLAG="$(OSF1FLAG) $(DEF)"; fi;\
193: if test $(ARCH) = "SunOS" ; then CCFLAG="-xO3 $(DEF)"; fi;\
194: if test $(ARCH) = "HP-UX" ; then CCFLAG="-O -Ae -Dhpux $(DEF)"; fi;\
195: if test $(ARCH) = "NEXTSTEP" ; then CCFLAG="-arch i386 -arch m68k $(DEF)"; fi;\
196: if test $(ARCH) = "IRIX" ; then CCFLAG="-O2 -DIRIX $(DEF)"; fi;\
197: if test $@ = capasbin ; then WDEFS="-DCAPA_WEB" ; fi; \
198: CMD="$(CC) $$CCFLAG -o $(ARCH)/$@ capaHTML.c $$WDEFS -L$(ARCH) -lcapa$(VER) $(P_FLAGS)"; \
199: echo $$CMD ;\
200: $$CMD )
201: $(STRIP) $(ARCH)/$@
202:
203:
204: cleanup:
205: $(RM) -f *.o
206:
207: tags:
208: etags *.[ch]
209:
210: depend:
211: makedepend -- $(CFLAG) -- *.[ch]
212:
213:
214: # ||<===================================================================>||
215: ## =========================================================================
216: # /usr/ccs/lib/liby.a(libmai.o) has a main,
217: # /usr/ucblib/libcurses should come before .c file.
218: ## =========================================================================
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>