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 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
# (C) 1999-2004
# Cuihtlauac Alvarado, France Telecon, Recherche & Developement
# Jean-Franois Monin, Universit Joseph Fourier - VERIMAG
# $Id: Makefile,v 1.26 2007-03-26 21:38:10 tews Exp $
all: targets
include Makefile.here
include Makefile.config
TAGS_MLI=line_number.mli splay.mli
EMACS_MLI=emacs.mli
VI_MLI=vi.mli
OTAGS_ML=otags.ml
TAGS_ML=splay.ml line_number.ml editor.ml pr.ml
EMACS_ML=emacs.ml pr_emacs_tags.ml
VI_ML=vi.ml pr_vi_tags.ml
MLI_SRC=${TAGS_MLI} ${EMACS_MLI} ${VI_MLI}
ML_SRC=${OTAGS_ML} ${TAGS_ML} ${EMACS_ML} ${VI_ML}
SRC=${MLI_SRC} ${ML_SRC}
OBJ=otags
LIBS=tags.cma pr_emacs_tags.cma pr_vi_tags.cma
TESTFILES=test.ml testmli.mli
targets: $(LIBS) $(OBJ) $(NCAMLP4)
-include Makefile.depend
#tags.cma: libotags(${IMPLEM:.ml=.o})
# ranlib $+
tags.cma(%.cmo): %cmo
tags.cma: ${TAGS_ML:%.ml=%.cmo}
$(CAMLC) -a -o $@ ${ZLIBS} $+
tags.cmxa: ${TAGS_ML:%.ml=%.cmx}
$(CAMLOPT) -a -o $@ ${ZLIBS} $+
pr_emacs_tags.cma: ${EMACS_ML:%.ml=%.cmo}
$(CAMLC) -a -o $@ ${ZLIBS} $+
pr_vi_tags.cma: ${VI_ML:%.ml=%.cmo}
$(CAMLC) -a -o $@ ${ZLIBS} $+
pr_emacs_tags.cmxa: ${EMACS_ML:%.ml=%.cmx}
$(CAMLOPT) -a -o $@ ${ZLIBS} $+
pr_vi_tags.cmxa: ${VI_ML:%.ml=%.cmx}
$(CAMLOPT) -a -o $@ ${ZLIBS} $+
otags.opt: conf.cmx otags.cmx
$(CAMLOPT) unix.cmxa -o $@ $+
otags.byte: conf.cmo otags.cmo
$(CAMLC) unix.cma -o $@ $+
# Natively Compiled Parsers
#
# The default version use pa_o_fast.cmx as grammar, which is
# not extensible and only installed from 3.09.3
#
# The *ext version use pa_o.cmx and pa_op.cmx, which are still
# extensible.
# (The extensibility is a bit theoretical, because the cmx versions
# cannot load any modules on runtime -- in contrast to camlp4.)
# since 3.09.3 we don't need any source tree
camlp4o_pr_emacs: \
tags.cmxa pr_emacs_tags.cmxa
${CAMLOPT} -linkall -o $@ -I ${CAMLP4DIR} odyl.cmxa camlp4.cmxa \
pa_o_fast.cmx $+ \
odyl.cmx
camlp4o_pr_vi: \
tags.cmxa pr_vi_tags.cmxa
${CAMLOPT} -linkall -o $@ -I ${CAMLP4DIR} odyl.cmxa camlp4.cmxa \
pa_o_fast.cmx $+ \
odyl.cmx
camlp4o_pr_emacs_ext: tags.cmxa pr_emacs_tags.cmxa
${CAMLOPT} -linkall -o $@ -I ${CAMLP4DIR} odyl.cmxa camlp4.cmxa \
pa_o.cmx pa_op.cmx $+ \
odyl.cmx
camlp4o_pr_vi_ext: tags.cmxa pr_vi_tags.cmxa
${CAMLOPT} -linkall -o $@ -I ${CAMLP4DIR} odyl.cmxa camlp4.cmxa \
pa_o.cmx pa_op.cmx $+ \
odyl.cmx
.PHONY: tags check checkext
tags::
./otags -v ${ZLIBS} $(SRC)
check: all
for f in $(TESTFILES) ; do \
./mk_test $$f || exit 1; \
done
checkext: check
./mk_test -r $$HOME/src/ccsl/ccslc
./mk_test -r /usr/local/src/lablgtk-2.6.0
generation:
for f in test/*new ; do \
cp $$f $$(dirname $$f)/$$(basename $$f .new);\
done
clean::
rm -f *~
rm -f *.cm[iaox] *.o *.cmxa *.a *.ppo
rm -f *.orig *.old *.new *.bak core.*
rm -f *.*.ps *.*.dvi *.*.log *.*.tex *.*.aux
rm -f TAGS *.tags *.dep *.tmp
rm -f *.cmxa *.a
rm -f $(OBJ)
rm -f camlp4o_pr* otags.{cmo,cmx,o,opt,byte}
rm -f *.tar*
install: $(LIBS) $(OBJ)
mkdir -p $(BINDIR) $(INSTALLLIBDIR)
install -m 644 $(LIBS) $(INSTALLLIBDIR)
install -m 755 $(OBJ) $(BINDIR)
if [ $(NATIVE) = "true" ] ; then \
install -m 755 $(NCAMLP4) $(BINDIR); \
fi
uninstall:
cd $(INSTALLLIBDIR); rm -f $(LIBS)
cd $(BINDIR); rm -f $(OBJ)
cd $(BINDIR); rm -r $(NCAMLP4)
depend: ${MLI_SRC:.mli=.dep} ${ML_SRC:.ml=.dep} otags.dep
cat *.dep > Makefile.depend
echo "pr_emacs_tags.cmo: emacs.cmo" >> Makefile.depend
echo "pr_emacs_tags.cmx: emacs.cmx" >> Makefile.depend
echo "pr_vi_tags.cmo: vi.cmo" >> Makefile.depend
echo "pr_vi_tags.cmx: vi.cmx" >> Makefile.depend
rm -f *.dep
|