X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=ocaml%2FMakefile.am;fp=ocaml%2FMakefile.am;h=f7d26ced1e3c8c9fa519d50d69d6f843568bac55;hb=aa5d6c138b55e25994ac723e94f32b009366927c;hp=0000000000000000000000000000000000000000;hpb=ffd32d61d4fad969a6a0baec8c15774eac5ea2e2;p=hivex.git diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am new file mode 100644 index 0000000..f7d26ce --- /dev/null +++ b/ocaml/Makefile.am @@ -0,0 +1,97 @@ +# hivex OCaml bindings +# Copyright (C) 2009-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA. + +EXTRA_DIST = \ + .depend META.in \ + hivex.mli hivex.ml \ + hivex_c.c \ + t/*.ml + +CLEANFILES = *.cmi *.cmo *.cmx *.cma *.cmxa *.o *.a *.so +CLEANFILES += t/*.cmi t/*.cmo t/*.cmx t/*.o t/*.a t/*.so + +AM_CPPFLAGS = \ + -I$(top_builddir) -I$(OCAMLLIB) -I$(top_srcdir)/ocaml \ + -I$(top_srcdir)/lib \ + $(WARN_CFLAGS) $(WERROR_CFLAGS) + +if HAVE_OCAML + +noinst_DATA = mlhivex.cma mlhivex.cmxa META + +OBJS = hivex_c.o hivex.cmo +XOBJS = $(OBJS:.cmo=.cmx) + +mlhivex.cma: $(OBJS) + $(OCAMLMKLIB) -o mlhivex $^ -L$(top_builddir)/lib/.libs -lhivex + +mlhivex.cmxa: $(XOBJS) + $(OCAMLMKLIB) -o mlhivex $^ -L$(top_builddir)/lib/.libs -lhivex + +hivex_c.o: hivex_c.c + $(CC) $(AM_CPPFLAGS) $(CFLAGS) -fPIC -Wall -c $< + +TESTS_ENVIRONMENT = \ + LD_LIBRARY_PATH=$(top_builddir)/lib/.libs \ + $(VG) + +TESTS = t/hivex_005_load +noinst_DATA += $(TESTS) + +t/hivex_005_load: t/hivex_005_load.cmx mlhivex.cmxa + mkdir -p t + $(OCAMLFIND) ocamlopt -cclib -L$(top_builddir)/lib/.libs -I . -package unix -linkpkg mlhivex.cmxa $< -o $@ + +# Need to rebuild the tests from source if the main library has +# changed at all, otherwise we get inconsistent assumptions. +t/%.cmx: t/%.ml mlhivex.cmxa + $(OCAMLFIND) ocamlopt -package unix -linkpkg -c $< -o $@ + +.mli.cmi: + $(OCAMLFIND) ocamlc -package unix -c $< -o $@ +.ml.cmo: + $(OCAMLFIND) ocamlc -package unix -c $< -o $@ +.ml.cmx: + $(OCAMLFIND) ocamlopt -package unix -c $< -o $@ + +depend: .depend + +.depend: $(wildcard *.mli) $(wildcard *.ml) + rm -f $@ $@-t + $(OCAMLFIND) ocamldep $^ | sed 's/ *$$//' | sort > $@-t + mv $@-t $@ + +include .depend + +SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly + +# Do the installation by hand, because we want to run ocamlfind. +install-data-hook: + mkdir -p $(DESTDIR)$(OCAMLLIB) + mkdir -p $(DESTDIR)$(OCAMLLIB)/stublibs + $(OCAMLFIND) install \ + -ldconf ignore -destdir $(DESTDIR)$(OCAMLLIB) \ + hivex \ + META *.so *.a *.cma *.cmx *.cmxa *.cmi *.mli + +CLEANFILES += $(noinst_DATA) + +endif + +# Tell version 3.79 and up of GNU make to not build goals in this +# directory in parallel. (See RHBZ#502309). +.NOTPARALLEL: