1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
# Use GNU Make !
RANLIB= ranlib
OCAML_LIBDIR:= $(shell ocamlc -where)
GMP_INCLUDES= -I/opt/gmp/include -I/users/absint2/local/include -I$(HOME)/packages/gmp/include
GMP_LIBDIR=/opt/gmp/lib
DESTDIR= $(OCAML_LIBDIR)/gmp
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 -O3
#CFLAGS_MISC=
CFLAGS_INCLUDE= -I $(OCAML_LIBDIR) $(GMP_INCLUDES)
CFLAGS= $(CFLAGS_MISC) $(CFLAGS_INCLUDE)
OCAMLC= ocamlc -g
OCAMLOPT= ocamlopt
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)
LIBS= libmlgmp.a gmp.a gmp.cma gmp.cmxa gmp.cmi
PROGRAMS= test_creal test_creal.opt essai essai.opt toplevel\
test_suite test_suite.opt
TESTS= test_suite test_suite.opt
all: $(LIBS) tests
install: all
-mkdir $(DESTDIR)
cp $(LIBS) gmp.mli $(DESTDIR)
tests: $(LIBS) $(TESTS)
./test_suite
./test_suite.opt
%.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
libmlgmp.a: $(CMODULES_O)
$(AR) -rc $@ $+
$(RANLIB) $@
gmp.cma: gmp.cmo libmlgmp.a
$(OCAMLC) $(OCAMLFLAGS) -a gmp.cmo -cclib -lmlgmp $(LIBFLAGS) -o $@
gmp.a gmp.cmxa: gmp.cmx libmlgmp.a
$(OCAMLOPT) $(OCAMLFLAGS) -a gmp.cmx -cclib -lmlgmp $(LIBFLAGS) -o $@
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) -custom $+ -o $@
test_creal.opt: gmp.cmxa creal.cmx test_creal.cmx
$(OCAMLOPT) $+ -o $@
test_suite: gmp.cma test_suite.cmo
$(OCAMLC) -custom $+ -o $@
test_suite.opt: gmp.cmxa test_suite.cmx
$(OCAMLOPT) $+ -o $@
clean:
rm -f *.o *.cm* $(PROGRAMS) *.a
depend:
ocamldep *.ml *.mli > depend
.PHONY: clean
include depend
|