93 lines
2.5 KiB
Makefile
93 lines
2.5 KiB
Makefile
# Copyright (c) 2005 by Laboratoire Spécification et Vérification (LSV),
|
|
# CNRS UMR 8643 & ENS Cachan.
|
|
# Written by Jean Goubault-Larrecq. Derived from the csur project.
|
|
#
|
|
# Permission is granted to anyone to use this software for any
|
|
# purpose on any computer system, and to redistribute it freely,
|
|
# subject to the following restrictions:
|
|
#
|
|
# 1. Neither the author nor its employer is responsible for the consequences
|
|
# of use of this software, no matter how awful, even if they arise
|
|
# from defects in it.
|
|
#
|
|
# 2. The origin of this software must not be misrepresented, either
|
|
# by explicit claim or by omission.
|
|
#
|
|
# 3. Altered versions must be plainly marked as such, and must not
|
|
# be misrepresented as being the original software.
|
|
#
|
|
# 4. This software is restricted to non-commercial use only. Commercial
|
|
# use is subject to a specific license, obtainable from LSV.
|
|
|
|
%.cmo: %.ml
|
|
ocamlc -g -c $<
|
|
|
|
%.cmi: %.mli
|
|
ocamlc -g -c $<
|
|
|
|
.PHONY: all projet.tar.gz
|
|
|
|
# Compilation parameters:
|
|
CAMLOBJS=error.cmo cparse.cmo cprint.cmo \
|
|
ctab.cmo clex.cmo verbose.cmo genlab.cmo compile.cmo \
|
|
main.cmo
|
|
CAMLSRC=$(addsuffix .ml,$(basename $(CAMLOBJS)))
|
|
PJ=ProjetMiniC
|
|
FILES=clex.mll cparse.ml cparse.mli ctab.mly \
|
|
compile.ml compile.mli \
|
|
cprint.ml cprint.mli \
|
|
error.ml verbose.ml genlab.ml main.ml Makefile
|
|
|
|
all: mcc
|
|
|
|
projet: projet.tar.gz
|
|
|
|
mcc: $(CAMLOBJS)
|
|
ocamlc -g -o mcc unix.cma $(CAMLOBJS)
|
|
|
|
clean:
|
|
rm -f mcc *.cmi *.cmo
|
|
rm -f ctab.ml ctab.mli clex.ml
|
|
rm -rf projet.tar.gz $(PJ)
|
|
rm -rf Test/
|
|
|
|
test: projet.tar.gz
|
|
-mkdir Test
|
|
-rm -rf Test/*
|
|
cp projet.tar.gz Test/
|
|
(cd Test/; tar -xvzf projet.tar.gz; cd ProjetMiniC/; cp ~/Papers/compile.ml .; make; cp mcc ~/bin)
|
|
|
|
projet.tar.gz:
|
|
rm -rf $(PJ) && mkdir $(PJ)
|
|
cp $(FILES) $(PJ)
|
|
-mkdir $(PJ)/Exemples
|
|
cp Exemples/*.c $(PJ)/Exemples
|
|
cp cprint_skel.ml $(PJ)/cprint.ml
|
|
cp compile_skel.ml $(PJ)/compile.ml
|
|
tar -cvzf $@ $(PJ)
|
|
|
|
P1=../boostrap
|
|
P2=../../2/boostrap
|
|
p2_links:
|
|
@echo Populating $(P2) with links for missing files...
|
|
@mkdir -p $(P2)
|
|
@for f in $(FILES) compile_skel.ml cprint_skel.ml ; do \
|
|
test -f $(P2)/$$f || (echo Linking $$f... ; ln $(P1)/$$f $(P2)/$$f) ; done
|
|
@mkdir -p $(P2)/Exemples
|
|
@for f in Exemples/*.c ; do \
|
|
test -f $(P2)/$$f || (echo Linking $$f... ; ln $(P1)/$$f $(P2)/$$f) ; done
|
|
|
|
ctab.ml: ctab.mly
|
|
ocamlyacc -v ctab.mly
|
|
|
|
clex.ml: clex.mll
|
|
ocamllex clex.mll
|
|
|
|
compile.cmi: compile.mli
|
|
compile.cmo: compile.ml compile.cmi
|
|
|
|
depend: Makefile $(wildcard *.ml) $(wildcard *.mli) ctab.ml clex.ml
|
|
ocamldep *.mli *.ml > depend
|
|
|
|
-include depend
|