#
# This file is part of Cafesterol.
# Copyright (C) 2007-2010 Xavier Clerc.
#
# Cafesterol is free software; you can redistribute it and/or modify
# it under the terms of the Q Public License v1.0 as published by
# Trolltech (with a change to choice of law).
#
# Cafesterol is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# Q Public License for more details.
#
# You should have received a copy of the Q Public License
# along with this program.  If not, see
# <http://qt.nokia.com/doc/4.0/qpl.html>.
#

include ../config/Makefile

EXECUTABLES=ocamlbuild.byte ocamlbuild.native ocamlbuild-standalone.jar
LIBRARIES=ocamlbuild_plugin.cmi ocamlbuildlib.cma ocamlbuildlib.cmxa ocamlbuildlib.cmja
BUILDDIR=_build

prepare:
	patch -b -f -p1 < ocamlbuild-patch
	rm -fr _build
	cp ../myocamlbuild_config.ml ocamlbuild_Myocamlbuild_config.ml
	../_build/ocamlbuild/ocamlbuild.byte ocamlbuild.byte
	cp _build/ocamlbuild.byte ocamlbuild.tmp
	rm -fr _build
	cp _tags tags
	echo '<*.cmj>: for-pack(Ocamlbuild_pack)' >> _tags
	echo '<{ocamlbuild_{pack,plugin},my_unix_with_unix,ppcache,executor}{,.p}.cmj>: -for-pack(Ocamlbuild_pack)' >> _tags
	echo '<*-standalone.jar>: use_unix' >> _tags
	echo '<*.cmj*> or <*.jar>: java-package(ocaml.tools.ocamlbuild)' >> _tags

compile:
	rm -fr _build
	./ocamlbuild.tmp $(EXECUTABLES) $(LIBRARIES)

restore:
	for f in *.orig; do mv -f $$f `basename $$f .orig`; done
	rm -f _tags
	mv tags _tags

clean:
	rm -fr _build

install:: install-original
	install $(BUILDDIR)/ocamlbuild-standalone.jar \
		$(INSTALL_BIN)
	install -m 644 \
	        $(BUILDDIR)/ocamlbuildlib.cmja \
	        $(BUILDDIR)/ocamlbuildlib.jar \
	        $(BUILDDIR)/ocamlbuild_unix_plugin.cmj \
	        $(BUILDDIR)/ocamlbuild_unix_plugin.jo \
	        $(BUILDDIR)/ocamlbuild_executor.cmj \
	        $(BUILDDIR)/ocamlbuild_executor.jo \
	        $(BUILDDIR)/ocamlbuild_pack.cmj \
	        $(BUILDDIR)/ocamlbuild_pack.jo \
	        $(BUILDDIR)/ocamlbuild.cmj \
	        $(BUILDDIR)/ocamlbuild.jo \
	        $(INSTALL_LIB)

install-original::
	mkdir -p $(INSTALL_BIN)
	mkdir -p $(INSTALL_LIB)
	install $(BUILDDIR)/ocamlbuild.byte \
		$(BUILDDIR)/ocamlbuild.native \
		$(INSTALL_BIN)
	install $(BUILDDIR)/ocamlbuild.native $(INSTALL_BIN)/ocamlbuild
	install -m 644 \
	        $(BUILDDIR)/ocamlbuildlib.cmxa \
	        $(BUILDDIR)/ocamlbuildlib.a \
	        $(BUILDDIR)/ocamlbuildlib.cma \
	        $(BUILDDIR)/ocamlbuild_unix_plugin.cmx \
	        $(BUILDDIR)/ocamlbuild_unix_plugin.o \
	        $(BUILDDIR)/ocamlbuild_unix_plugin.cmo \
	        $(BUILDDIR)/ocamlbuild_unix_plugin.cmi \
	        $(BUILDDIR)/ocamlbuild_executor.cmi \
	        $(BUILDDIR)/ocamlbuild_executor.cmo \
	        $(BUILDDIR)/ocamlbuild_executor.cmx \
	        $(BUILDDIR)/ocamlbuild_executor.o \
	        $(BUILDDIR)/ocamlbuild_pack.cmi \
	        $(BUILDDIR)/ocamlbuild_pack.cmo \
	        $(BUILDDIR)/ocamlbuild_pack.cmx \
	        $(BUILDDIR)/ocamlbuild_pack.o \
	        $(BUILDDIR)/ocamlbuild.cmi \
	        $(BUILDDIR)/ocamlbuild_plugin.cmi \
	        $(BUILDDIR)/ocamlbuild.cmx \
	        $(BUILDDIR)/ocamlbuild.o \
	        $(BUILDDIR)/ocamlbuild.cmo \
	        $(INSTALL_LIB)
	ranlib $(INSTALL_LIB)/ocamlbuildlib.a
