From 134ab83b0509bc28e09278e20cfe6bb6386112bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Pasteur?= Date: Wed, 27 Jul 2011 09:12:09 +0200 Subject: [PATCH] Fix the Makefile It simply calls ocamlbuild. We still need a way to configure and install necessary files. --- compiler/Makefile | 233 +++------------------------------------------- 1 file changed, 14 insertions(+), 219 deletions(-) diff --git a/compiler/Makefile b/compiler/Makefile index a39de73..bf33f84 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -1,229 +1,24 @@ -DATE = \`eval date\` -LIBDIR = \`eval pwd\`/../lib -BIN = hec -TARGET = opt +BUILD:= _build +OCAMLBUILD:=ocamlbuild +COMPILER:=heptc -OCAMLFLAGS = -dtypes -g -OCAMLOPTFLAGS = -dtypes -g -CPP = cpp -#gcc -E -CPPFLAGS = -P -SED=sed +TARGET:=byte -# lablgtk -LABLGTKPREFIX = /usr/lib/ocaml -LABLGTKFLAGS = -I $(LABLGTKPREFIX)/lablgtk2 -I $(LABLGTKPREFIX)/stublibs -LABLGTKLINKFLAGS = -dllpath $(LABLGTKPREFIX)/stublibs - -OCAMLC = ocamlc -OCAMLLEX = ocamllex -OCAMLYACC = ocamlyacc -OCAMLOPT = ocamlopt -OCAMLDEP = ocamldep - -UNIX = str.cma unix.cma -UNIXX = str.cmxa unix.cmxa -INCLUDES = - -DIRECTORIES = global parsing analysis translation dataflow sigali sequential \ - simulation main - -INCLUDES = $(DIRECTORIES:%=-I %) - -GENSOURCES = parsing/lexer.ml parsing/parser.mli parsing/parser.ml - -GLOBAL = global/names.cmo \ - global/ident.cmo \ - global/static.cmo \ - global/location.cmo \ - global/misc.cmo \ - global/linearity.cmo \ - global/graph.cmo \ - global/dep.cmo \ - global/parsetree.cmo \ - global/heptagon.cmo \ - global/global.cmo \ - global/modules.cmo \ - global/printer.cmo \ - global/initial.cmo \ - global/interference_graph.cmo \ - global/scoping.cmo -PARSING = parsing/lexer.cmo \ - parsing/parser.cmo -ANALYSIS = analysis/typing.cmo \ - analysis/causal.cmo \ - analysis/causality.cmo \ - analysis/interface.cmo \ - analysis/initialization.cmo \ - analysis/linear_typing.cmo \ - analysis/automata_mem.cmo -TRANSLATION = translation/completion.cmo \ - translation/automata.cmo \ - translation/present.cmo \ - translation/last.cmo \ - translation/reset.cmo \ - translation/reset_new.cmo \ - translation/every.cmo -# translation/inline.cmo -DATAFLOW = dataflow/minils.cmo \ - dataflow/merge.cmo \ - dataflow/dfcausality.cmo \ - dataflow/normalize.cmo \ - dataflow/schedule.cmo \ - dataflow/clocking.cmo \ - dataflow/intermediate.cmo \ - dataflow/cse.cmo \ - dataflow/cmse.cmo \ - dataflow/tomato.cmo \ - dataflow/tommls.cmo \ - dataflow/deadcode.cmo \ - dataflow/mls2dot.cmo \ - dataflow/interference2dot.cmo \ - dataflow/interference.cmo \ - dataflow/memalloc.cmo \ - dataflow/splitting.cmo \ - dataflow/schedule_interf.cmo \ - dataflow/callgraph.cmo -# dataflow/init.cmo -SIGALI = sigali/boolean.cmo \ - sigali/sigali.cmo \ - sigali/dynamic_system.cmo -SEQUENTIAL = sequential/obc.cmo \ - sequential/control.cmo \ - sequential/translate.cmo \ - sequential/c_old.cmo \ - sequential/caml.cmo \ - sequential/java.cmo \ - sequential/c.cmo \ - sequential/csubst.cmo \ - sequential/rename.cmo \ - sequential/cgen.cmo \ - sequential/vhdl.cmo \ - sequential/mls2vhdl.cmo -# sequential/lustre.cmo -MAIN = main/compiler.cmo \ - main/main.cmo - -OBJ = $(GLOBAL) $(MODULES) $(PARSING) $(ANALYSIS) $(TRANSLATION) \ - $(DATAFLOW) $(SEQUENTIAL) $(MAIN) \ - $(SIMULATION) - -OBJ_OPT = $(OBJ:.cmo=.cmx) - -SRC = $(OBJ:.cmo=.ml) - -INTERFACES = $(SRC:.ml=.mli) - -SIM_BIN = hes - -# Objs needed for compiling simulator -SIM_OBJ = global/misc.cmo \ - global/heptagon.cmo \ - global/global.cmo \ - global/modules.cmo \ - simulation/simulator.cmo -SIM_LIBS = lablgtk.cma unix.cma - -SIM_OBJ_OPT = $(SIM_OBJ:.cmo=.cmx) - -SIM_LIBS_OPT = $(SIM_LIBS:.cma=.cmxa) - -world: all +.PHONY: all opt byte debug profile clean all: $(TARGET) -opt: $(BIN).opt -byte: $(BIN).byte +opt: + $(OCAMLBUILD) $(COMPILER).native +byte: + $(OCAMLBUILD) $(COMPILER).byte -$(BIN).opt: $(OBJ_OPT) - $(OCAMLOPT) $(UNIXX) $(OCAMLOPTFLAGS) $(INCLUDES) $(OBJ_OPT) -o $(BIN).opt - -$(BIN).byte: $(OBJ) - $(OCAMLC) -custom $(UNIX) $(OCAMLFLAGS) $(INCLUDES) $(OBJ) -o $(BIN).byte - -sim: $(SIM_BIN).byte -simopt:$(SIM_BIN).opt - -$(SIM_BIN).opt: $(SIM_OBJ_OPT) - $(OCAMLOPT) $(OCAMLOPTFLAGS) \ - $(LABLGTKFLAGS) \ - $(INCLUDES) $(SIM_LIBS_OPT) $(SIM_OBJ_OPT) -o $(SIM_BIN).opt -$(SIM_BIN).byte: $(SIM_OBJ) - $(OCAMLC) -custom $(UNIX) $(OCAMLFLAGS) \ - $(LABLGTKFLAGS) $(LABLGTKLINKFLAGS) \ - $(INCLUDES) $(SIM_LIBS) $(SIM_OBJ) -o $(SIM_BIN).byte +debug: + $(OCAMLBUILD) $(COMPILER).d.byte +profile: + $(OCAMLBUILD) $(COMPILER).p.native -debug: OCAMLFLAGS += -g -debug: byte - -profile: OCAMLOPTFLAGS += -p -profile: opt - -depend .depend: - (for d in $(DIRECTORIES); \ - do $(OCAMLDEP) $(INCLUDES) $$d/*.mli $$d/*.ml; \ - done) > .depend - -interfaces: $(INTERFACES) - -# Extra dependences -parsing/parser.mli parsing/parser.ml: parsing/parser.mly - $(OCAMLYACC) -v parsing/parser.mly - -parsing/lexer.cmi: parsing/parser.mli - -parsing/lexer.ml: parsing/lexer.mll - $(OCAMLLEX) parsing/lexer.mll - -global/misc.cmo: OCAMLFLAGS := \ - -pp "$(SED) -e \"s|DATE|`date`|\" -e \"s|STDLIB|$(LIBDIR)|\"" -# -pp "$(CPP) $(CPPFLAGS) -DSTDLIB=\\\"$(LIBDIR)\\\" \ -# -DDATE=\\\"\"`date`\"\\\"" - -global/misc.cmx: OCAMLOPTFLAGS := \ - -pp "$(SED) -e \"s|DATE|`date`|\" -e \"s|STDLIB|$(LIBDIR)|\"" -# -pp "$(CPP) $(CPPFLAGS) -DSTDLIB=\\\"$(LIBDIR)\\\" \ -# -DDATE=\\\"\"`date`\"\\\"" - -simulation/simulator.cmo: OCAMLFLAGS += $(LABLGTKFLAGS) - -simulation/simulator.cmx: OCAMLOPTFLAGS += $(LABLGTKFLAGS) - -# Common rules -.SUFFIXES : .mli .ml .cmi .cmo .cmx - -%.cmo: %.ml - $(OCAMLC) $(OCAMLFLAGS) -c $(INCLUDES) $< - -%.cmi: %.mli - $(OCAMLC) $(OCAMLFLAGS) -c $(INCLUDES) $< - -%.cmx: %.ml - $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $(INCLUDES) $< - -# %.mli: %.ml -# $(OCAMLC) $(OCAMLFLAGS) -i -c $(INCLUDES) $< > $@ - - - -# Clean up clean: - rm -f $(GENSOURCES) parsing/parser.output - # to avoid the make warnings: - rm -f parsing/parser.ml - rm -f parsing/lexer.ml - (for d in $(DIRECTORIES); \ - do rm -f $$d/*.annot $$d/*.cm[iox] $$d/*.o; \ - done) - rm -f $(BIN).byte $(BIN).opt - -ML = $(OBJ:.cmo=.ml) - -wc: - wc $(ML) - - - -include .depend + $(OCAMLBUILD).native -clean