blob: d93bbd1dcab9f0e77ea068c8e174fed288f16d89 (
plain)
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# 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
|