# ==================================================================
# 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 Library 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
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library 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 = 2
#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'`\"
DEF = -DUSE_DYNAMIC_SYMBOLS $(TTH_DEF) #-DLEX_DBUG
LEX = flex -Cfa -s
YACC = bison
AR = ar
MV = mv
RM = rm
STRIP = echo
#STRIP = strip
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)
Linux = /usr/lib/libncurses.a
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 = -ll -lm
S_FLAGS = $($(ARCH)) $(P_FLAGS)
OSF1FLAG = -O3 -Olimit 2048
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)
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
#
# libcapa:=MACRO=string
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
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
$(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_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)
$(ARCH)/tthfunc.o: $(TTH_SRC)
$(CC) $(CFLAG) -c $< -o $@ $(DEF)
$(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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>