# @configure_input@ ARCH = unix POLL = poll GC = @GCDIR@ GCOPTIONS = @GCOPTIONS@ GCLIB = @GCLIB@ GCPPLIB = @GCPPLIB@ GCLIBS = $(GCPPLIB) $(GCLIB) LFLAGS = @LDFLAGS@ LIBS = $(LFLAGS) @LIBS@ $(GCLIBS) vpath %.cc prc CAMP = camperror path drawpath drawlabel picture psfile texfile util settings \ guide flatguide knot drawfill path3 drawpath3 drawsurface RUNTIME_FILES = runtime runbacktrace runpicture runlabel runhistory runarray \ runfile runsystem runpair runtriple runpath runpath3d runstring \ runmath # Files to be scanned for pre-translated symbols defined by SYM(name). SYMBOL_FILES = types builtin gsl $(RUNTIME_FILES) PRC = PRCbitStream oPRCFile PRCdouble writePRC FILES = $(CAMP) $(SYMBOL_FILES) env genv main stm dec errormsg \ callable name symbol entry exp newexp stack camp.tab lex.yy \ access virtualfieldaccess absyn record interact fileio \ fftw++ simpson coder coenv \ @getopt@ locate parser program application varinit fundec refaccess \ envcompleter process constructor array Delaunay predicates \ $(PRC) glrender tr arcball algebra3 quaternion svnrevision DIST = camp.tab.h camp.tab.cc lex.yy.cc runtime.cc keywords.cc \ asy-keywords.el $(RUNTIME_FILES:=.cc) $(RUNTIME_FILES:=.h) asy.list \ allsymbols.h opsymbols.h $(SYMBOL_FILES:=.symbols.h) NAME = asy XNAME = x$(NAME) CLEAN = camp.output svnrevision.cc base/version.asy doc/version.texi \ GUI/xasyVersion.py $(XNAME) doc/asy-latex.pdf EXTRA = asy-mode.el asy-init.el asy.vim asy-kate.sh asymptote.py reload.js \ nopapersize.ps EXEXTRA = piicon.eps *.views *.dat DOCEXTRA = *.asy *.csv *.dat latexusage.tex externalprc.tex pixel.pdf KEYWORDS = base $(ASYMPTOTE_SITEDIR) LATEXFILES = asymptote.sty asycolors.sty ocg.sty latexmkrc CONTEXTFILES = colo-asy.tex ASY = ./asy -dir base -config "" -render=0 DEFS = @DEFS@ @OPTIONS@ \ -DTRANSJUMP CFLAGS = @CPPFLAGS@ @CFLAGS@ OPTS = $(DEFS) $(CFLAGS) INCL = -I . @INCL@ CXX = @CXX@ -Wall -ansi CC = @CC@ -Wall -ansi MAKEDEPEND = $(OPTS) -O0 -M -DDEPEND BISON = bison LEX = @LEX@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ bindir = $(DESTDIR)@bindir@ mandir = $(DESTDIR)@mandir@ infodir = $(DESTDIR)@infodir@ datadir = $(DESTDIR)@datadir@ asydir = $(datadir)/asymptote GUIdir = $(asydir)/GUI docdir = $(DESTDIR)@docdir@ exampledir = $(docdir)/examples animationsdir = $(exampledir)/animations latexdir = $(DESTDIR)@latexdir@ contextdir = $(DESTDIR)@contextdir@ INSTALL = @INSTALL@ REVISION = "const char *SVN_REVISION=" revision = `svn info 2>/dev/null | grep 'Revision' | sed -e 's/Revision: \(.*\)/-r\1/'` last = `cat svnrevision.cc | sed -e 's/.*\"\(.*\)\";/\\1/'` export prefix docdir exampledir mandir infodir INSTALL MAKE DESTDIR TEXI2DVI asy: $(GCLIB) $(FILES:=.o) if test "$(revision)" != "$(last)"; then \ echo $(REVISION)\"$(revision)\"\; > svnrevision.cc; \ $(CXX) $(OPTS) $(INCL) -o svnrevision.o -c svnrevision.cc; \ fi echo string VERSION=\"@VERSION@$(revision)\"\; > base/version.asy echo @set VERSION @VERSION@$(revision) > doc/version.texi echo @set Datadir @datadir@ >> doc/version.texi echo "#!/usr/bin/env python" > GUI/xasyVersion.py echo xasyVersion = \"@VERSION@$(revision)\" >> GUI/xasyVersion.py ln -sf GUI/xasy.py $(XNAME) $(CXX) $(OPTS) -o $(NAME) $(FILES:=.o) $(LIBS) svnrevision.cc: echo $(REVISION)\"\"\; > svnrevision.cc; msdos: $(GCLIB) $(FILES:=.o) asy.o echo string VERSION=\"@VERSION@\"\; > base/version.asy echo @set VERSION @VERSION@ > doc/version.texi echo @set Datadir @datadir@ >> doc/version.texi echo "#!/usr/bin/env python" > GUI/xasyVersion.py echo xasyVersion = \"@VERSION@\" >> GUI/xasyVersion.py $(CXX) $(OPTS) -o $(NAME) $(FILES:=.o) asy.o $(LIBS) -s -static asy.o: asy.rc asy.ico Makefile cat asy.rc | sed -e "s/ASYMPTOTE_VERSION/@VERSION@$(revision)/" | \ windres -o asy.o all: asy sty man faq asy-keywords.el $(GCLIB): $(GC).tar.gz gunzip -c $(GC).tar.gz > $(GC).tar tar -xf $(GC).tar rm -f $(GC).tar if test "$(GC)" = "gc6.8"; then \ cd $(GC)/include && patch < ../../patches/gc6.8_AIX.patch; \ fi if test "$(GC)" = "gc-7.0"; then \ cd $(GC)/include/private && \ patch < ../../../patches/gc-7.0nomem.patch; \ fi cd $(GC); \ ./configure $(GCOPTIONS); \ $(MAKE) check $(GCPPLIB): $(GCLIB) sty: cd doc && $(MAKE) asy-latex.pdf dvi: asy sty cd doc && $(MAKE) dvi html: asy sty cd doc && $(MAKE) doc man: asy sty cd doc && $(MAKE) man faq: asy sty cd doc && $(MAKE) faq $(RUNTIME_FILES:=.cc): %.cc: runtime.pl opsymbols.h runtimebase.in %.in perl ./runtime.pl $(@:.cc=) $(SYMBOL_FILES:=.symbols.h): %.symbols.h: findsym.pl %.cc $(CXX) -E -DNOSYM $(OPTS) $(INCL) $(@:.symbols.h=.cc) | \ perl ./findsym.pl $@ - $(SYMBOL_FILES:=.o): %.o: %.symbols.h allsymbols.h: findsym.pl $(SYMBOL_FILES:=.cc) $(CXX) -E -DNOSYM $(OPTS) $(INCL) $(SYMBOL_FILES:=.cc) | \ perl ./findsym.pl $@ - symbol.o: opsymbols.h allsymbols.h camp.tab.cc: camp.y $(BISON) -dvt -b camp camp.y && mv camp.tab.c camp.tab.cc camp.tab.h: camp.tab.cc lex.yy.cc: camp.l $(LEX) -d -olex.yy.cc camp.l lex.yy.d: $(GCLIB) lex.yy.cc camp.tab.h keywords.cc: keywords.pl camp.l process.cc perl ./keywords.pl opsymbols.h: opsymbols.pl camp.l perl ./opsymbols.pl envcompleter.d: keywords.cc asy-keywords.el: asy @echo Creating $@; $(ASY) -l > asy.list ls $(addsuffix /*.asy,$(KEYWORDS)) | grep -v plain\* | \ grep -v three_\* | grep -v featpost3D | xargs $(ASY) -l >> asy.list perl ./asy-list.pl asy.list @VERSION@ install: asy-keywords.el install-man install-texhash ${INSTALL} -p -m 644 asy-keywords.el $(asydir) install-all: install install-html install-texhash: install-asy -if test -z "$(DESTDIR)"; then \ texhash; \ fi install-asy: asy sty ${INSTALL} -d $(bindir) $(asydir) $(GUIdir) $(exampledir) \ $(animationsdir) -${INSTALL} -d $(latexdir) -${INSTALL} -d $(contextdir) ${INSTALL} -p -m 755 $(NAME) $(bindir) ${INSTALL} -p -m 644 base/*.asy $(addprefix base/,$(EXTRA)) $(asydir) ${INSTALL} -p -m 755 GUI/*.py $(GUIdir) ln -sf @datadir@/asymptote/GUI/xasy.py $(bindir)/$(XNAME) ${INSTALL} -p -m 644 examples/*.asy $(addprefix examples/,$(EXEXTRA)) \ doc/extra/*.asy $(addprefix doc/,$(DOCEXTRA)) $(exampledir) ${INSTALL} -p -m 644 examples/animations/*.asy \ examples/animations/inlinemovie.tex \ examples/animations/inlinemovie3.tex $(animationsdir) -${INSTALL} -p -m 644 $(addprefix doc/,$(LATEXFILES)) $(latexdir) -${INSTALL} -p -m 644 $(addprefix doc/,$(CONTEXTFILES)) $(contextdir) install-html: html cd doc && $(MAKE) install-all install-man: man cd doc && $(MAKE) install install-prebuilt: install-asy cd doc && $(MAKE) install-prebuilt uninstall: uninstall-all uninstall-all: uninstall-man uninstall-asy uninstall-docdir uninstall-asy: -cd $(animationsdir) && rm -f *.asy *.tex -rmdir $(animationsdir) -cd $(exampledir) && rm -f $(EXEXTRA) $(DOCEXTRA) -rmdir $(exampledir) -cd $(GUIdir) && rm -f *.py -rmdir $(GUIdir) -cd $(asydir) && rm -f asy-keywords.el *.asy $(EXTRA) -rmdir $(asydir) -cd $(latexdir) && rm -f $(LATEXFILES) -rmdir $(latexdir) -cd $(contextdir) && rm -f $(CONTEXTFILES) -rmdir $(contextdir) -cd $(bindir) && rm -f $(NAME) $(XNAME) uninstall-man: cd doc && $(MAKE) uninstall uninstall-docdir: -rmdir $(docdir) clean: FORCE -rm -f asy *.o *.d *mon.out $(CLEAN) gc-clean: FORCE clean -if test -d $(GC); then \ $(MAKE) -C $(GC) clean; \ fi cleaner: FORCE clean -if test -d $(GC); then \ rm -rf $(GC); \ fi -rm -f Makefile config.h config.log config.status errors.temp cd doc && $(MAKE) clean cd tests && $(MAKE) distclean distclean: FORCE cleaner cd doc && $(MAKE) distclean cleanest: FORCE maintainer-clean maintainer-clean: FORCE distclean -rm -f configure config.h.in $(DIST) -rm -rf autom4te.cache check: asy FORCE ./wce $(MAKE) -C tests check-all: asy FORCE ./wce $(MAKE) -C tests all .SUFFIXES: .c .cc .o .d .cc.o: $(CXX) $(OPTS) $(INCL) -o $@ -c $< .cc.d: @echo Creating $@; \ rm -f $@; \ ${CXX} $(MAKEDEPEND) $(INCL) $(MDOPTS) $< > $@.$$$$ 2>/dev/null && \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$ .c.d: @echo Creating $@; \ rm -f $@; \ ${CC} $(MAKEDEPEND) $(INCL) $(MDOPTS) $< > $@.$$$$ 2>/dev/null && \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$ ifeq (,$(findstring clean,${MAKECMDGOALS})) -include $(FILES:=.d) endif FORCE: configure: configure.ac autoheader && autoconf Makefile: Makefile.in config.status ./config.status config.status: configure ./config.status --recheck