File:  [LON-CAPA] / capa / capa51 / pProj / Makefile
Revision 1.1: download - view: text, annotated - select for diffs
Tue Sep 28 21:26:21 1999 UTC (24 years, 7 months ago) by albertel
Branches: MAIN
CVS tags: HEAD
Initial revision

# ==================================================================
#     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'`\" 
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>