X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/1059e1cc0c2ecfa237406949aa26155b6a5b9154..66f23d4fabf89ad09adbd4dfc15ac6b5b2b7da83:/interpreter/lib/src/libsndfile-ocaml/Makefile?ds=inline diff --git a/interpreter/lib/src/libsndfile-ocaml/Makefile b/interpreter/lib/src/libsndfile-ocaml/Makefile new file mode 100644 index 0000000..442bf57 --- /dev/null +++ b/interpreter/lib/src/libsndfile-ocaml/Makefile @@ -0,0 +1,70 @@ +LIBSNDFILEDIR = $(realpath ../../libsndfile/lib) + +CC = gcc +CFLAGS = -g -W -Wall -Werror -Wno-missing-field-initializers + +OCAMLC = ocamlc +OCAMLOPT = ocamlopt +OCAMLDEP = ocamldep +OCAMLDOC = ocamldoc + +SNDFILE_CFLAGS = $(shell pkg-config --cflags sndfile) +SNDFILE_LIBS = $(shell pkg-config --libs sndfile) + +OCAML_BINDIR = $(shell which ocaml) +OCAML_LIBDIR = $(subst bin,lib,$(OCAML_BINDIR)) +OCAML_CFLAGS = -I $(OCAML_LIBDIR) + +LIBSNDFILE = -ccopt -L$(LIBSNDFILEDIR) -cclib -lsndfile -cclib -lm + +all: sndfile.cma sndfile.cmxa + +sndfile.cma: sndfile.ml sndfile.cmi sndfile_stub.o + $(OCAMLC) -c sndfile.ml + $(OCAMLC) -a -o $@ -custom sndfile_stub.o sndfile.cmo $(LIBSNDFILE) + + +sndfile.cmxa: sndfile.ml sndfile.cmi sndfile_stub.o + $(OCAMLOPT) -c sndfile.ml + $(OCAMLOPT) -a -o $@ sndfile.cmx sndfile_stub.o $(LIBSNDFILE) + +Sndfile.html: sndfile.mli sndfile.cmi + $(OCAMLDOC) -stars -html -colorize-code $< + + +sndfile_stub.o: sndfile_stub.c + $(CC) $(CFLAGS) $(SNDFILE_CFLAGS) $(OCAML_CFLAGS) -c $< + +sndfile_stub.e: sndfile_stub.c + $(CC) $(CFLAGS) -E $(SNDFILE_CFLAGS) $(OCAML_CFLAGS) -c $< > $@ + +%.cmi: %.mli + $(OCAMLC) -c $< + + +depend: sndfile.ml sndfile.mli + $(OCAMLDEP) *.mli *.ml > .depend + +.depend: sndfile.ml sndfile.mli + $(OCAMLDEP) *.mli *.ml > .depend + +include .depend + +######################################################################## + +test_sndfile: sndfile.cma test_sndfile.ml + $(OCAMLC) -o $@ sndfile.cma test_sndfile.ml + +test_sndfile.opt: sndfile.cmxa test_sndfile.ml + $(OCAMLOPT) -o $@ sndfile.cmxa test_sndfile.ml + +check : test_sndfile test_sndfile.opt + ./test_sndfile + ./test_sndfile.opt + +######################################################################## + +clean: + rm -f *~ .*~ *.o *.cm[aiox] *.cmxa *.a *.so test_sndfile test_sndfile.opt + @ find . -type f -perm +u=x -exec rm -f {} \; + @ rm -f *.html *.css