# Use GNU Make ! RANLIB= ranlib OCAML_LIBDIR:= $(shell ocamlc -where) GMP_INCLUDES= GMP_LIBDIR= PREFIX= $(OCAML_LIBDIR) PKGDIR= $(PREFIX)/gmp/ STUBDIR= $(PREFIX)/stublibs/ #RLIBFLAGS= -cclib "-Wl,-rpath $(GMP_LIBDIR)" # Linux, FreeBSD #RLIBFLAGS= -cclib "-Wl,-R $(GMP_LIBDIR)" # Solaris # RLIBFLAGS= # MacOS X LIBFLAGS= -cclib -L. -cclib -L$(GMP_LIBDIR) $(RLIBFLAGS) \ -cclib -lmpfr -cclib -lgmp -cclib -L$(DESTDIR) CC= gcc CFLAGS_MISC= -Wall -Wno-unused -g -O2 -fPIC #CFLAGS_MISC= CFLAGS_INCLUDE= -I $(OCAML_LIBDIR) $(GMP_INCLUDES) CFLAGS= $(CFLAGS_MISC) $(CFLAGS_INCLUDE) OCAMLC= ocamlc -g OCAMLOPT= ocamlopt OCAMLMKLIB= ocamlmklib OCAMLFLAGS= CMODULES= mlgmp_z.c mlgmp_q.c mlgmp_f.c mlgmp_fr.c mlgmp_random.c mlgmp_misc.c CMODULES_O= $(CMODULES:%.c=%.o) PROGRAMS= test_creal test_creal.opt essai essai.opt toplevel\ test_suite test_suite.opt C_STATIC = libgmpstub.a C_SHARED = dllgmpstub.so HAS_OPT= BYTE_LIBS= gmp.cma gmp.cmi BYTE_TESTS= test_suite ifdef HAS_OPT OPT_LIBS= gmp.cmxa OPT_CMX= gmp.cmx OPT_TESTS= test_suite.opt else OPT_LIBS= OPT_CMX= OPT_TESTS= endif LIBS = $(C_SHARED) $(BYTE_LIBS) $(OPT_LIBS) all: $(LIBS) tests install: all install -d $(DESTDIR)$(PKGDIR) install -m 0644 -c $(BYTE_LIBS) $(OPT_LIBS) *.a gmp.mli $(DESTDIR)$(PKGDIR) install -d $(STUBDIR) install -m 0644 -c $(C_SHARED) $(STUBDIR) tests: $(LIBS) $(BYTE_TESTS) $(OPT_TESTS) ./test_suite if [ -e ./test_suite.opt ]; then ./test_suite.opt; fi %.i: %.c $(CC) $(CFLAGS) -E $*.c > $*.i %.cmo: %.ml %.cmi $(OCAMLC) $(OCAMLFLAGS) -c $*.ml %.cmx: %.ml %.cmi $(OCAMLOPT) $(OCAMLFLAGS) -c $*.ml %.cmo: %.ml $(OCAMLC) $(OCAMLFLAGS) -c $*.ml %.cmx: %.ml $(OCAMLOPT) $(OCAMLFLAGS) -c $*.ml %.cmi: %.mli $(OCAMLC) $(OCAMLFLAGS) -c $*.mli $(CMODULES_O): conversions.c config.h dllgmpstub.so libgmpstub.a gmp.cma gmp.cmxa: gmp.cmo $(OPT_CMX) $(CMODULES_O) $(OCAMLMKLIB) $(OCAMLFLAGS) -o gmp -oc gmpstub gmp.cmo \ $(OPT_CMX) $(CMODULES_O) -lgmp pretty_gmp.cmo: pretty_gmp.cmi gmp.cmo toplevel: gmp.cma creal.cmo pretty_gmp.cmo install_pp.cmo creal_pp.cmo install_creal_pp.cmo ocamlmktop -custom $+ -o $@ essai: gmp.cma essai.cmo $(OCAMLC) -custom $+ -o $@ essai.opt: gmp.cmxa essai.cmx $(OCAMLOPT) $+ -o $@ test_creal: gmp.cma creal.cmo test_creal.cmo $(OCAMLC) $+ -o $@ test_creal.opt: gmp.cmxa creal.cmx test_creal.cmx $(OCAMLOPT) $+ -o $@ test_suite: gmp.cma test_suite.cmo $(OCAMLC) -custom $+ -o $@ -cclib -L. test_suite.opt: gmp.cmxa test_suite.cmx $(OCAMLOPT) $+ -o $@ -cclib -L. clean: -rm -f *.o *.cm* $(PROGRAMS) *.a *.so depend: ocamldep *.ml *.mli > depend .PHONY: clean -include depend