# GNUmakefile for testing DemeterJ. # $Id: GNUmakefile,v 1.35 2002/09/26 05:19:10 dougo Exp $ # The program name. PROG = demeterj # The project file. PRJFILE = $(PROG).prj # The class dictionary file. CDFILE = $(PROG).cd # The behavior files. BEHFILES = main.beh utils.beh modules.beh project.beh # The name of the class which has the "main" method. MAIN = Program # The directory into which .java files are generated. GENDIR = gen # The directory into which .class files are generated. CLASSDIR = ../classes # The jar file containing all the classes. JARFILE = ../$(PROG).jar # All the classes needed for the program. CLASSPATH = $(CLASSDIR) # The package of the library classes. LIB_PACKAGE = EDU.neu.ccs.demeter # Subdirectories containing sub-packages. SUBDIRS = tg generate weave studio ridler # Java compiler: #JAVAC = CLASSPATH=$(CLASSPATH) javac -J-mx48m -deprecation -g -d $(CLASSDIR) # Pizza compiler: #JAVAC = CLASSPATH=$(CLASSPATH) pc -nowarn -J-mx32m -g -d $(CLASSDIR) # Generic Java compiler: #JAVAC = CLASSPATH=$(CLASSPATH) gjc -nowarn -J-mx32m -java -g -d $(CLASSDIR) # Jikes: JAVAC = JIKESPATH=$(CLASSPATH):$$JIKESPATH jikes -depend -g +E -d $(CLASSDIR) # Demeter compiler: DEMETERJ = DEMETERJ_CLASSES=../../classes ../../../bin/demeterj # archive tool JAR = jar cf0 LIB_PACKAGE_DIR = $(CLASSDIR)/$(subst .,/,$(LIB_PACKAGE)) MKDIR = mkdir -m 755 -p LIBSRC = Text.java Ident.java Line.java Word.java \ AroundContinuation.java Graph.java LIBCLASSES = $(addprefix $(LIB_PACKAGE_DIR)/,$(LIBSRC:.java=.class)) #DEMETERJ_CLASSES = ../$(JARFILE) DEMETERJ_CLASSES = ../classes all: $(LIBCLASSES) $(PRJFILE) $(CDFILE) $(BEHFILES) $(SUBDIRS) $(DEMETERJ) -verbose weave $(DEMETERJ) -verbose parsegen $(SUBDIRS): @if [ ! -d $@ ] ; then \ $(MKDIR) $@; \ for i in ../$@/* ; do ln -s ../$$i $@; done; \ $(RM) $@/$(GENDIR); \ fi (cd $@; $(MAKE) DEMETERJ="DEMETERJ_CLASSES=../../../classes ../../../../bin/demeterj") $(PRJFILE) $(CDFILE) $(BEHFILES) $(LIBSRC): ln -s ../$@ $(LIBCLASSES): $(LIB_PACKAGE_DIR)/%.class: %.java @$(MKDIR) -p $(CLASSDIR) $(JAVAC) $< test: all $(RM) ../$(GENDIR)/*~ ./$(GENDIR)/*~ diff ../$(GENDIR) $(GENDIR) for i in $(SUBDIRS) ; do diff ../$$i/$(GENDIR) $$i/$(GENDIR); done tao-test: all cd selftest; $(MAKE) test clean: $(DEMETERJ) clean $(RM) *~ core $(PRJFILE) $(CDFILE) $(BEHFILES) $(LIBSRC) cd selftest; $(MAKE) clean for i in $(SUBDIRS) ; do $(RM) -r $$i; done new: clean all .PHONY: all $(SUBDIRS) $(TESTS) clean new