86 lines
3.0 KiB
Makefile
86 lines
3.0 KiB
Makefile
#########################################################################
|
|
# #
|
|
# Objective Caml #
|
|
# #
|
|
# Camlp4 #
|
|
# #
|
|
# Copyright 2004 Institut National de Recherche en Informatique et #
|
|
# en Automatique. All rights reserved. This file is distributed #
|
|
# under the terms of the Q Public License version 1.0. #
|
|
# #
|
|
#########################################################################
|
|
#
|
|
# Makefile for pa_lefteval
|
|
# M.Mauny
|
|
#
|
|
|
|
include ../../config/Makefile.cnf
|
|
|
|
OCAMLTOP=../../..
|
|
CAMLP4=../../camlp4/camlp4$(EXE)
|
|
|
|
OCAMLC=$(OCAMLTOP)/ocamlc$(EXE)
|
|
OCAMLOPT=$(OCAMLTOP)/ocamlopt$(EXE)
|
|
|
|
P4INCLUDES= -nolib -I ../../meta -I ../../etc
|
|
OCAMLINCLUDES= -nostdlib -I $(OCAMLTOP)/stdlib -I ../../camlp4 -I ../../lib -I ../../etc
|
|
OCAMLCFLAGS=-warn-error A $(OCAMLINCLUDES)
|
|
|
|
SCHSRC=pa_scheme.sc
|
|
SRC=pa_scheme.ml pr_scheme.ml pr_schp_main.ml
|
|
OBJS=$(SRC:.ml=.cmo)
|
|
OBJSX=$(OCAMLSRC:.ml=.cmx)
|
|
|
|
all: $(OBJS) pr_schemep.cmo camlp4sch$(EXE)
|
|
|
|
opt: all
|
|
|
|
bootstrap: camlp4sch$(EXE) save
|
|
./camlp4sch$(EXE) ../../etc/q_phony.cmo ../../meta/pa_extend.cmo ../../etc/pr_r.cmo ../../etc/pr_extend.cmo ../../etc/pr_rp.cmo -impl pa_scheme.sc \
|
|
| sed -e 's/^;; \(.*\)$$/(* \1 *)/' -e 's/^; \(.*\)$$/(* \1 *)/' \
|
|
-e 's/$$Id.*\$$/File generated by pretty print; do not edit!/' > pa_scheme.ml
|
|
@if cmp -s pa_scheme.ml SAVED/pa_scheme.ml; then \
|
|
echo 'pa_scheme.ml and SAVED/pa_scheme.ml are identical' ; \
|
|
else \
|
|
echo '**** Note: pa_scheme.ml differs from SAVED/pa_scheme.ml'; \
|
|
fi
|
|
|
|
save:
|
|
test -d SAVED || mkdir SAVED
|
|
mkdir SAVED.$$$$ && mv SAVED pa_scheme.ml SAVED.$$$$ && mv SAVED.$$$$ SAVED
|
|
|
|
restore:
|
|
mv SAVED SAVED.$$$$ && mv SAVED.$$$$/* . && rmdir SAVED.$$$$
|
|
|
|
depend:
|
|
cp .depend .depend.bak
|
|
> .depend
|
|
for file in $(SRC); do \
|
|
$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $$file` pr_depend.cmo $$i | \
|
|
sed -e 's| \.\./\.\./\.\.| $$(OCAMLTOP)|g' >> .depend; \
|
|
done
|
|
|
|
clean:
|
|
rm -f camlp4sch$(EXE) *.cm* *.$(O) *.bak .*.bak
|
|
|
|
camlp4sch: pa_scheme.cmo
|
|
rm -f camlp4sch
|
|
DIR=`pwd` && cd ../../camlp4 && $(MAKE) CAMLP4=$$DIR/camlp4sch CAMLP4M="-I $$DIR pa_scheme.cmo ../meta/pr_dump.cmo"
|
|
|
|
pr_schemep.cmo: pr_schp_main.cmo
|
|
$(OCAMLC) ../../etc/parserify.cmo pr_schp_main.cmo -a -o $@
|
|
|
|
.SUFFIXES: .cmx .cmo .cmi .ml .mli
|
|
|
|
.mli.cmi:
|
|
$(OCAMLC) $(OCAMLCFLAGS) -c $<
|
|
|
|
|
|
.ml.cmo:
|
|
$(OCAMLC) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<` -loc loc" -c $<
|
|
|
|
.ml.cmx:
|
|
$(OCAMLOPT) $(OCAMLCFLAGS) -pp "$(CAMLP4) $(P4INCLUDES) `awk 'NR == 1 { ORS=" "; for (i=2; i < NF; i++) print $$i; } ' $<` -loc loc" -c $<
|
|
|
|
include .depend
|