################################################ # NB: This Makefile is designed to be called # # from the main PRISM Makefile. It won't # # work on its own because it needs # # various options to be passed in # ################################################ # Reminder: $@ = target, $* = target without extension, $< = dependency THIS_DIR = pta PRISM_DIR_REL = ../.. JAVA_FILES_ALL = $(wildcard *.java parser/*.java) JAVA_FILES = $(patsubst %package-info.java,,$(JAVA_FILES_ALL)) CLASS_FILES = $(JAVA_FILES:%.java=$(PRISM_DIR_REL)/$(CLASSES_DIR)/$(THIS_DIR)/%.class) PRISM_CLASSPATH = "$(THIS_DIR)/$(PRISM_DIR_REL)/$(CLASSES_DIR)$(CLASSPATHSEP)$(THIS_DIR)/$(PRISM_DIR_REL)/lib/*" default: all all: checks parser/PTAParser.java $(CLASS_FILES) # Try and prevent accidental makes (i.e. called manually, not from top-level Makefile) checks: @if [ "$(SRC_DIR)" = "" ]; then \ (echo "Error: This Makefile is designed to be called from the main PRISM Makefile"; exit 1) \ fi; parser/PTAParser.java: parser/PTAParser.jj @(cd parser; $(JAVACC) PTAParser.jj || echo "Warning: Did not recompile $<") $(PRISM_DIR_REL)/$(CLASSES_DIR)/$(THIS_DIR)/%.class: %.java (cd ..; $(JAVAC) -sourcepath $(THIS_DIR)/$(PRISM_DIR_REL)/$(SRC_DIR) -classpath $(PRISM_CLASSPATH) -d $(THIS_DIR)/$(PRISM_DIR_REL)/$(CLASSES_DIR) $(THIS_DIR)/$<) clean: checks @rm -f $(CLASS_FILES) celan: clean #################################################