Revision 6ee5d28a8988618b187e10ebbe680be736c694c4 authored by fclement on 21 September 2006, 15:57:14 UTC, committed by fclement on 21 September 2006, 15:57:14 UTC
1 parent 4442830
Raw File
makefile
#
# 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)
back to top