Fix the Makefile
It simply calls ocamlbuild. We still need a way to configure and install necessary files.
This commit is contained in:
parent
da8956e247
commit
134ab83b05
1 changed files with 14 additions and 219 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue