# 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 . # # The authors reserve the right to distribute this or future versions of # Coccinelle under other licenses. ifneq ($(MAKECMDGOALS),distclean) include ../Makefile.config endif PROGS=spp gitgrep splitpatch extract_c_and_res #generate_dependencies all: $(SUBDIRS) $(PROGS) # for recursive make all.opt: $(PROGS) gitgrep: gitgrep.ml $(OCAMLOPT) -o gitgrep str.cmxa gitgrep.ml gitsort: gitsort.ml $(OCAMLOPT) -o gitsort str.cmxa gitsort.ml isoprof: 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 # more flexible version of alloc_free bridge: bridge.ml $(OCAMLOPT) -o bridge str.cmxa dumper.mli dumper.ml bridge.ml install_bridge: bridge cp -f bridge /usr/local/bin .PHONY: $(SUBDIRS) SYSLIBS = str.cma unix.cma bigarray.cma INCLUDE=-I ../commons -I ../extra -I ../parsing_c LIBS=../commons/commons.cma ../globals/globals.cma \ ../parsing_c/parsing_c.cma ../extra/extra.cma OCAMLC_CMD=$(OCAMLC) -g -dtypes $(INCLUDE) OCAMLOPT_CMD=$(OCAMLOPT) $(OPTFLAGS) $(INCLUDE) OCAMLDEP_CMD=$(OCAMLDEP) $(INCLUDE) OCAMLMKTOP_CMD=$(OCAMLMKTOP) -g -custom $(INCLUDE) OCAMLYACC_CMD=$(OCAMLYACC) -v spp: spp.ml $(OCAMLC_CMD) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+ splitpatch: splitpatch.cmo $(OCAMLC_CMD) -o $@ $(SYSLIBS) $(INCLUDE) $+ extract_c_and_res: extract_c_and_res.cmo $(OCAMLC_CMD) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+ generate_dependencies: generate_dependencies.cmo $(OCAMLC_CMD) -o $@ $(SYSLIBS) $(INCLUDE) $(LIBS) $+ .SUFFIXES: .ml .mli .cmo .cmi .cmx .ml.cmo: $(OCAMLC_CMD) -c $< .mli.cmi: $(OCAMLC_CMD) -c $< .ml.cmx: $(OCAMLOPT_CMD) -c $< clean: rm -f $(PROGS) rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot rm -f .depend distclean: clean .PHONEY: depend .depend depend: beforedepend ocamldep $(INCLUDE) *.mli *.ml > .depend ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),distclean) -include .depend endif endif