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 stdlib/*.mld typo.missing-header
tools/mantis2gh_stripped.csv typo.missing-header tools/mantis2gh_stripped.csv typo.missing-header
.travis.yml typo.long-line
*.adoc typo.long-line=may *.adoc typo.long-line=may
/.github/ISSUE_TEMPLATE/config.yml typo.missing-header /.github/ISSUE_TEMPLATE/config.yml typo.missing-header

7
.gitignore vendored
View File

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

View File

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

View File

@ -40,6 +40,10 @@ Working version
### Build system: ### 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: ### Bug fixes:

View File

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

View File

@ -23,3 +23,7 @@ include $(ROOTDIR)/Makefile.config
INSTALL ?= @INSTALL@ INSTALL ?= @INSTALL@
INSTALL_DATA ?= @INSTALL_DATA@ INSTALL_DATA ?= @INSTALL_DATA@
INSTALL_PROG ?= @INSTALL_PROGRAM@ 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 # other Makefiles
# We assume that Makefile.config has already been included # 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 # note: these are defined by lazy expansions
# as some parts of the makefiles change BINDIR, etc. # as some parts of the makefiles change BINDIR, etc.
# and expect INSTALL_BINDIR, etc. to stay in synch # 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 # This rule is similar to GNU make's implicit rule, except that it is more
# general (it supports both .o and .obj) # 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)$@ $< $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
$(DEPDIR):
$(MKDIR) $@

142
configure vendored
View File

@ -698,6 +698,8 @@ DIRECT_LD
INSTALL_DATA INSTALL_DATA
INSTALL_SCRIPT INSTALL_SCRIPT
INSTALL_PROGRAM INSTALL_PROGRAM
ac_ct_DEP_CC
DEP_CC
CPP CPP
LT_SYS_LIBRARY_PATH LT_SYS_LIBRARY_PATH
OTOOL64 OTOOL64
@ -747,6 +749,7 @@ build_os
build_vendor build_vendor
build_cpu build_cpu
build build
compute_deps
stdlib_manpages stdlib_manpages
PACKLD PACKLD
flexlink_flags flexlink_flags
@ -885,6 +888,7 @@ ac_user_opts='
enable_option_checking enable_option_checking
enable_debug_runtime enable_debug_runtime
enable_debugger enable_debugger
enable_dependency_generation
enable_instrumented_runtime enable_instrumented_runtime
enable_vmthreads enable_vmthreads
enable_systhreads enable_systhreads
@ -1558,6 +1562,8 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-debug-runtime do not build runtime with debugging support --disable-debug-runtime do not build runtime with debugging support
--enable-debugger build the debugger [default=auto] --enable-debugger build the debugger [default=auto]
--disable-dependency-generation
do not compute dependency information for C sources
--enable-instrumented-runtime --enable-instrumented-runtime
build the instrumented runtime [default=auto] build the instrumented runtime [default=auto]
@ -2896,6 +2902,7 @@ VERSION=4.12.0+dev0-2020-04-22
## Generated files ## Generated files
@ -3062,6 +3069,14 @@ else
fi 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. # Check whether --enable-instrumented-runtime was given.
@ -12269,6 +12284,133 @@ CC=$lt_save_CC
host_os=$old_host_os 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 # Extracting information from libtool's configuration
if test -n "$RANLIB" ; then : if test -n "$RANLIB" ; then :
RANLIBCMD="$RANLIB" RANLIBCMD="$RANLIB"

View File

@ -167,6 +167,7 @@ AC_SUBST([flexdll_chain])
AC_SUBST([flexlink_flags]) AC_SUBST([flexlink_flags])
AC_SUBST([PACKLD]) AC_SUBST([PACKLD])
AC_SUBST([stdlib_manpages]) AC_SUBST([stdlib_manpages])
AC_SUBST([compute_deps])
## Generated files ## Generated files
@ -214,6 +215,12 @@ AC_ARG_ENABLE([debugger],
[], [],
[enable_debugger=auto]) [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], AC_ARG_VAR([DLLIBS],
[which libraries to use (in addition to -ldl) to load dynamic libs]) [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 LT_INIT
host_os=$old_host_os 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 # Extracting information from libtool's configuration
AS_IF([test -n "$RANLIB" ], AS_IF([test -n "$RANLIB" ],
[RANLIBCMD="$RANLIB"], [RANLIBCMD="$RANLIB"],

View File

@ -43,7 +43,6 @@ OCAMLPP=-pp 'sh ./remove_DEBUG'
# For installation # For installation
############## ##############
MKDIR=mkdir -p
CP=cp CP=cp
OCAMLDOC=ocamldoc OCAMLDOC=ocamldoc
OCAMLDOC_OPT=$(OCAMLDOC).opt 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 : \ actions.cmo : \
variables.cmi \ variables.cmi \
result.cmi \ result.cmi \

View File

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

View File

@ -121,8 +121,9 @@ partialclean:
clean:: partialclean clean:: partialclean
rm -f *.dll *.so *.a *.lib *.o *.obj 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: .mli.cmi:
$(CAMLC) -c $(COMPFLAGS) $< $(CAMLC) -c $(COMPFLAGS) $<
@ -133,5 +134,11 @@ clean:: partialclean
.ml.cmx: .ml.cmx:
$(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $< $(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $<
.c.$(O): ifeq "$(COMPUTE_DEPS)" "true"
$(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< 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 beforedepend: dynlink_platform_intf.mli
.PHONY: depend .PHONY: depend
ifeq "$(TOOLCHAIN)" "msvc"
depend:
$(error Dependencies cannot be regenerated using the MSVC ports)
else
DEPEND_DUMMY_FILES=\ DEPEND_DUMMY_FILES=\
native/dynlink_compilerlibs.ml \ native/dynlink_compilerlibs.ml \
byte/dynlink_compilerlibs.mli \ byte/dynlink_compilerlibs.mli \
@ -282,11 +278,10 @@ depend: beforedepend
$(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash \ $(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash \
-I native -native *.ml native/dynlink.ml >> .depend -I native -native *.ml native/dynlink.ml >> .depend
rm -f $(DEPEND_DUMMY_FILES) rm -f $(DEPEND_DUMMY_FILES)
endif
include .depend include .depend
.SUFFIXES: .ml .mli .cmi .cmo .cmx .$(O) .SUFFIXES: .ml .mli .cmi .cmo .cmx
.mli.cmi: .mli.cmi:
$(OCAMLC) -c $(COMPFLAGS) $< $(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.cmo : \
raw_spacetime_lib.cmi raw_spacetime_lib.cmi
raw_spacetime_lib.cmx : \ raw_spacetime_lib.cmx : \

View File

@ -23,11 +23,6 @@ include ../Makefile.otherlibs.common
.PHONY: depend .PHONY: depend
depend: depend:
ifeq "$(TOOLCHAIN)" "msvc" $(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml > .depend
$(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
include .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.cmo : \
str.cmi str.cmi
str.cmx : \ str.cmx : \

View File

@ -26,11 +26,6 @@ str.cmx: str.cmi
.PHONY: depend .PHONY: depend
depend: depend:
ifeq "$(TOOLCHAIN)" "msvc" $(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml > .depend
$(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
include .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 : \ condition.cmo : \
mutex.cmi \ mutex.cmi \
condition.cmi condition.cmi

View File

@ -38,19 +38,13 @@ COMPFLAGS=-w +33..39 -warn-error A -g -bin-annot -safe-string
LIBNAME=threads 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 # Note: the header on which object files produced from st_stubs.c
# should actually depend is known for sure only at compile-time. # should actually depend is known for sure only at compile-time.
# That's why this dependency is handled in the Makefile directly # That's why this dependency is handled in the Makefile directly
# and removed from the output of the C compiler during make depend # and removed from the output of the C compiler during make depend
BYTECODE_C_OBJS=st_stubs_b.$(O) BYTECODE_C_OBJS=st_stubs.b.$(O)
NATIVECODE_C_OBJS=st_stubs_n.$(O) NATIVECODE_C_OBJS=st_stubs.n.$(O)
THREADS_SOURCES = thread.ml mutex.ml condition.ml event.ml threadUnix.ml 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 # which itself will pass -lunix to the C linker. It seems more
# modular to me this way. -- Alain # modular to me this way. -- Alain
# The following lines produce two object files st_stubs_b.$(O) and # 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 # st_stubs.n.$(O) from the same source file st_stubs.c (it is compiled
# twice, each time with different options). # 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) ifneq "$(COMPUTE_DEPS)" "false"
$(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< st_stubs.%.$(O): st_stubs.c
else
st_stubs_n.$(O): st_stubs.c $(HEADER) st_stubs.%.$(O): st_stubs.c $(RUNTIME_HEADERS) $(wildcard *.h)
endif
$(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $< $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) $(OUTPUTOBJ)$@ $<
partialclean: partialclean:
@ -109,6 +104,7 @@ partialclean:
clean: partialclean clean: partialclean
rm -f dllthreads*.so dllthreads*.dll *.a *.lib *.o *.obj rm -f dllthreads*.so dllthreads*.dll *.a *.lib *.o *.obj
rm -rf $(DEPDIR)
INSTALL_THREADSLIBDIR=$(INSTALL_LIBDIR)/$(LIBNAME) INSTALL_THREADSLIBDIR=$(INSTALL_LIBDIR)/$(LIBNAME)
@ -150,19 +146,28 @@ installopt:
.ml.cmx: .ml.cmx:
$(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $< $(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $<
.PHONY: depend DEP_FILES := st_stubs.b.$(D)
ifeq "$(TOOLCHAIN)" "msvc" ifneq "$(NATIVE_COMPILER)" "false"
depend: DEP_FILES += st_stubs.n.$(D)
$(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
endif 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 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.cmo : \
unix.cmi unix.cmi
unix.cmx : \ unix.cmx : \

View File

@ -48,11 +48,6 @@ include ../Makefile.otherlibs.common
.PHONY: depend .PHONY: depend
depend: depend:
ifeq "$(TOOLCHAIN)" "msvc" $(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash *.mli *.ml > .depend
$(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
include .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.cmo : \
unix.cmi unix.cmi
unix.cmx : \ unix.cmx : \

View File

@ -65,15 +65,8 @@ $(UNIX_FILES) $(UNIX_CAML_FILES): %: ../unix/%
cp ../unix/$* $* cp ../unix/$* $*
.PHONY: depend .PHONY: depend
ifeq "$(TOOLCHAIN)" "msvc"
depend:
$(error Dependencies cannot be regenerated using the MSVC ports)
else
depend: $(ALL_FILES) $(UNIX_CAML_FILES) unix.ml 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) \ $(CAMLRUN) $(ROOTDIR)/boot/ocamlc -depend -slash $(UNIX_CAML_FILES) \
unix.ml >> .depend unix.ml > .depend
endif
include .depend include .depend

File diff suppressed because it is too large Load Diff

View File

@ -46,6 +46,9 @@ else
other_files := win32.c other_files := win32.c
endif endif
GENERATED_HEADERS := caml/opnames.h caml/version.h caml/jumptbl.h
CONFIG_HEADERS := caml/m.h caml/s.h
ifeq "$(TOOLCHAIN)" "msvc" ifeq "$(TOOLCHAIN)" "msvc"
ASM_EXT := asm ASM_EXT := asm
ASM_SOURCES := $(ARCH)nt.$(ASM_EXT) ASM_SOURCES := $(ARCH)nt.$(ASM_EXT)
@ -87,22 +90,22 @@ endif
ASM_OBJECTS := $(ASM_SOURCES:.$(ASM_EXT)=.$(O)) 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)) \ libcamlrund_OBJECTS := $(BYTECODE_C_SOURCES:.c=.bd.$(O)) \
instrtrace_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)) $(ASM_OBJECTS:.$(O)=_libasmrunpic.$(O))
# General (non target-specific) assembler and compiler flags # General (non target-specific) assembler and compiler flags
@ -179,7 +182,12 @@ endif
all: $(BYTECODE_STATIC_LIBRARIES) $(BYTECODE_SHARED_LIBRARIES) $(PROGRAMS) all: $(BYTECODE_STATIC_LIBRARIES) $(BYTECODE_SHARED_LIBRARIES) $(PROGRAMS)
.PHONY: allopt .PHONY: allopt
ifneq "$(NATIVE_COMPILER)" "false"
allopt: $(NATIVE_STATIC_LIBRARIES) $(NATIVE_SHARED_LIBRARIES) 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 INSTALL_INCDIR=$(INSTALL_LIBDIR)/caml
.PHONY: install .PHONY: install
@ -204,8 +212,9 @@ clean:
rm -f *.o *.obj *.a *.lib *.so *.dll ld.conf rm -f *.o *.obj *.a *.lib *.so *.dll ld.conf
rm -f ocamlrun ocamlrund ocamlruni rm -f ocamlrun ocamlrund ocamlruni
rm -f ocamlrun.exe ocamlrund.exe ocamlruni.exe rm -f ocamlrun.exe ocamlrund.exe ocamlruni.exe
rm -f primitives primitives.new prims.c caml/opnames.h caml/jumptbl.h rm -f primitives primitives.new prims.c $(GENERATED_HEADERS)
rm -f caml/version.h domain_state*.inc rm -f domain_state*.inc
rm -rf $(DEPDIR)
.PHONY: distclean .PHONY: distclean
distclean: clean distclean: clean
@ -313,20 +322,26 @@ libasmrun_shared.$(SO): $(libasmrunpic_OBJECTS)
# Target-specific preprocessor and compiler flags # 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_CFLAGS += $(SHAREDLIB_CFLAGS)
%_npic.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS) %.npic.$(O): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS)
%.npic.$(D): OC_CPPFLAGS += $(OC_NATIVE_CPPFLAGS)
# Compilation of C files # Compilation of C files
@ -334,16 +349,29 @@ libasmrun_shared.$(SO): $(libasmrunpic_OBJECTS)
# that corresponds to the name of the generated object file # that corresponds to the name of the generated object file
# (without the extension, which is added by the macro) # (without the extension, which is added by the macro)
define COMPILE_C_FILE 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 $(1).$(O): %.c
else
$(1).$(O): %.c $(CONFIG_HEADERS) $(GENERATED_HEADERS) $(RUNTIME_HEADERS)
endif
$$(CC) -c $$(OC_CFLAGS) $$(OC_CPPFLAGS) $$(OUTPUTOBJ)$$@ $$< $$(CC) -c $$(OC_CFLAGS) $$(OC_CPPFLAGS) $$(OUTPUTOBJ)$$@ $$<
endef 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), \ $(foreach object_type, $(object_types), \
$(eval $(call COMPILE_C_FILE,$(object_type)))) $(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)), \ $(foreach object_type,$(subst %,,$(object_types)), \
$(eval dynlink$(object_type).$(O): $(ROOTDIR)/Makefile.config)) $(eval dynlink$(object_type).$(O): $(ROOTDIR)/Makefile.config))
@ -377,37 +405,19 @@ i386nt.obj: i386nt.asm domain_state32.inc
# Dependencies # Dependencies
.PHONY: depend DEP_FILES := $(addsuffix .b, $(basename $(BYTECODE_C_SOURCES) \
ifeq "$(TOOLCHAIN)" "msvc" instrtrace $(other_files)))
depend: ifneq "$(NATIVE_COMPILER)" "false"
$(error Dependencies cannot be regenerated using the MSVC ports) DEP_FILES += $(addsuffix .n, $(basename $(NATIVE_C_SOURCES)))
else 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) ifeq "$(COMPUTE_DEPS)" "true"
BYTECODE_DEP_FILES := $(BYTECODE_C_SOURCES) $(other_files) instrtrace.c include $(addprefix $(DEPDIR)/, $(DEP_FILES))
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
endif 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" mkdir -p "$CACHE_DIRECTORY"
./configure --cache-file="$CACHE_DIRECTORY/config.cache-$1" \ ./configure --cache-file="$CACHE_DIRECTORY/config.cache-$1" \
--disable-dependency-generation \
$build $host --prefix="$2" --enable-ocamltest || ( \ $build $host --prefix="$2" --enable-ocamltest || ( \
rm -f "$CACHE_DIRECTORY/config.cache-$1" ; \ rm -f "$CACHE_DIRECTORY/config.cache-$1" ; \
./configure --cache-file="$CACHE_DIRECTORY/config.cache-$1" \ ./configure --cache-file="$CACHE_DIRECTORY/config.cache-$1" \
--disable-dependency-generation \
$build $host --prefix="$2" --enable-ocamltest ) $build $host --prefix="$2" --enable-ocamltest )
FILE=$(pwd | cygpath -f - -m)/Makefile.config FILE=$(pwd | cygpath -f - -m)/Makefile.config

View File

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

View File

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

View File

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

View File

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