# Makefile for ePiX v0.8.x # ### Modify these lines as appropriate ### ## Compiler ## CXX=g++ ## Install directory: uncomment exactly one ## prefix=/usr/local #prefix=/opt/epix #prefix=$(HOME) ## ePiX is bash-centric; apologies if you're not... ## SHELL=/bin/bash ############### Nothing below should require modification ############### ## Binutils ## CFLAGS=-c -Wall LINT=lint RANLIB=ranlib ## Miscellaneous commands ## CHMOD=chmod MKDIR=mkdir RM=rm -f INSTALL=install INSTALL_BIN=${INSTALL} -m 755 INSTALL_PROGRAM=${INSTALL} -m 644 ## Directories ## srcdir=. bindir=${prefix}/bin libdir=${prefix}/lib hdrdir=${prefix}/include mandir=${prefix}/man/man1 shrdir=${prefix}/share/epix CONTRIB=contrib/epix_ext.cc CONTRIB_HDR=contrib/epix_ext.h CONTRIB_OBJ=epix_ext.o LEGACY=legacy.cc LEGACY_HDR=legacy.h LEGACY_OBJ=legacy.o ## Source, object, and header files ## SRCS=pairs.cc triples.cc lengths.cc output.cc objects.cc \ curves.cc plots.cc geometry.cc functions.cc arcana.cc meshplots.cc OBJS=pairs.o triples.o lengths.o output.o objects.o \ curves.o plots.o geometry.o functions.o arcana.o meshplots.o HDRS=globals.h pairs.h triples.h lengths.h output.h objects.h \ curves.h plots.h geometry.h functions.h arcana.h meshplots.h GLOBALS=globals.h ## Installed files ## # Main wrapper script EPIX=epix EPIX_HDR=epix.h EPIX_LIB=libepix.a EPIX_MAN=epix.1 # bash script to convert latex to Postscript LAPS=laps # convert epix files to encapsulated Postscript ELAPS=elaps ## Targets ## : $(EPIX_LIB) $(EPIX) $(EPIX_HDR) all: $(EPIX_LIB) $(EPIX) $(EPIX_HDR) pairs.o: pairs.cc $(GLOBALS) pairs.h $(CXX) $(CFLAGS) pairs.cc triples.o: triples.cc $(GLOBALS) triples.h $(CXX) $(CFLAGS) triples.cc lengths.o: lengths.cc $(GLOBALS) lengths.h pairs.h $(CXX) $(CFLAGS) lengths.cc output.o: output.cc $(GLOBALS) output.h lengths.h $(CXX) $(CFLAGS) output.cc objects.o: objects.cc $(GLOBALS) objects.h output.h $(CXX) $(CFLAGS) objects.cc curves.o: curves.cc $(GLOBALS) curves.h objects.h $(CXX) $(CFLAGS) curves.cc plots.o: plots.cc $(GLOBALS) plots.h objects.h functions.h $(CXX) $(CFLAGS) plots.cc geometry.o: geometry.cc $(GLOBALS) geometry.h plots.h objects.h triples.h $(CXX) $(CFLAGS) geometry.cc functions.o: functions.cc $(GLOBALS) functions.h $(CXX) $(CFLAGS) functions.cc arcana.o: arcana.cc $(GLOBALS) arcana.h plots.h $(CXX) $(CFLAGS) arcana.cc meshplots.o: meshplots.cc $(GLOBALS) meshplots.h output.h $(CXX) $(CFLAGS) meshplots.cc epix.h: $(HDRS) ./make_header epix: prepix export EPIX_ROOTDIR=${prefix} && \ export EPIX_CXX=${CXX} && \ export EPIX_SCRIPT=$(EPIX) && \ ./prepix && chmod 755 $(EPIX) libepix.a: $(OBJS) ar -ru $(EPIX_LIB) $(OBJS) $(RANLIB) $(EPIX_LIB) epix_ext.o: $(CONTRIB) $(CONTRIB_HDR) $(CXX) $(CFLAGS) $(CONTRIB) contrib: $(EPIX_LIB) $(CONTRIB_OBJ) $(EPIX_HDR) ar -ru $(EPIX_LIB) $(CONTRIB_OBJ) $(RANLIB) $(EPIX_LIB) cat $(CONTRIB_HDR) | grep -v "\#if" | grep -v "include \"" \ | grep -v endif >> $(EPIX_HDR) legacy.o: $(LEGACY) $(LEGACY_HDR) $(CXX) $(CFLAGS) $(LEGACY) legacy: $(EPIX_LIB) $(LEGACY_OBJ) $(EPIX_HDR) ar -ru $(EPIX_LIB) $(LEGACY_OBJ) $(RANLIB) $(EPIX_LIB) cat $(LEGACY_HDR) | grep -v "\#if" | grep -v "include \"" \ | grep -v endif >> $(EPIX_HDR) test: $(EPIX_LIB) $(EPIX) $(EPIX_HDR) export EPIX_ROOTDIR="${prefix}" && ./helpfiles.sh --test install:$(EPIX_LIB) $(EPIX) $(EPIX_HDR) if [ ! -d ${prefix} ]; then $(MKDIR) ${prefix}; fi export EPIX_ROOTDIR="${prefix}" && ./pre-install.sh export EPIX_ROOTDIR="${prefix}" && ./helpfiles.sh --install $(INSTALL_PROGRAM) $(EPIX_HDR) ${hdrdir}/$(EPIX_HDR) $(INSTALL_PROGRAM) $(EPIX_LIB) ${libdir}/$(EPIX_LIB) $(INSTALL_PROGRAM) $(EPIX_MAN) ${mandir}/$(EPIX_MAN) $(INSTALL_BIN) $(EPIX) ${bindir}/$(EPIX) $(INSTALL_BIN) $(LAPS) ${bindir}/$(LAPS) $(INSTALL_BIN) $(ELAPS) ${bindir}/$(ELAPS) clean: -$(RM) $(OBJS) $(CONTRIB_OBJ) $(LEGACY_OBJ) $(EPIX_LIB) $(EPIX) $(EPIX_HDR) \ sample.dvi sample.ps samples/*.eepic samples/sample.dvi samples/sample.log uninstall: -$(RM) ${hdrdir}/$(EPIX_HDR) \ ${libdir}/$(EPIX_LIB) \ ${mandir}/$(EPIX_MAN) \ ${bindir}/$(EPIX) \ ${bindir}/$(LAPS) \ ${bindir}/$(ELAPS) export EPIX_ROOTDIR="${prefix}" && ./helpfiles.sh --uninstall export EPIX_ROOTDIR="${prefix}" && ./post-uninst.sh