--include ../Makefile.config
-
-PROGS=spp gitgrep split_patch extract_c_and_res #generate_dependencies
+# Copyright 2012, INRIA
+# Julia Lawall, Gilles Muller
+# Copyright 2010-2011, INRIA, University of Copenhagen
+# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
+# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
+# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
+# This file is part of Coccinelle.
+#
+# Coccinelle is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, according to version 2 of the License.
+#
+# Coccinelle 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
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Coccinelle. If not, see <http://www.gnu.org/licenses/>.
+#
+# The authors reserve the right to distribute this or future versions of
+# Coccinelle under other licenses.
+
+
+ifneq ($(MAKECMDGOALS),distclean)
+include ../Makefile.config
+endif
+
+OCAMLCFLAGS ?= -g -dtypes
+OPTFLAGS ?= -g -dtypes
+
+PROGS=spp gitgrep splitpatch extract_c_and_res #generate_dependencies
all: $(SUBDIRS) $(PROGS)
-# for recursive make
-all.opt: $(PROGS)
+all.opt:
+ @$(MAKE) $(PROGS) BUILD_OPT=yes
gitgrep: gitgrep.ml
- ocamlopt -o gitgrep str.cmxa gitgrep.ml
+ $(OCAMLOPT) -o gitgrep str.cmxa gitgrep.ml
gitsort: gitsort.ml
- ocamlopt -o gitsort str.cmxa gitsort.ml
+ $(OCAMLOPT) -o gitsort str.cmxa gitsort.ml
isoprof: process_isoprofile.ml
- ocamlc -g -o isoprof str.cma process_isoprofile.ml
+ $(OCAMLC) -g -o isoprof str.cma process_isoprofile.ml
alloc_free: alloc_free.ml
- ocamlopt -o alloc_free str.cmxa alloc_free.ml
+ $(OCAMLOPT) -o alloc_free str.cmxa alloc_free.ml
# more flexible version of alloc_free
bridge: bridge.ml
- ocamlopt -o bridge str.cmxa bridge.ml
+ $(OCAMLOPT) -o bridge str.cmxa dumper.mli dumper.ml bridge.ml
install_bridge: bridge
cp -f bridge /usr/local/bin
LIBS=../commons/commons.cma ../globals/globals.cma \
../parsing_c/parsing_c.cma ../extra/extra.cma
-OCAMLC=ocamlc$(OPTBIN) -g -dtypes $(INCLUDE)
-OCAMLOPT=ocamlopt$(OPTBIN) $(INCLUDE) $(OPTFLAGS)
-#OCAMLLEX=ocamllex$(OPTBIN) -ml
-OCAMLLEX=ocamllex$(OPTBIN)
-OCAMLYACC=ocamlyacc -v
-OCAMLDEP=ocamldep$(OPTBIN) $(INCLUDE)
-OCAMLMKTOP=ocamlmktop -g -custom $(INCLUDE)
+OCAMLC_CMD=$(OCAMLC) -thread $(OCAMLCFLAGS) $(INCLUDE)
+OCAMLOPT_CMD=$(OCAMLOPT) -thread $(OPTFLAGS) $(INCLUDE)
+OCAMLDEP_CMD=$(OCAMLDEP) $(INCLUDE)
+OCAMLMKTOP_CMD=$(OCAMLMKTOP) -g -custom $(INCLUDE)
+OCAMLYACC_CMD=$(OCAMLYACC) -v
spp: spp.ml
- $(OCAMLC) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+
-# ocamlc -I ../commons/ -o spp str.cma unix.cma bigarray.cma ../commons/common.cmo spp.ml
+ $(OCAMLC_CMD) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+
-split_patch: split_patch.cmo
- $(OCAMLC) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+
+splitpatch: splitpatch.cmo
+ $(OCAMLC_CMD) -o $@ $(SYSLIBS) $(INCLUDE) $+
extract_c_and_res: extract_c_and_res.cmo
- $(OCAMLC) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+
+ $(OCAMLC_CMD) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+
generate_dependencies: generate_dependencies.cmo
- $(OCAMLC) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+
+ $(OCAMLC_CMD) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+
.SUFFIXES: .ml .mli .cmo .cmi .cmx
.ml.cmo:
- $(OCAMLC) -c $<
+ $(OCAMLC_CMD) -c $<
.mli.cmi:
- $(OCAMLC) -c $<
+ $(OCAMLC_CMD) -c $<
.ml.cmx:
- $(OCAMLOPT) -c $<
+ $(OCAMLOPT_CMD) -c $<
clean:
rm -f $(PROGS)
rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot
+ rm -f .depend
-beforedepend::
+distclean: clean
-depend:: beforedepend
- ocamldep $(INCLUDE) *.mli *.ml > .depend
-
-distclean::
- rm -f .depend
+.PHONEY: depend
+.depend depend: beforedepend
+ ocamldep $(INCLUDE) *.mli *.ml > .depend
+ifneq ($(MAKECMDGOALS),clean)
+ifneq ($(MAKECMDGOALS),distclean)
-include .depend
+endif
+endif
+
+include ../Makefile.common