summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile38
-rw-r--r--Makefile.nt25
-rw-r--r--config/Makefile.mingw2
-rw-r--r--config/Makefile.mingw642
-rw-r--r--config/Makefile.msvc2
-rw-r--r--config/Makefile.msvc642
-rw-r--r--ocamlbuild/.depend99
-rw-r--r--ocamlbuild/Makefile303
-rw-r--r--ocamlbuild/ocaml_specific.ml2
-rw-r--r--ocamlbuild/ocamlbuild_where.ml4
-rw-r--r--ocamlbuild/options.ml8
11 files changed, 284 insertions, 203 deletions
diff --git a/Makefile b/Makefile
index 012695cf2..d3b8fa6b6 100644
--- a/Makefile
+++ b/Makefile
@@ -31,7 +31,6 @@ MKDIR=mkdir -p
OCAMLBUILDBYTE=$(WITH_OCAMLBUILD:=.byte)
OCAMLBUILDNATIVE=$(WITH_OCAMLBUILD:=.native)
-OCAMLBUILDLIBNATIVE=$(WITH_OCAMLBUILD:=lib.native)
OCAMLDOC_OPT=$(WITH_OCAMLDOC:=.opt)
@@ -324,12 +323,12 @@ install:
(cd otherlibs/$$i; $(MAKE) install) || exit $$?; \
done
if test -n "$(WITH_OCAMLDOC)"; then (cd ocamldoc; $(MAKE) install); else :; fi
- if test -f ocamlopt; then $(MAKE) installopt; else :; fi
- if test -n "$(WITH_OCAMLDEBUG)"; then (cd debugger; $(MAKE) install); \
+ if test -n "$(WITH_DEBUGGER)"; then (cd debugger; $(MAKE) install); \
+ else :; fi
+ if test -n "$(WITH_OCAMLBUILD)"; then (cd ocamlbuild; $(MAKE) install); \
else :; fi
cp config/Makefile $(LIBDIR)/Makefile.config
- BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) PREFIX=$(PREFIX) \
- ./build/partial-install.sh
+ if test -f ocamlopt; then $(MAKE) installopt; else :; fi
# Installation of the native-code compiler
installopt:
@@ -340,6 +339,8 @@ installopt:
cp compilerlibs/ocamloptcomp.cma $(OPTSTART) $(COMPLIBDIR)
if test -n "$(WITH_OCAMLDOC)"; then (cd ocamldoc; $(MAKE) installopt); \
else :; fi
+ if test -n "$(WITH_OCAMLBUILD)"; then (cd ocamlbuild; $(MAKE) installopt); \
+ else :; fi
for i in $(OTHERLIBRARIES); \
do (cd otherlibs/$$i; $(MAKE) installopt) || exit $$?; done
if test -f ocamlopt.opt ; then $(MAKE) installoptopt; fi
@@ -763,25 +764,18 @@ alldepend::
cd debugger; $(MAKE) depend
# Ocamlbuild
-#ifeq ($(OCAMLBUILD_NOBOOT),"yes")
-#ocamlbuild.byte: ocamlc
-# $(MAKE) -C ocamlbuild -f Makefile.noboot
-#else
-ocamlbuild.byte: ocamlc ocamlbuild-mixed-boot
- ./build/ocamlbuild-byte-only.sh
-#endif
-
-ocamlbuild.native: ocamlopt ocamlbuild-mixed-boot otherlibrariesopt
- ./build/ocamlbuild-native-only.sh
-ocamlbuildlib.native: ocamlopt ocamlbuild-mixed-boot otherlibrariesopt
- ./build/ocamlbuildlib-native-only.sh
-
-ocamlbuild-mixed-boot: ocamlc
- ./build/mixed-boot.sh
- touch ocamlbuild-mixed-boot
+
+ocamlbuild.byte: ocamlc otherlibraries
+ cd ocamlbuild && $(MAKE) all
+
+ocamlbuild.native: ocamlopt otherlibrariesopt
+ cd ocamlbuild && $(MAKE) allopt
partialclean::
- rm -rf _build ocamlbuild-mixed-boot
+ cd ocamlbuild && $(MAKE) clean
+
+alldepend::
+ cd ocamlbuild && $(MAKE) depend
# Check that the stack limit is reasonable.
diff --git a/Makefile.nt b/Makefile.nt
index f9cbceace..b16a3e0f7 100644
--- a/Makefile.nt
+++ b/Makefile.nt
@@ -202,8 +202,6 @@ opt-core:
opt:
$(MAKE) -f Makefile.nt opt-core
$(MAKE) -f Makefile.nt otherlibrariesopt
- if test -n "$(WITH_OCAMLBUILD)"; then \
- $(MAKE) -f Makefile.nt ocamlbuildlib.native; else :; fi
# Native-code versions of the tools
opt.opt: core opt-core ocamlc.opt all ocamlopt.opt ocamllex.opt \
@@ -242,7 +240,8 @@ installbyt:
for i in $(OTHERLIBRARIES); do $(MAKEREC) -C otherlibs/$$i install; done
if test -n "$(WITH_OCAMLDEBUG)"; then (cd debugger; $(MAKEREC) install); \
else :; fi
- ./build/partial-install.sh
+ if test -n "$(WITH_OCAMLBUILD)"; then (cd ocamlbuild; $(MAKE) install); \
+ else :; fi
cp config/Makefile $(LIBDIR)/Makefile.config
cp README $(DISTRIB)/Readme.general.txt
cp README.win32 $(DISTRIB)/Readme.windows.txt
@@ -257,6 +256,8 @@ installopt:
cp asmcomp/*.cmi driver/*.cmi $(COMPLIBDIR)
cp compilerlibs/ocamloptcomp.cma $(OPTSTART) $(COMPLIBDIR)
if test -n "$(WITH_OCAMLDOC)"; then (cd ocamldoc; $(MAKEREC) installopt); fi
+ if test -n "$(WITH_OCAMLBUILD)"; then (cd ocamlbuild; $(MAKE) installopt); \
+ else :; fi
for i in $(OTHERLIBRARIES); do $(MAKEREC) -C otherlibs/$$i installopt; done
if test -f ocamlopt.opt ; then $(MAKEREC) installoptopt; fi
@@ -657,19 +658,17 @@ alldepend::
# Ocamlbuild
-ocamlbuild.byte: ocamlc otherlibraries ocamlbuild-mixed-boot
- ./build/ocamlbuild-byte-only.sh
-ocamlbuild.native: ocamlopt otherlibrariesopt ocamlbuild-mixed-boot
- ./build/ocamlbuild-native-only.sh
-ocamlbuildlib.native: ocamlopt otherlibrariesopt ocamlbuild-mixed-boot
- ./build/ocamlbuildlib-native-only.sh
+ocamlbuild.byte: ocamlc otherlibraries
+ cd ocamlbuild && $(MAKE) all
+ocamlbuild.native: ocamlopt otherlibrariesopt
+ cd ocamlbuild && $(MAKE) allopt
-.PHONY: ocamlbuild-mixed-boot
-ocamlbuild-mixed-boot:
- ./build/mixed-boot.sh
partialclean::
- rm -rf _build
+ cd ocamlbuild && $(MAKE) clean
+
+alldepend::
+ cd ocamlbuild && $(MAKE) depend
# Make clean in the test suite
diff --git a/config/Makefile.mingw b/config/Makefile.mingw
index 0589e59bb..63030dd1f 100644
--- a/config/Makefile.mingw
+++ b/config/Makefile.mingw
@@ -84,6 +84,8 @@ NATDYNLINK=true
CMXS=cmxs
RUNTIMED=noruntimed
ASM_CFI_SUPPORTED=false
+UNIXLIB=win32unix
+GRAPHLIB=win32graph
########## Configuration for the bytecode compiler
diff --git a/config/Makefile.mingw64 b/config/Makefile.mingw64
index cb470e3f7..44784b68a 100644
--- a/config/Makefile.mingw64
+++ b/config/Makefile.mingw64
@@ -84,6 +84,8 @@ NATDYNLINK=true
CMXS=cmxs
RUNTIMED=noruntimed
ASM_CFI_SUPPORTED=false
+UNIXLIB=win32unix
+GRAPHLIB=win32graph
########## Configuration for the bytecode compiler
diff --git a/config/Makefile.msvc b/config/Makefile.msvc
index ede394c22..3ab6c6ebf 100644
--- a/config/Makefile.msvc
+++ b/config/Makefile.msvc
@@ -75,6 +75,8 @@ CMXS=cmxs
NATDYNLINK=true
RUNTIMED=noruntimed
ASM_CFI_SUPPORTED=false
+UNIXLIB=win32unix
+GRAPHLIB=win32graph
########## Configuration for the bytecode compiler
diff --git a/config/Makefile.msvc64 b/config/Makefile.msvc64
index e3f45949d..8437cf4bd 100644
--- a/config/Makefile.msvc64
+++ b/config/Makefile.msvc64
@@ -74,6 +74,8 @@ CMXS=cmxs
NATDYNLINK=true
RUNTIMED=noruntimed
ASM_CFI_SUPPORTED=false
+UNIXLIB=win32unix
+GRAPHLIB=win32graph
########## Configuration for the bytecode compiler
diff --git a/ocamlbuild/.depend b/ocamlbuild/.depend
index 5344160e8..5e0c7e660 100644
--- a/ocamlbuild/.depend
+++ b/ocamlbuild/.depend
@@ -13,7 +13,8 @@ glob_ast.cmi : bool.cmi
glob_lexer.cmi : glob_ast.cmi
hooks.cmi :
hygiene.cmi : slurp.cmi
-lexers.cmi : glob.cmi
+lexers.cmi : loc.cmi glob.cmi
+loc.cmi :
log.cmi : tags.cmi signatures.cmi
main.cmi :
my_std.cmi : signatures.cmi
@@ -31,7 +32,7 @@ ocamlbuild_unix_plugin.cmi :
ocamlbuild_where.cmi :
ocamlbuildlight.cmi :
options.cmi : slurp.cmi signatures.cmi command.cmi
-param_tags.cmi : tags.cmi
+param_tags.cmi : tags.cmi loc.cmi
pathname.cmi : signatures.cmi
plugin.cmi :
ppcache.cmi :
@@ -49,11 +50,11 @@ bool.cmx : bool.cmi
command.cmo : tags.cmi shell.cmi param_tags.cmi my_unix.cmi my_std.cmi \
log.cmi lexers.cmi command.cmi
command.cmx : tags.cmx shell.cmx param_tags.cmx my_unix.cmx my_std.cmx \
- log.cmx lexers.cmi command.cmi
-configuration.cmo : tags.cmi param_tags.cmi my_std.cmi log.cmi lexers.cmi \
- glob.cmi configuration.cmi
-configuration.cmx : tags.cmx param_tags.cmx my_std.cmx log.cmx lexers.cmi \
- glob.cmx configuration.cmi
+ log.cmx lexers.cmx command.cmi
+configuration.cmo : tags.cmi param_tags.cmi my_std.cmi log.cmi loc.cmi \
+ lexers.cmi glob.cmi configuration.cmi
+configuration.cmx : tags.cmx param_tags.cmx my_std.cmx log.cmx loc.cmx \
+ lexers.cmx glob.cmx configuration.cmi
digest_cache.cmo : shell.cmi pathname.cmi options.cmi my_unix.cmi my_std.cmi \
digest_cache.cmi
digest_cache.cmx : shell.cmx pathname.cmx options.cmx my_unix.cmx my_std.cmx \
@@ -67,31 +68,39 @@ exit_codes.cmx : exit_codes.cmi
fda.cmo : pathname.cmi options.cmi log.cmi hygiene.cmi fda.cmi
fda.cmx : pathname.cmx options.cmx log.cmx hygiene.cmx fda.cmi
findlib.cmo : my_unix.cmi my_std.cmi lexers.cmi command.cmi findlib.cmi
-findlib.cmx : my_unix.cmx my_std.cmx lexers.cmi command.cmx findlib.cmi
-flags.cmo : tags.cmi param_tags.cmi command.cmi bool.cmi flags.cmi
-flags.cmx : tags.cmx param_tags.cmx command.cmx bool.cmx flags.cmi
+findlib.cmx : my_unix.cmx my_std.cmx lexers.cmx command.cmx findlib.cmi
+flags.cmo : tags.cmi param_tags.cmi log.cmi command.cmi bool.cmi flags.cmi
+flags.cmx : tags.cmx param_tags.cmx log.cmx command.cmx bool.cmx flags.cmi
glob.cmo : my_std.cmi glob_lexer.cmi glob_ast.cmi bool.cmi glob.cmi
-glob.cmx : my_std.cmx glob_lexer.cmi glob_ast.cmx bool.cmx glob.cmi
+glob.cmx : my_std.cmx glob_lexer.cmx glob_ast.cmx bool.cmx glob.cmi
glob_ast.cmo : bool.cmi glob_ast.cmi
glob_ast.cmx : bool.cmx glob_ast.cmi
+glob_lexer.cmo : glob_ast.cmi bool.cmi glob_lexer.cmi
+glob_lexer.cmx : glob_ast.cmx bool.cmx glob_lexer.cmi
hooks.cmo : hooks.cmi
hooks.cmx : hooks.cmi
hygiene.cmo : slurp.cmi shell.cmi pathname.cmi options.cmi my_std.cmi \
log.cmi hygiene.cmi
hygiene.cmx : slurp.cmx shell.cmx pathname.cmx options.cmx my_std.cmx \
log.cmx hygiene.cmi
+lexers.cmo : my_std.cmi loc.cmi glob_ast.cmi glob.cmi bool.cmi lexers.cmi
+lexers.cmx : my_std.cmx loc.cmx glob_ast.cmx glob.cmx bool.cmx lexers.cmi
+loc.cmo : loc.cmi
+loc.cmx : loc.cmi
log.cmo : my_unix.cmi my_std.cmi display.cmi log.cmi
log.cmx : my_unix.cmx my_std.cmx display.cmx log.cmi
main.cmo : tools.cmi tags.cmi solver.cmi slurp.cmi shell.cmi rule.cmi \
resource.cmi report.cmi plugin.cmi pathname.cmi param_tags.cmi \
options.cmi ocaml_utils.cmi ocaml_specific.cmi ocaml_dependencies.cmi \
- my_unix.cmi my_std.cmi log.cmi lexers.cmi hooks.cmi flags.cmi fda.cmi \
- exit_codes.cmi digest_cache.cmi configuration.cmi command.cmi main.cmi
+ my_unix.cmi my_std.cmi log.cmi loc.cmi lexers.cmi hooks.cmi flags.cmi \
+ fda.cmi exit_codes.cmi digest_cache.cmi configuration.cmi command.cmi \
+ main.cmi
main.cmx : tools.cmx tags.cmx solver.cmx slurp.cmx shell.cmx rule.cmx \
resource.cmx report.cmx plugin.cmx pathname.cmx param_tags.cmx \
options.cmx ocaml_utils.cmx ocaml_specific.cmx ocaml_dependencies.cmx \
- my_unix.cmx my_std.cmx log.cmx lexers.cmi hooks.cmx flags.cmx fda.cmx \
- exit_codes.cmx digest_cache.cmx configuration.cmx command.cmx main.cmi
+ my_unix.cmx my_std.cmx log.cmx loc.cmx lexers.cmx hooks.cmx flags.cmx \
+ fda.cmx exit_codes.cmx digest_cache.cmx configuration.cmx command.cmx \
+ main.cmi
my_std.cmo : my_std.cmi
my_std.cmx : my_std.cmi
my_unix.cmo : my_std.cmi my_unix.cmi
@@ -109,11 +118,13 @@ ocaml_dependencies.cmo : tools.cmi resource.cmi pathname.cmi ocaml_utils.cmi \
ocaml_dependencies.cmx : tools.cmx resource.cmx pathname.cmx ocaml_utils.cmx \
my_std.cmx log.cmx ocaml_dependencies.cmi
ocaml_specific.cmo : tools.cmi tags.cmi rule.cmi pathname.cmi options.cmi \
- ocaml_utils.cmi ocaml_tools.cmi ocaml_compiler.cmi my_std.cmi log.cmi \
- flags.cmi findlib.cmi configuration.cmi command.cmi ocaml_specific.cmi
+ ocamlbuild_config.cmo ocaml_utils.cmi ocaml_tools.cmi ocaml_compiler.cmi \
+ my_std.cmi log.cmi flags.cmi findlib.cmi configuration.cmi command.cmi \
+ ocaml_specific.cmi
ocaml_specific.cmx : tools.cmx tags.cmx rule.cmx pathname.cmx options.cmx \
- ocaml_utils.cmx ocaml_tools.cmx ocaml_compiler.cmx my_std.cmx log.cmx \
- flags.cmx findlib.cmx configuration.cmx command.cmx ocaml_specific.cmi
+ ocamlbuild_config.cmx ocaml_utils.cmx ocaml_tools.cmx ocaml_compiler.cmx \
+ my_std.cmx log.cmx flags.cmx findlib.cmx configuration.cmx command.cmx \
+ ocaml_specific.cmi
ocaml_tools.cmo : tools.cmi tags.cmi rule.cmi pathname.cmi options.cmi \
ocaml_utils.cmi ocaml_compiler.cmi my_std.cmi flags.cmi command.cmi \
ocaml_tools.cmi
@@ -123,11 +134,11 @@ ocaml_tools.cmx : tools.cmx tags.cmx rule.cmx pathname.cmx options.cmx \
ocaml_utils.cmo : tools.cmi tags.cmi pathname.cmi param_tags.cmi options.cmi \
my_std.cmi log.cmi lexers.cmi flags.cmi command.cmi ocaml_utils.cmi
ocaml_utils.cmx : tools.cmx tags.cmx pathname.cmx param_tags.cmx options.cmx \
- my_std.cmx log.cmx lexers.cmi flags.cmx command.cmx ocaml_utils.cmi
+ my_std.cmx log.cmx lexers.cmx flags.cmx command.cmx ocaml_utils.cmi
ocamlbuild.cmo : ocamlbuild_unix_plugin.cmi ocamlbuild.cmi
ocamlbuild.cmx : ocamlbuild_unix_plugin.cmx ocamlbuild.cmi
-ocamlbuild_Myocamlbuild_config.cmo :
-ocamlbuild_Myocamlbuild_config.cmx :
+ocamlbuild_config.cmo :
+ocamlbuild_config.cmx :
ocamlbuild_executor.cmo : ocamlbuild_executor.cmi
ocamlbuild_executor.cmx : ocamlbuild_executor.cmi
ocamlbuild_plugin.cmo : ocamlbuild_plugin.cmi
@@ -136,30 +147,28 @@ ocamlbuild_unix_plugin.cmo : ocamlbuild_executor.cmi my_unix.cmi my_std.cmi \
exit_codes.cmi ocamlbuild_unix_plugin.cmi
ocamlbuild_unix_plugin.cmx : ocamlbuild_executor.cmx my_unix.cmx my_std.cmx \
exit_codes.cmx ocamlbuild_unix_plugin.cmi
-ocamlbuild_where.cmo : ocamlbuild_Myocamlbuild_config.cmo \
- ocamlbuild_where.cmi
-ocamlbuild_where.cmx : ocamlbuild_Myocamlbuild_config.cmx \
- ocamlbuild_where.cmi
+ocamlbuild_where.cmo : ocamlbuild_config.cmo ocamlbuild_where.cmi
+ocamlbuild_where.cmx : ocamlbuild_config.cmx ocamlbuild_where.cmi
ocamlbuildlight.cmo : ocamlbuildlight.cmi
ocamlbuildlight.cmx : ocamlbuildlight.cmi
-options.cmo : shell.cmi ocamlbuild_where.cmi \
- ocamlbuild_Myocamlbuild_config.cmo my_std.cmi log.cmi lexers.cmi \
- command.cmi options.cmi
-options.cmx : shell.cmx ocamlbuild_where.cmx \
- ocamlbuild_Myocamlbuild_config.cmx my_std.cmx log.cmx lexers.cmi \
- command.cmx options.cmi
-param_tags.cmo : my_std.cmi log.cmi lexers.cmi param_tags.cmi
-param_tags.cmx : my_std.cmx log.cmx lexers.cmi param_tags.cmi
+options.cmo : shell.cmi ocamlbuild_where.cmi ocamlbuild_config.cmo \
+ my_std.cmi log.cmi lexers.cmi command.cmi options.cmi
+options.cmx : shell.cmx ocamlbuild_where.cmx ocamlbuild_config.cmx \
+ my_std.cmx log.cmx lexers.cmx command.cmx options.cmi
+param_tags.cmo : tags.cmi my_std.cmi log.cmi loc.cmi lexers.cmi \
+ param_tags.cmi
+param_tags.cmx : tags.cmx my_std.cmx log.cmx loc.cmx lexers.cmx \
+ param_tags.cmi
pathname.cmo : shell.cmi options.cmi my_unix.cmi my_std.cmi log.cmi glob.cmi \
pathname.cmi
pathname.cmx : shell.cmx options.cmx my_unix.cmx my_std.cmx log.cmx glob.cmx \
pathname.cmi
-plugin.cmo : tools.cmi tags.cmi shell.cmi rule.cmi pathname.cmi options.cmi \
- ocamlbuild_where.cmi my_unix.cmi my_std.cmi log.cmi command.cmi \
- plugin.cmi
-plugin.cmx : tools.cmx tags.cmx shell.cmx rule.cmx pathname.cmx options.cmx \
- ocamlbuild_where.cmx my_unix.cmx my_std.cmx log.cmx command.cmx \
- plugin.cmi
+plugin.cmo : tools.cmi tags.cmi shell.cmi rule.cmi pathname.cmi \
+ param_tags.cmi options.cmi ocamlbuild_where.cmi my_unix.cmi my_std.cmi \
+ log.cmi command.cmi plugin.cmi
+plugin.cmx : tools.cmx tags.cmx shell.cmx rule.cmx pathname.cmx \
+ param_tags.cmx options.cmx ocamlbuild_where.cmx my_unix.cmx my_std.cmx \
+ log.cmx command.cmx plugin.cmi
ppcache.cmo : shell.cmi pathname.cmi my_std.cmi log.cmi command.cmi \
ppcache.cmi
ppcache.cmx : shell.cmx pathname.cmx my_std.cmx log.cmx command.cmx \
@@ -170,12 +179,12 @@ resource.cmo : slurp.cmi shell.cmi pathname.cmi options.cmi my_unix.cmi \
my_std.cmi log.cmi lexers.cmi glob_ast.cmi glob.cmi digest_cache.cmi \
command.cmi resource.cmi
resource.cmx : slurp.cmx shell.cmx pathname.cmx options.cmx my_unix.cmx \
- my_std.cmx log.cmx lexers.cmi glob_ast.cmx glob.cmx digest_cache.cmx \
+ my_std.cmx log.cmx lexers.cmx glob_ast.cmx glob.cmx digest_cache.cmx \
command.cmx resource.cmi
-rule.cmo : tags.cmi shell.cmi resource.cmi pathname.cmi options.cmi \
- my_std.cmi log.cmi digest_cache.cmi command.cmi rule.cmi
-rule.cmx : tags.cmx shell.cmx resource.cmx pathname.cmx options.cmx \
- my_std.cmx log.cmx digest_cache.cmx command.cmx rule.cmi
+rule.cmo : shell.cmi resource.cmi pathname.cmi options.cmi my_std.cmi \
+ log.cmi digest_cache.cmi command.cmi rule.cmi
+rule.cmx : shell.cmx resource.cmx pathname.cmx options.cmx my_std.cmx \
+ log.cmx digest_cache.cmx command.cmx rule.cmi
shell.cmo : tags.cmi my_unix.cmi my_std.cmi log.cmi shell.cmi
shell.cmx : tags.cmx my_unix.cmx my_std.cmx log.cmx shell.cmi
slurp.cmo : my_unix.cmi my_std.cmi slurp.cmi
diff --git a/ocamlbuild/Makefile b/ocamlbuild/Makefile
index fe011bd68..5790673ae 100644
--- a/ocamlbuild/Makefile
+++ b/ocamlbuild/Makefile
@@ -10,119 +10,190 @@
# #
#########################################################################
-.PHONY: all byte native profile debug ppcache doc
-
-ifndef INSTALL_PREFIX
-INSTALL_PREFIX := $(PWD)/_install
-endif
-
-ifndef INSTALL_LIB
-INSTALL_LIB := $(INSTALL_PREFIX)/lib/ocamlbuild
-endif
-
-ifndef INSTALL_BIN
-INSTALL_BIN := $(INSTALL_PREFIX)/bin
-endif
-
-ifndef BUILDDIR
-BUILDDIR := "_build"
-endif
-
-ifndef OCAMLBUILDCMD
-OCAMLBUILDCMD := ./boot/ocamlbuild
-endif
-
-ifdef O
-OCAMLBUILD_OPTIONS := $(OCAMLBUILD_OPTIONS) $(O)
-endif
-
-ifeq ($(wildcard ./ocamlbuild_Myocamlbuil*_config.ml),./ocamlbuild_Myocamlbuild_config.ml)
-ifeq ($(wildcard ./boot/oc*build),./boot/ocamlbuild)
-OCAMLBUILD=INSTALL_LIB=$(INSTALL_LIB) INSTALL_BIN=$(INSTALL_BIN) $(OCAMLBUILDCMD) -build-dir $(BUILDDIR) -no-links $(OCAMLBUILD_OPTIONS)
-LIBS=ocamlbuildlib ocamlbuildlightlib
-PROGRAMS=ocamlbuild ocamlbuildlight
-BYTE=$(LIBS:=.cma) $(PROGRAMS:=.byte)
-NATIVE=$(LIBS:=.cmxa) $(PROGRAMS:=.native)
-
-all:
- $(OCAMLBUILD) $(BYTE) $(NATIVE)
-byte:
- $(OCAMLBUILD) $(BYTE)
-native:
- $(OCAMLBUILD) $(NATIVE)
-profile:
- $(OCAMLBUILD) $(LIBS:=.p.cmxa) $(PROGRAMS:=.p.native)
-debug:
- $(OCAMLBUILD) $(LIBS:=.d.cma) $(PROGRAMS:=.d.byte)
-ppcache:
- $(OCAMLBUILD) ppcache.byte ppcache.native
-doc:
- $(OCAMLBUILD) ocamlbuild.docdir/index.html
- ln -s -f $(BUILDDIR)/ocamlbuild.docdir doc
-else
-all byte native: ocamlbuild.byte.start
- mkdir -p boot
- cp ocamlbuild.byte.start boot/ocamlbuild
- $(MAKE) $(MFLAGS) $(MAKECMDGOALS)
- cp $(BUILDDIR)/ocamlbuild.native boot/ocamlbuild
- $(MAKE) $(MFLAGS) $(MAKECMDGOALS) OCAMLBUILD_OPTIONS="-nothing-should-be-rebuilt -verbose -1"
-endif
-else
-all byte native:
- @echo "Please copy the myocamlbuild_config.ml of the OCaml source distribution"
- @echo " as ocamlbuild_Myocamlbuild_config.ml"
- @echo
- @echo "$$ cp ../myocamlbuild_config.ml ocamlbuild_Myocamlbuild_config.ml"
-endif
-
-ocamlbuild.byte.start:
- ./start.sh
-
-promote:
- cp $(BUILDDIR)/ocamlbuild.native boot/ocamlbuild
-
-clean:
- rm -rf $(BUILDDIR)
-
-distclean: clean
- rm -rf _log _start ocamlbuild.byte.start boot/ocamlbuild
-
-install: all
- mkdir -p $(INSTALL_BIN)
- mkdir -p $(INSTALL_LIB)
- install $(BUILDDIR)/ocamlbuild.byte \
- $(BUILDDIR)/ocamlbuild.native \
- $(BUILDDIR)/ocamlbuildlight.byte \
- $(BUILDDIR)/ocamlbuildlight.native \
- $(INSTALL_BIN)
- install $(BUILDDIR)/ocamlbuild.native $(INSTALL_BIN)/ocamlbuild
- install $(BUILDDIR)/ocamlbuildlight.byte $(INSTALL_BIN)/ocamlbuildlight
- install -m 644 \
- $(BUILDDIR)/ocamlbuildlib.cmxa \
- $(BUILDDIR)/ocamlbuildlib.a \
- $(BUILDDIR)/ocamlbuildlib.cma \
- $(BUILDDIR)/ocamlbuildlightlib.cmxa \
- $(BUILDDIR)/ocamlbuildlightlib.a \
- $(BUILDDIR)/ocamlbuildlightlib.cma \
- $(BUILDDIR)/ocamlbuild_unix_plugin.cmx \
- $(BUILDDIR)/ocamlbuild_unix_plugin.o \
- $(BUILDDIR)/ocamlbuild_unix_plugin.cmo \
- $(BUILDDIR)/ocamlbuild_unix_plugin.cmi \
- $(BUILDDIR)/ocamlbuild_executor.cmi \
- $(BUILDDIR)/ocamlbuild_executor.cmo \
- $(BUILDDIR)/ocamlbuild_executor.cmx \
- $(BUILDDIR)/ocamlbuild_executor.o \
- $(BUILDDIR)/ocamlbuild_pack.cmi \
- $(BUILDDIR)/ocamlbuild_pack.cmo \
- $(BUILDDIR)/ocamlbuild_pack.cmx \
- $(BUILDDIR)/ocamlbuild_pack.o \
- $(BUILDDIR)/ocamlbuild.cmi \
- $(BUILDDIR)/ocamlbuild_plugin.cmi \
- $(BUILDDIR)/ocamlbuild.cmx \
- $(BUILDDIR)/ocamlbuild.o \
- $(BUILDDIR)/ocamlbuild.cmo \
- $(BUILDDIR)/ocamlbuildlight.cmx \
- $(BUILDDIR)/ocamlbuildlight.o \
- $(BUILDDIR)/ocamlbuildlight.cmo $(INSTALL_LIB)
- ranlib $(INSTALL_LIB)/ocamlbuildlib.a
- ranlib $(INSTALL_LIB)/ocamlbuildlightlib.a
+include ../config/Makefile
+
+OCAMLRUN = ../boot/ocamlrun
+OCAMLC = ../ocamlcomp.sh
+OCAMLOPT = ../ocamlcompopt.sh
+OCAMLDEP = $(OCAMLRUN) ../tools/ocamldep
+OCAMLLEX = $(OCAMLRUN) ../boot/ocamllex
+CP = cp
+COMPFLAGS= -warn-error A -w L -w R -w Z -I ../otherlibs/$(UNIXLIB)
+LINKFLAGS= -I ../otherlibs/$(UNIXLIB)
+
+PACK_CMO=\
+ loc.cmo \
+ discard_printf.cmo \
+ signatures.cmi \
+ my_std.cmo \
+ my_unix.cmo \
+ tags.cmo \
+ display.cmo \
+ log.cmo \
+ shell.cmo \
+ bool.cmo \
+ glob_ast.cmo \
+ glob_lexer.cmo \
+ glob.cmo \
+ lexers.cmo \
+ param_tags.cmo \
+ command.cmo \
+ ocamlbuild_config.cmo \
+ ocamlbuild_where.cmo \
+ slurp.cmo \
+ options.cmo \
+ pathname.cmo \
+ configuration.cmo \
+ flags.cmo \
+ hygiene.cmo \
+ digest_cache.cmo \
+ resource.cmo \
+ rule.cmo \
+ solver.cmo \
+ report.cmo \
+ tools.cmo \
+ fda.cmo \
+ findlib.cmo \
+ ocaml_arch.cmo \
+ ocaml_utils.cmo \
+ ocaml_dependencies.cmo \
+ ocaml_compiler.cmo \
+ ocaml_tools.cmo \
+ ocaml_specific.cmo \
+ plugin.cmo \
+ exit_codes.cmo \
+ hooks.cmo \
+ main.cmo
+
+EXTRA_CMO=\
+ ocamlbuild_plugin.cmo \
+ ocamlbuild_executor.cmo \
+ ocamlbuild_unix_plugin.cmo
+
+PACK_CMX=$(PACK_CMO:.cmo=.cmx)
+EXTRA_CMX=$(EXTRA_CMO:.cmo=.cmx)
+
+INSTALL_LIB=\
+ ocamlbuildlib.cma \
+ ocamlbuild.cmo \
+ ocamlbuild_pack.cmi \
+ $(EXTRA_CMO:.cmo=.cmi)
+
+INSTALL_LIB_OPT=\
+ ocamlbuildlib.cmxa ocamlbuildlib.$(A) \
+ ocamlbuild.cmx ocamlbuild.$(O) \
+ ocamlbuild_pack.cmx \
+ $(EXTRA_CMO:.cmo=.cmx) $(EXTRA_CMO:.cmo=.$(O))
+
+all: ocamlbuild.byte ocamlbuildlib.cma
+ # ocamlbuildlight.byte ocamlbuildlightlib.cma
+allopt: ocamlbuild.native ocamlbuildlib.cmxa
+
+# The executables
+
+ocamlbuild.byte: ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo
+ $(OCAMLC) $(LINKFLAGS) -o ocamlbuild.byte \
+ unix.cma ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo
+
+ocamlbuildlight.byte: ocamlbuild_pack.cmo ocamlbuildlight.cmo
+ $(OCAMLC) $(LINKFLAGS) -o ocamlbuildlight.byte \
+ ocamlbuild_pack.cmo ocamlbuildlight.cmo
+
+ocamlbuild.native: ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx
+ $(OCAMLOPT) $(LINKFLAGS) -o ocamlbuild.native \
+ unix.cmxa ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx
+
+# The libraries
+
+ocamlbuildlib.cma: ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo
+ $(OCAMLC) -a -o ocamlbuildlib.cma \
+ ocamlbuild_pack.cmo $(EXTRA_CMO) ocamlbuild.cmo
+
+ocamlbuildlightlib.cma: ocamlbuild_pack.cmo ocamlbuildlight.cmo
+ $(OCAMLC) -a -o ocamlbuildlightlib.cma \
+ ocamlbuild_pack.cmo ocamlbuildlight.cmo
+
+ocamlbuildlib.cmxa: ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx
+ $(OCAMLOPT) -a -o ocamlbuildlib.cmxa \
+ ocamlbuild_pack.cmx $(EXTRA_CMX) ocamlbuild.cmx
+
+# The packs
+
+ocamlbuild_pack.cmo ocamlbuild_pack.cmi: $(PACK_CMO)
+ $(OCAMLC) -pack $(PACK_CMO) -o ocamlbuild_pack.cmo
+
+ocamlbuild_pack.cmx: $(PACK_CMX)
+ $(OCAMLOPT) -pack $(PACK_CMX) -o ocamlbuild_pack.cmx
+
+# The config file
+
+ocamlbuild_config.ml: ../config/Makefile
+ (echo 'let bindir = "$(BINDIR)"'; \
+ echo 'let libdir = "$(LIBDIR)"'; \
+ echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\
+ echo 'let a = "$(A)"'; \
+ echo 'let o = "$(O)"'; \
+ echo 'let so = "$(SO)"'; \
+ echo 'let exe = "$(EXE)"'; \
+ ) > ocamlbuild_config.ml
+clean::
+ rm -f ocamlbuild_config.ml
+beforedepend:: ocamlbuild_config.ml
+
+# The lexers
+
+lexers.ml: lexers.mll
+ $(OCAMLLEX) lexers.mll
+clean::
+ rm -f lexers.ml
+beforedepend:: lexers.ml
+
+glob_lexer.ml: glob_lexer.mll
+ $(OCAMLLEX) glob_lexer.mll
+clean::
+ rm -f glob_lexer.ml
+beforedepend:: glob_lexer.ml
+
+# Installation
+
+install:
+ $(CP) ocamlbuild.byte $(BINDIR)/ocamlbuild$(EXE)
+ $(CP) ocamlbuild.byte $(BINDIR)/ocamlbuild.byte$(EXE)
+ mkdir -p $(LIBDIR)/ocamlbuild
+ $(CP) $(INSTALL_LIB) $(LIBDIR)/ocamlbuild/
+
+installopt:
+ if test -f ocamlbuild.native; then $(MAKE) installopt_really; fi
+
+installopt_really:
+ $(CP) ocamlbuild.native $(BINDIR)/ocamlbuild$(EXE)
+ $(CP) ocamlbuild.native $(BINDIR)/ocamlbuild.native$(EXE)
+ mkdir -p $(LIBDIR)/ocamlbuild
+ $(CP) $(INSTALL_LIB_OPT) $(LIBDIR)/ocamlbuild/
+
+# The generic rules
+
+.SUFFIXES: .ml .mli .cmo .cmi .cmx
+
+.ml.cmo:
+ $(OCAMLC) $(COMPFLAGS) -c $<
+
+.mli.cmi:
+ $(OCAMLC) $(COMPFLAGS) -c $<
+
+.ml.cmx:
+ $(OCAMLOPT) -for-pack Ocamlbuild_pack $(COMPFLAGS) -c $<
+
+clean::
+ rm -f *.cm? *.$(O) *.cmxa *.$(A)
+ rm -f *.byte *.native
+
+# The dependencies
+
+depend: beforedepend
+ $(OCAMLDEP) *.mli *.ml > .depend
+
+include .depend
+
+.PHONY: all allopt clean beforedepend
+.PHONY: install installopt installopt_really depend
diff --git a/ocamlbuild/ocaml_specific.ml b/ocamlbuild/ocaml_specific.ml
index cd852f626..7b304a1da 100644
--- a/ocamlbuild/ocaml_specific.ml
+++ b/ocamlbuild/ocaml_specific.ml
@@ -269,7 +269,7 @@ rule "ocaml: cmo* -> cma"
rule "ocaml C stubs: clib & (o|obj)* -> (a|lib) & (so|dll)"
~prods:(["%(path:<**/>)lib%(libname:<*> and not <*.*>)"-.-ext_lib] @
- if Ocamlbuild_Myocamlbuild_config.supports_shared_libraries then
+ if Ocamlbuild_config.supports_shared_libraries then
["%(path:<**/>)dll%(libname:<*> and not <*.*>)"-.-ext_dll]
else
[])
diff --git a/ocamlbuild/ocamlbuild_where.ml b/ocamlbuild/ocamlbuild_where.ml
index a05230a51..6cea4fdff 100644
--- a/ocamlbuild/ocamlbuild_where.ml
+++ b/ocamlbuild/ocamlbuild_where.ml
@@ -10,10 +10,10 @@
(* *)
(***********************************************************************)
-let bindir = ref Ocamlbuild_Myocamlbuild_config.bindir;;
+let bindir = ref Ocamlbuild_config.bindir;;
let libdir = ref begin
Filename.concat
(try Sys.getenv "OCAMLLIB"
- with Not_found -> Ocamlbuild_Myocamlbuild_config.libdir)
+ with Not_found -> Ocamlbuild_config.libdir)
"ocamlbuild"
end;;
diff --git a/ocamlbuild/options.ml b/ocamlbuild/options.ml
index 4c9d45c09..78cee6373 100644
--- a/ocamlbuild/options.ml
+++ b/ocamlbuild/options.ml
@@ -98,10 +98,10 @@ let program_to_execute = ref false
let must_clean = ref false
let show_documentation = ref false
let recursive = ref false
-let ext_lib = ref Ocamlbuild_Myocamlbuild_config.a
-let ext_obj = ref Ocamlbuild_Myocamlbuild_config.o
-let ext_dll = ref Ocamlbuild_Myocamlbuild_config.so
-let exe = ref Ocamlbuild_Myocamlbuild_config.exe
+let ext_lib = ref Ocamlbuild_config.a
+let ext_obj = ref Ocamlbuild_config.o
+let ext_dll = ref Ocamlbuild_config.so
+let exe = ref Ocamlbuild_config.exe
let targets_internal = ref []
let ocaml_libs_internal = ref []