Commit | Line | Data |
---|---|---|
b1b2de81 C |
1 | ############################################################################## |
2 | # Variables | |
3 | ############################################################################## | |
4 | ||
5 | SRC= \ | |
6 | type.ml \ | |
7 | parser.ml \ | |
8 | lexer.ml \ | |
9 | pre_sexp.ml \ | |
10 | sexp_intf.ml \ | |
11 | sexp.ml \ | |
12 | path.ml \ | |
13 | conv.ml \ | |
14 | conv_error.ml | |
15 | #SOURCES = \ | |
16 | # parser.mly \ | |
17 | # lexer.mll \ | |
90aeb998 | 18 | # sexp.mli path.mli conv.mli |
b1b2de81 C |
19 | |
20 | ||
90aeb998 | 21 | TARGET=sexplib |
b1b2de81 | 22 | TARGETPACK=sexplib |
90aeb998 | 23 | LIB_PACK_NAME = Sexplib |
b1b2de81 C |
24 | |
25 | ############################################################################## | |
26 | # Generic variables | |
27 | ############################################################################## | |
28 | ||
29 | INCLUDES= | |
30 | #-I +camlp4 | |
31 | SYSLIBS= str.cma unix.cma bigarray.cma num.cma | |
32 | #INCDIRS = +camlp4 | |
33 | #pad: take care for bigarray otherwise get some caml_ba_get_1 error msg | |
34 | ||
35 | ############################################################################## | |
36 | #OCAMLFLAGS = -for-pack Sexplib | |
37 | ||
38 | #PACKS = type-conv | |
39 | #RESULT = sexplib | |
40 | ||
41 | #TRASH = pa_sexp_conv.cmi pa_sexp_conv.cmo pa_sexp_conv.annot | |
42 | ||
43 | #all: \ | |
44 | # pack-byte-code pack-native-code \ | |
45 | # sexplib.cma sexplib.cmxa \ | |
46 | # pa_sexp_conv.cmi pa_sexp_conv.cmo | |
47 | # | |
48 | #LIBINSTALL_FILES = \ | |
49 | # sexp.mli path.mli conv.mli \ | |
50 | # sexplib.cmi sexplib.cma sexplib.cmxa sexplib.a \ | |
51 | # pa_sexp_conv.cmi pa_sexp_conv.cmo | |
52 | # | |
53 | #install: libinstall | |
54 | #uninstall: libuninstall | |
55 | # | |
56 | #clean:: clean-doc | |
57 | # | |
58 | #-include $(OCAMLMAKEFILE) | |
59 | ||
60 | ############################################################################## | |
61 | ||
62 | ############################################################################## | |
63 | # Generic variables | |
64 | ############################################################################## | |
65 | ||
66 | #dont use -custom, it makes the bytecode unportable. | |
708f4980 | 67 | OCAMLCFLAGS ?= -g -dtypes # -w A |
b1b2de81 C |
68 | #-for-pack Sexplib |
69 | ||
70 | # This flag is also used in subdirectories so don't change its name here. | |
71 | OPTFLAGS= | |
72 | ||
73 | ||
74 | OCAMLC=ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES) $(SYSINCLUDES) -thread | |
75 | OCAMLOPT=ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES) $(SYSINCLUDES) -thread | |
76 | OCAMLLEX=ocamllex #-ml # -ml for debugging lexer, but slightly slower | |
77 | OCAMLYACC=ocamlyacc -v | |
78 | OCAMLDEP=ocamldep $(INCLUDES) | |
79 | OCAMLMKTOP=ocamlmktop -g -custom $(INCLUDES) -thread | |
80 | ||
81 | #-ccopt -static | |
82 | STATIC= | |
83 | ||
84 | ||
85 | ############################################################################## | |
86 | # Top rules | |
87 | ############################################################################## | |
88 | ||
89 | OBJS = $(SRC:.ml=.cmo) | |
90 | OPTOBJS = $(SRC:.ml=.cmx) | |
91 | ||
92 | all: $(TARGET).cma $(TARGETPACK).cmo | |
90aeb998 | 93 | all.opt: $(TARGET).cmxa $(TARGETPACK).cmx |
b1b2de81 C |
94 | |
95 | $(TARGET).cma: $(OBJS) | |
90aeb998 | 96 | $(OCAMLC) -a -o $@ $(OBJS) |
b1b2de81 C |
97 | |
98 | $(TARGET).cmxa: $(OPTOBJS) $(LIBS:.cma=.cmxa) | |
90aeb998 | 99 | $(OCAMLOPT) -a -o $@ $(OPTOBJS) |
b1b2de81 C |
100 | |
101 | $(TARGET).top: $(OBJS) $(LIBS) | |
102 | $(OCAMLMKTOP) -o $(TARGET).top $(SYSLIBS) $(LIBS) $(OBJS) | |
103 | ||
104 | clean:: | |
105 | rm -f $(TARGET).top | |
106 | ||
b1b2de81 | 107 | $(TARGETPACK).cmo: $(OBJS) |
90aeb998 C |
108 | $(OCAMLC) -pack -o $@ $(OBJS) |
109 | ||
110 | $(TARGETPACK).cmx: $(OPTOBJS) | |
111 | $(OCAMLOPT) -pack -o $@ $(OPTOBJS) | |
b1b2de81 C |
112 | |
113 | # special handling, fun that they use cpp whereas they claim camplp4 can do everything | |
114 | pre_sexp.cmo: pre_sexp.ml | |
708f4980 | 115 | $(OCAMLC) -pp "cpp -w" -c $< |
b1b2de81 C |
116 | |
117 | pre_sexp.cmx: pre_sexp.ml | |
90aeb998 | 118 | $(OCAMLOPT) -for-pack $(LIB_PACK_NAME) -pp "cpp -w" -c $< |
b1b2de81 C |
119 | |
120 | ||
121 | ||
122 | lexer.ml: lexer.mll | |
123 | $(OCAMLLEX) $< | |
124 | clean:: | |
125 | rm -f lexer.ml | |
126 | beforedepend:: lexer.ml | |
127 | ||
128 | ||
129 | parser.ml parser.mli: parser.mly | |
130 | $(OCAMLYACC) $< | |
131 | clean:: | |
132 | rm -f parser.ml parser.mli parser.output | |
133 | beforedepend:: parser.ml parser.mli | |
134 | ||
135 | ||
136 | ||
137 | ############################################################################## | |
138 | # Generic rules | |
139 | ############################################################################## | |
140 | ||
141 | .SUFFIXES: .ml .mli .cmo .cmi .cmx | |
142 | ||
143 | .ml.cmo: | |
144 | $(OCAMLC) -c $< | |
145 | .mli.cmi: | |
146 | $(OCAMLC) -c $< | |
90aeb998 | 147 | |
b1b2de81 | 148 | .ml.cmx: |
90aeb998 | 149 | $(OCAMLOPT) -for-pack $(LIB_PACK_NAME) -c $< |
b1b2de81 | 150 | |
90aeb998 | 151 | .ml.mldepend: |
b1b2de81 C |
152 | $(OCAMLC) -i $< |
153 | ||
154 | clean:: | |
155 | rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot | |
156 | clean:: | |
157 | rm -f *~ .*~ gmon.out #*# | |
158 | ||
159 | beforedepend:: | |
160 | ||
161 | # need also -pp cpp here | |
162 | depend:: beforedepend | |
708f4980 | 163 | $(OCAMLDEP) -pp "cpp -w" *.mli *.ml > .depend |
b1b2de81 C |
164 | |
165 | distclean: clean | |
166 | rm -f .depend | |
167 | ||
168 | -include .depend |