1 ##############################################################################
3 ##############################################################################
18 # sexp.mli path.mli conv.mli
23 #LIB_PACK_NAME = sexplib
25 ##############################################################################
27 ##############################################################################
31 SYSLIBS
= str.cma unix.cma bigarray.cma num.cma
33 #pad: take care for bigarray otherwise get some caml_ba_get_1 error msg
35 ##############################################################################
36 #OCAMLFLAGS = -for-pack Sexplib
41 #TRASH = pa_sexp_conv.cmi pa_sexp_conv.cmo pa_sexp_conv.annot
44 # pack-byte-code pack-native-code \
45 # sexplib.cma sexplib.cmxa \
46 # pa_sexp_conv.cmi pa_sexp_conv.cmo
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
54 #uninstall: libuninstall
58 #-include $(OCAMLMAKEFILE)
60 ##############################################################################
62 ##############################################################################
64 ##############################################################################
66 #dont use -custom, it makes the bytecode unportable.
67 OCAMLCFLAGS
= -g
-dtypes
# -w A
70 # This flag is also used in subdirectories so don't change its name here.
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
85 ##############################################################################
87 ##############################################################################
89 OBJS
= $(SRC
:.ml
=.cmo
)
90 OPTOBJS
= $(SRC
:.ml
=.cmx
)
92 all: $(TARGET
).cma
$(TARGETPACK
).cmo
93 all.opt
: $(TARGET
).cmxa
95 $(TARGET
).cma
: $(OBJS
)
96 $(OCAMLC
) -a
-o
$(TARGET
).cma
$(OBJS
)
98 $(TARGET
).cmxa
: $(OPTOBJS
) $(LIBS
:.cma
=.cmxa
)
99 $(OCAMLOPT
) -a
-o
$(TARGET
).cmxa
$(OPTOBJS
)
101 $(TARGET
).top
: $(OBJS
) $(LIBS
)
102 $(OCAMLMKTOP
) -o
$(TARGET
).top
$(SYSLIBS
) $(LIBS
) $(OBJS
)
109 $(TARGETPACK
).cmo
: $(OBJS
)
110 $(OCAMLC
) -pack
-o
$(TARGETPACK
).cmo
$(OBJS
)
112 # special handling, fun that they use cpp whereas they claim camplp4 can do everything
113 pre_sexp.cmo
: pre_sexp.ml
114 $(OCAMLC
) -pp
cpp -c
$<
116 pre_sexp.cmx
: pre_sexp.ml
117 $(OCAMLOPT
) -pp
cpp -c
$<
125 beforedepend
:: lexer.ml
128 parser.ml parser.mli
: parser.mly
131 rm -f parser.ml parser.mli parser.output
132 beforedepend
:: parser.ml parser.mli
136 ##############################################################################
138 ##############################################################################
140 .SUFFIXES
: .ml .mli .cmo .cmi .cmx
153 rm -f
*.cm
[ioxa
] *.o
*.a
*.cmxa
*.annot
155 rm -f
*~ .
*~ gmon.out
#*#
159 # need also -pp cpp here
160 depend
:: beforedepend
161 $(OCAMLDEP
) -pp
cpp *.mli
*.ml
> .depend