# ==================================================================
# Makefile for CAPA 5.1
# ==================================================================
VER = 5.1
BUGFIX = 0
#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
YACC = bison
AR = ar
MV = mv
RM = rm
STRIP = echo
#STRIP = strip
LEXFLAG = -v
# OSF1, SunOS, Linux, NEXTSTEP, HP-UX, IRIX
ARCH = $(shell uname)
OSF1 = -lcurses #-ltermcap
SunOS = /home/capa/source/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
S_FLAGS = $($(ARCH)) $(P_FLAGS)
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 <stdlib.h> and <alloca.h> 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
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
## ===================================================================
# conditional macros in alpha
#
# libcapa:=MACRO=string
all: libcapa capalogin capahtml capasbin allcapaid qzparse
dmalloc:
$(MAKE) DEF="-DDMALLOC -DDMALLOC_FUNC_CHECK $(DEF)" P_FLAGS="-ldmalloc $(P_FLAGS)" libcapa capasbin #qzparse
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
binclean:
$(RM) $(ARCH)/*.o $(ARCH)/*.a
package:
@(cd $(ARCH);tar cvvf ../capabin.`uname`.$(VER).tar $(BIN_DIST_NOPATH) )
dist: libcapa capalogin qztotex allcapaid
@(cd $(ARCH);tar cvvf ../../parser.bin.`uname`.$(VER).tar $(BIN_DIST_NOPATH) )
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.
## =========================================================================
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>