# wrappi # Copyright (C) 2011-2012 Red Hat Inc. # # This program 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; either version 2 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. OCAMLPACKAGES = -package unix,camlp4.lib OCAMLCFLAGS = \ -g -warn-error CDEFLMPSUVYZX \ $(OCAMLPACKAGES) OCAMLOPTFLAGS = $(OCAMLCFLAGS) # In alphabetical order. SOURCES = \ config.ml \ wrappi_accumulator.mli \ wrappi_accumulator.ml \ wrappi_boilerplate.mli \ wrappi_boilerplate.ml \ wrappi_c_impl.mli \ wrappi_c_impl.ml \ wrappi_c_xdr.mli \ wrappi_c_xdr.ml \ wrappi_c.mli \ wrappi_c.ml \ wrappi_enums.mli \ wrappi_enums.ml \ wrappi_main.ml \ wrappi_pr.mli \ wrappi_pr.ml \ wrappi_structs.mli \ wrappi_structs.ml \ wrappi_types.mli \ wrappi_types.ml \ wrappi_utils.mli \ wrappi_utils.ml # The difference between LIB_OBJECTS and OBJECTS is just that # functions and types in LIB_OBJECTS can be used in pa_wrap and in the # code generated from the API objects (../APIs/*.api). LIB_OBJECTS # are built into generator_lib.cma which is linked to pa_wrap, and to # the APIs, and into the generator. # # In dependency order. LIB_OBJECTS = \ config.cmo \ wrappi_utils.cmo \ wrappi_types.cmo \ wrappi_accumulator.cmo OBJECTS = \ wrappi_pr.cmo \ wrappi_boilerplate.cmo \ wrappi_enums.cmo \ wrappi_structs.cmo \ wrappi_c_impl.cmo \ wrappi_c_xdr.cmo \ wrappi_c.cmo \ wrappi_main.cmo noinst_SCRIPTS = generator_lib.cma pa_wrap.cmo generator generator_lib.cma: $(LIB_OBJECTS) $(OCAMLFIND) ocamlc -a $^ -o $@ pa_wrap.cmo: pa_wrap.ml generator_lib.cma $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) \ -linkpkg generator_lib.cma \ -pp $(CAMLP4OF) \ -c $< -o $@ generator: generator_lib.cma $(OBJECTS) ../APIs/apis.cma $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) \ -linkpkg generator_lib.cma ../APIs/apis.cma $(OBJECTS) \ -o $@ ../APIs/apis.cma: generator_lib.cma pa_wrap.cmo $(MAKE) -C ../APIs apis.cma %.cmi: %.mli $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@ %.cmo: %.ml $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@ %.cmx: %.ml $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -c $< -o $@ # Run the generator. noinst_DATA = stamp-generator stamp-generator: generator cd $(top_srcdir) && generator/generator depend: .depend .depend: $(SOURCES) rm -f $@ $@-t $(OCAMLFIND) ocamldep $^ | \ $(SED) -e 's/ *$$//' | \ $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \ LANG=C sort > $@-t mv $@-t $@ include .depend CLEANFILES = *.cmi *.cmo *.cmx *.cma *.cmxa *~ generator SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly