#
# 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)