# GNUmakefile for testing Demeter/Java. # $Id: GNUmakefile,v 1.45 2001/10/09 10:18:46 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 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 aplib dj weave generate ridler studio # Java compiler: #JAVAC = CLASSPATH=$(CLASSPATH) javac -J-mx32m -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 = PATH=/usr/java1.2/bin:$$PATH DEMETERJ_CLASSES=../../classes ../../bin/demeterj 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 compile # cd $(CLASSDIR); $(JAR) $(JARFILE) . # copy directory structure, with symlinks to the source files, then do # a make in that dir. $(SUBDIRS): @if [ ! -d $@ ] ; then \ cp -rs `pwd`/../$@ .; \ $(RM) -r $@/$(GENDIR) $@/compile; \ fi (cd $@; $(MAKE) DEMETERJ="DEMETERJ_CLASSES=`pwd`/../../../classes `pwd`/../../../bin/demeterj" ) $(SRC): $(PRJFILE) $(CDFILE) $(BEHFILES) $(LIBSRC): ln -s ../$@ $(LIBCLASSES): $(LIB_PACKAGE_DIR)/%.class: %.java @$(MKDIR) -p $(CLASSDIR) $(JAVAC) $< test tao-test: all cd selftest; $(MAKE) $@ clean: -cd selftest; $(MAKE) clean for i in $(SUBDIRS) ; do $(RM) -r $$i; done -$(DEMETERJ) clean $(RM) $(JARFILE) *~ core $(PRJFILE) $(CDFILE) $(BEHFILES) $(LIBSRC) new: clean all .PHONY: all $(SUBDIRS) $(TESTS) clean new