Cease committing C dependendency information

When building for the first time, the only requirement is that generated
header files have been built (jumptbl.h, version.h and opnames.h).
Detailed dependency information is only required when headers have been
edited.

COMPUTE_DEPS in Makefile.config controls whether C dependency
information should be generated on a per-file basis. This variable is
controlled by a new --disable-dependency-generation in configure which
is enabled for Git checkouts and disabled for tarballs (i.e. releases).

The Microsoft C compiler (cl) cannot generate dependencies in a
consistent way which we can consume, so for a Git checkout configure
searches for an additional C compiler in order to compute dependencies.
This is obviously not required for a user-build.

As a result, the MSVC port can now safely run make alldepend, since only
OCaml dependency information is committed to the repo after this change.

CI does not need to waste time testing the dependency information,
because it only tests a single build. A single Travis job has been added
which tests the build system code to generate the dependency information
(and provides a single `make -j` run in CI, although Inria's CI also
tests parallel building continuously).
David Allsopp 2020-04-17 14:11:22 +01:00
parent be6eb2ccda
commit ac2a9dd188
31 changed files with 337 additions and 2867 deletions

2
.gitattributes vendored
View File

@ -49,6 +49,8 @@ README* typo.missing-header
stdlib/*.mld typo.missing-header
tools/mantis2gh_stripped.csv typo.missing-header
.travis.yml typo.long-line
*.adoc typo.long-line=may
/.github/ISSUE_TEMPLATE/config.yml typo.missing-header

7
.gitignore vendored
View File

@ -114,6 +114,7 @@ _build
/ocamldoc/test_latex
/ocamldoc/test
/ocamltest/.dep
/ocamltest/ocamltest
/ocamltest/ocamltest.opt
/ocamltest/ocamltest_config.ml
@ -122,6 +123,7 @@ _build
/ocamltest/tsl_parser.mli
/ocamltest/ocamltest.html
/otherlibs/*/.dep
/otherlibs/dynlink/extract_crc
/otherlibs/dynlink/dynlink_platform_intf.mli
/otherlibs/dynlink/byte/dynlink.mli
@ -186,11 +188,8 @@ _build
/runtime/ocamlrund
/runtime/ocamlruni
/runtime/ld.conf
/runtime/interp.a.lst
/runtime/*.[sd]obj
/runtime/.gdb_history
/runtime/*.d.c
/runtime/*.pic.c
/runtime/.dep
/runtime/domain_state32.inc
/runtime/domain_state64.inc

View File

@ -34,6 +34,7 @@ matrix:
- texlive-fonts-recommended
- env: CI_KIND=build XARCH=x64 CONFIG_ARG=--disable-shared
- env: CI_KIND=build XARCH=x64 MIN_BUILD=1
- env: CI_KIND=build XARCH=x64 CONFIG_ARG=--enable-dependency-generation MAKE_ARG=-j
- env: CI_KIND=changes
- env: CI_KIND=manual
- env: CI_KIND=check-typo

View File

@ -40,6 +40,10 @@ Working version
### Build system:
- #9332: Cease storing C dependencies in the codebase. C dependencies are
generated on-the-fly in development mode. For incremental compilation, the
MSVC ports require GCC to be present.
(David Allsopp, review by Sébastien Hinderer)
### Bug fixes:

View File

@ -39,7 +39,6 @@ else
defaultentry: world
endif
MKDIR=mkdir -p
ifeq "$(UNIX_OR_WIN32)" "win32"
LN = cp
else
@ -752,19 +751,14 @@ clean::
otherlibs_all := bigarray dynlink raw_spacetime_lib \
str systhreads unix win32unix
subdirs := debugger lex ocamldoc ocamltest runtime stdlib tools \
subdirs := debugger lex ocamldoc ocamltest stdlib tools \
$(addprefix otherlibs/, $(otherlibs_all)) \
.PHONY: alldepend
ifeq "$(TOOLCHAIN)" "msvc"
alldepend:
$(error Dependencies cannot be regenerated using the MSVC ports)
else
alldepend: depend
for dir in $(subdirs); do \
$(MAKE) -C $$dir depend || exit; \
done
endif
# The runtime system for the native-code compiler

View File

@ -23,3 +23,7 @@ include $(ROOTDIR)/Makefile.config
INSTALL ?= @INSTALL@
INSTALL_DATA ?= @INSTALL_DATA@
INSTALL_PROG ?= @INSTALL_PROGRAM@
# The command to generate C dependency information
DEP_CC=@DEP_CC@ -MM
COMPUTE_DEPS=@compute_deps@

View File

@ -17,6 +17,11 @@
# other Makefiles
# We assume that Makefile.config has already been included
# %(DEPDIR) must be kept in sync with entries in .gitignore
DEPDIR=.dep
D=d
MKDIR=mkdir -p
# note: these are defined by lazy expansions
# as some parts of the makefiles change BINDIR, etc.
# and expect INSTALL_BINDIR, etc. to stay in synch
@ -75,5 +80,16 @@ OCAMLLEX_FLAGS ?= -q
# This rule is similar to GNU make's implicit rule, except that it is more
# general (it supports both .o and .obj)
%.$(O): %.c
ifneq "$(COMPUTE_DEPS)" "false"
REQUIRED_HEADERS :=
else
RUNTIME_HEADERS := $(wildcard $(ROOTDIR)/runtime/caml/*.tbl) \
$(wildcard $(ROOTDIR)/runtime/caml/*.h)
REQUIRED_HEADERS := $(RUNTIME_HEADERS) $(wildcard *.h)
endif
%.$(O): %.c $(RUNTIME_HEADERS) $(wildcard *.h)
$(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
$(DEPDIR):
$(MKDIR) $@

142
configure vendored
View File

@ -698,6 +698,8 @@ DIRECT_LD
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
ac_ct_DEP_CC
DEP_CC
CPP
LT_SYS_LIBRARY_PATH
OTOOL64
@ -747,6 +749,7 @@ build_os
build_vendor
build_cpu
build
compute_deps
stdlib_manpages
PACKLD
flexlink_flags
@ -885,6 +888,7 @@ ac_user_opts='
enable_option_checking
enable_debug_runtime
enable_debugger
enable_dependency_generation
enable_instrumented_runtime
enable_vmthreads
enable_systhreads
@ -1558,6 +1562,8 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-debug-runtime do not build runtime with debugging support
--enable-debugger build the debugger [default=auto]
--disable-dependency-generation
do not compute dependency information for C sources
--enable-instrumented-runtime
build the instrumented runtime [default=auto]
@ -2896,6 +2902,7 @@ VERSION=4.12.0+dev0-2020-04-22
## Generated files
@ -3062,6 +3069,14 @@ else
fi
# Check whether --enable-dependency-generation was given.
if test "${enable_dependency_generation+set}" = set; then :
enableval=$enable_dependency_generation;
else
enable_dependency_generation=auto
fi
# Check whether --enable-instrumented-runtime was given.
@ -12269,6 +12284,133 @@ CC=$lt_save_CC
host_os=$old_host_os
case $host in #(
*-pc-windows) :
if test -n "$ac_tool_prefix"; then
for ac_prog in $DEP_CC gcc cc x86_64-w64-mingw32-gcc i686-w64-mingw32-gcc
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_DEP_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$DEP_CC"; then
ac_cv_prog_DEP_CC="$DEP_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_DEP_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
DEP_CC=$ac_cv_prog_DEP_CC
if test -n "$DEP_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEP_CC" >&5
$as_echo "$DEP_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$DEP_CC" && break
done
fi
if test -z "$DEP_CC"; then
ac_ct_DEP_CC=$DEP_CC
for ac_prog in $DEP_CC gcc cc x86_64-w64-mingw32-gcc i686-w64-mingw32-gcc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_DEP_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_DEP_CC"; then
ac_cv_prog_ac_ct_DEP_CC="$ac_ct_DEP_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DEP_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_DEP_CC=$ac_cv_prog_ac_ct_DEP_CC
if test -n "$ac_ct_DEP_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DEP_CC" >&5
$as_echo "$ac_ct_DEP_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$ac_ct_DEP_CC" && break
done
if test "x$ac_ct_DEP_CC" = x; then
DEP_CC="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DEP_CC=$ac_ct_DEP_CC
fi
fi
;; #(
*) :
DEP_CC="$CC" ;;
esac
case $enable_dependency_generation in #(
yes) :
if test "$DEP_CC" = "false"; then :
as_fn_error $? "The MSVC ports cannot generate dependency information. Install gcc (or another CC-like compiler)" "$LINENO" 5
else
compute_deps=true
fi ;; #(
no) :
compute_deps=false ;; #(
*) :
if test -e .git; then :
if test "$DEP_CC" = "false"; then :
compute_deps=false
else
compute_deps=true
fi
else
compute_deps=false
fi ;;
esac
# Extracting information from libtool's configuration
if test -n "$RANLIB" ; then :
RANLIBCMD="$RANLIB"

View File

@ -167,6 +167,7 @@ AC_SUBST([flexdll_chain])
AC_SUBST([flexlink_flags])
AC_SUBST([PACKLD])
AC_SUBST([stdlib_manpages])
AC_SUBST([compute_deps])
## Generated files
@ -214,6 +215,12 @@ AC_ARG_ENABLE([debugger],
[],
[enable_debugger=auto])
AC_ARG_ENABLE([dependency-generation],
[AS_HELP_STRING([--disable-dependency-generation],
[do not compute dependency information for C sources])],
[],
[enable_dependency_generation=auto])
AC_ARG_VAR([DLLIBS],
[which libraries to use (in addition to -ldl) to load dynamic libs])
@ -414,6 +421,27 @@ AS_IF([test x"$host_os" = "xwindows"],[host_os=mingw])
LT_INIT
host_os=$old_host_os
AS_CASE([$host],
[*-pc-windows],
[AC_CHECK_TOOLS(
[DEP_CC],
[$DEP_CC gcc cc x86_64-w64-mingw32-gcc i686-w64-mingw32-gcc],
[false])],
[DEP_CC="$CC"])
AS_CASE([$enable_dependency_generation],
[yes],
[AS_IF([test "$DEP_CC" = "false"],
[AC_MSG_ERROR(m4_normalize([The MSVC ports cannot generate dependency
information. Install gcc (or another CC-like compiler)]))],
[compute_deps=true])],
[no], [compute_deps=false],
[AS_IF([test -e .git],
[AS_IF([test "$DEP_CC" = "false"],
[compute_deps=false],
[compute_deps=true])],
[compute_deps=false])])
# Extracting information from libtool's configuration
AS_IF([test -n "$RANLIB" ],
[RANLIBCMD="$RANLIB"],

View File

@ -43,7 +43,6 @@ OCAMLPP=-pp 'sh ./remove_DEBUG'
# For installation
##############
MKDIR=mkdir -p
CP=cp
OCAMLDOC=ocamldoc
OCAMLDOC_OPT=$(OCAMLDOC).opt

View File

@ -1,23 +1,3 @@
run_unix.$(O): run_unix.c run.h ../runtime/caml/misc.h \
../runtime/caml/config.h ../runtime/caml/m.h ../runtime/caml/s.h \
run_common.h
run_stubs.$(O): run_stubs.c run.h ../runtime/caml/misc.h \
../runtime/caml/config.h ../runtime/caml/m.h ../runtime/caml/s.h \
../runtime/caml/mlvalues.h ../runtime/caml/domain_state.h \
../runtime/caml/domain_state.tbl ../runtime/caml/memory.h \
../runtime/caml/gc.h ../runtime/caml/major_gc.h \
../runtime/caml/freelist.h ../runtime/caml/minor_gc.h \
../runtime/caml/address_class.h ../runtime/caml/domain.h \
../runtime/caml/io.h ../runtime/caml/osdeps.h
ocamltest_stdlib_stubs.$(O): ocamltest_stdlib_stubs.c \
../runtime/caml/config.h ../runtime/caml/m.h ../runtime/caml/s.h \
../runtime/caml/mlvalues.h ../runtime/caml/misc.h \
../runtime/caml/domain_state.h ../runtime/caml/domain_state.tbl \
../runtime/caml/memory.h ../runtime/caml/gc.h \
../runtime/caml/major_gc.h ../runtime/caml/freelist.h \
../runtime/caml/minor_gc.h ../runtime/caml/address_class.h \
../runtime/caml/domain.h ../runtime/caml/alloc.h \
../runtime/caml/signals.h ../runtime/caml/osdeps.h
actions.cmo : \
variables.cmi \
result.cmi \

View File

@ -287,14 +287,18 @@ clean:
rm -rf $(cmx_files)
rm -rf $(generated)
rm -f ocamltest.html
rm -rf $(DEPDIR)
ifneq "$(TOOLCHAIN)" "msvc"
.PHONY: depend
depend: $(dependencies_generated_prereqs)
$(CC) -MM $(OC_CPPFLAGS) $(c_files) \
| sed -e 's/\.o/.$$(O)/' > .depend
$(ocamldep) $(depflags) $(depincludes) $(mli_files) $(ml_files) \
>> .depend
ifeq "$(COMPUTE_DEPS)" "true"
include $(addprefix $(DEPDIR)/, $(c_files:.c=.$(D)))
endif
$(DEPDIR)/%.$(D): %.c | $(DEPDIR)
$(DEP_CC) $(OC_CPPFLAGS) $< -MT '$*.$(O)' -MF $@
.PHONY: depend
depend: $(dependencies_generated_prereqs)
$(ocamldep) $(depflags) $(depincludes) $(mli_files) $(ml_files) \
> .depend
-include .depend

View File

@ -121,8 +121,9 @@ partialclean:
clean:: partialclean
rm -f *.dll *.so *.a *.lib *.o *.obj
rm -rf $(DEPDIR)
.SUFFIXES: .ml .mli .cmi .cmo .cmx .$(O)
.SUFFIXES: .ml .mli .cmi .cmo .cmx
.mli.cmi:
$(CAMLC) -c $(COMPFLAGS) $<
@ -133,5 +134,11 @@ clean:: partialclean
.ml.cmx:
$(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $<
.c.$(O):
$(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
ifeq "$(COMPUTE_DEPS)" "true"
ifneq "$(COBJS)" ""
include $(addprefix $(DEPDIR)/, $(COBJS:.$(O)=.$(D)))
endif
endif
$(DEPDIR)/%.$(D): %.c | $(DEPDIR)
$(DEP_CC) $(OC_CPPFLAGS) $< -MT '$*.$(O)' -MF $@

View File

@ -265,10 +265,6 @@ clean: partialclean
beforedepend: dynlink_platform_intf.mli
.PHONY: depend
ifeq "$(TOOLCHAIN)" "msvc"
depend:
$(error Dependencies cannot be regenerated using the MSVC ports)
else
DEPEND_DUMMY_FILES=\
native/dynlink_compilerlibs.ml \
byte/dynlink_compilerlibs.mli \
@ -282,11 +278,10 @@ depend: beforedepend
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash \
-I native -native *.ml native/dynlink.ml >> .depend
rm -f $(DEPEND_DUMMY_FILES)
endif
include .depend
.SUFFIXES: .ml .mli .cmi .cmo .cmx .$(O)
.SUFFIXES: .ml .mli .cmi .cmo .cmx
.mli.cmi:
$(OCAMLC) -c $(COMPFLAGS) $<

View File

@ -1,15 +1,3 @@
spacetime_offline.$(O): spacetime_offline.c ../../runtime/caml/alloc.h \
../../runtime/caml/misc.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/fail.h \
../../runtime/caml/gc.h ../../runtime/caml/intext.h \
../../runtime/caml/io.h ../../runtime/caml/major_gc.h \
../../runtime/caml/freelist.h ../../runtime/caml/memory.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/roots.h \
../../runtime/caml/signals.h ../../runtime/caml/stack.h \
../../runtime/caml/sys.h ../../runtime/caml/spacetime.h
raw_spacetime_lib.cmo : \
raw_spacetime_lib.cmi
raw_spacetime_lib.cmx : \

View File

@ -23,11 +23,6 @@ include ../Makefile.otherlibs.common
.PHONY: depend
depend:
ifeq "$(TOOLCHAIN)" "msvc"
$(error Dependencies cannot be regenerated using the MSVC ports)
else
$(CC) -MM $(OC_CPPFLAGS) *.c | sed -e 's/\.o/.$$(O)/g' > .depend
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml >> .depend
endif
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml > .depend
include .depend

View File

@ -1,9 +1,3 @@
strstubs.$(O): strstubs.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/memory.h \
../../runtime/caml/domain.h ../../runtime/caml/fail.h
str.cmo : \
str.cmi
str.cmx : \

View File

@ -26,11 +26,6 @@ str.cmx: str.cmi
.PHONY: depend
depend:
ifeq "$(TOOLCHAIN)" "msvc"
$(error Dependencies cannot be regenerated using the MSVC ports)
else
$(CC) -MM $(OC_CPPFLAGS) *.c | sed -e 's/\.o/.$$(O)/g' > .depend
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml >> .depend
endif
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml > .depend
include .depend

View File

@ -1,33 +1,3 @@
st_stubs_b.$(O): st_stubs.c ../../runtime/caml/alloc.h \
../../runtime/caml/misc.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/backtrace.h \
../../runtime/caml/exec.h ../../runtime/caml/callback.h \
../../runtime/caml/custom.h ../../runtime/caml/domain.h \
../../runtime/caml/fail.h ../../runtime/caml/io.h \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/printexc.h ../../runtime/caml/roots.h \
../../runtime/caml/signals.h ../../runtime/caml/stacks.h \
../../runtime/caml/sys.h ../../runtime/caml/memprof.h threads.h \
st_posix.h
st_stubs_n.$(O): st_stubs.c ../../runtime/caml/alloc.h \
../../runtime/caml/misc.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/backtrace.h \
../../runtime/caml/exec.h ../../runtime/caml/callback.h \
../../runtime/caml/custom.h ../../runtime/caml/domain.h \
../../runtime/caml/fail.h ../../runtime/caml/io.h \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/printexc.h ../../runtime/caml/roots.h \
../../runtime/caml/signals.h ../../runtime/caml/stack.h \
../../runtime/caml/sys.h ../../runtime/caml/memprof.h threads.h \
st_posix.h
condition.cmo : \
mutex.cmi \
condition.cmi

View File

@ -38,19 +38,13 @@ COMPFLAGS=-w +33..39 -warn-error A -g -bin-annot -safe-string
LIBNAME=threads
ifeq "$(UNIX_OR_WIN32)" "unix"
HEADER = st_posix.h
else # Windows
HEADER = st_win32.h
endif
# Note: the header on which object files produced from st_stubs.c
# should actually depend is known for sure only at compile-time.
# That's why this dependency is handled in the Makefile directly
# and removed from the output of the C compiler during make depend
BYTECODE_C_OBJS=st_stubs_b.$(O)
NATIVECODE_C_OBJS=st_stubs_n.$(O)
BYTECODE_C_OBJS=st_stubs.b.$(O)
NATIVECODE_C_OBJS=st_stubs.n.$(O)
THREADS_SOURCES = thread.ml mutex.ml condition.ml event.ml threadUnix.ml
@ -92,16 +86,17 @@ $(LIBNAME).cmxa: $(THREADS_NCOBJS)
# which itself will pass -lunix to the C linker. It seems more
# modular to me this way. -- Alain
# The following lines produce two object files st_stubs_b.$(O) and
# st_stubs_n.$(O) from the same source file st_stubs.c (it is compiled
# The following lines produce two object files st_stubs.b.$(O) and
# st_stubs.n.$(O) from the same source file st_stubs.c (it is compiled
# twice, each time with different options).
st_stubs_n.$(O): OC_CPPFLAGS += $(NATIVE_CPPFLAGS)
st_stubs.n.$(O): OC_CPPFLAGS += $(NATIVE_CPPFLAGS)
st_stubs_b.$(O): st_stubs.c $(HEADER)
$(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
st_stubs_n.$(O): st_stubs.c $(HEADER)
ifneq "$(COMPUTE_DEPS)" "false"
st_stubs.%.$(O): st_stubs.c
else
st_stubs.%.$(O): st_stubs.c $(RUNTIME_HEADERS) $(wildcard *.h)
endif
$(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
partialclean:
@ -109,6 +104,7 @@ partialclean:
clean: partialclean
rm -f dllthreads*.so dllthreads*.dll *.a *.lib *.o *.obj
rm -rf $(DEPDIR)
INSTALL_THREADSLIBDIR=$(INSTALL_LIBDIR)/$(LIBNAME)
@ -150,19 +146,28 @@ installopt:
.ml.cmx:
$(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $<
.PHONY: depend
ifeq "$(TOOLCHAIN)" "msvc"
depend:
$(error Dependencies cannot be regenerated using the MSVC ports)
else
depend:
$(CC) -MM $(OC_CPPFLAGS) st_stubs.c \
| sed -e 's/st_stubs\.o/st_stubs_b.$$(O)/' \
-e 's/ st_\(posix\|win32\)\.h//g' > .depend
$(CC) -MM $(OC_CPPFLAGS) $(NATIVE_CPPFLAGS) \
st_stubs.c | sed -e 's/st_stubs\.o/st_stubs_n.$$(O)/' \
-e 's/ st_\(posix\|win32\)\.h//g' >> .depend
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml >> .depend
DEP_FILES := st_stubs.b.$(D)
ifneq "$(NATIVE_COMPILER)" "false"
DEP_FILES += st_stubs.n.$(D)
endif
ifeq "$(COMPUTE_DEPS)" "true"
include $(addprefix $(DEPDIR)/, $(DEP_FILES))
endif
%.n.$(O): OC_CPPFLAGS += $(NATIVE_CPPFLAGS)
%.b.c: %.c
@
%.n.c: %.c
@
$(DEPDIR)/%.$(D): %.c | $(DEPDIR)
$(DEP_CC) $(OC_CPPFLAGS) $(basename $*).c -MG -MT '$*.$(O)' -MF $@
.PHONY: depend
depend:
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml > .depend
include .depend

View File

@ -1,597 +1,3 @@
accept.o: accept.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h socketaddr.h
access.o: access.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/memory.h \
../../runtime/caml/domain.h ../../runtime/caml/signals.h \
../../runtime/caml/osdeps.h unixsupport.h
addrofstr.o: addrofstr.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/fail.h unixsupport.h socketaddr.h
alarm.o: alarm.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
bind.o: bind.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h socketaddr.h
channels.o: channels.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/io.h ../../runtime/caml/signals.h unixsupport.h \
socketaddr.h
chdir.o: chdir.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/signals.h \
../../runtime/caml/osdeps.h unixsupport.h
chmod.o: chmod.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/signals.h \
../../runtime/caml/osdeps.h unixsupport.h
chown.o: chown.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
chroot.o: chroot.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
close.o: close.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/signals.h unixsupport.h
closedir.o: closedir.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
connect.o: connect.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/signals.h unixsupport.h socketaddr.h
cst2constr.o: cst2constr.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/fail.h cst2constr.h
cstringv.o: cstringv.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/osdeps.h unixsupport.h
dup.o: dup.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl unixsupport.h
dup2.o: dup2.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl unixsupport.h
envir.o: envir.c ../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/alloc.h
errmsg.o: errmsg.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h
execv.o: execv.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/osdeps.h unixsupport.h
execve.o: execve.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/osdeps.h unixsupport.h
execvp.o: execvp.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/osdeps.h unixsupport.h
exit.o: exit.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl unixsupport.h
fchmod.o: fchmod.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/signals.h unixsupport.h
fchown.o: fchown.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/signals.h unixsupport.h
fcntl.o: fcntl.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
fork.o: fork.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/debugger.h \
unixsupport.h
fsync.o: fsync.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/signals.h unixsupport.h
ftruncate.o: ftruncate.c ../../runtime/caml/fail.h \
../../runtime/caml/misc.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/io.h \
../../runtime/caml/signals.h unixsupport.h
getaddrinfo.o: getaddrinfo.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h cst2constr.h socketaddr.h
getcwd.o: getcwd.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/osdeps.h ../../runtime/caml/memory.h \
../../runtime/caml/gc.h ../../runtime/caml/major_gc.h \
../../runtime/caml/freelist.h ../../runtime/caml/minor_gc.h \
../../runtime/caml/address_class.h ../../runtime/caml/domain.h \
unixsupport.h
getegid.o: getegid.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
geteuid.o: geteuid.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
getgid.o: getgid.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
getgr.o: getgr.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/fail.h ../../runtime/caml/alloc.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h unixsupport.h
getgroups.o: getgroups.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h unixsupport.h
gethost.o: gethost.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h socketaddr.h
gethostname.o: gethostname.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h unixsupport.h
getlogin.o: getlogin.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h unixsupport.h
getnameinfo.o: getnameinfo.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h socketaddr.h
getpeername.o: getpeername.c ../../runtime/caml/fail.h \
../../runtime/caml/misc.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl unixsupport.h socketaddr.h
getpid.o: getpid.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
getppid.o: getppid.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
getproto.o: getproto.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h unixsupport.h
getpw.o: getpw.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/memory.h \
../../runtime/caml/domain.h ../../runtime/caml/fail.h unixsupport.h
getserv.o: getserv.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h unixsupport.h
getsockname.o: getsockname.c ../../runtime/caml/fail.h \
../../runtime/caml/misc.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl unixsupport.h socketaddr.h
gettimeofday.o: gettimeofday.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h unixsupport.h
getuid.o: getuid.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
gmtime.o: gmtime.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h unixsupport.h
initgroups.o: initgroups.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h unixsupport.h
isatty.o: isatty.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
itimer.o: itimer.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h unixsupport.h
kill.o: kill.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/fail.h \
unixsupport.h ../../runtime/caml/signals.h
link.o: link.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/memory.h \
../../runtime/caml/domain.h ../../runtime/caml/signals.h unixsupport.h
listen.o: listen.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
lockf.o: lockf.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/signals.h unixsupport.h
lseek.o: lseek.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/io.h \
../../runtime/caml/signals.h unixsupport.h
mkdir.o: mkdir.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
mkfifo.o: mkfifo.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
mmap.o: mmap.c ../../runtime/caml/bigarray.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/fail.h ../../runtime/caml/io.h \
../../runtime/caml/signals.h ../../runtime/caml/sys.h unixsupport.h
mmap_ba.o: mmap_ba.c ../../runtime/caml/alloc.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/bigarray.h ../../runtime/caml/custom.h \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h
nice.o: nice.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl unixsupport.h
open.o: open.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/alloc.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
opendir.o: opendir.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/alloc.h ../../runtime/caml/signals.h unixsupport.h
pipe.o: pipe.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/alloc.h \
unixsupport.h
putenv.o: putenv.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/osdeps.h unixsupport.h
read.o: read.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/memory.h \
../../runtime/caml/domain.h ../../runtime/caml/signals.h unixsupport.h
readdir.o: readdir.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/fail.h ../../runtime/caml/alloc.h \
../../runtime/caml/signals.h unixsupport.h
readlink.o: readlink.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/signals.h unixsupport.h
rename.o: rename.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
rewinddir.o: rewinddir.c ../../runtime/caml/fail.h \
../../runtime/caml/misc.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl unixsupport.h
rmdir.o: rmdir.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/signals.h \
../../runtime/caml/osdeps.h unixsupport.h
select.o: select.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
sendrecv.o: sendrecv.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h socketaddr.h
setgid.o: setgid.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
setgroups.o: setgroups.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h unixsupport.h
setsid.o: setsid.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
setuid.o: setuid.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
shutdown.o: shutdown.c ../../runtime/caml/fail.h \
../../runtime/caml/misc.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/mlvalues.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl unixsupport.h
signals.o: signals.c ../../runtime/caml/alloc.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/fail.h ../../runtime/caml/memory.h \
../../runtime/caml/gc.h ../../runtime/caml/major_gc.h \
../../runtime/caml/freelist.h ../../runtime/caml/minor_gc.h \
../../runtime/caml/address_class.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
sleep.o: sleep.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/signals.h unixsupport.h
socket.o: socket.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
socketaddr.o: socketaddr.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/memory.h \
../../runtime/caml/domain.h unixsupport.h socketaddr.h
socketpair.o: socketpair.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h unixsupport.h
sockopt.o: sockopt.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h unixsupport.h \
socketaddr.h
stat.o: stat.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/memory.h \
../../runtime/caml/gc.h ../../runtime/caml/major_gc.h \
../../runtime/caml/freelist.h ../../runtime/caml/minor_gc.h \
../../runtime/caml/address_class.h ../../runtime/caml/domain.h \
../../runtime/caml/alloc.h ../../runtime/caml/signals.h \
../../runtime/caml/io.h unixsupport.h cst2constr.h nanosecond_stat.h
strofaddr.o: strofaddr.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h unixsupport.h \
socketaddr.h
symlink.o: symlink.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
termios.o: termios.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/fail.h unixsupport.h
time.o: time.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/alloc.h \
unixsupport.h
times.o: times.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/memory.h \
../../runtime/caml/domain.h unixsupport.h
truncate.o: truncate.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/fail.h \
../../runtime/caml/signals.h ../../runtime/caml/io.h unixsupport.h
umask.o: umask.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
unixsupport.h
unixsupport.o: unixsupport.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/alloc.h ../../runtime/caml/callback.h \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/fail.h unixsupport.h cst2constr.h
unlink.o: unlink.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/signals.h \
../../runtime/caml/osdeps.h unixsupport.h
utimes.o: utimes.c ../../runtime/caml/fail.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h ../../runtime/caml/signals.h \
../../runtime/caml/osdeps.h unixsupport.h
wait.o: wait.c ../../runtime/caml/mlvalues.h ../../runtime/caml/config.h \
../../runtime/caml/m.h ../../runtime/caml/s.h \
../../runtime/caml/misc.h ../../runtime/caml/domain_state.h \
../../runtime/caml/domain_state.tbl ../../runtime/caml/alloc.h \
../../runtime/caml/fail.h ../../runtime/caml/memory.h \
../../runtime/caml/gc.h ../../runtime/caml/major_gc.h \
../../runtime/caml/freelist.h ../../runtime/caml/minor_gc.h \
../../runtime/caml/address_class.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
write.o: write.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/memory.h ../../runtime/caml/domain.h \
../../runtime/caml/signals.h unixsupport.h
unix.cmo : \
unix.cmi
unix.cmx : \

View File

@ -48,11 +48,6 @@ include ../Makefile.otherlibs.common
.PHONY: depend
depend:
ifeq "$(TOOLCHAIN)" "msvc"
$(error Dependencies cannot be regenerated using the MSVC ports)
else
$(CC) -MM $(OC_CPPFLAGS) *.c > .depend
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml >> .depend
endif
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml > .depend
include .depend

View File

@ -1,18 +1,3 @@
windbug.$(O): windbug.c windbug.h
cst2constr.$(O): cst2constr.c ../../runtime/caml/mlvalues.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/misc.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/fail.h ../unix/cst2constr.h
mmap_ba.$(O): mmap_ba.c ../../runtime/caml/alloc.h ../../runtime/caml/misc.h \
../../runtime/caml/config.h ../../runtime/caml/m.h \
../../runtime/caml/s.h ../../runtime/caml/mlvalues.h \
../../runtime/caml/domain_state.h ../../runtime/caml/domain_state.tbl \
../../runtime/caml/bigarray.h ../../runtime/caml/custom.h \
../../runtime/caml/memory.h ../../runtime/caml/gc.h \
../../runtime/caml/major_gc.h ../../runtime/caml/freelist.h \
../../runtime/caml/minor_gc.h ../../runtime/caml/address_class.h \
../../runtime/caml/domain.h
unix.cmo : \
unix.cmi
unix.cmx : \

View File

@ -65,15 +65,8 @@ $(UNIX_FILES) $(UNIX_CAML_FILES): %: ../unix/%
cp ../unix/$* $*
.PHONY: depend
ifeq "$(TOOLCHAIN)" "msvc"
depend:
$(error Dependencies cannot be regenerated using the MSVC ports)
else
depend: $(ALL_FILES) $(UNIX_CAML_FILES) unix.ml
$(CC) -MM $(OC_CPPFLAGS) -I../unix $(ALL_FILES) \
| sed -e 's/\.o/.$$(O)/g' > .depend
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash $(UNIX_CAML_FILES) \
unix.ml >> .depend
endif
unix.ml > .depend
include .depend

File diff suppressed because it is too large Load Diff

View File

@ -46,6 +46,9 @@ else
other_files := win32.c
endif
GENERATED_HEADERS := caml/opnames.h caml/version.h caml/jumptbl.h
CONFIG_HEADERS := caml/m.h caml/s.h
ifeq "$(TOOLCHAIN)" "msvc"
ASM_EXT := asm
ASM_SOURCES := $(ARCH)nt.$(ASM_EXT)
@ -87,22 +90,22 @@ endif
ASM_OBJECTS := $(ASM_SOURCES:.$(ASM_EXT)=.$(O))
libcamlrun_OBJECTS := $(BYTECODE_C_SOURCES:.c=_b.$(O))
libcamlrun_OBJECTS := $(BYTECODE_C_SOURCES:.c=.b.$(O))
libcamlrund_OBJECTS := $(BYTECODE_C_SOURCES:.c=_bd.$(O)) \
instrtrace_bd.$(O)
libcamlrund_OBJECTS := $(BYTECODE_C_SOURCES:.c=.bd.$(O)) \
instrtrace.bd.$(O)
libcamlruni_OBJECTS := $(BYTECODE_C_SOURCES:.c=_bi.$(O))
libcamlruni_OBJECTS := $(BYTECODE_C_SOURCES:.c=.bi.$(O))
libcamlrunpic_OBJECTS := $(BYTECODE_C_SOURCES:.c=_bpic.$(O))
libcamlrunpic_OBJECTS := $(BYTECODE_C_SOURCES:.c=.bpic.$(O))
libasmrun_OBJECTS := $(NATIVE_C_SOURCES:.c=_n.$(O)) $(ASM_OBJECTS)
libasmrun_OBJECTS := $(NATIVE_C_SOURCES:.c=.n.$(O)) $(ASM_OBJECTS)
libasmrund_OBJECTS := $(NATIVE_C_SOURCES:.c=_nd.$(O)) $(ASM_OBJECTS)
libasmrund_OBJECTS := $(NATIVE_C_SOURCES:.c=.nd.$(O)) $(ASM_OBJECTS)
libasmruni_OBJECTS := $(NATIVE_C_SOURCES:.c=_ni.$(O)) $(ASM_OBJECTS)
libasmruni_OBJECTS := $(NATIVE_C_SOURCES:.c=.ni.$(O)) $(ASM_OBJECTS)
libasmrunpic_OBJECTS := $(NATIVE_C_SOURCES:.c=_npic.$(O)) \
libasmrunpic_OBJECTS := $(NATIVE_C_SOURCES:.c=.npic.$(O)) \
$(ASM_OBJECTS:.$(O)=_libasmrunpic.$(O))
# General (non target-specific) assembler and compiler flags
@ -179,7 +182,12 @@ endif
all: $(BYTECODE_STATIC_LIBRARIES) $(BYTECODE_SHARED_LIBRARIES) $(PROGRAMS)
.PHONY: allopt
ifneq "$(NATIVE_COMPILER)" "false"
allopt: $(NATIVE_STATIC_LIBRARIES) $(NATIVE_SHARED_LIBRARIES)
else
allopt:
$(error The build has been configured with --disable-native-compiler)
endif
INSTALL_INCDIR=$(INSTALL_LIBDIR)/caml
.PHONY: install
@ -204,8 +212,9 @@ clean:
rm -f *.o *.obj *.a *.lib *.so *.dll ld.conf
rm -f ocamlrun ocamlrund ocamlruni
rm -f ocamlrun.exe ocamlrund.exe ocamlruni.exe
rm -f primitives primitives.new prims.c caml/opnames.h caml/jumptbl.h
rm -f caml/version.h domain_state*.inc
rm -f primitives primitives.new prims.c $(GENERATED_HEADERS)
rm -f domain_state*.inc
rm -rf $(DEPDIR)
.PHONY: distclean
distclean: clean
@ -313,20 +322,26 @@ libasmrun_shared.$(SO): $(libasmrunpic_OBJECTS)
# Target-specific preprocessor and compiler flags
%_bd.$(O): OC_CPPFLAGS += $(OC_DEBUG_CPPFLAGS)
%.bd.$(O): OC_CPPFLAGS += $(OC_DEBUG_CPPFLAGS)
%.bd.$(D): OC_CPPFLAGS += $(OC_DEBUG_CPPFLAGS)
%_bi.$(O): OC_CPPFLAGS += $(OC_INSTR_CPPFLAGS)
%.bi.$(O): OC_CPPFLAGS += $(OC_INSTR_CPPFLAGS)
%.bi.$(D): OC_CPPFLAGS += $(OC_INSTR_CPPFLAGS)
%_bpic.$(O): OC_CFLAGS += $(SHAREDLIB_CFLAGS)
%.bpic.$(O): OC_CFLAGS += $(SHAREDLIB_CFLAGS)
%_n.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS)
%.n.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS)
%.n.$(D): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS)
%_nd.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS) $(OC_DEBUG_CPPFLAGS)
%.nd.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS) $(OC_DEBUG_CPPFLAGS)
%.nd.$(D): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS) $(OC_DEBUG_CPPFLAGS)
%_ni.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS) $(OC_INSTR_CPPFLAGS)
%.ni.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS) $(OC_INSTR_CPPFLAGS)
%.ni.$(D): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS) $(OC_INSTR_CPPFLAGS)
%_npic.$(O): OC_CFLAGS += $(SHAREDLIB_CFLAGS)
%_npic.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS)
%.npic.$(O): OC_CFLAGS += $(SHAREDLIB_CFLAGS)
%.npic.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS)
%.npic.$(D): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS)
# Compilation of C files
@ -334,16 +349,29 @@ libasmrun_shared.$(SO): $(libasmrunpic_OBJECTS)
# that corresponds to the name of the generated object file
# (without the extension, which is added by the macro)
define COMPILE_C_FILE
ifneq "$(COMPUTE_DEPS)" "false"
ifneq "$(1)" "%"
# This rule states that, for example, sys.b.c is sys.c and is needed for the
# dependency generation pattern rule.
$(1).c: %.c
@
endif
$(1).$(O): %.c
else
$(1).$(O): %.c $(CONFIG_HEADERS) $(GENERATED_HEADERS) $(RUNTIME_HEADERS)
endif
$$(CC) -c $$(OC_CFLAGS) $$(OC_CPPFLAGS) $$(OUTPUTOBJ)$$@ $$<
endef
object_types := % %_b %_bd %_bi %_bpic %_n %_nd %_ni %_np %_npic
object_types := % %.b %.bd %.bi %.bpic
ifneq "$(NATIVE_COMPILER)" "false"
object_types += %.n %.nd %.ni %.np %.npic
endif
$(foreach object_type, $(object_types), \
$(eval $(call COMPILE_C_FILE,$(object_type))))
dynlink_%.$(O): OC_CPPFLAGS += $(STDLIB_CPP_FLAG)
dynlink.%.$(O): OC_CPPFLAGS += $(STDLIB_CPP_FLAG)
$(foreach object_type,$(subst %,,$(object_types)), \
$(eval dynlink$(object_type).$(O): $(ROOTDIR)/Makefile.config))
@ -377,37 +405,19 @@ i386nt.obj: i386nt.asm domain_state32.inc
# Dependencies
.PHONY: depend
ifeq "$(TOOLCHAIN)" "msvc"
depend:
$(error Dependencies cannot be regenerated using the MSVC ports)
else
DEP_FILES := $(addsuffix .b, $(basename $(BYTECODE_C_SOURCES) \
instrtrace $(other_files)))
ifneq "$(NATIVE_COMPILER)" "false"
DEP_FILES += $(addsuffix .n, $(basename $(NATIVE_C_SOURCES)))
endif
DEP_FILES += $(addsuffix d, $(DEP_FILES)) \
$(addsuffix i, $(DEP_FILES)) \
$(addsuffix pic, $(DEP_FILES))
DEP_FILES := $(addsuffix .$(D), $(DEP_FILES))
NATIVE_DEP_CPPFLAGS := $(OC_CPPFLAGS) $(OC_NATIVE_CPPFLAGS)
BYTECODE_DEP_FILES := $(BYTECODE_C_SOURCES) $(other_files) instrtrace.c
NATIVE_DEP_FILES := $(NATIVE_C_SOURCES) $(other_files)
depend: *.c caml/opnames.h caml/jumptbl.h caml/version.h
$(CC) -MM $(OC_CPPFLAGS) $(BYTECODE_DEP_FILES) | \
sed -e 's/\([^.]*\)\.o/\1_b.$$(O)/' > .depend
$(CC) -MM $(OC_CPPFLAGS) $(OC_DEBUG_CPPFLAGS) \
$(BYTECODE_DEP_FILES) | \
sed -e 's/\([^.]*\)\.o/\1_bd.$$(O)/' >> .depend
$(CC) -MM $(OC_CPPFLAGS) $(OC_INSTR_CPPFLAGS) \
$(BYTECODE_DEP_FILES) | \
sed -e 's/\([^.]*\)\.o/\1_bi.$$(O)/' >> .depend
$(CC) -MM $(OC_CPPFLAGS) $(BYTECODE_DEP_FILES) | \
sed -e 's/\([^.]*\)\.o/\1_bpic.$$(O)/' >> .depend
$(CC) -MM $(NATIVE_DEP_CPPFLAGS) $(NATIVE_DEP_FILES) | \
sed -e 's/\([^.]*\)\.o/\1_n.$$(O)/' >> .depend
$(CC) -MM $(NATIVE_DEP_CPPFLAGS) $(OC_DEBUG_CPPFLAGS) \
$(NATIVE_DEP_FILES) | \
sed -e 's/\([^.]*\)\.o/\1_nd.$$(O)/' >> .depend
$(CC) -MM $(NATIVE_DEP_CPPFLAGS) $(OC_INSTR_CPPFLAGS) \
$(NATIVE_DEP_FILES) | \
sed -e 's/\([^.]*\)\.o/\1_ni.$$(O)/' >> .depend
$(CC) -MM $(NATIVE_DEP_CPPFLAGS) $(NATIVE_DEP_FILES) | \
sed -e 's/\([^.]*\)\.o/\1_npic.$$(O)/' >> .depend
ifeq "$(COMPUTE_DEPS)" "true"
include $(addprefix $(DEPDIR)/, $(DEP_FILES))
endif
include .depend
$(DEPDIR)/%.$(D): %.c | $(DEPDIR)
$(DEP_CC) $(OC_CPPFLAGS) $(basename $*).c -MG -MT '$*.$(O)' -MF $@

View File

@ -68,9 +68,11 @@ function set_configuration {
mkdir -p "$CACHE_DIRECTORY"
./configure --cache-file="$CACHE_DIRECTORY/config.cache-$1" \
--disable-dependency-generation \
$build $host --prefix="$2" --enable-ocamltest || ( \
rm -f "$CACHE_DIRECTORY/config.cache-$1" ; \
./configure --cache-file="$CACHE_DIRECTORY/config.cache-$1" \
--disable-dependency-generation \
$build $host --prefix="$2" --enable-ocamltest )
FILE=$(pwd | cygpath -f - -m)/Makefile.config

View File

@ -125,7 +125,8 @@ set -ex
# default values
make=make
instdir="$HOME/ocaml-tmp-install"
confoptions="--enable-ocamltest ${OCAML_CONFIGURE_OPTIONS}"
confoptions="--enable-ocamltest --disable-dependency-generation \
${OCAML_CONFIGURE_OPTIONS}"
make_native=true
cleanup=false
check_make_alldepend=false

View File

@ -127,7 +127,7 @@ echo "======== old school build =========="
git clean -q -f -d -x
instdir="$HOME/ocaml-tmp-install-$$"
./configure --prefix "$instdir"
./configure --prefix "$instdir" --disable-dependency-generation
# Build the system without using world.opt
make $jobs world
@ -149,7 +149,7 @@ git clean -q -f -d -x
# We cannot give the sanitizer options as part of -cc because
# then various autoconfiguration tests fail.
# Instead, we'll fix OC_CFLAGS a posteriori.
./configure CC=clang-9 --disable-stdlib-manpages
./configure CC=clang-9 --disable-stdlib-manpages --disable-dependency-generation
# These are the undefined behaviors we want to check
# Others occur on purpose e.g. signed arithmetic overflow
@ -200,7 +200,7 @@ echo "======== clang 9, thread sanitizer =========="
git clean -q -f -d -x
./configure CC=clang-9 --disable-stdlib-manpages
./configure CC=clang-9 --disable-stdlib-manpages --disable-dependency-generation
# Select thread sanitizer
# Don't optimize too much to get better backtraces of errors

View File

@ -125,7 +125,8 @@ host=''
conffile=Makefile.config
make=make
instdir="$HOME/ocaml-tmp-install"
confoptions="--enable-ocamltest ${OCAML_CONFIGURE_OPTIONS}"
confoptions="--enable-ocamltest --disable-dependency-generation \
${OCAML_CONFIGURE_OPTIONS}"
make_native=true
cleanup=false
check_make_alldepend=false

View File

@ -60,7 +60,8 @@ set -x
PREFIX=~/local
MAKE=make SHELL=dash
MAKE="make $MAKE_ARG"
SHELL=dash
TRAVIS_CUR_HEAD=${TRAVIS_COMMIT_RANGE%%...*}
TRAVIS_PR_HEAD=${TRAVIS_COMMIT_RANGE##*...}
@ -106,12 +107,14 @@ EOF
--disable-ocamldoc \
--disable-native-compiler \
--enable-ocamltest \
--disable-dependency-generation \
$CONFIG_ARG"
else
configure_flags="\
--prefix=$PREFIX \
--enable-flambda-invariants \
--enable-ocamltest \
--disable-dependency-generation \
$CONFIG_ARG"
fi
case $XARCH in
@ -154,7 +157,7 @@ EOF
cd ..
if command -v pdflatex &>/dev/null ; then
echo Ensuring that all library documentation compiles
make -C ocamldoc html_doc pdf_doc texi_doc
$MAKE -C ocamldoc html_doc pdf_doc texi_doc
fi
$MAKE install
if fgrep 'SUPPORTS_SHARED_LIBRARIES=true' Makefile.config &>/dev/null ; then