diff options
Diffstat (limited to 'Makefile.extr')
-rw-r--r-- | Makefile.extr | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/Makefile.extr b/Makefile.extr index 6035eb9a..0d2ec61f 100644 --- a/Makefile.extr +++ b/Makefile.extr @@ -44,14 +44,14 @@ cparser/pre_parser_messages.ml: # Directories containing plain Caml code DIRS=extraction \ - lib common $(ARCH) backend cfrontend cparser driver \ - export debug + lib common $(ARCH) scheduling backend cfrontend cparser driver \ + export debug kvx/unittest lib/Impure/ocaml INCLUDES=$(patsubst %,-I %, $(DIRS)) # Control of warnings: -WARNINGS=-w +a-4-9-27-70 +WARNINGS=-w +a-4-9-27-70-42 extraction/%.cmx: WARNINGS +=-w -20-27-32..34-39-41-44..45-60-67 extraction/%.cmo: WARNINGS +=-w -20-27-32..34-39-41-44..45-60-67 cparser/pre_parser.cmx: WARNINGS += -w -41 @@ -77,6 +77,9 @@ endif OCAMLC=ocamlc$(DOTOPT) $(COMPFLAGS) OCAMLOPT=ocamlopt$(DOTOPT) $(COMPFLAGS) OCAMLDEP=ocamldep$(DOTOPT) -slash $(INCLUDES) +OCAMLFIND=ocamlfind +LMFLAGS_LINK=-package landmarks -linkpkg +LMFLAGS_COMP=-package landmarks -package landmarks-ppx -ppxopt landmarks-ppx,--auto OCAMLLEX=ocamllex -q MODORDER=tools/modorder .depend.extr @@ -99,25 +102,47 @@ ifeq ($(wildcard .depend.extr),.depend.extr) CCOMP_OBJS:=$(shell $(MODORDER) driver/Driver.cmx) ifeq ($(OCAML_NATIVE_COMP),true) +ifeq ($(OCAML_LM_PROF), true) +ccomp: $(CCOMP_OBJS) + @echo "Linking $@ with landmarks profiling" + @$(OCAMLFIND) opt $(COMPFLAGS) -o $@ $(LMFLAGS_LINK) $(LIBS) $(LINK_OPT) $+ +else ccomp: $(CCOMP_OBJS) @echo "Linking $@" @$(OCAMLOPT) -o $@ $(LIBS) $(LINK_OPT) $+ +endif else ccomp: ccomp.byte @echo "Copying to $@" @$(COPY) $+ $@ endif +# DM force compilation without checking dependencies +ccomp.force: + $(OCAMLOPT) -o $@ $(LIBS) $(LINK_OPT) $(CCOMP_OBJS) + +ifeq ($(OCAML_LM_PROF), true) +ccomp.byte: $(CCOMP_OBJS:.cmx=.cmo) + @echo "Linking $@ with landmarks profiling" + @$(OCAMLFIND) ocamlc $(COMPFLAGS) -o $@ $(LMFLAGS_LINK) $(LIBS_BYTE) $+ +else ccomp.byte: $(CCOMP_OBJS:.cmx=.cmo) @echo "Linking $@" @$(OCAMLC) -o $@ $(LIBS_BYTE) $+ +endif CLIGHTGEN_OBJS:=$(shell $(MODORDER) export/ExportDriver.cmx) ifeq ($(OCAML_NATIVE_COMP),true) +ifeq ($(OCAML_LM_PROF), true) +clightgen: $(CLIGHTGEN_OBJS) + @echo "Linking $@ with landmarks profiling" + @$(OCAMLFIND) opt $(COMPFLAGS) -o $@ $(LMFLAGS_LINK) $(LIBS) $(LINK_OPT) $+ +else clightgen: $(CLIGHTGEN_OBJS) @echo "Linking $@" @$(OCAMLOPT) -o $@ $(LIBS) $(LINK_OPT) $+ +endif else clightgen: clightgen.byte @echo "Copying to $@" @@ -134,15 +159,33 @@ endif # End of part that assumes .depend.extr already exists +ifeq ($(OCAML_LM_PROF), true) %.cmi: %.mli - @echo "OCAMLC $<" + @echo "OCAMLC $< with landmarks profiling" + @$(OCAMLFIND) ocamlc $(COMPFLAGS) -c $(LMFLAGS_COMP) $< +else +%.cmi: %.mli + @echo "OCAMLC $<" @$(OCAMLC) -c $< +endif +ifeq ($(OCAML_LM_PROF), true) +%.cmo: %.ml + @echo "OCAMLC $< with landmarks profiling" + @$(OCAMLFIND) ocamlc $(COMPFLAGS) -c $(LMFLAGS_COMP) $< +else %.cmo: %.ml - @echo "OCAMLC $<" + @echo "OCAMLC $<" @$(OCAMLC) -c $< +endif +ifeq ($(OCAML_LM_PROF), true) +%.cmx: %.ml + @echo "OCAMLOPT $< with landmarks profiling" + @$(OCAMLFIND) opt $(COMPFLAGS) -c $(LMFLAGS_COMP) $< +else %.cmx: %.ml @echo "OCAMLOPT $<" @$(OCAMLOPT) -c $< +endif %.ml: %.mll $(OCAMLLEX) $< |