Add the $(EXE) suffix to all programs at build rather than install time
This commit touches neither boot/ocamlc nor boot/ocamllex It has the side-effect of fixing the cleanup rules which did not use the $(EXE) extension when removing a file although it was produced with the $(EXE) extension.master
parent
41e4dc1dc8
commit
bdd9ca391e
|
@ -247,8 +247,8 @@ _build
|
||||||
/tools/ocamlmklib.opt
|
/tools/ocamlmklib.opt
|
||||||
/tools/ocamlmklibconfig.ml
|
/tools/ocamlmklibconfig.ml
|
||||||
/tools/objinfo_helper
|
/tools/objinfo_helper
|
||||||
/tools/read_cmt
|
/tools/ocamlcmt
|
||||||
/tools/read_cmt.opt
|
/tools/ocamlcmt.opt
|
||||||
/tools/cmpbyt
|
/tools/cmpbyt
|
||||||
/tools/cmpbyt.opt
|
/tools/cmpbyt.opt
|
||||||
/tools/stripdebug
|
/tools/stripdebug
|
||||||
|
|
120
Makefile
120
Makefile
|
@ -34,7 +34,7 @@ endif
|
||||||
include stdlib/StdlibModules
|
include stdlib/StdlibModules
|
||||||
|
|
||||||
CAMLC=$(BOOT_OCAMLC) -g -nostdlib -I boot -use-prims runtime/primitives
|
CAMLC=$(BOOT_OCAMLC) -g -nostdlib -I boot -use-prims runtime/primitives
|
||||||
CAMLOPT=$(CAMLRUN) ./ocamlopt -g -nostdlib -I stdlib -I otherlibs/dynlink
|
CAMLOPT=$(CAMLRUN) ./ocamlopt$(EXE) -g -nostdlib -I stdlib -I otherlibs/dynlink
|
||||||
ARCHES=amd64 i386 arm arm64 power s390x riscv
|
ARCHES=amd64 i386 arm arm64 power s390x riscv
|
||||||
INCLUDES=-I utils -I parsing -I typing -I bytecomp -I file_formats \
|
INCLUDES=-I utils -I parsing -I typing -I bytecomp -I file_formats \
|
||||||
-I lambda -I middle_end -I middle_end/closure \
|
-I lambda -I middle_end -I middle_end/closure \
|
||||||
|
@ -77,7 +77,7 @@ LIBFILES=stdlib.cma std_exit.cmo *.cmi camlheader
|
||||||
COMPLIBDIR=$(LIBDIR)/compiler-libs
|
COMPLIBDIR=$(LIBDIR)/compiler-libs
|
||||||
|
|
||||||
TOPINCLUDES=$(addprefix -I otherlibs/,$(filter-out %threads,$(OTHERLIBRARIES)))
|
TOPINCLUDES=$(addprefix -I otherlibs/,$(filter-out %threads,$(OTHERLIBRARIES)))
|
||||||
RUNTOP=./runtime/ocamlrun ./ocaml \
|
RUNTOP=./runtime/ocamlrun$(EXE) ./ocaml$(EXE) \
|
||||||
-nostdlib -I stdlib \
|
-nostdlib -I stdlib \
|
||||||
-noinit $(TOPFLAGS) $(TOPINCLUDES)
|
-noinit $(TOPFLAGS) $(TOPINCLUDES)
|
||||||
NATRUNTOP=./ocamlnat$(EXE) \
|
NATRUNTOP=./ocamlnat$(EXE) \
|
||||||
|
@ -96,11 +96,14 @@ FLEXDLL_SUBMODULE_PRESENT := $(wildcard flexdll/Makefile)
|
||||||
ifeq "$(FLEXDLL_SUBMODULE_PRESENT)" ""
|
ifeq "$(FLEXDLL_SUBMODULE_PRESENT)" ""
|
||||||
BOOT_FLEXLINK_CMD =
|
BOOT_FLEXLINK_CMD =
|
||||||
else
|
else
|
||||||
BOOT_FLEXLINK_CMD = FLEXLINK_CMD="../boot/ocamlrun ../flexdll/flexlink.exe"
|
BOOT_FLEXLINK_CMD = \
|
||||||
|
FLEXLINK_CMD="../boot/ocamlrun$(EXE) ../flexdll/flexlink.exe"
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
expunge := expunge$(EXE)
|
||||||
|
|
||||||
# targets for the compilerlibs/*.{cma,cmxa} archives
|
# targets for the compilerlibs/*.{cma,cmxa} archives
|
||||||
include compilerlibs/Makefile.compilerlibs
|
include compilerlibs/Makefile.compilerlibs
|
||||||
|
|
||||||
|
@ -129,6 +132,10 @@ partialclean::
|
||||||
.PHONY: beforedepend
|
.PHONY: beforedepend
|
||||||
beforedepend:: utils/config.ml utils/domainstate.ml utils/domainstate.mli
|
beforedepend:: utils/config.ml utils/domainstate.ml utils/domainstate.mli
|
||||||
|
|
||||||
|
programs := expunge ocaml ocamlc ocamlc.opt ocamlnat ocamlopt ocamlopt.opt
|
||||||
|
|
||||||
|
$(foreach program, $(programs), $(eval $(call PROGRAM_SYNONYM,$(program))))
|
||||||
|
|
||||||
# Start up the system from the distribution compiler
|
# Start up the system from the distribution compiler
|
||||||
.PHONY: coldstart
|
.PHONY: coldstart
|
||||||
coldstart:
|
coldstart:
|
||||||
|
@ -152,12 +159,12 @@ core: coldstart
|
||||||
|
|
||||||
# Check if fixpoint reached
|
# Check if fixpoint reached
|
||||||
|
|
||||||
CMPBYT := $(CAMLRUN) tools/cmpbyt
|
CMPBYT := $(CAMLRUN) tools/cmpbyt$(EXE)
|
||||||
|
|
||||||
.PHONY: compare
|
.PHONY: compare
|
||||||
compare:
|
compare:
|
||||||
@if $(CMPBYT) boot/ocamlc ocamlc \
|
@if $(CMPBYT) boot/ocamlc ocamlc$(EXE) \
|
||||||
&& $(CMPBYT) boot/ocamllex lex/ocamllex; \
|
&& $(CMPBYT) boot/ocamllex lex/ocamllex$(EXE); \
|
||||||
then echo "Fixpoint reached, bootstrap succeeded."; \
|
then echo "Fixpoint reached, bootstrap succeeded."; \
|
||||||
else \
|
else \
|
||||||
echo "Fixpoint not reached, try one more bootstrapping cycle."; \
|
echo "Fixpoint not reached, try one more bootstrapping cycle."; \
|
||||||
|
@ -170,8 +177,8 @@ PROMOTE ?= cp
|
||||||
|
|
||||||
.PHONY: promote-common
|
.PHONY: promote-common
|
||||||
promote-common:
|
promote-common:
|
||||||
$(PROMOTE) ocamlc boot/ocamlc
|
$(PROMOTE) ocamlc$(EXE) boot/ocamlc
|
||||||
$(PROMOTE) lex/ocamllex boot/ocamllex
|
$(PROMOTE) lex/ocamllex$(EXE) boot/ocamllex
|
||||||
cd stdlib; cp $(LIBFILES) ../boot
|
cd stdlib; cp $(LIBFILES) ../boot
|
||||||
|
|
||||||
# Promote the newly compiled system to the rank of cross compiler
|
# Promote the newly compiled system to the rank of cross compiler
|
||||||
|
@ -231,7 +238,7 @@ coreboot:
|
||||||
# Rebuild the library (using runtime/ocamlrun ./ocamlc)
|
# Rebuild the library (using runtime/ocamlrun ./ocamlc)
|
||||||
$(MAKE) library-cross
|
$(MAKE) library-cross
|
||||||
# Promote the new compiler and the new runtime
|
# Promote the new compiler and the new runtime
|
||||||
$(MAKE) CAMLRUN=runtime/ocamlrun promote
|
$(MAKE) CAMLRUN=runtime/ocamlrun$(EXE) promote
|
||||||
# Rebuild the core system
|
# Rebuild the core system
|
||||||
$(MAKE) partialclean
|
$(MAKE) partialclean
|
||||||
$(MAKE) core
|
$(MAKE) core
|
||||||
|
@ -293,6 +300,7 @@ flexdll: flexdll/Makefile flexlink
|
||||||
MSVC_DETECT=0 CHAINS=$(FLEXDLL_CHAIN) NATDYNLINK=false support
|
MSVC_DETECT=0 CHAINS=$(FLEXDLL_CHAIN) NATDYNLINK=false support
|
||||||
|
|
||||||
# Bootstrapping flexlink - leaves a bytecode image of flexlink.exe in flexdll/
|
# Bootstrapping flexlink - leaves a bytecode image of flexlink.exe in flexdll/
|
||||||
|
FLEXLINK_OCAMLOPT = ../boot/ocamlrun$(EXE) ../boot/ocamlc -nostdlib -I ../boot
|
||||||
.PHONY: flexlink
|
.PHONY: flexlink
|
||||||
flexlink: flexdll/Makefile
|
flexlink: flexdll/Makefile
|
||||||
$(MAKE) -C runtime BOOTSTRAPPING_FLEXLINK=yes ocamlrun$(EXE)
|
$(MAKE) -C runtime BOOTSTRAPPING_FLEXLINK=yes ocamlrun$(EXE)
|
||||||
|
@ -302,7 +310,7 @@ flexlink: flexdll/Makefile
|
||||||
cd stdlib && cp $(LIBFILES) ../boot/
|
cd stdlib && cp $(LIBFILES) ../boot/
|
||||||
$(MAKE) -C flexdll MSVC_DETECT=0 OCAML_CONFIG_FILE=../Makefile.config \
|
$(MAKE) -C flexdll MSVC_DETECT=0 OCAML_CONFIG_FILE=../Makefile.config \
|
||||||
CHAINS=$(FLEXDLL_CHAIN) NATDYNLINK=false \
|
CHAINS=$(FLEXDLL_CHAIN) NATDYNLINK=false \
|
||||||
OCAMLOPT="../boot/ocamlrun ../boot/ocamlc -nostdlib -I ../boot" \
|
OCAMLOPT="$(FLEXLINK_OCAMLOPT)" \
|
||||||
flexlink.exe
|
flexlink.exe
|
||||||
$(MAKE) -C runtime clean
|
$(MAKE) -C runtime clean
|
||||||
$(MAKE) partialclean
|
$(MAKE) partialclean
|
||||||
|
@ -311,9 +319,9 @@ flexlink: flexdll/Makefile
|
||||||
flexlink.opt:
|
flexlink.opt:
|
||||||
cd flexdll && \
|
cd flexdll && \
|
||||||
mv flexlink.exe flexlink && \
|
mv flexlink.exe flexlink && \
|
||||||
($(MAKE) OCAML_FLEXLINK="../boot/ocamlrun ./flexlink" MSVC_DETECT=0 \
|
($(MAKE) OCAML_FLEXLINK="../boot/ocamlrun$(EXE) ./flexlink" \
|
||||||
OCAML_CONFIG_FILE=../Makefile.config \
|
MSVC_DETECT=0 OCAML_CONFIG_FILE=../Makefile.config \
|
||||||
OCAMLOPT="../ocamlopt.opt -nostdlib -I ../stdlib" \
|
OCAMLOPT="../ocamlopt.opt$(EXE) -nostdlib -I ../stdlib" \
|
||||||
flexlink.exe || \
|
flexlink.exe || \
|
||||||
(mv flexlink flexlink.exe && false)) && \
|
(mv flexlink flexlink.exe && false)) && \
|
||||||
mv flexlink.exe flexlink.opt && \
|
mv flexlink.exe flexlink.opt && \
|
||||||
|
@ -345,13 +353,14 @@ install:
|
||||||
VERSION \
|
VERSION \
|
||||||
"$(INSTALL_LIBDIR)"
|
"$(INSTALL_LIBDIR)"
|
||||||
$(MAKE) -C runtime install
|
$(MAKE) -C runtime install
|
||||||
$(INSTALL_PROG) ocaml "$(INSTALL_BINDIR)/ocaml$(EXE)"
|
$(INSTALL_PROG) ocaml$(EXE) "$(INSTALL_BINDIR)/ocaml$(EXE)"
|
||||||
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
||||||
$(INSTALL_PROG) ocamlc "$(INSTALL_BINDIR)/ocamlc.byte$(EXE)"
|
$(INSTALL_PROG) ocamlc$(EXE) "$(INSTALL_BINDIR)/ocamlc.byte$(EXE)"
|
||||||
endif
|
endif
|
||||||
$(MAKE) -C stdlib install
|
$(MAKE) -C stdlib install
|
||||||
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
||||||
$(INSTALL_PROG) lex/ocamllex "$(INSTALL_BINDIR)/ocamllex.byte$(EXE)"
|
$(INSTALL_PROG) lex/ocamllex$(EXE) \
|
||||||
|
"$(INSTALL_BINDIR)/ocamllex.byte$(EXE)"
|
||||||
endif
|
endif
|
||||||
$(INSTALL_PROG) yacc/ocamlyacc$(EXE) "$(INSTALL_BINDIR)/ocamlyacc$(EXE)"
|
$(INSTALL_PROG) yacc/ocamlyacc$(EXE) "$(INSTALL_BINDIR)/ocamlyacc$(EXE)"
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) \
|
||||||
|
@ -382,7 +391,7 @@ endif
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) \
|
||||||
$(BYTESTART) $(TOPLEVELSTART) \
|
$(BYTESTART) $(TOPLEVELSTART) \
|
||||||
"$(INSTALL_COMPLIBDIR)"
|
"$(INSTALL_COMPLIBDIR)"
|
||||||
$(INSTALL_PROG) expunge "$(INSTALL_LIBDIR)/expunge$(EXE)"
|
$(INSTALL_PROG) $(expunge) "$(INSTALL_LIBDIR)/$(expunge)"
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) \
|
||||||
toplevel/topdirs.cmi \
|
toplevel/topdirs.cmi \
|
||||||
"$(INSTALL_LIBDIR)"
|
"$(INSTALL_LIBDIR)"
|
||||||
|
@ -413,13 +422,13 @@ ifeq "$(UNIX_OR_WIN32)" "win32"
|
||||||
endif
|
endif
|
||||||
$(INSTALL_DATA) Makefile.config "$(INSTALL_LIBDIR)/Makefile.config"
|
$(INSTALL_DATA) Makefile.config "$(INSTALL_LIBDIR)/Makefile.config"
|
||||||
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
||||||
if test -f ocamlopt; then $(MAKE) installopt; else \
|
if test -f ocamlopt$(EXE); then $(MAKE) installopt; else \
|
||||||
cd "$(INSTALL_BINDIR)"; \
|
cd "$(INSTALL_BINDIR)"; \
|
||||||
$(LN) ocamlc.byte$(EXE) ocamlc$(EXE); \
|
$(LN) ocamlc.byte$(EXE) ocamlc$(EXE); \
|
||||||
$(LN) ocamllex.byte$(EXE) ocamllex$(EXE); \
|
$(LN) ocamllex.byte$(EXE) ocamllex$(EXE); \
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if test -f ocamlopt; then $(MAKE) installopt; fi
|
if test -f ocamlopt$(EXE); then $(MAKE) installopt; fi
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Installation of the native-code compiler
|
# Installation of the native-code compiler
|
||||||
|
@ -427,7 +436,7 @@ endif
|
||||||
installopt:
|
installopt:
|
||||||
$(MAKE) -C runtime installopt
|
$(MAKE) -C runtime installopt
|
||||||
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
||||||
$(INSTALL_PROG) ocamlopt "$(INSTALL_BINDIR)/ocamlopt.byte$(EXE)"
|
$(INSTALL_PROG) ocamlopt$(EXE) "$(INSTALL_BINDIR)/ocamlopt.byte$(EXE)"
|
||||||
endif
|
endif
|
||||||
$(MAKE) -C stdlib installopt
|
$(MAKE) -C stdlib installopt
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) \
|
||||||
|
@ -485,27 +494,28 @@ endif
|
||||||
$(MAKE) -C otherlibs/$$i installopt || exit $$?; \
|
$(MAKE) -C otherlibs/$$i installopt || exit $$?; \
|
||||||
done
|
done
|
||||||
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
||||||
if test -f ocamlopt.opt ; then $(MAKE) installoptopt; else \
|
if test -f ocamlopt.opt$(EXE); then $(MAKE) installoptopt; else \
|
||||||
cd "$(INSTALL_BINDIR)"; \
|
cd "$(INSTALL_BINDIR)"; \
|
||||||
$(LN) ocamlc.byte$(EXE) ocamlc$(EXE); \
|
$(LN) ocamlc.byte$(EXE) ocamlc$(EXE); \
|
||||||
$(LN) ocamlopt.byte$(EXE) ocamlopt$(EXE); \
|
$(LN) ocamlopt.byte$(EXE) ocamlopt$(EXE); \
|
||||||
$(LN) ocamllex.byte$(EXE) ocamllex$(EXE); \
|
$(LN) ocamllex.byte$(EXE) ocamllex$(EXE); \
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if test -f ocamlopt.opt ; then $(MAKE) installoptopt; fi
|
if test -f ocamlopt.opt$(EXE); then $(MAKE) installoptopt; fi
|
||||||
endif
|
endif
|
||||||
$(MAKE) -C tools installopt
|
$(MAKE) -C tools installopt
|
||||||
if test -f ocamlopt.opt -a -f flexdll/flexlink.opt ; then \
|
if test -f ocamlopt.opt$(EXE) -a -f flexdll/flexlink.opt ; then \
|
||||||
$(INSTALL_PROG) \
|
$(INSTALL_PROG) \
|
||||||
flexdll/flexlink.opt "$(INSTALL_BINDIR)/flexlink$(EXE)" ; \
|
flexdll/flexlink.opt "$(INSTALL_BINDIR)/flexlink$(EXE)" ; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
.PHONY: installoptopt
|
.PHONY: installoptopt
|
||||||
installoptopt:
|
installoptopt:
|
||||||
$(INSTALL_PROG) ocamlc.opt "$(INSTALL_BINDIR)/ocamlc.opt$(EXE)"
|
$(INSTALL_PROG) ocamlc.opt$(EXE) "$(INSTALL_BINDIR)/ocamlc.opt$(EXE)"
|
||||||
$(INSTALL_PROG) ocamlopt.opt "$(INSTALL_BINDIR)/ocamlopt.opt$(EXE)"
|
$(INSTALL_PROG) ocamlopt.opt$(EXE) \
|
||||||
|
"$(INSTALL_BINDIR)/ocamlopt.opt$(EXE)"
|
||||||
$(INSTALL_PROG) \
|
$(INSTALL_PROG) \
|
||||||
lex/ocamllex.opt "$(INSTALL_BINDIR)/ocamllex.opt$(EXE)"
|
lex/ocamllex.opt$(EXE) "$(INSTALL_BINDIR)/ocamllex.opt$(EXE)"
|
||||||
cd "$(INSTALL_BINDIR)"; \
|
cd "$(INSTALL_BINDIR)"; \
|
||||||
$(LN) ocamlc.opt$(EXE) ocamlc$(EXE); \
|
$(LN) ocamlc.opt$(EXE) ocamlc$(EXE); \
|
||||||
$(LN) ocamlopt.opt$(EXE) ocamlopt$(EXE); \
|
$(LN) ocamlopt.opt$(EXE) ocamlopt$(EXE); \
|
||||||
|
@ -575,23 +585,25 @@ manual-pregen: opt.opt
|
||||||
|
|
||||||
# The clean target
|
# The clean target
|
||||||
clean:: partialclean
|
clean:: partialclean
|
||||||
|
rm -f $(programs) $(programs:=.exe)
|
||||||
|
|
||||||
# The bytecode compiler
|
# The bytecode compiler
|
||||||
|
|
||||||
ocamlc: compilerlibs/ocamlcommon.cma compilerlibs/ocamlbytecomp.cma $(BYTESTART)
|
ocamlc$(EXE): compilerlibs/ocamlcommon.cma \
|
||||||
|
compilerlibs/ocamlbytecomp.cma $(BYTESTART)
|
||||||
$(CAMLC) $(LINKFLAGS) -compat-32 -o $@ $^
|
$(CAMLC) $(LINKFLAGS) -compat-32 -o $@ $^
|
||||||
|
|
||||||
partialclean::
|
partialclean::
|
||||||
rm -rf ocamlc
|
rm -rf ocamlc$(EXE)
|
||||||
|
|
||||||
# The native-code compiler
|
# The native-code compiler
|
||||||
|
|
||||||
ocamlopt: compilerlibs/ocamlcommon.cma compilerlibs/ocamloptcomp.cma \
|
ocamlopt$(EXE): compilerlibs/ocamlcommon.cma compilerlibs/ocamloptcomp.cma \
|
||||||
$(OPTSTART)
|
$(OPTSTART)
|
||||||
$(CAMLC) $(LINKFLAGS) -o $@ $^
|
$(CAMLC) $(LINKFLAGS) -o $@ $^
|
||||||
|
|
||||||
partialclean::
|
partialclean::
|
||||||
rm -f ocamlopt
|
rm -f ocamlopt$(EXE)
|
||||||
|
|
||||||
# The toplevel
|
# The toplevel
|
||||||
|
|
||||||
|
@ -604,11 +616,11 @@ ocaml_dependencies := \
|
||||||
ocaml.tmp: $(ocaml_dependencies)
|
ocaml.tmp: $(ocaml_dependencies)
|
||||||
$(CAMLC) $(LINKFLAGS) -linkall -o $@ $^
|
$(CAMLC) $(LINKFLAGS) -linkall -o $@ $^
|
||||||
|
|
||||||
ocaml: expunge ocaml.tmp
|
ocaml$(EXE): $(expunge) ocaml.tmp
|
||||||
- $(CAMLRUN) $^ $@ $(PERVASIVES)
|
- $(CAMLRUN) $^ $@ $(PERVASIVES)
|
||||||
|
|
||||||
partialclean::
|
partialclean::
|
||||||
rm -f ocaml
|
rm -f ocaml$(EXE)
|
||||||
|
|
||||||
.PHONY: runtop
|
.PHONY: runtop
|
||||||
runtop:
|
runtop:
|
||||||
|
@ -644,21 +656,23 @@ beforedepend:: parsing/lexer.ml
|
||||||
|
|
||||||
# The bytecode compiler compiled with the native-code compiler
|
# The bytecode compiler compiled with the native-code compiler
|
||||||
|
|
||||||
ocamlc.opt: compilerlibs/ocamlcommon.cmxa compilerlibs/ocamlbytecomp.cmxa \
|
ocamlc.opt$(EXE): compilerlibs/ocamlcommon.cmxa \
|
||||||
$(BYTESTART:.cmo=.cmx)
|
compilerlibs/ocamlbytecomp.cmxa $(BYTESTART:.cmo=.cmx)
|
||||||
$(CAMLOPT_CMD) $(LINKFLAGS) -o $@ $^ -cclib "$(BYTECCLIBS)"
|
$(CAMLOPT_CMD) $(LINKFLAGS) -o $@ $^ -cclib "$(BYTECCLIBS)"
|
||||||
|
|
||||||
partialclean::
|
partialclean::
|
||||||
rm -f ocamlc.opt
|
rm -f ocamlc.opt$(EXE)
|
||||||
|
|
||||||
# The native-code compiler compiled with itself
|
# The native-code compiler compiled with itself
|
||||||
|
|
||||||
ocamlopt.opt: compilerlibs/ocamlcommon.cmxa compilerlibs/ocamloptcomp.cmxa \
|
ocamlopt.opt$(EXE): \
|
||||||
|
compilerlibs/ocamlcommon.cmxa \
|
||||||
|
compilerlibs/ocamloptcomp.cmxa \
|
||||||
$(OPTSTART:.cmo=.cmx)
|
$(OPTSTART:.cmo=.cmx)
|
||||||
$(CAMLOPT_CMD) $(LINKFLAGS) -o $@ $^
|
$(CAMLOPT_CMD) $(LINKFLAGS) -o $@ $^
|
||||||
|
|
||||||
partialclean::
|
partialclean::
|
||||||
rm -f ocamlopt.opt
|
rm -f ocamlopt.opt$(EXE)
|
||||||
|
|
||||||
# The predefined exceptions and primitives
|
# The predefined exceptions and primitives
|
||||||
|
|
||||||
|
@ -696,9 +710,11 @@ asmcomp/scheduling.ml: asmcomp/$(ARCH)/scheduling.ml
|
||||||
|
|
||||||
# Preprocess the code emitters
|
# Preprocess the code emitters
|
||||||
|
|
||||||
asmcomp/emit.ml: asmcomp/$(ARCH)/emit.mlp tools/cvt_emit
|
cvt_emit := tools/cvt_emit$(EXE)
|
||||||
|
|
||||||
|
asmcomp/emit.ml: asmcomp/$(ARCH)/emit.mlp $(cvt_emit)
|
||||||
echo \# 1 \"$(ARCH)/emit.mlp\" > $@
|
echo \# 1 \"$(ARCH)/emit.mlp\" > $@
|
||||||
$(CAMLRUN) tools/cvt_emit < $< >> $@ \
|
$(CAMLRUN) $(cvt_emit) < $< >> $@ \
|
||||||
|| { rm -f $@; exit 2; }
|
|| { rm -f $@; exit 2; }
|
||||||
|
|
||||||
partialclean::
|
partialclean::
|
||||||
|
@ -706,17 +722,17 @@ partialclean::
|
||||||
|
|
||||||
beforedepend:: asmcomp/emit.ml
|
beforedepend:: asmcomp/emit.ml
|
||||||
|
|
||||||
tools/cvt_emit: tools/cvt_emit.mll
|
$(cvt_emit): tools/cvt_emit.mll
|
||||||
$(MAKE) -C tools cvt_emit
|
$(MAKE) -C tools cvt_emit
|
||||||
|
|
||||||
# The "expunge" utility
|
# The "expunge" utility
|
||||||
|
|
||||||
expunge: compilerlibs/ocamlcommon.cma compilerlibs/ocamlbytecomp.cma \
|
$(expunge): compilerlibs/ocamlcommon.cma compilerlibs/ocamlbytecomp.cma \
|
||||||
toplevel/expunge.cmo
|
toplevel/expunge.cmo
|
||||||
$(CAMLC) $(LINKFLAGS) -o $@ $^
|
$(CAMLC) $(LINKFLAGS) -o $@ $^
|
||||||
|
|
||||||
partialclean::
|
partialclean::
|
||||||
rm -f expunge
|
rm -f $(expunge)
|
||||||
|
|
||||||
# The runtime system for the bytecode compiler
|
# The runtime system for the bytecode compiler
|
||||||
|
|
||||||
|
@ -766,7 +782,8 @@ library: ocamlc
|
||||||
|
|
||||||
.PHONY: library-cross
|
.PHONY: library-cross
|
||||||
library-cross:
|
library-cross:
|
||||||
$(MAKE) -C stdlib $(BOOT_FLEXLINK_CMD) CAMLRUN=../runtime/ocamlrun all
|
$(MAKE) -C stdlib \
|
||||||
|
$(BOOT_FLEXLINK_CMD) CAMLRUN=../runtime/ocamlrun$(EXE) all
|
||||||
|
|
||||||
.PHONY: libraryopt
|
.PHONY: libraryopt
|
||||||
libraryopt:
|
libraryopt:
|
||||||
|
@ -983,14 +1000,6 @@ endif
|
||||||
|
|
||||||
# The native toplevel
|
# The native toplevel
|
||||||
|
|
||||||
# When the native toplevel executable has an extension (e.g. ".exe"),
|
|
||||||
# provide a phony 'ocamlnat' synonym
|
|
||||||
|
|
||||||
ifneq ($(EXE),)
|
|
||||||
.PHONY: ocamlnat
|
|
||||||
ocamlnat: ocamlnat$(EXE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ocamlnat$(EXE): compilerlibs/ocamlcommon.cmxa compilerlibs/ocamloptcomp.cmxa \
|
ocamlnat$(EXE): compilerlibs/ocamlcommon.cmxa compilerlibs/ocamloptcomp.cmxa \
|
||||||
compilerlibs/ocamlbytecomp.cmxa \
|
compilerlibs/ocamlbytecomp.cmxa \
|
||||||
otherlibs/dynlink/dynlink.cmxa \
|
otherlibs/dynlink/dynlink.cmxa \
|
||||||
|
@ -1005,13 +1014,15 @@ toplevel/opttoploop.cmx: otherlibs/dynlink/dynlink.cmxa
|
||||||
|
|
||||||
# The numeric opcodes
|
# The numeric opcodes
|
||||||
|
|
||||||
bytecomp/opcodes.ml: runtime/caml/instruct.h tools/make_opcodes
|
make_opcodes := tools/make_opcodes$(EXE)
|
||||||
runtime/ocamlrun tools/make_opcodes -opcodes < $< > $@
|
|
||||||
|
bytecomp/opcodes.ml: runtime/caml/instruct.h $(make_opcodes)
|
||||||
|
runtime/ocamlrun$(EXE) $(make_opcodes) -opcodes < $< > $@
|
||||||
|
|
||||||
bytecomp/opcodes.mli: bytecomp/opcodes.ml
|
bytecomp/opcodes.mli: bytecomp/opcodes.ml
|
||||||
$(CAMLC) -i $< > $@
|
$(CAMLC) -i $< > $@
|
||||||
|
|
||||||
tools/make_opcodes: tools/make_opcodes.mll
|
$(make_opcodes): tools/make_opcodes.mll
|
||||||
$(MAKE) -C tools make_opcodes
|
$(MAKE) -C tools make_opcodes
|
||||||
|
|
||||||
partialclean::
|
partialclean::
|
||||||
|
@ -1065,7 +1076,6 @@ distclean: clean
|
||||||
rm -f config.log config.status libtool
|
rm -f config.log config.status libtool
|
||||||
rm -f tools/eventlog_metadata
|
rm -f tools/eventlog_metadata
|
||||||
rm -f tools/*.bak
|
rm -f tools/*.bak
|
||||||
rm -f ocaml ocamlc
|
|
||||||
rm -f testsuite/_log*
|
rm -f testsuite/_log*
|
||||||
|
|
||||||
include .depend
|
include .depend
|
||||||
|
|
|
@ -34,10 +34,10 @@ or rebuilding it (or `touch`-ing it) if you want it used.), \
|
||||||
ok)
|
ok)
|
||||||
|
|
||||||
choose_best = $(strip $(if \
|
choose_best = $(strip $(if \
|
||||||
$(and $(wildcard $(ROOTDIR)/$1.opt),$(strip \
|
$(and $(wildcard $(ROOTDIR)/$1.opt$(EXE)),$(strip \
|
||||||
$(call check_not_stale,$1,$1.opt))), \
|
$(call check_not_stale,$1$(EXE),$1.opt$(EXE)))), \
|
||||||
$(ROOTDIR)/$1.opt, \
|
$(ROOTDIR)/$1.opt$(EXE), \
|
||||||
$(CAMLRUN) $(ROOTDIR)/$1))
|
$(CAMLRUN) $(ROOTDIR)/$1$(EXE)))
|
||||||
|
|
||||||
BEST_OCAMLC := $(call choose_best,ocamlc)
|
BEST_OCAMLC := $(call choose_best,ocamlc)
|
||||||
BEST_OCAMLOPT := $(call choose_best,ocamlopt)
|
BEST_OCAMLOPT := $(call choose_best,ocamlopt)
|
||||||
|
@ -50,7 +50,7 @@ BEST_OCAMLLEX := $(call choose_best,lex/ocamllex)
|
||||||
# bootrap-compiler and host-compiler object files, as ocamldep only
|
# bootrap-compiler and host-compiler object files, as ocamldep only
|
||||||
# produces text output.
|
# produces text output.
|
||||||
BEST_OCAMLDEP := $(strip $(if \
|
BEST_OCAMLDEP := $(strip $(if \
|
||||||
$(and $(wildcard $(ROOTDIR)/ocamlc.opt),$(strip \
|
$(and $(wildcard $(ROOTDIR)/ocamlc.opt$(EXE)),$(strip \
|
||||||
$(call check_not_stale,boot/ocamlc,ocamlc.opt))), \
|
$(call check_not_stale,boot/ocamlc,ocamlc.opt$(EXE)))), \
|
||||||
$(ROOTDIR)/ocamlc.opt -depend, \
|
$(ROOTDIR)/ocamlc.opt$(EXE) -depend, \
|
||||||
$(BOOT_OCAMLC) -depend))
|
$(BOOT_OCAMLC) -depend))
|
||||||
|
|
|
@ -40,7 +40,7 @@ FLEXDLL_SUBMODULE_PRESENT =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Use boot/ocamlc.opt if available
|
# Use boot/ocamlc.opt if available
|
||||||
CAMLRUN ?= $(ROOTDIR)/boot/ocamlrun
|
CAMLRUN ?= $(ROOTDIR)/boot/ocamlrun$(EXE)
|
||||||
ifeq (0,$(shell \
|
ifeq (0,$(shell \
|
||||||
test $(ROOTDIR)/boot/ocamlc.opt -nt $(ROOTDIR)/boot/ocamlc; \
|
test $(ROOTDIR)/boot/ocamlc.opt -nt $(ROOTDIR)/boot/ocamlc; \
|
||||||
echo $$?))
|
echo $$?))
|
||||||
|
@ -117,3 +117,12 @@ endif
|
||||||
|
|
||||||
$(DEPDIR):
|
$(DEPDIR):
|
||||||
$(MKDIR) $@
|
$(MKDIR) $@
|
||||||
|
|
||||||
|
# When executable files have an extension (e.g. ".exe"),
|
||||||
|
# provide phony synonyms
|
||||||
|
define PROGRAM_SYNONYM
|
||||||
|
ifneq ($(EXE),)
|
||||||
|
.PHONY: $(1)
|
||||||
|
$(1): $(1)$(EXE)
|
||||||
|
endif
|
||||||
|
endef # PROGRAM_SYNONYM
|
||||||
|
|
|
@ -77,7 +77,7 @@ else
|
||||||
CUSTOM =
|
CUSTOM =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OCAML=$(OCAMLRUN) $(OTOPDIR)/ocaml $(OCFLAGS) -noinit
|
OCAML=$(OCAMLRUN) $(OTOPDIR)/ocaml$(EXE) $(OCFLAGS) -noinit
|
||||||
ifeq "$(FLEXLINK)" ""
|
ifeq "$(FLEXLINK)" ""
|
||||||
FLEXLINK_PREFIX=
|
FLEXLINK_PREFIX=
|
||||||
else
|
else
|
||||||
|
@ -85,24 +85,24 @@ else
|
||||||
FLEXLINK_PREFIX=
|
FLEXLINK_PREFIX=
|
||||||
else
|
else
|
||||||
EMPTY=
|
EMPTY=
|
||||||
FLEXLINK_PREFIX=OCAML_FLEXLINK="$(WINTOPDIR)/boot/ocamlrun \
|
FLEXLINK_PREFIX=OCAML_FLEXLINK="$(WINTOPDIR)/boot/ocamlrun$(EXE) \
|
||||||
$(WINTOPDIR)/flexdll/flexlink.exe" $(EMPTY)
|
$(WINTOPDIR)/flexdll/flexlink.exe" $(EMPTY)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
OCAMLC=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/ocamlc $(CUSTOM) $(OCFLAGS) \
|
OCAMLC=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/ocamlc$(EXE) \
|
||||||
|
$(CUSTOM) $(OCFLAGS) $(RUNTIME_VARIANT)
|
||||||
|
OCAMLOPT=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/ocamlopt$(EXE) $(OCFLAGS) \
|
||||||
$(RUNTIME_VARIANT)
|
$(RUNTIME_VARIANT)
|
||||||
OCAMLOPT=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/ocamlopt $(OCFLAGS) \
|
OCAMLDOC=$(OCAMLRUN) $(OTOPDIR)/ocamldoc/ocamldoc$(EXE)
|
||||||
$(RUNTIME_VARIANT)
|
OCAMLLEX=$(OCAMLRUN) $(OTOPDIR)/lex/ocamllex$(EXE)
|
||||||
OCAMLDOC=$(OCAMLRUN) $(OTOPDIR)/ocamldoc/ocamldoc
|
OCAMLMKLIB=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/tools/ocamlmklib$(EXE) \
|
||||||
OCAMLLEX=$(OCAMLRUN) $(OTOPDIR)/lex/ocamllex
|
|
||||||
OCAMLMKLIB=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/tools/ocamlmklib \
|
|
||||||
-ocamlc "$(OTOPDIR)/runtime/ocamlrun$(USE_RUNTIME)$(EXE) \
|
-ocamlc "$(OTOPDIR)/runtime/ocamlrun$(USE_RUNTIME)$(EXE) \
|
||||||
$(OTOPDIR)/ocamlc $(OCFLAGS) $(RUNTIME_VARIANT)" \
|
$(OTOPDIR)/ocamlc$(EXE) $(OCFLAGS) $(RUNTIME_VARIANT)" \
|
||||||
-ocamlopt "$(OTOPDIR)/runtime/ocamlrun$(USE_RUNTIME)$(EXE) \
|
-ocamlopt "$(OTOPDIR)/runtime/ocamlrun$(USE_RUNTIME)$(EXE) \
|
||||||
$(OTOPDIR)/ocamlopt $(OCFLAGS) $(RUNTIME_VARIANT)"
|
$(OTOPDIR)/ocamlopt$(EXE) $(OCFLAGS) $(RUNTIME_VARIANT)"
|
||||||
OCAMLYACC=$(TOPDIR)/yacc/ocamlyacc$(EXE)
|
OCAMLYACC=$(TOPDIR)/yacc/ocamlyacc$(EXE)
|
||||||
DUMPOBJ=$(OCAMLRUN) $(OTOPDIR)/tools/dumpobj
|
DUMPOBJ=$(OCAMLRUN) $(OTOPDIR)/tools/dumpobj$(EXE)
|
||||||
OBJINFO=$(OCAMLRUN) $(OTOPDIR)/tools/ocamlobjinfo
|
OBJINFO=$(OCAMLRUN) $(OTOPDIR)/tools/ocamlobjinfo$(EXE)
|
||||||
|
|
||||||
#FORTRAN_COMPILER=
|
#FORTRAN_COMPILER=
|
||||||
#FORTRAN_LIBRARY=
|
#FORTRAN_LIBRARY=
|
||||||
|
|
14
lex/Makefile
14
lex/Makefile
|
@ -19,11 +19,11 @@ ROOTDIR = ..
|
||||||
|
|
||||||
include $(ROOTDIR)/Makefile.common
|
include $(ROOTDIR)/Makefile.common
|
||||||
|
|
||||||
CAMLYACC ?= $(ROOTDIR)/yacc/ocamlyacc
|
CAMLYACC ?= $(ROOTDIR)/yacc/ocamlyacc$(EXE)
|
||||||
|
|
||||||
CAMLC = $(BOOT_OCAMLC) -strict-sequence -nostdlib \
|
CAMLC = $(BOOT_OCAMLC) -strict-sequence -nostdlib \
|
||||||
-I $(ROOTDIR)/boot -use-prims $(ROOTDIR)/runtime/primitives
|
-I $(ROOTDIR)/boot -use-prims $(ROOTDIR)/runtime/primitives
|
||||||
CAMLOPT = $(CAMLRUN) $(ROOTDIR)/ocamlopt -nostdlib -I $(ROOTDIR)/stdlib
|
CAMLOPT = $(CAMLRUN) $(ROOTDIR)/ocamlopt$(EXE) -nostdlib -I $(ROOTDIR)/stdlib
|
||||||
COMPFLAGS = -absname -w +a-4-9-41-42-44-45-48 -warn-error A \
|
COMPFLAGS = -absname -w +a-4-9-41-42-44-45-48 -warn-error A \
|
||||||
-safe-string -strict-sequence -strict-formats -bin-annot
|
-safe-string -strict-sequence -strict-formats -bin-annot
|
||||||
LINKFLAGS =
|
LINKFLAGS =
|
||||||
|
@ -36,19 +36,23 @@ DEPINCLUDES =
|
||||||
OBJS=cset.cmo syntax.cmo parser.cmo lexer.cmo table.cmo lexgen.cmo \
|
OBJS=cset.cmo syntax.cmo parser.cmo lexer.cmo table.cmo lexgen.cmo \
|
||||||
compact.cmo common.cmo output.cmo outputbis.cmo main.cmo
|
compact.cmo common.cmo output.cmo outputbis.cmo main.cmo
|
||||||
|
|
||||||
|
programs := ocamllex ocamllex.opt
|
||||||
|
|
||||||
|
$(foreach program, $(programs), $(eval $(call PROGRAM_SYNONYM,$(program))))
|
||||||
|
|
||||||
.PHONY: all allopt opt.opt # allopt and opt.opt are synonyms
|
.PHONY: all allopt opt.opt # allopt and opt.opt are synonyms
|
||||||
all: ocamllex
|
all: ocamllex
|
||||||
allopt: ocamllex.opt
|
allopt: ocamllex.opt
|
||||||
opt.opt: allopt
|
opt.opt: allopt
|
||||||
|
|
||||||
ocamllex: $(OBJS)
|
ocamllex$(EXE): $(OBJS)
|
||||||
$(CAMLC) $(LINKFLAGS) -compat-32 -o $@ $^
|
$(CAMLC) $(LINKFLAGS) -compat-32 -o $@ $^
|
||||||
|
|
||||||
ocamllex.opt: $(OBJS:.cmo=.cmx)
|
ocamllex.opt$(EXE): $(OBJS:.cmo=.cmx)
|
||||||
$(CAMLOPT_CMD) -o $@ $^
|
$(CAMLOPT_CMD) -o $@ $^
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
rm -f ocamllex ocamllex.opt
|
rm -f $(programs) $(programs:=.exe)
|
||||||
rm -f *.cmo *.cmi *.cmx *.cmt *.cmti *.o *.obj
|
rm -f *.cmo *.cmi *.cmx *.cmt *.cmti *.o *.obj
|
||||||
|
|
||||||
parser.ml parser.mli: parser.mly
|
parser.ml parser.mli: parser.mly
|
||||||
|
|
|
@ -18,8 +18,8 @@ ROOTDIR = ..
|
||||||
include $(ROOTDIR)/Makefile.common
|
include $(ROOTDIR)/Makefile.common
|
||||||
include $(ROOTDIR)/Makefile.best_binaries
|
include $(ROOTDIR)/Makefile.best_binaries
|
||||||
|
|
||||||
OCAMLRUN ?= $(ROOTDIR)/boot/ocamlrun
|
OCAMLRUN ?= $(ROOTDIR)/boot/ocamlrun$(EXE)
|
||||||
OCAMLYACC ?= $(ROOTDIR)/yacc/ocamlyacc
|
OCAMLYACC ?= $(ROOTDIR)/yacc/ocamlyacc$(EXE)
|
||||||
|
|
||||||
STDLIBFLAGS = -nostdlib -I $(ROOTDIR)/stdlib
|
STDLIBFLAGS = -nostdlib -I $(ROOTDIR)/stdlib
|
||||||
OCAMLC = $(BEST_OCAMLC) $(STDLIBFLAGS)
|
OCAMLC = $(BEST_OCAMLC) $(STDLIBFLAGS)
|
||||||
|
@ -32,8 +32,10 @@ OCAMLLEX = $(BEST_OCAMLLEX)
|
||||||
##############
|
##############
|
||||||
|
|
||||||
CP=cp
|
CP=cp
|
||||||
OCAMLDOC=ocamldoc
|
OCAMLDOC=ocamldoc$(EXE)
|
||||||
OCAMLDOC_OPT=$(OCAMLDOC).opt
|
OCAMLDOC_OPT=ocamldoc.opt$(EXE)
|
||||||
|
|
||||||
|
programs := ocamldoc ocamldoc.opt
|
||||||
|
|
||||||
# TODO: clarify whether the following really needs to be that complicated
|
# TODO: clarify whether the following really needs to be that complicated
|
||||||
ifeq "$(UNIX_OR_WIN32)" "unix"
|
ifeq "$(UNIX_OR_WIN32)" "unix"
|
||||||
|
@ -202,9 +204,13 @@ OCAMLDOC_LIBRARIES = ocamlcommon unix str dynlink
|
||||||
OCAMLDOC_BCLIBRARIES = $(OCAMLDOC_LIBRARIES:%=%.cma)
|
OCAMLDOC_BCLIBRARIES = $(OCAMLDOC_LIBRARIES:%=%.cma)
|
||||||
OCAMLDOC_NCLIBRARIES = $(OCAMLDOC_LIBRARIES:%=%.cmxa)
|
OCAMLDOC_NCLIBRARIES = $(OCAMLDOC_LIBRARIES:%=%.cmxa)
|
||||||
|
|
||||||
|
$(eval $(call PROGRAM_SYNONYM,ocamldoc))
|
||||||
|
|
||||||
$(OCAMLDOC): $(EXECMOFILES)
|
$(OCAMLDOC): $(EXECMOFILES)
|
||||||
$(OCAMLC) -o $@ -linkall $(LINKFLAGS) $(OCAMLDOC_BCLIBRARIES) $^
|
$(OCAMLC) -o $@ -linkall $(LINKFLAGS) $(OCAMLDOC_BCLIBRARIES) $^
|
||||||
|
|
||||||
|
$(eval $(call PROGRAM_SYNONYM,ocamldoc.opt))
|
||||||
|
|
||||||
$(OCAMLDOC_OPT): $(EXECMXFILES)
|
$(OCAMLDOC_OPT): $(EXECMXFILES)
|
||||||
$(OCAMLOPT_CMD) -o $@ -linkall $(LINKFLAGS) $(OCAMLDOC_NCLIBRARIES) $^
|
$(OCAMLOPT_CMD) -o $@ -linkall $(LINKFLAGS) $(OCAMLDOC_NCLIBRARIES) $^
|
||||||
|
|
||||||
|
@ -288,7 +294,7 @@ install:
|
||||||
$(MKDIR) "$(INSTALL_BINDIR)"
|
$(MKDIR) "$(INSTALL_BINDIR)"
|
||||||
$(MKDIR) "$(INSTALL_LIBDIR)/ocamldoc"
|
$(MKDIR) "$(INSTALL_LIBDIR)/ocamldoc"
|
||||||
$(MKDIR) "$(INSTALL_MANODIR)"
|
$(MKDIR) "$(INSTALL_MANODIR)"
|
||||||
$(INSTALL_PROG) $(OCAMLDOC) "$(INSTALL_BINDIR)/$(OCAMLDOC)$(EXE)"
|
$(INSTALL_PROG) $(OCAMLDOC) "$(INSTALL_BINDIR)/$(OCAMLDOC)"
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) \
|
||||||
ocamldoc.hva *.cmi $(OCAMLDOC_LIBCMA) \
|
ocamldoc.hva *.cmi $(OCAMLDOC_LIBCMA) \
|
||||||
"$(INSTALL_LIBDIR)/ocamldoc"
|
"$(INSTALL_LIBDIR)/ocamldoc"
|
||||||
|
@ -316,7 +322,7 @@ installopt_really:
|
||||||
$(MKDIR) "$(INSTALL_BINDIR)"
|
$(MKDIR) "$(INSTALL_BINDIR)"
|
||||||
$(MKDIR) "$(INSTALL_LIBDIR)/ocamldoc"
|
$(MKDIR) "$(INSTALL_LIBDIR)/ocamldoc"
|
||||||
$(INSTALL_PROG) \
|
$(INSTALL_PROG) \
|
||||||
$(OCAMLDOC_OPT) "$(INSTALL_BINDIR)/$(OCAMLDOC_OPT)$(EXE)"
|
$(OCAMLDOC_OPT) "$(INSTALL_BINDIR)/$(OCAMLDOC_OPT)"
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) \
|
||||||
$(OCAMLDOC_LIBCMIS) \
|
$(OCAMLDOC_LIBCMIS) \
|
||||||
"$(INSTALL_LIBDIR)/ocamldoc"
|
"$(INSTALL_LIBDIR)/ocamldoc"
|
||||||
|
@ -487,7 +493,8 @@ odoc:
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
rm -f \#*\#
|
rm -f \#*\#
|
||||||
rm -f $(OCAMLDOC) $(OCAMLDOC_OPT) *.cma *.cmxa *.cmo *.cmi *.cmx *.cmt *.cmti *.a *.lib *.o *.obj
|
rm -f $(programs) $(programs:=.exe)
|
||||||
|
rm -f *.cma *.cmxa *.cmo *.cmi *.cmx *.cmt *.cmti *.a *.lib *.o *.obj
|
||||||
rm -f odoc_parser.output odoc_text_parser.output
|
rm -f odoc_parser.output odoc_text_parser.output
|
||||||
rm -f odoc_lexer.ml odoc_text_lexer.ml odoc_see_lexer.ml odoc_ocamlhtml.ml
|
rm -f odoc_lexer.ml odoc_text_lexer.ml odoc_see_lexer.ml odoc_ocamlhtml.ml
|
||||||
rm -f odoc_parser.ml odoc_parser.mli odoc_text_parser.ml odoc_text_parser.mli
|
rm -f odoc_parser.ml odoc_parser.mli odoc_text_parser.ml odoc_text_parser.mli
|
||||||
|
|
|
@ -195,7 +195,7 @@ depincludes :=
|
||||||
|
|
||||||
ocamllex := $(BEST_OCAMLLEX)
|
ocamllex := $(BEST_OCAMLLEX)
|
||||||
|
|
||||||
ocamlyacc := $(ROOTDIR)/yacc/ocamlyacc
|
ocamlyacc := $(ROOTDIR)/yacc/ocamlyacc$(EXE)
|
||||||
|
|
||||||
ocamlcdefaultflags :=
|
ocamlcdefaultflags :=
|
||||||
|
|
||||||
|
@ -213,12 +213,16 @@ compdeps_paths=$(addprefix $(ROOTDIR)/compilerlibs/,$(compdeps_names))
|
||||||
compdeps_byte=$(addsuffix .cma,$(compdeps_paths))
|
compdeps_byte=$(addsuffix .cma,$(compdeps_paths))
|
||||||
compdeps_opt=$(addsuffix .cmxa,$(compdeps_paths))
|
compdeps_opt=$(addsuffix .cmxa,$(compdeps_paths))
|
||||||
|
|
||||||
|
$(eval $(call PROGRAM_SYNONYM,ocamltest))
|
||||||
|
|
||||||
ocamltest$(EXE): $(compdeps_byte) $(bytecode_modules)
|
ocamltest$(EXE): $(compdeps_byte) $(bytecode_modules)
|
||||||
$(ocamlc_cmd) -custom -o $@ $^
|
$(ocamlc_cmd) -custom -o $@ $^
|
||||||
|
|
||||||
%.cmo: %.ml $(compdeps_byte)
|
%.cmo: %.ml $(compdeps_byte)
|
||||||
$(ocamlc) -c $<
|
$(ocamlc) -c $<
|
||||||
|
|
||||||
|
$(eval $(call PROGRAM_SYNONYM,ocamltest.opt))
|
||||||
|
|
||||||
ocamltest.opt$(EXE): $(compdeps_opt) $(native_modules)
|
ocamltest.opt$(EXE): $(compdeps_opt) $(native_modules)
|
||||||
$(ocamlopt_cmd) -o $@ $^
|
$(ocamlopt_cmd) -o $@ $^
|
||||||
|
|
||||||
|
|
|
@ -37,25 +37,26 @@ let ocamlrun =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "runtime"; ocamlrunfile]
|
Filename.make_path [Ocaml_directories.srcdir; "runtime"; ocamlrunfile]
|
||||||
|
|
||||||
let ocamlc =
|
let ocamlc =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "ocamlc"]
|
Filename.make_path [Ocaml_directories.srcdir; Filename.mkexe "ocamlc"]
|
||||||
|
|
||||||
let ocaml =
|
let ocaml =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "ocaml"]
|
Filename.make_path [Ocaml_directories.srcdir; Filename.mkexe "ocaml"]
|
||||||
|
|
||||||
let ocamlc_dot_opt =
|
let ocamlc_dot_opt =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "ocamlc.opt"]
|
Filename.make_path [Ocaml_directories.srcdir; Filename.mkexe "ocamlc.opt"]
|
||||||
|
|
||||||
let ocamlopt =
|
let ocamlopt =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "ocamlopt"]
|
Filename.make_path [Ocaml_directories.srcdir; Filename.mkexe "ocamlopt"]
|
||||||
|
|
||||||
let ocamlopt_dot_opt =
|
let ocamlopt_dot_opt =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "ocamlopt.opt"]
|
Filename.make_path [Ocaml_directories.srcdir; Filename.mkexe "ocamlopt.opt"]
|
||||||
|
|
||||||
let ocamlnat =
|
let ocamlnat =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; Filename.mkexe "ocamlnat"]
|
Filename.make_path [Ocaml_directories.srcdir; Filename.mkexe "ocamlnat"]
|
||||||
|
|
||||||
let cmpbyt =
|
let cmpbyt =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "tools"; "cmpbyt"]
|
Filename.make_path
|
||||||
|
[Ocaml_directories.srcdir; "tools"; Filename.mkexe "cmpbyt"]
|
||||||
|
|
||||||
let expect_test =
|
let expect_test =
|
||||||
Filename.make_path
|
Filename.make_path
|
||||||
|
@ -63,27 +64,32 @@ let expect_test =
|
||||||
Filename.mkexe "expect_test"]
|
Filename.mkexe "expect_test"]
|
||||||
|
|
||||||
let ocamllex =
|
let ocamllex =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "lex"; "ocamllex"]
|
Filename.make_path
|
||||||
|
[Ocaml_directories.srcdir; "lex"; Filename.mkexe "ocamllex"]
|
||||||
|
|
||||||
let ocamlyacc =
|
let ocamlyacc =
|
||||||
Filename.make_path
|
Filename.make_path
|
||||||
[Ocaml_directories.srcdir; "yacc"; Filename.mkexe "ocamlyacc"]
|
[Ocaml_directories.srcdir; "yacc"; Filename.mkexe "ocamlyacc"]
|
||||||
|
|
||||||
let ocamldoc =
|
let ocamldoc =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "ocamldoc"; "ocamldoc"]
|
Filename.make_path
|
||||||
|
[Ocaml_directories.srcdir; "ocamldoc"; Filename.mkexe "ocamldoc"]
|
||||||
|
|
||||||
let ocamldebug =
|
let ocamldebug =
|
||||||
Filename.make_path
|
Filename.make_path
|
||||||
[Ocaml_directories.srcdir; "debugger"; Filename.mkexe "ocamldebug"]
|
[Ocaml_directories.srcdir; "debugger"; Filename.mkexe "ocamldebug"]
|
||||||
|
|
||||||
let ocamlobjinfo =
|
let ocamlobjinfo =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "tools"; "ocamlobjinfo"]
|
Filename.make_path
|
||||||
|
[Ocaml_directories.srcdir; "tools"; Filename.mkexe "ocamlobjinfo"]
|
||||||
|
|
||||||
let ocamlmklib =
|
let ocamlmklib =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "tools"; "ocamlmklib"]
|
Filename.make_path
|
||||||
|
[Ocaml_directories.srcdir; "tools"; Filename.mkexe "ocamlmklib"]
|
||||||
|
|
||||||
let codegen =
|
let codegen =
|
||||||
Filename.make_path [Ocaml_directories.srcdir; "testsuite"; "tools"; "codegen"]
|
Filename.make_path
|
||||||
|
[Ocaml_directories.srcdir; "testsuite"; "tools"; Filename.mkexe "codegen"]
|
||||||
|
|
||||||
let asmgen_archmod =
|
let asmgen_archmod =
|
||||||
let objname =
|
let objname =
|
||||||
|
|
|
@ -30,7 +30,7 @@ OC_CPPFLAGS += -I$(ROOTDIR)/runtime $(EXTRACPPFLAGS)
|
||||||
# Compilation options
|
# Compilation options
|
||||||
COMPFLAGS=-absname -w +a-4-9-41-42-44-45-48 -warn-error A -bin-annot -g \
|
COMPFLAGS=-absname -w +a-4-9-41-42-44-45-48 -warn-error A -bin-annot -g \
|
||||||
-safe-string -strict-sequence -strict-formats $(EXTRACAMLFLAGS)
|
-safe-string -strict-sequence -strict-formats $(EXTRACAMLFLAGS)
|
||||||
MKLIB=$(CAMLRUN) $(ROOTDIR)/tools/ocamlmklib
|
MKLIB=$(CAMLRUN) $(ROOTDIR)/tools/ocamlmklib$(EXE)
|
||||||
|
|
||||||
# Variables that must be defined by individual libraries:
|
# Variables that must be defined by individual libraries:
|
||||||
# LIBNAME
|
# LIBNAME
|
||||||
|
|
|
@ -24,7 +24,7 @@ ROOTDIR = ../..
|
||||||
include $(ROOTDIR)/Makefile.common
|
include $(ROOTDIR)/Makefile.common
|
||||||
include $(ROOTDIR)/Makefile.best_binaries
|
include $(ROOTDIR)/Makefile.best_binaries
|
||||||
|
|
||||||
CAMLRUN ?= $(ROOTDIR)/boot/ocamlrun
|
CAMLRUN ?= $(ROOTDIR)/boot/ocamlrun$(EXE)
|
||||||
|
|
||||||
OCAMLC=$(BEST_OCAMLC) -g -nostdlib -I $(ROOTDIR)/stdlib
|
OCAMLC=$(BEST_OCAMLC) -g -nostdlib -I $(ROOTDIR)/stdlib
|
||||||
OCAMLOPT=$(BEST_OCAMLOPT) -g -nostdlib -I $(ROOTDIR)/stdlib
|
OCAMLOPT=$(BEST_OCAMLOPT) -g -nostdlib -I $(ROOTDIR)/stdlib
|
||||||
|
@ -201,7 +201,9 @@ native/dynlink_compilerlibs.cmx: $(COMPILERLIBS_CMX)
|
||||||
|
|
||||||
# The main dynlink rules start here.
|
# The main dynlink rules start here.
|
||||||
|
|
||||||
all: dynlink.cma extract_crc
|
extract_crc := extract_crc$(EXE)
|
||||||
|
|
||||||
|
all: dynlink.cma $(extract_crc)
|
||||||
|
|
||||||
allopt: dynlink.cmxa
|
allopt: dynlink.cmxa
|
||||||
|
|
||||||
|
@ -225,7 +227,9 @@ dynlink.cmxa: $(NATOBJS)
|
||||||
dynlink_platform_intf.mli: dynlink_platform_intf.ml
|
dynlink_platform_intf.mli: dynlink_platform_intf.ml
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
extract_crc: dynlink.cma byte/dynlink_compilerlibs.cmo extract_crc.cmo
|
$(eval $(call PROGRAM_SYNONYM,extract_crc))
|
||||||
|
|
||||||
|
$(extract_crc): dynlink.cma byte/dynlink_compilerlibs.cmo extract_crc.cmo
|
||||||
$(OCAMLC) -o $@ $^
|
$(OCAMLC) -o $@ $^
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
@ -238,7 +242,7 @@ ifeq "$(INSTALL_SOURCE_ARTIFACTS)" "true"
|
||||||
"$(INSTALL_LIBDIR)"
|
"$(INSTALL_LIBDIR)"
|
||||||
endif
|
endif
|
||||||
$(INSTALL_PROG) \
|
$(INSTALL_PROG) \
|
||||||
extract_crc "$(INSTALL_LIBDIR)/extract_crc$(EXE)"
|
$(extract_crc) "$(INSTALL_LIBDIR)/$(extract_crc)"
|
||||||
|
|
||||||
installopt:
|
installopt:
|
||||||
if $(NATDYNLINK); then \
|
if $(NATDYNLINK); then \
|
||||||
|
@ -249,13 +253,14 @@ installopt:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
partialclean:
|
partialclean:
|
||||||
rm -f extract_crc *.cm[ioaxt] *.cmti *.cmxa \
|
rm -f $(extract_crc) *.cm[ioaxt] *.cmti *.cmxa \
|
||||||
byte/*.cm[iot] byte/*.cmti \
|
byte/*.cm[iot] byte/*.cmti \
|
||||||
native/*.cm[ixt] native/*.cmti native/*.o native/*.obj \
|
native/*.cm[ixt] native/*.cmti native/*.o native/*.obj \
|
||||||
$(LOCAL_SRC)/*.cm[ioaxt] $(LOCAL_SRC)/*.cmti \
|
$(LOCAL_SRC)/*.cm[ioaxt] $(LOCAL_SRC)/*.cmti \
|
||||||
$(LOCAL_SRC)/*.o $(LOCAL_SRC)/*.obj
|
$(LOCAL_SRC)/*.o $(LOCAL_SRC)/*.obj
|
||||||
|
|
||||||
clean: partialclean
|
clean: partialclean
|
||||||
|
rm -f extract_crc extract_crc.exe
|
||||||
rm -f *.a *.lib *.o *.obj *.so *.dll dynlink_platform_intf.mli \
|
rm -f *.a *.lib *.o *.obj *.so *.dll dynlink_platform_intf.mli \
|
||||||
$(LOCAL_SRC)/*.ml $(LOCAL_SRC)/*.mli $(LOCAL_SRC)/Makefile \
|
$(LOCAL_SRC)/*.ml $(LOCAL_SRC)/*.mli $(LOCAL_SRC)/Makefile \
|
||||||
$(LOCAL_SRC)/.depend byte/dynlink.mli native/dynlink.mli
|
$(LOCAL_SRC)/.depend byte/dynlink.mli native/dynlink.mli
|
||||||
|
|
|
@ -32,7 +32,7 @@ LIBS = -nostdlib -I $(ROOTDIR)/stdlib -I $(ROOTDIR)/otherlibs/$(UNIXLIB)
|
||||||
CAMLC=$(BEST_OCAMLC) $(LIBS)
|
CAMLC=$(BEST_OCAMLC) $(LIBS)
|
||||||
CAMLOPT=$(BEST_OCAMLOPT) $(LIBS)
|
CAMLOPT=$(BEST_OCAMLOPT) $(LIBS)
|
||||||
|
|
||||||
MKLIB=$(CAMLRUN) $(ROOTDIR)/tools/ocamlmklib
|
MKLIB=$(CAMLRUN) $(ROOTDIR)/tools/ocamlmklib$(EXE)
|
||||||
COMPFLAGS=-w +33..39 -warn-error A -g -bin-annot -safe-string
|
COMPFLAGS=-w +33..39 -warn-error A -g -bin-annot -safe-string
|
||||||
|
|
||||||
LIBNAME=threads
|
LIBNAME=threads
|
||||||
|
|
|
@ -19,12 +19,12 @@ include $(ROOTDIR)/Makefile.common
|
||||||
|
|
||||||
TARGET_BINDIR ?= $(BINDIR)
|
TARGET_BINDIR ?= $(BINDIR)
|
||||||
|
|
||||||
COMPILER=$(ROOTDIR)/ocamlc
|
COMPILER=$(ROOTDIR)/ocamlc$(EXE)
|
||||||
CAMLC=$(CAMLRUN) $(COMPILER)
|
CAMLC=$(CAMLRUN) $(COMPILER)
|
||||||
COMPFLAGS=-strict-sequence -absname -w +a-4-9-41-42-44-45-48 \
|
COMPFLAGS=-strict-sequence -absname -w +a-4-9-41-42-44-45-48 \
|
||||||
-g -warn-error A -bin-annot -nostdlib \
|
-g -warn-error A -bin-annot -nostdlib \
|
||||||
-safe-string -strict-formats
|
-safe-string -strict-formats
|
||||||
OPTCOMPILER=$(ROOTDIR)/ocamlopt
|
OPTCOMPILER=$(ROOTDIR)/ocamlopt$(EXE)
|
||||||
CAMLOPT=$(CAMLRUN) $(OPTCOMPILER)
|
CAMLOPT=$(CAMLRUN) $(OPTCOMPILER)
|
||||||
CAMLDEP=$(BOOT_OCAMLC) -depend
|
CAMLDEP=$(BOOT_OCAMLC) -depend
|
||||||
DEPFLAGS=-slash
|
DEPFLAGS=-slash
|
||||||
|
|
|
@ -116,6 +116,30 @@ objinfo.cmx : \
|
||||||
../file_formats/cmo_format.cmi \
|
../file_formats/cmo_format.cmi \
|
||||||
../file_formats/cmi_format.cmx \
|
../file_formats/cmi_format.cmx \
|
||||||
../bytecomp/bytesections.cmx
|
../bytecomp/bytesections.cmx
|
||||||
|
ocamlcmt.cmo : \
|
||||||
|
../typing/untypeast.cmi \
|
||||||
|
../typing/stypes.cmi \
|
||||||
|
../parsing/pprintast.cmi \
|
||||||
|
../parsing/location.cmi \
|
||||||
|
../utils/load_path.cmi \
|
||||||
|
../typing/envaux.cmi \
|
||||||
|
../driver/compmisc.cmi \
|
||||||
|
../file_formats/cmt_format.cmi \
|
||||||
|
../typing/cmt2annot.cmo \
|
||||||
|
../utils/clflags.cmi \
|
||||||
|
../typing/annot.cmi
|
||||||
|
ocamlcmt.cmx : \
|
||||||
|
../typing/untypeast.cmx \
|
||||||
|
../typing/stypes.cmx \
|
||||||
|
../parsing/pprintast.cmx \
|
||||||
|
../parsing/location.cmx \
|
||||||
|
../utils/load_path.cmx \
|
||||||
|
../typing/envaux.cmx \
|
||||||
|
../driver/compmisc.cmx \
|
||||||
|
../file_formats/cmt_format.cmx \
|
||||||
|
../typing/cmt2annot.cmx \
|
||||||
|
../utils/clflags.cmx \
|
||||||
|
../typing/annot.cmi
|
||||||
ocamlcp.cmo : \
|
ocamlcp.cmo : \
|
||||||
../driver/main_args.cmi
|
../driver/main_args.cmi
|
||||||
ocamlcp.cmx : \
|
ocamlcp.cmx : \
|
||||||
|
@ -169,30 +193,6 @@ profiling.cmo : \
|
||||||
profiling.cmx : \
|
profiling.cmx : \
|
||||||
profiling.cmi
|
profiling.cmi
|
||||||
profiling.cmi :
|
profiling.cmi :
|
||||||
read_cmt.cmo : \
|
|
||||||
../typing/untypeast.cmi \
|
|
||||||
../typing/stypes.cmi \
|
|
||||||
../parsing/pprintast.cmi \
|
|
||||||
../parsing/location.cmi \
|
|
||||||
../utils/load_path.cmi \
|
|
||||||
../typing/envaux.cmi \
|
|
||||||
../driver/compmisc.cmi \
|
|
||||||
../file_formats/cmt_format.cmi \
|
|
||||||
../typing/cmt2annot.cmo \
|
|
||||||
../utils/clflags.cmi \
|
|
||||||
../typing/annot.cmi
|
|
||||||
read_cmt.cmx : \
|
|
||||||
../typing/untypeast.cmx \
|
|
||||||
../typing/stypes.cmx \
|
|
||||||
../parsing/pprintast.cmx \
|
|
||||||
../parsing/location.cmx \
|
|
||||||
../utils/load_path.cmx \
|
|
||||||
../typing/envaux.cmx \
|
|
||||||
../driver/compmisc.cmx \
|
|
||||||
../file_formats/cmt_format.cmx \
|
|
||||||
../typing/cmt2annot.cmx \
|
|
||||||
../utils/clflags.cmx \
|
|
||||||
../typing/annot.cmi
|
|
||||||
stripdebug.cmo : \
|
stripdebug.cmo : \
|
||||||
../utils/misc.cmi \
|
../utils/misc.cmi \
|
||||||
../bytecomp/bytesections.cmi
|
../bytecomp/bytesections.cmi
|
||||||
|
|
|
@ -46,10 +46,14 @@ define byte_and_opt_
|
||||||
# This check is defensive programming
|
# This check is defensive programming
|
||||||
$(and $(filter-out 1,$(words $1)),$(error \
|
$(and $(filter-out 1,$(words $1)),$(error \
|
||||||
cannot build file with whitespace in name))
|
cannot build file with whitespace in name))
|
||||||
$1: $3 $2
|
$(call PROGRAM_SYNONYM, $1)
|
||||||
|
|
||||||
|
$1$(EXE): $3 $2
|
||||||
$$(CAMLC) $$(LINKFLAGS) -I $$(ROOTDIR) -o $$@ $2
|
$$(CAMLC) $$(LINKFLAGS) -I $$(ROOTDIR) -o $$@ $2
|
||||||
|
|
||||||
$1.opt: $3 $$(call byte2native,$2)
|
$(call PROGRAM_SYNONYM, $1.opt)
|
||||||
|
|
||||||
|
$1.opt$(EXE): $3 $$(call byte2native,$2)
|
||||||
$$(CAMLOPT_CMD) $$(LINKFLAGS) -I $$(ROOTDIR) -o $$@ \
|
$$(CAMLOPT_CMD) $$(LINKFLAGS) -I $$(ROOTDIR) -o $$@ \
|
||||||
$$(call byte2native,$2)
|
$$(call byte2native,$2)
|
||||||
|
|
||||||
|
@ -61,7 +65,7 @@ ifeq '$(filter $(installed_tools),$1)' '$1'
|
||||||
install_files += $1
|
install_files += $1
|
||||||
endif
|
endif
|
||||||
clean::
|
clean::
|
||||||
rm -f -- $1 $1.opt
|
rm -f -- $1 $1.opt $1.exe $1.opt.exe
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -73,7 +77,7 @@ endef
|
||||||
|
|
||||||
CAMLC = $(BOOT_OCAMLC) -g -nostdlib -I $(ROOTDIR)/boot \
|
CAMLC = $(BOOT_OCAMLC) -g -nostdlib -I $(ROOTDIR)/boot \
|
||||||
-use-prims $(ROOTDIR)/runtime/primitives -I $(ROOTDIR)
|
-use-prims $(ROOTDIR)/runtime/primitives -I $(ROOTDIR)
|
||||||
CAMLOPT = $(CAMLRUN) $(ROOTDIR)/ocamlopt -g -nostdlib -I $(ROOTDIR)/stdlib
|
CAMLOPT = $(CAMLRUN) $(ROOTDIR)/ocamlopt$(EXE) -g -nostdlib -I $(ROOTDIR)/stdlib
|
||||||
CAMLLEX = $(CAMLRUN) $(ROOTDIR)/boot/ocamllex
|
CAMLLEX = $(CAMLRUN) $(ROOTDIR)/boot/ocamllex
|
||||||
INCLUDES = $(addprefix -I $(ROOTDIR)/,utils parsing typing bytecomp \
|
INCLUDES = $(addprefix -I $(ROOTDIR)/,utils parsing typing bytecomp \
|
||||||
middle_end middle_end/closure middle_end/flambda \
|
middle_end middle_end/closure middle_end/flambda \
|
||||||
|
@ -93,10 +97,10 @@ CAMLDEP_OBJ=ocamldep.cmo
|
||||||
CAMLDEP_IMPORTS= \
|
CAMLDEP_IMPORTS= \
|
||||||
$(ROOTDIR)/compilerlibs/ocamlcommon.cma \
|
$(ROOTDIR)/compilerlibs/ocamlcommon.cma \
|
||||||
$(ROOTDIR)/compilerlibs/ocamlbytecomp.cma
|
$(ROOTDIR)/compilerlibs/ocamlbytecomp.cma
|
||||||
ocamldep: LINKFLAGS += -compat-32
|
ocamldep$(EXE): LINKFLAGS += -compat-32
|
||||||
$(call byte_and_opt,ocamldep,$(CAMLDEP_IMPORTS) $(CAMLDEP_OBJ),)
|
$(call byte_and_opt,ocamldep,$(CAMLDEP_IMPORTS) $(CAMLDEP_OBJ),)
|
||||||
ocamldep: depend.cmi
|
ocamldep$(EXE): depend.cmi
|
||||||
ocamldep.opt: depend.cmi
|
ocamldep.opt$(EXE): depend.cmi
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
rm -f ocamldep ocamldep.exe ocamldep.opt ocamldep.opt.exe
|
rm -f ocamldep ocamldep.exe ocamldep.opt ocamldep.opt.exe
|
||||||
|
@ -182,9 +186,10 @@ install::
|
||||||
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
||||||
for i in $(install_files); \
|
for i in $(install_files); \
|
||||||
do \
|
do \
|
||||||
$(INSTALL_PROG) "$$i" "$(INSTALL_BINDIR)/$$i.byte$(EXE)"; \
|
$(INSTALL_PROG) "$$i$(EXE)" "$(INSTALL_BINDIR)/$$i.byte$(EXE)"; \
|
||||||
if test -f "$$i".opt; then \
|
if test -f "$$i".opt$(EXE); then \
|
||||||
$(INSTALL_PROG) "$$i.opt" "$(INSTALL_BINDIR)/$$i.opt$(EXE)" && \
|
$(INSTALL_PROG) "$$i.opt$(EXE)" \
|
||||||
|
"$(INSTALL_BINDIR)/$$i.opt$(EXE)" && \
|
||||||
(cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \
|
(cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \
|
||||||
else \
|
else \
|
||||||
(cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.byte$(EXE)" "$$i$(EXE)"); \
|
(cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.byte$(EXE)" "$$i$(EXE)"); \
|
||||||
|
@ -193,8 +198,8 @@ ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true"
|
||||||
else
|
else
|
||||||
for i in $(install_files); \
|
for i in $(install_files); \
|
||||||
do \
|
do \
|
||||||
if test -f "$$i".opt; then \
|
if test -f "$$i".opt$(EXE); then \
|
||||||
$(INSTALL_PROG) "$$i.opt" "$(INSTALL_BINDIR)/$$i.opt$(EXE)"; \
|
$(INSTALL_PROG) "$$i.opt$(EXE)" "$(INSTALL_BINDIR)/$$i.opt$(EXE)"; \
|
||||||
(cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \
|
(cd "$(INSTALL_BINDIR)/" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
|
@ -202,10 +207,12 @@ endif
|
||||||
|
|
||||||
# The preprocessor for asm generators
|
# The preprocessor for asm generators
|
||||||
|
|
||||||
CVT_EMIT=cvt_emit.cmo
|
cvt_emit := cvt_emit$(EXE)
|
||||||
|
|
||||||
cvt_emit: $(CVT_EMIT)
|
$(eval $(call PROGRAM_SYNONYM,cvt_emit))
|
||||||
$(CAMLC) $(LINKFLAGS) -o cvt_emit $(CVT_EMIT)
|
|
||||||
|
$(cvt_emit): cvt_emit.cmo
|
||||||
|
$(CAMLC) $(LINKFLAGS) -o $@ $^
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
rm -f cvt_emit.ml cvt_emit cvt_emit.exe
|
rm -f cvt_emit.ml cvt_emit cvt_emit.exe
|
||||||
|
@ -214,20 +221,21 @@ beforedepend:: cvt_emit.ml
|
||||||
|
|
||||||
# Reading cmt files
|
# Reading cmt files
|
||||||
|
|
||||||
READ_CMT= \
|
ocamlcmt_objects= \
|
||||||
$(ROOTDIR)/compilerlibs/ocamlcommon.cma \
|
$(ROOTDIR)/compilerlibs/ocamlcommon.cma \
|
||||||
$(ROOTDIR)/compilerlibs/ocamlbytecomp.cma \
|
$(ROOTDIR)/compilerlibs/ocamlbytecomp.cma \
|
||||||
\
|
\
|
||||||
read_cmt.cmo
|
ocamlcmt.cmo
|
||||||
|
|
||||||
# Reading cmt files
|
# Reading cmt files
|
||||||
$(call byte_and_opt,read_cmt,$(READ_CMT),)
|
$(call byte_and_opt,ocamlcmt,$(ocamlcmt_objects),)
|
||||||
|
|
||||||
install::
|
install::
|
||||||
if test -f read_cmt.opt; then \
|
if test -f ocamlcmt.opt$(EXE); then \
|
||||||
$(INSTALL_PROG) read_cmt.opt "$(INSTALL_BINDIR)/ocamlcmt$(EXE)"; \
|
$(INSTALL_PROG)\
|
||||||
|
ocamlcmt.opt$(EXE) "$(INSTALL_BINDIR)/ocamlcmt$(EXE)"; \
|
||||||
else \
|
else \
|
||||||
$(INSTALL_PROG) read_cmt "$(INSTALL_BINDIR)/ocamlcmt$(EXE)"; \
|
$(INSTALL_PROG) ocamlcmt$(EXE) "$(INSTALL_BINDIR)/ocamlcmt$(EXE)"; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -241,14 +249,18 @@ DUMPOBJ= \
|
||||||
|
|
||||||
$(call byte_and_opt,dumpobj,$(DUMPOBJ),)
|
$(call byte_and_opt,dumpobj,$(DUMPOBJ),)
|
||||||
|
|
||||||
make_opcodes: make_opcodes.ml
|
make_opcodes := make_opcodes$(EXE)
|
||||||
$(CAMLC) make_opcodes.ml -o $@
|
|
||||||
|
|
||||||
opnames.ml: $(ROOTDIR)/runtime/caml/instruct.h make_opcodes
|
$(eval $(call PROGRAM_SYNONYM,make_opcodes))
|
||||||
$(ROOTDIR)/runtime/ocamlrun make_opcodes -opnames < $< > $@
|
|
||||||
|
$(make_opcodes): make_opcodes.ml
|
||||||
|
$(CAMLC) $< -o $@
|
||||||
|
|
||||||
|
opnames.ml: $(ROOTDIR)/runtime/caml/instruct.h $(make_opcodes)
|
||||||
|
$(ROOTDIR)/runtime/ocamlrun$(EXE) $(make_opcodes) -opnames < $< > $@
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
rm -f opnames.ml make_opcodes make_opcodes.ml
|
rm -f opnames.ml make_opcodes make_opcodes.exe make_opcodes.ml
|
||||||
|
|
||||||
beforedepend:: opnames.ml
|
beforedepend:: opnames.ml
|
||||||
|
|
||||||
|
@ -296,11 +308,12 @@ LINTAPIDIFF=$(ROOTDIR)/compilerlibs/ocamlcommon.cmxa \
|
||||||
$(ROOTDIR)/otherlibs/str/str.cmxa \
|
$(ROOTDIR)/otherlibs/str/str.cmxa \
|
||||||
lintapidiff.cmx
|
lintapidiff.cmx
|
||||||
|
|
||||||
lintapidiff.opt: INCLUDES+= -I $(ROOTDIR)/otherlibs/str
|
lintapidiff.opt$(EXE): INCLUDES+= -I $(ROOTDIR)/otherlibs/str
|
||||||
lintapidiff.opt: $(LINTAPIDIFF)
|
lintapidiff.opt$(EXE): $(LINTAPIDIFF)
|
||||||
$(CAMLOPT_CMD) $(LINKFLAGS) -I $(ROOTDIR) -o $@ $(LINTAPIDIFF)
|
$(CAMLOPT_CMD) $(LINKFLAGS) -I $(ROOTDIR) -o $@ $(LINTAPIDIFF)
|
||||||
clean::
|
clean::
|
||||||
rm -f -- lintapidiff.opt lintapidiff.cm? lintapidiff.o lintapidiff.obj
|
rm -f -- lintapidiff.opt lintapidiff.opt.exe
|
||||||
|
rm -f lintapidiff.cm? lintapidiff.o lintapidiff.obj
|
||||||
|
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
|
@ -330,7 +343,8 @@ CMPBYT=$(ROOTDIR)/compilerlibs/ocamlcommon.cma \
|
||||||
|
|
||||||
$(call byte_and_opt,cmpbyt,$(CMPBYT),)
|
$(call byte_and_opt,cmpbyt,$(CMPBYT),)
|
||||||
|
|
||||||
CAMLTEX= $(ROOTDIR)/compilerlibs/ocamlcommon.cma \
|
caml_tex_files := \
|
||||||
|
$(ROOTDIR)/compilerlibs/ocamlcommon.cma \
|
||||||
$(ROOTDIR)/compilerlibs/ocamlbytecomp.cma \
|
$(ROOTDIR)/compilerlibs/ocamlbytecomp.cma \
|
||||||
$(ROOTDIR)/compilerlibs/ocamltoplevel.cma \
|
$(ROOTDIR)/compilerlibs/ocamltoplevel.cma \
|
||||||
$(ROOTDIR)/otherlibs/str/str.cma \
|
$(ROOTDIR)/otherlibs/str/str.cma \
|
||||||
|
@ -339,19 +353,21 @@ CAMLTEX= $(ROOTDIR)/compilerlibs/ocamlcommon.cma \
|
||||||
|
|
||||||
#Scan latex files, and run ocaml code examples
|
#Scan latex files, and run ocaml code examples
|
||||||
|
|
||||||
caml-tex: INCLUDES += $(addprefix -I $(ROOTDIR)/otherlibs/,str $(UNIXLIB))
|
caml_tex := caml-tex$(EXE)
|
||||||
caml-tex: $(CAMLTEX)
|
|
||||||
$(ROOTDIR)/runtime/ocamlrun $(ROOTDIR)/ocamlc -nostdlib \
|
$(caml_tex): INCLUDES += $(addprefix -I $(ROOTDIR)/otherlibs/,str $(UNIXLIB))
|
||||||
|
$(caml_tex): $(caml_tex_files)
|
||||||
|
$(ROOTDIR)/runtime/ocamlrun$(EXE) $(ROOTDIR)/ocamlc$(EXE) -nostdlib \
|
||||||
-I $(ROOTDIR)/stdlib $(LINKFLAGS) -linkall \
|
-I $(ROOTDIR)/stdlib $(LINKFLAGS) -linkall \
|
||||||
-o $@ -no-alias-deps $(CAMLTEX)
|
-o $@ -no-alias-deps $^
|
||||||
|
|
||||||
# we need str and unix which depend on the bytecode version of other tools
|
# we need str and unix which depend on the bytecode version of other tools
|
||||||
# thus we delay building caml-tex to the opt.opt stage
|
# thus we delay building caml-tex to the opt.opt stage
|
||||||
ifneq "$(WITH_CAMLTEX)" ""
|
ifneq "$(WITH_CAMLTEX)" ""
|
||||||
opt.opt:caml-tex
|
opt.opt: $(caml_tex)
|
||||||
endif
|
endif
|
||||||
clean::
|
clean::
|
||||||
rm -f -- caml-tex caml_tex.cm?
|
rm -f -- caml-tex caml-tex.exe caml_tex.cm?
|
||||||
|
|
||||||
# Common stuff
|
# Common stuff
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ let arg_list = Arg.align [
|
||||||
]
|
]
|
||||||
|
|
||||||
let arg_usage =
|
let arg_usage =
|
||||||
"read_cmt [OPTIONS] FILE.cmt : read FILE.cmt and print related information"
|
"ocamlcmt [OPTIONS] FILE.cmt : read FILE.cmt and print related information"
|
||||||
|
|
||||||
let dummy_crc = String.make 32 '-'
|
let dummy_crc = String.make 32 '-'
|
||||||
|
|
Loading…
Reference in New Issue