# # Modify the following variable according to the installation # directory you choose # PREFIX = /usr/local #PREFIX = $(COMMON) ### # You should not have to modify anything below this line! ### PACKAGE = ocamlp3l VERSION = 2.02 INSTALLDIR = $(PREFIX)/$(PACKAGE) LIBDIR=$(INSTALLDIR)/lib BINDIR=$(INSTALLDIR)/bin INSTALLBINDIR = $(PREFIX)/bin # # Top level makefile to build and install everything for OcamlP3L # OCAMLC=ocamlc -warn-error A -g OCAMLOPT=ocamlopt -warn-error A -inline 10000 -noassert MKFILES=Makefile SOURCE=$(notdir $(wildcard Source/*.ml Source/*.ml?)) MODELS=thread process MODELPREFIX=v MODELDIRS=$(MODELS:%=$(MODELPREFIX)%) MODELMKFILES=$(foreach modeldir, $(MODELDIRS), $(addprefix $(modeldir)/, $(MKFILES))) MODELSOURCE=$(foreach modeldir, $(MODELDIRS), $(addprefix $(modeldir)/, $(SOURCE))) TOOLDIR=Tools define insidemake for i in $(MODELS); do \ (mkdir -p $(MODELPREFIX)$$i; cd $(MODELPREFIX)$$i; \ ${MAKE} $@ LIBDIR=$(LIBDIR)/$(MODELPREFIX)$$i MODEL=$$i "OCAMLC=$(OCAMLC)" "OCAMLOPT=$(OCAMLOPT)"); \ done cd $(TOOLDIR); $(MAKE) $@ "BINDIR=$(BINDIR)" "OCAMLC=$(OCAMLC)" "OCAMLOPT=$(OCAMLOPT)" endef .PHONY: configure all install installopt installbin clean makefiles depend all depend: makefiles $(insidemake) configure: makefiles for i in $(MODELS); do \ touch $(MODELPREFIX)$$i/.depend; \ sleep 1; \ touch $(MODELPREFIX)$$i/.depend-rebuild; \ done; \ $(MAKE) depend install: $(insidemake) installopt: $(insidemake) clean: $(insidemake) makefiles: $(MODELDIRS) $(MODELMKFILES) $(MODELSOURCE) $(MODELDIRS): mkdir $(MODELDIRS) $(MODELMKFILES): ln -fs ../Source/$(@F) $@ $(MODELSOURCE): ln -fs ../Source/$(@F) $@ uninstall: rm -rf $(LIBDIR) rm -f $(BINDIR)/$(PACKAGE)* rm -rf $(MODELDIRS)