## File: flora2/Makefile ## ## Author(s): Michael Kifer ## Guizhen Yang ## ## Contact: flora-users@lists.sourceforge.net ## ## Copyright (C) The Research Foundation of SUNY, 1999-2002 ## ## FLORA-2 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. ## ## FLORA-2 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 FLORA-2; if not, write to the Free Software Foundation, ## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## ## $Id: Makefile,v 1.38 2003/06/18 07:01:37 kifer Exp $ ## ## OBJEXT=.xwam PROLOGEXT=.P PROLOGHEADEREXT=.H FLORADIR = . ALLOBJS = flrarguments${OBJEXT} \ flrcomposer${OBJEXT} \ flrcompiler${OBJEXT} \ flrcoder${OBJEXT} \ flrdependency${OBJEXT} \ flora2devel${OBJEXT} \ flrhilogtable${OBJEXT} \ flrlexer${OBJEXT} \ flrlibman${OBJEXT} \ flrnodefp${OBJEXT} \ flrnowsp${OBJEXT} \ flroperator${OBJEXT} \ flrparser${OBJEXT} \ flrporting${OBJEXT} \ flrpretifydump${OBJEXT} \ flrprint${OBJEXT} \ flrprolog${OBJEXT} \ flrregistry${OBJEXT} \ flrshell${OBJEXT} \ flrundefined${OBJEXT} \ flrundefhook${OBJEXT} \ flrutils${OBJEXT} \ flrversion${OBJEXT} \ flrwraparound${OBJEXT} \ flrwrapper${OBJEXT} FLORA_CHAR_DEFS = $(FLORADIR)/flrincludes/flora_characters.flh FLORA_INCLUDES_DIR = flrincludes FLORA_TERMS = $(FLORA_INCLUDES_DIR)/flora_terms.flh FLORA_ERRORS = $(FLORA_INCLUDES_DIR)/flora_errors.flh FLORA_PORTING = $(FLORA_INCLUDES_DIR)/flora_porting.flh FLORA_EXTENSIONS = $(FLORA_INCLUDES_DIR)/flora_extensions.flh FLORA_WRAP = $(FLORA_INCLUDES_DIR)/flora_wrap.flh OPTION = [optimize] # PROLOG is passed as an argument to make. Default is none, to trigger an error PROLOG=none PROLOG_COMMAND = $(PROLOG) -s -m 40000 -c 4000 -e 'segfault_handler(warn).' # Make sure warnings are saved in a file. SVFILE = '$(FLORADIR)/.flora_top_warn.tmp' STDWARN = 3 STDERR = 2 HDRMSG = "While compiling .../flora2:" .SUFFIXES: $(PROLOGEXT) $(PROLOGHEADEREXT) $(OBJEXT) # acceptable targets are all (default), system, base, top all: core libs pkgs misc showerrors system: core libs showerrors base: core showerrors showerrors: @cat $(FLORADIR)/.flora*.tmp @rm $(FLORADIR)/.flora*.tmp top: init $(ALLOBJS) finish ./CompileChangedFiles.sh $(PROLOG_COMMAND) @cat $(SVFILE) core: top cd closure && $(MAKE) PROLOG=$(PROLOG) cd genincludes && $(MAKE) PROLOG=$(PROLOG) cd syslib && $(MAKE) PROLOG=$(PROLOG) cd trailer && $(MAKE) PROLOG=$(PROLOG) cd debugger && $(MAKE) PROLOG=$(PROLOG) libs: cd lib && $(MAKE) PROLOG=$(PROLOG) misc: cd pkgs && $(MAKE) PROLOG=$(PROLOG) cd demos && $(MAKE) PROLOG=$(PROLOG) -cd docs && $(MAKE) PROLOG=$(PROLOG) %$(OBJEXT) : %$(PROLOGEXT) $(FLORA_TERMS) $(FLORA_PORTING) $(FLORA_EXTENSIONS) $(FLORA_WRAP) @echo 'mc($*,$(OPTION)).' >> cmd... %$(PROLOGEXT) : %$(PROLOGHEADEREXT) ./touch.sh $@ # always compile flora2devel to make sure that .xwam has the latest .flora_path flora2devel${OBJEXT} : flora2devel${PROLOGEXT} version.flh @echo 'mc(flora2devel,$(OPTION)).' >> cmd... flrversion${OBJEXT}: flrversion${PROLOGEXT} version.flh @echo 'mc(flrversion,$(OPTION)).' >> cmd... flrlexer${OBJEXT} : flrlexer${PROLOGEXT} flrlexer.H $(FLORA_CHAR_DEFS) $(FLORA_TERMS) $(FLORA_ERRORS) $(FLORA_PORTING) @echo 'mc(flrlexer,$(OPTION)).' >> cmd... flrcomposer${OBJEXT} : flrcomposer${PROLOGEXT} flrcomposer.H $(FLORA_CHAR_DEFS) $(FLORA_TERMS) $(FLORA_ERRORS) $(FLORA_PORTING) @echo 'mc(flrcomposer,$(OPTION)).' >> cmd... flrparser${OBJEXT} : flrparser${PROLOGEXT} flrparser.H $(FLORA_TERMS) $(FLORA_ERRORS) $(FLORA_PORTING) @echo 'mc(flrparser,$(OPTION)).' >> cmd... flrcompiler${OBJEXT} : flrcompiler${PROLOGEXT} flrcompiler.H $(FLORA_TERMS) $(FLORA_ERRORS) $(FLORA_PORTING) @echo 'mc(flrcompiler,$(OPTION)).' >> cmd... flrcoder${OBJEXT} : flrcoder${PROLOGEXT} flrcoder.H $(FLORA_CHAR_DEFS) $(FLORA_TERMS) $(FLORA_ERRORS) $(FLORA_PORTING) @echo 'mc(flrcoder,$(OPTION)).' >> cmd... flrutils${OBJEXT} : flrutils${PROLOGEXT} flrutils.H $(FLORA_CHAR_DEFS) $(FLORA_TERMS) $(FLORA_PORTING) @echo 'mc(flrutils,$(OPTION)).' >> cmd... init: @/bin/rm -f $(FLORADIR)/.*flora*.tmp @echo "file_write($(STDWARN),'-------------- Warnings/Errors --------------------'), file_nl($(STDWARN))." > cmd... @echo "file_write($(STDWARN),'$(HDRMSG)'), file_nl($(STDWARN))." >> cmd... @echo "file_flush($(STDWARN),_)." >> cmd... @echo "[flora2devel]." >> cmd...hdr @echo "import bootstrap_flora/0 from flora2." >> cmd...hdr @echo "file_reopen($(SVFILE),a,$(STDWARN),_)." >> cmd...hdr @echo "file_clone($(STDWARN),$(STDERR),_)." >> cmd...hdr @echo "bootstrap_flora." >> cmd...hdr finish: @echo "file_write($(STDWARN),'-------------------- End --------------------------'), file_nl($(STDWARN))." >> cmd... clean: /bin/rm -f core *~ .*~ *${OBJEXT} *.O *.bak ../flora2${OBJEXT} .#* /bin/rm -f .*.tmp .flora_path* .prolog_path* cd closure && $(MAKE) clean cd genincludes && $(MAKE) clean cd syslib && $(MAKE) clean cd lib && $(MAKE) clean cd debugger && $(MAKE) clean cd p2h && $(MAKE) clean cd trailer && $(MAKE) clean cd pkgs && $(MAKE) clean cd demos && $(MAKE) clean /bin/rm -f headerinc/*~ headerinc/.*~ /bin/rm -f syslibinc/*~ syslibinc/.*~ /bin/rm -f libinc/*~ libinc/.*~ /bin/rm -f includes/*~ includes/.*~ /bin/rm -f flrincludes/*~ flrincludes/.*~ /bin/rm -f $(HOME)/.xsb/flora/*${PROLOGEXT} $(HOME)/.xsb/flora/*${OBJEXT} veryclean: clean cd docs && $(MAKE) clean cd emacs && $(MAKE) clean .DONE: @echo Done