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 124 125 126 127 128 129
|
# Various commands and dir
##########################
OCAMLBIN= @OCAMLBIN@
OCAMLC = @OCAMLC@
OCAMLOPT = @OCAMLOPT@
OCAMLDEP = @OCAMLDEP@
OCAMLLEX = @OCAMLLEX@
OCAMLYACC= @OCAMLYACC@
OCAMLLIB = @OCAMLLIB@
OCAMLBEST= @OCAMLBEST@
OCAMLVERSION = @OCAMLVERSION@
EXTRAC_CRC = $(OCAMLLIB)/extract_crc
OCAMLDOC= @OCAMLDOC@
prefix=@prefix@
exec_prefix=@exec_prefix@
datarootdir=@datarootdir@
BINDIR=@bindir@
MANDIR=@mandir@
# For installation
##############
MKDIR=mkdir -p
CP=cp -f
EXE=ocamldsort
EXE_OPT=$(EXE).opt
# Compilation flags
######################
INCLUDES=-I +camlp-streams -I +unix
COMPFLAGS=$(INCLUDES) $(PPFLAGS)
LINKFLAGS=$(INCLUDES)
PPFLAGS=-pp camlp4o
LIB=unix.cma camlp_streams.cma
LIB_OPT=$(LIB:.cma=.cmxa)
CMO_FILES=files.cmo dep_debug.cmo dep_error.cmo dep_parse.cmo params.cmo \
dependencies.cmo dep_sort.cmo main.cmo
CMX_FILES=files.cmx dep_debug.cmx dep_error.cmx dep_parse.cmx params.cmx \
dependencies.cmx dep_sort.cmx main.cmx
all:: byte
ifneq ($(OCAMLOPT), no)
all:: opt
endif
byte: $(EXE)
$(EXE): $(CMO_FILES)
$(OCAMLC) -o $@ $(LINKFLAGS) $(LIB) $^
opt: $(EXE_OPT)
$(EXE_OPT): $(CMX_FILES)
$(OCAMLOPT) -o $@ $(LINKFLAGS) $(LIB_OPT) $^
bootstrap: all
make clean
make all CMO_FILES="$$(./$(EXE) $(PPFLAGS) -byte *.ml)" \
CMX_FILES="$$(./$(EXE) $(PPFLAGS) -opt *.ml)"
# generic rules :
#################
.SUFFIXES: .mli .ml .cmi .cmo .cmx .mll .mly .zog
%.cmi:%.mli
$(OCAMLC) $(OCAMLPP) $(COMPFLAGS) -c $<
%.cmo:%.ml
$(OCAMLC) $(OCAMLPP) $(COMPFLAGS) -c $<
%.cmi %.cmo:%.ml
$(OCAMLC) $(OCAMLPP) $(COMPFLAGS) -c $<
%.cmx %.o:%.ml
$(OCAMLOPT) $(OCAMLPP) $(COMPFLAGS) -c $<
%.ml:%.mll
$(OCAMLLEX) $<
%.mli %.ml:%.mly
$(OCAMLYACC) -v $<
# myself
Makefile: Makefile.in config.status
./config.status
config.status: configure
./config.status --recheck
configure: configure.in
autoconf
# installation :
################
install: dummy
install -d $(BINDIR)
install $(EXE) $(BINDIR)
install -d $(MANDIR)/man1
install $(EXE).1 $(MANDIR)/man1
if test -f $(EXE_OPT); then $(MAKE) install_opt; fi
install_opt: dummy
install -d $(BINDIR)
install $(EXE_OPT) $(BINDIR)
dummy:
# backup, clean and depend :
############################
clean_all:: clean
rm -f $(EXE) $(EXE_OPT)
clean::
rm -f *~ \#*\#
rm -f *.cmo *.cmi *.cmx *.cma *.cmxa *.a *.o
distclean:: clean_all
rm -f config.* Makefile
.depend depend::
rm -f .depend
$(OCAMLDEP) $(PPFLAGS) $(INCLUDES) *.ml > .depend
|