--- capa/capa51/pProj/Makefile 1999/10/13 18:45:28 1.2 +++ capa/capa51/pProj/Makefile 2001/01/29 23:25:33 1.20 @@ -1,14 +1,36 @@ # ================================================================== # Makefile for CAPA 5.1 # ================================================================== +# Copyright (C) 1992-2000 Michigan State University +# +# The CAPA system is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# The CAPA system is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with the CAPA system; see the file COPYING. If not, +# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# +# Boston, MA 02111-1307, USA. +# As a special exception, you have permission to link this program +# with the TtH/TtM library and distribute executables, as long as you +# follow the requirements of the GNU GPL in regard to all of the +# software in the executable aside from TtH/TtM. + + VER = 5.1 -BUGFIX = 0 +BUGFIX = 5 #CC = i486-linuxlibc1-gcc -DCAPA_VER=\"$(VER).$(BUGFIX)\" -DCOMPILE_DATE=\"`date +'%b-%d-%Y'`\" CC = cc -DCAPA_VER=\"$(VER).$(BUGFIX)\" -DCOMPILE_DATE=\"`date +'%b-%d-%Y-%H:%M'`\" -CFLAG = -g -Wall -DEF = -DUSE_DYNAMIC_SYMBOLS -LEX = flex +DEF = -DUSE_DYNAMIC_SYMBOLS $(TTH_DEF) #-DLEX_DBUG +LEX = flex -Cfa -s YACC = bison AR = ar MV = mv @@ -19,74 +41,51 @@ LEXFLAG = -v # OSF1, SunOS, Linux, NEXTSTEP, HP-UX, IRIX +TTH_SRC= +#TTH_SRC=../../tth/tthdynamic/tthfunc.c +TTH_OBJ= +#TTH_OBJ=$(ARCH)/tthfunc.o +TTH_DEF= +#TTH_DEF=-DTTH + ARCH = $(shell uname) +LONCAPA = +Linux = /usr/lib/libncurses.a OSF1 = -lcurses #-ltermcap SunOS = /home/capa/source/lib/libncurses.a -Linux = /usr/lib/libncurses.a +Linux = /usr/lib/libncurses.a NEXTSTEP = -lcurses -ltermcap HP-UX = -lcurses -ltermcap IRIX = -lcurses -ltermcap FreeBSD = -lncurses -ltermcap -P_FLAGS = -lfl -lm +P_FLAGS = -ll -lm S_FLAGS = $($(ARCH)) $(P_FLAGS) +LONCAPAFLAG = -DLONCAPA -fPIC -Dbool=char -DHAS_BOOL -D_REENTRANT OSF1FLAG = -O3 -Olimit 2048 - -#ARCH = $(shell uname) -# Architecture speicifc subdirectory -# output from uname command -# -# Architectural note: -# on NeXT compiling libcapa after the final step, -# ranlib libcapa4.5.a -# -# HP-UX -# alloca() could not linked by ld -# file capaParserFun.c contains alloca definition -# add and after __hpux -# gmake is not available on HP-UX DECS - -PAR_SRC = capaCommon.c capaLexerFun.c \ - capaParserFun.c capaFunction.c capaParserUtils.c \ - capaMapExpr.c capaUnit.c com.c linpack.c ranlib.c \ - capaCgiUtils.c capaSubjective.c capaRQO.c capaFormulaLexer.c capaFormulaParser.c - -UNIT_SRC = capaUnit.c - - -P_SRC_DIST = pProj/Makefile \ - pProj/capaCommon.c pProj/capaLexerFun.c \ - pProj/capaParserFun.c pProj/capaFunction.c \ - pProj/capaMapExpr.c \ - pProj/com.c pProj/linpack.c \ - pProj/ranlib.c \ - pProj/capaCommon.h pProj/capaFunction.h \ - pProj/capaParser.h pProj/capaToken.h \ - pProj/ranlib.h pProj/lex_debug.h \ - pProj/allcapaid.c pProj/capalogin.c \ - pProj/qztotex.c pProj/capaUnit.c \ - pProj/qzparse.c pProj/capaCgiUtils.c \ - pProj/capaCGI.h pProj/capaHTML.c \ - pProj/capaSubjective.c pProj/capaFormula.h \ - pProj/capaFormulaLexer.c pProj/capaFormulaParser.c pProj/capaParserUtils.c - -BIN_DIST = pProj/$(ARCH)/capalogin pProj/$(ARCH)/qztotex pProj/$(ARCH)/allcapaid pProj/$(ARCH)/qzparse #pProj/$(ARCH)/setdbheader -BIN_DIST_NOPATH = capalogin allcapaid qzparse capahtml capasbin +AIXFLAG=-O3 -DAIX $(DEF) +NEXTSTEPFLAG=-arch i386 -arch m68k $(DEF) +SunOSFLAG=-xO3 $(DEF) +HP-UXFLAG=-O -Ae -Dhpux $(DEF) +IRIXFLAG=-O2 -DIRIX $(DEF) +LinuxFLAG=-O2 -Wall $(DEF) + +CFLAG=$($(ARCH)FLAG) + +PAR_SRC = capaLexerFun.c capaParserFun.c capaFormulaParser.c capaFunction.c \ + capaParserUtils.c capaMapExpr.c capaUnit.c com.c linpack.c ranlib.c \ + capaCgiUtils.c capaSubjective.c capaRQO.c capaFormulaLexer.c \ + capaFormulaParser.c capaCommon.c $(TTH_SRC) PAR_OBJ = $(PAR_SRC:.c=.o) -UNIT_OBJ = $(UNIT_SRC:.c=.o) - -ARCH_OBJ = $(ARCH)/capaCommon.o $(ARCH)/capaLexerFun.o \ - $(ARCH)/capaParserFun.o $(ARCH)/capaFunction.o \ - $(ARCH)/capaUnit.o \ - $(ARCH)/capaCgiUtils.o $(ARCH)/capaSubjective.o \ - $(ARCH)/capaMapExpr.o $(ARCH)/com.o \ - $(ARCH)/linpack.o $(ARCH)/ranlib.o $(ARCH)/capaRQO.o \ - $(ARCH)/capaFormulaLexer.o $(ARCH)/capaFormulaParser.o $(ARCH)/capaParserUtils.o - +ARCH_OBJ = $(ARCH)/capaFormulaParser.o $(ARCH)/capaLexerFun.o $(ARCH)/capaParserFun.o \ + $(ARCH)/capaFunction.o $(ARCH)/capaParserUtils.o $(ARCH)/capaMapExpr.o \ + $(ARCH)/capaUnit.o $(ARCH)/com.o $(ARCH)/linpack.o $(ARCH)/ranlib.o \ + $(ARCH)/capaCgiUtils.o $(ARCH)/capaSubjective.o $(ARCH)/capaRQO.o \ + $(ARCH)/capaFormulaLexer.o $(ARCH)/capaCommon.o $(TTH_OBJ) ## =================================================================== # conditional macros in alpha @@ -94,125 +93,83 @@ ARCH_OBJ = $(ARCH)/capaCommon.o $(A # libcapa:=MACRO=string -all: libcapa capalogin capahtml capasbin allcapaid qzparse +all: $(ARCH) $(ARCH)/libcapa$(VER).a $(ARCH)/qzparse $(ARCH)/capalogin $(ARCH)/capahtml $(ARCH)/capasbin $(ARCH)/allcapaid + +$(ARCH): + mkdir $(ARCH) dmalloc: - $(MAKE) DEF="-DDMALLOC -DDMALLOC_FUNC_CHECK $(DEF)" P_FLAGS="-ldmalloc $(P_FLAGS)" libcapa capasbin #qzparse + $(MAKE) DEF="-DDMALLOC -DDMALLOC_FUNC_CHECK $(DEF)" P_FLAGS="-ldmalloc $(P_FLAGS)" libcapa capasbin + +libcapa: $(ARCH)/libcapa$(VER).a + +$(ARCH)/capalogin: $(ARCH)/capalogin.o $(ARCH)/libcapa$(VER).a + $(CC) $(CFLAG) -o $@ $^ $(S_FLAGS) + +capalogin: $(ARCH)/capalogin + true + +$(ARCH)/capahtml: capaHTML.c $(ARCH)/libcapa$(VER).a + $(CC) $(CFLAG) -o $@ $< $(ARCH)/libcapa$(VER).a $(P_FLAGS) + +capahtml: $(ARCH)/capahtml + true -libcapa: - $(MAKE) objdir - $(MAKE) allobj - if test -f $(ARCH)/libcapa$(VER).a ; then $(RM) $(ARCH)/libcapa$(VER).a ; fi - (cd $(ARCH); $(AR) q libcapa$(VER).a $(PAR_OBJ) ) - if test $(ARCH) = "NEXTSTEP" ; then \ - (cd $(ARCH); ranlib libcapa$(VER).a ) ; fi +$(ARCH)/capasbin: capaHTML.c $(ARCH)/libcapa$(VER).a + $(CC) $(CFLAG) -o $@ $< -DCAPA_WEB $(ARCH)/libcapa$(VER).a $(P_FLAGS) +capasbin: $(ARCH)/capasbin + true + +$(ARCH)/allcapaid: allcapaid.c $(ARCH)/libcapa$(VER).a + $(CC) $(CFLAG) -o $@ $< $(ARCH)/libcapa$(VER).a $(P_FLAGS) + +allcapaid: $(ARCH)/allcapaid + true + +$(ARCH)/qzparse: qzparse.c $(ARCH)/libcapa$(VER).a + $(CC) $(CFLAG) -o $@ $< $(ARCH)/libcapa$(VER).a $(P_FLAGS) + +qzparse: $(ARCH)/qzparse + true + +$(ARCH)/libcapa$(VER).a: $(ARCH) $(ARCH_OBJ) $(PAR_SRC) + $(AR) r $(ARCH)/libcapa$(VER).a $(ARCH_OBJ) binclean: $(RM) $(ARCH)/*.o $(ARCH)/*.a +$(ARCH)/%.o: %.c capaToken.h + $(CC) $(CFLAG) -c $< -o $@ $(DEF) -package: - @(cd $(ARCH);tar cvvf ../capabin.`uname`.$(VER).tar $(BIN_DIST_NOPATH) ) - +$(ARCH)/tthfunc.o: $(TTH_SRC) + $(CC) $(CFLAG) -c $< -o $@ $(DEF) -dist: libcapa capalogin qztotex allcapaid - @(cd $(ARCH);tar cvvf ../../parser.bin.`uname`.$(VER).tar $(BIN_DIST_NOPATH) ) +$(ARCH)/convert: $(ARCH)libcapa($VER).a $(ARCH)/convert.o + $(CC) $(CFLAG) $(DEF) -o $@ $(ARCH)/convert.o -L$(ARCH) -lcapa$(VER) $(P_FLAGS) +capaToken.h: capaGrammarDef.y + $(YACC) -d $< --output=capaParserFun.c + mv capaParserFun.h capaToken.h + +capaForumla.h: capaFormula.y + $(YACC) -d $< -p fml_ --output=$@ + mv capaFormulaParser.h capaFormula.h + +capaParserFun.c: capaGrammarDef.y + $(YACC) -d $< --output=$@ + mv capaParserFun.h capaToken.h + +capaLexerFun.c: capaLexerDef.flex capaToken.h + $(LEX) -o$@ $< + +capaFormulaParser.c: capaFormula.y + $(YACC) -d $< -p fml_ --output=$@ + mv capaFormulaParser.h capaFormula.h + +clean: + rm -f $(ARCH)/*.o + rm -f $(ARCH)/libcapa$(VER).a + rm -f capaToken.h capaParserFun.c capaLexerFun.c capaFormula.h \ + capaFormulaParser.c -capadist: libcapa capalogin qztotex allcapaid - @(cd $(ARCH);tar uvvf ../../capa.bin.`uname`.$(CAPA_VER).tar $(BIN_DIST_NOPATH) ) - - -srcdist: - @(cd ..;tar cvvf parser.src.$(VER).tar $(P_SRC_DIST) ) - - -capasrcdist: - @(cd ..;tar uvvf capa.src.$(CAPA_VER).tar $(P_SRC_DIST) ) - -# ---------------------------------------------------------------- - -objdir: - -@ [ -d $(ARCH) ] || ( mkdir $(ARCH); chmod 755 $(ARCH) ) - -allobj: - ( ofile="" ; \ - cfile="" ; \ - prefix="" ; \ - CCFLAG="$(CFLAG) $(DEF)";\ - if test $(ARCH) = "AIX" ; then CCFLAG="-O3 -DAIX $(DEF)"; fi;\ - if test $(ARCH) = "OSF1" ; then CCFLAG="$(OSF1FLAG) $(DEF)"; fi;\ - if test $(ARCH) = "NEXTSTEP" ; then CCFLAG="-arch i386 -arch m68k $(DEF)"; fi;\ - if test $(ARCH) = "SunOS" ; then CCFLAG="-xO3 $(DEF)"; fi;\ - if test $(ARCH) = "HP-UX" ; then CCFLAG="-O -Ae -Dhpux $(DEF)"; fi;\ - if test $(ARCH) = "IRIX" ; then CCFLAG="-O2 -DIRIX $(DEF)"; fi;\ - for prefix in $(PAR_SRC:.c=) out ; do \ - if [ $${prefix} = "out" ] ; then break; fi ; \ - cfile="$$prefix.c" ; \ - ofile="./$(ARCH)/$$prefix.o" ; \ - cmd="$(CC) $$CCFLAG -c $$cfile -o $$ofile"; \ - echo $$cmd ; \ - $$cmd ; \ - done ) - -.c.o: - echo "TARGET:"$@ - echo "DEPEND:"$< - -capalogin : - (CCFLAG="$(CFLAG) $(DEF)";\ - if test $(ARCH) = "AIX" ; then CCFLAG="-O3 -DAIX $(DEF)"; fi;\ - if test $(ARCH) = "OSF1" ; then CCFLAG="$(OSF1FLAG) $(DEF)"; fi;\ - if test $(ARCH) = "SunOS" ; then CCFLAG="-xO3 $(DEF)"; fi;\ - if test $(ARCH) = "HP-UX" ; then CCFLAG="-O -Ae -Dhpux $(DEF)"; fi;\ - if test $(ARCH) = "NEXTSTEP" ; then CCFLAG="-arch i386 -arch m68k $(DEF)"; fi;\ - if test $(ARCH) = "IRIX" ; then CCFLAG="-O2 -DIRIX $(DEF)"; fi;\ - CMD="$(CC) $$CCFLAG -o $(ARCH)/$@ $@.c -L$(ARCH) -lcapa$(VER) $(S_FLAGS)"; \ - echo $$CMD ;\ - $$CMD ) - $(STRIP) $(ARCH)/$@ - -allcapaid qzparse: - (CCFLAG="$(CFLAG) $(DEF)";\ - if test $(ARCH) = "AIX" ; then CCFLAG="-O3 -DAIX $(DEF)"; fi;\ - if test $(ARCH) = "OSF1" ; then CCFLAG="$(OSF1FLAG) $(DEF)"; fi;\ - if test $(ARCH) = "SunOS" ; then CCFLAG="-xO3 $(DEF)"; fi;\ - if test $(ARCH) = "HP-UX" ; then CCFLAG="-O -Ae -Dhpux $(DEF)"; fi;\ - if test $(ARCH) = "NEXTSTEP" ; then CCFLAG="-arch i386 -arch m68k $(DEF)"; fi;\ - if test $(ARCH) = "IRIX" ; then CCFLAG="-O2 -DIRIX $(DEF)"; fi;\ - CMD="$(CC) $$CCFLAG -o $(ARCH)/$@ $@.c -L$(ARCH) -lcapa$(VER) $(P_FLAGS)"; \ - echo $$CMD ;\ - $$CMD ) - $(STRIP) $(ARCH)/$@ - -capahtml capasbin: - (CCFLAG="$(CFLAG) $(DEF)";\ - if test $(ARCH) = "AIX" ; then CCFLAG="-O3 -DAIX $(DEF)"; fi;\ - if test $(ARCH) = "OSF1" ; then CCFLAG="$(OSF1FLAG) $(DEF)"; fi;\ - if test $(ARCH) = "SunOS" ; then CCFLAG="-xO3 $(DEF)"; fi;\ - if test $(ARCH) = "HP-UX" ; then CCFLAG="-O -Ae -Dhpux $(DEF)"; fi;\ - if test $(ARCH) = "NEXTSTEP" ; then CCFLAG="-arch i386 -arch m68k $(DEF)"; fi;\ - if test $(ARCH) = "IRIX" ; then CCFLAG="-O2 -DIRIX $(DEF)"; fi;\ - if test $@ = capasbin ; then WDEFS="-DCAPA_WEB" ; fi; \ - CMD="$(CC) $$CCFLAG -o $(ARCH)/$@ capaHTML.c $$WDEFS -L$(ARCH) -lcapa$(VER) $(P_FLAGS)"; \ - echo $$CMD ;\ - $$CMD ) - $(STRIP) $(ARCH)/$@ - - -cleanup: - $(RM) -f *.o - -tags: - etags *.[ch] - -depend: - makedepend -- $(CFLAG) -- *.[ch] - - -# ||<===================================================================>|| -## ========================================================================= -# /usr/ccs/lib/liby.a(libmai.o) has a main, -# /usr/ucblib/libcurses should come before .c file. -## =========================================================================