Fix Changes file.
commit
129df0ae09
|
@ -0,0 +1,3 @@
|
|||
[submodule "flexdll"]
|
||||
path = flexdll
|
||||
url = https://github.com/alainfrisch/flexdll.git
|
|
@ -12,6 +12,8 @@
|
|||
|
||||
sudo: false
|
||||
language: c
|
||||
git:
|
||||
submodules: false
|
||||
script: bash -ex .travis-ci.sh
|
||||
matrix:
|
||||
include:
|
||||
|
|
10
Changes
10
Changes
|
@ -84,6 +84,8 @@ Compilers:
|
|||
(Jérémie Dimino, Alain Frisch)
|
||||
* PR#6438: Pattern guard disables exhaustiveness check
|
||||
(Alain Frisch)
|
||||
- PR#6920: fix debug informations around uses of %apply or %revapply
|
||||
(Jérémie Dimino)
|
||||
- PR#6939: Segfault with improper use of let-rec (Alain Frisch)
|
||||
- PR#6943: native-code generator for POWER/PowerPC 64 bits, both in
|
||||
big-endian (ppc64) and little-endian (ppc64le) configuration.
|
||||
|
@ -136,8 +138,8 @@ Compilers:
|
|||
- GPR#319: add warning for missing cmx files, and extend -opaque option to mli
|
||||
files.
|
||||
(Leo White)
|
||||
- PR#6920: fix debug informations around uses of %apply or %revapply
|
||||
(Jérémie Dimino)
|
||||
- GPR#388: OCAML_FLEXLINK environment variable allows overriding flexlink
|
||||
command (David Allsopp)
|
||||
- GPR#407: don't display the name of compiled .c files when calling the
|
||||
Microsoft C Compiler (same as the assembler).
|
||||
(David Allsopp)
|
||||
|
@ -525,6 +527,10 @@ Features wishes:
|
|||
- GPR#383: configure: define _ALL_SOURCE for build on AIX7.1
|
||||
(tkob)
|
||||
|
||||
Build system:
|
||||
- GPR#388: FlexDLL added as a Git submodule and bootstrappable with the compiler
|
||||
(David Allsopp)
|
||||
|
||||
OCaml 4.02.3 (27 Jul 2015):
|
||||
---------------------------
|
||||
|
||||
|
|
75
Makefile.nt
75
Makefile.nt
|
@ -18,6 +18,48 @@ include Makefile.shared
|
|||
defaultentry:
|
||||
@echo "Please refer to the installation instructions in file README.win32.adoc."
|
||||
|
||||
FLEXDLL_SUBMODULE_PRESENT:=$(wildcard flexdll/Makefile)
|
||||
BOOT_FLEXLINK_CMD=$(if $(FLEXDLL_SUBMODULE_PRESENT),FLEXLINK_CMD="../boot/ocamlrun ../flexdll/flexlink.exe")
|
||||
CAMLOPT:=$(if $(FLEXDLL_SUBMODULE_PRESENT),OCAML_FLEXLINK="boot/ocamlrun flexdll/flexlink.exe") $(CAMLOPT)
|
||||
|
||||
# FlexDLL sources missing error messages
|
||||
# Different git mechanism displayed depending on whether this source tree came
|
||||
# from a git clone or a source tarball.
|
||||
|
||||
# Displayed in all cases
|
||||
flexdll-common-err:
|
||||
@echo In order to bootstrap FlexDLL, you need to place the sources in flexdll
|
||||
@echo This can either be done by downloading a source tarball from
|
||||
@echo \ http://alain.frisch.fr/flexdll.html
|
||||
|
||||
flexdll/Makefile: $(if $(wildcard flexdll/Makefile),,$(if $(wildcard .git),flexdll-common-err,flexdll-repo))
|
||||
@echo or by checking out the flexdll submodule with
|
||||
@echo \ git submodule update --init
|
||||
@false
|
||||
|
||||
flexdll-repo: flexdll-common-err
|
||||
@echo or by cloning the git repository
|
||||
@echo \ git clone https://github.com/alainfrisch/flexdll.git
|
||||
@echo
|
||||
@false
|
||||
|
||||
# Bootstrapping FlexDLL - leaves a bytecode image of flexlink.exe in flexdll/
|
||||
flexdll: flexdll/Makefile
|
||||
cd byterun ; $(MAKEREC) BOOTSTRAPPING_FLEXLINK=yes ocamlrun$(EXE)
|
||||
cp byterun/ocamlrun.exe boot/ocamlrun.exe
|
||||
cd stdlib ; $(MAKEREC) COMPILER=../boot/ocamlc stdlib.cma std_exit.cmo
|
||||
cd stdlib ; cp stdlib.cma std_exit.cmo *.cmi ../boot
|
||||
cd flexdll ; $(MAKECMD) MSVC_DETECT=0 TOOLCHAIN=$(TOOLCHAIN) TOOLPREF=$(TOOLPREF) CHAINS=$(FLEXDLL_CHAIN) NATDYNLINK=false OCAMLOPT="../boot/ocamlrun ../boot/ocamlc -I ../boot" flexlink.exe support
|
||||
cd byterun ; $(MAKEREC) clean
|
||||
$(MAKEREC) partialclean
|
||||
|
||||
flexlink.opt:
|
||||
cd flexdll ; \
|
||||
mv flexlink.exe flexlink ; \
|
||||
$(MAKECMD) OCAML_FLEXLINK="../boot/ocamlrun ./flexlink" MSVC_DETECT=0 TOOLCHAIN=$(TOOLCHAIN) TOOLPREF=$(TOOLPREF) OCAMLOPT="../ocamlopt.opt -I ../stdlib" flexlink.exe ; \
|
||||
mv flexlink.exe flexlink.opt ; \
|
||||
mv flexlink flexlink.exe
|
||||
|
||||
# Recompile the system using the bootstrap compiler
|
||||
all: runtime ocamlc ocamllex ocamlyacc ocamltools library ocaml \
|
||||
otherlibraries $(OCAMLBUILDBYTE) $(WITH_DEBUGGER) \
|
||||
|
@ -60,11 +102,11 @@ LIBFILES=stdlib.cma std_exit.cmo *.cmi camlheader
|
|||
|
||||
# Start up the system from the distribution compiler
|
||||
coldstart:
|
||||
cd byterun ; $(MAKEREC) all
|
||||
cd byterun ; $(MAKEREC) $(BOOT_FLEXLINK_CMD) all
|
||||
cp byterun/ocamlrun.exe boot/ocamlrun.exe
|
||||
cd yacc ; $(MAKEREC) all
|
||||
cd yacc ; $(MAKEREC) $(BOOT_FLEXLINK_CMD) all
|
||||
cp yacc/ocamlyacc.exe boot/ocamlyacc.exe
|
||||
cd stdlib ; $(MAKEREC) COMPILER=../boot/ocamlc all
|
||||
cd stdlib ; $(MAKEREC) $(BOOT_FLEXLINK_CMD) COMPILER=../boot/ocamlc all
|
||||
cd stdlib ; cp $(LIBFILES) ../boot
|
||||
|
||||
# Build the core system: the minimum needed to make depend and bootstrap
|
||||
|
@ -126,8 +168,10 @@ opt:
|
|||
$(MAKEREC) otherlibrariesopt ocamltoolsopt
|
||||
|
||||
# Native-code versions of the tools
|
||||
# If the submodule is initialised, then opt.opt will build a native flexlink
|
||||
opt.opt: core opt-core ocamlc.opt all ocamlopt.opt ocamllex.opt \
|
||||
ocamltoolsopt ocamltoolsopt.opt otherlibrariesopt $(OCAMLBUILDNATIVE) $(OCAMLDOC_OPT)
|
||||
ocamltoolsopt ocamltoolsopt.opt otherlibrariesopt $(OCAMLBUILDNATIVE) \
|
||||
$(OCAMLDOC_OPT) $(if $(wildcard flexdll/Makefile),flexlink.opt)
|
||||
|
||||
# Complete build using fast compilers
|
||||
world.opt: coldstart opt.opt
|
||||
|
@ -177,12 +221,20 @@ installbyt:
|
|||
else :; fi
|
||||
if test -n "$(WITH_OCAMLBUILD)"; then (cd ocamlbuild; $(MAKE) install); \
|
||||
else :; fi
|
||||
if test -n "$(FLEXDLL_SUBMODULE_PRESENT)"; then $(MAKEREC) install-flexdll; \
|
||||
else :; fi
|
||||
cp config/Makefile $(INSTALL_LIBDIR)/Makefile.config
|
||||
cp README.adoc $(INSTALL_DISTRIB)/Readme.general.txt
|
||||
cp README.win32.adoc $(INSTALL_DISTRIB)/Readme.windows.txt
|
||||
cp LICENSE $(INSTALL_DISTRIB)/License.txt
|
||||
cp Changes $(INSTALL_DISTRIB)/Changes.txt
|
||||
|
||||
install-flexdll:
|
||||
# The $(if ...) installs the correct .manifest file for MSVC and MSVC64
|
||||
# (GNU make doesn't have ifeq as a function, hence slightly convoluted use of filter-out)
|
||||
cp flexdll/flexlink.exe $(if $(filter-out mingw,$(TOOLCHAIN)),flexdll/default$(filter-out _i386,_$(ARCH)).manifest) $(INSTALL_BINDIR)/
|
||||
cp flexdll/flexdll_*.$(O) $(INSTALL_LIBDIR)
|
||||
|
||||
# Installation of the native-code compiler
|
||||
installopt:
|
||||
cd asmrun ; $(MAKEREC) install
|
||||
|
@ -198,6 +250,7 @@ installopt:
|
|||
done
|
||||
if test -f ocamlopt.opt ; then $(MAKEREC) installoptopt; fi
|
||||
cd tools; $(MAKEREC) installopt
|
||||
if test -f ocamlopt.opt -a -f flexdll/flexlink.opt ; then cp -f flexdll/flexlink.opt $(INSTALL_BINDIR)/flexlink.exe ; fi
|
||||
|
||||
installoptopt:
|
||||
cp ocamlc.opt $(INSTALL_BINDIR)/ocamlc.opt$(EXE)
|
||||
|
@ -314,6 +367,7 @@ utils/config.ml: utils/config.mlp config/Makefile
|
|||
-e 's|%%HOST%%|$(HOST)|' \
|
||||
-e 's|%%TARGET%%|$(TARGET)|' \
|
||||
-e 's|%%FLAMBDA%%|$(FLAMBDA)|' \
|
||||
-e 's|%%FLEXLINK_FLAGS%%|$(FLEXLINK_FLAGS)|' \
|
||||
utils/config.mlp > utils/config.ml
|
||||
|
||||
partialclean::
|
||||
|
@ -490,7 +544,7 @@ partialclean::
|
|||
runtime: makeruntime stdlib/libcamlrun.$(A)
|
||||
|
||||
makeruntime:
|
||||
cd byterun ; $(MAKEREC) all
|
||||
cd byterun ; $(MAKEREC) $(BOOT_FLEXLINK_CMD) all
|
||||
stdlib/libcamlrun.$(A): byterun/libcamlrun.$(A)
|
||||
cp byterun/libcamlrun.$(A) stdlib/libcamlrun.$(A)
|
||||
clean::
|
||||
|
@ -516,11 +570,11 @@ alldepend::
|
|||
# The library
|
||||
|
||||
library:
|
||||
cd stdlib ; $(MAKEREC) all
|
||||
cd stdlib ; $(MAKEREC) $(BOOT_FLEXLINK_CMD) all
|
||||
library-cross:
|
||||
cd stdlib ; $(MAKEREC) CAMLRUN=../byterun/ocamlrun all
|
||||
cd stdlib ; $(MAKEREC) $(BOOT_FLEXLINK_CMD) CAMLRUN=../byterun/ocamlrun all
|
||||
libraryopt:
|
||||
cd stdlib ; $(MAKEREC) allopt
|
||||
cd stdlib ; $(MAKEREC) $(BOOT_FLEXLINK_CMD) allopt
|
||||
partialclean::
|
||||
cd stdlib ; $(MAKEREC) clean
|
||||
alldepend::
|
||||
|
@ -538,7 +592,7 @@ alldepend::
|
|||
cd lex ; $(MAKEREC) depend
|
||||
|
||||
ocamlyacc:
|
||||
cd yacc ; $(MAKEREC) all
|
||||
cd yacc ; $(MAKEREC) $(BOOT_FLEXLINK_CMD) all
|
||||
clean::
|
||||
cd yacc ; $(MAKEREC) clean
|
||||
|
||||
|
@ -609,7 +663,7 @@ ocamlbuild.byte: ocamlc otherlibraries
|
|||
cd ocamlbuild && $(MAKE) all
|
||||
|
||||
ocamlbuild.native: ocamlopt otherlibrariesopt
|
||||
cd ocamlbuild && $(MAKE) allopt
|
||||
cd ocamlbuild && $(if $(FLEXDLL_SUBMODULE_PRESENT),OCAML_FLEXLINK="../boot/ocamlrun ../flexdll/flexlink.exe") $(MAKE) allopt
|
||||
|
||||
partialclean::
|
||||
cd ocamlbuild && $(MAKE) clean
|
||||
|
@ -672,5 +726,6 @@ distclean:
|
|||
.PHONY: ocamltoolsopt.opt ocamlyacc opt-core opt opt.opt otherlibraries
|
||||
.PHONY: otherlibrariesopt promote promote-cross
|
||||
.PHONY: restore runtime runtimeopt makeruntimeopt world world.opt
|
||||
.PHONY: flexdll flexlink.opt flexdll-common-err flexdll-repo
|
||||
|
||||
include .depend
|
||||
|
|
|
@ -15,13 +15,20 @@ include Makefile.common
|
|||
|
||||
CFLAGS=-DOCAML_STDLIB_DIR='"$(LIBDIR)"' $(IFLEXDIR)
|
||||
|
||||
ifdef BOOTSTRAPPING_FLEXLINK
|
||||
MAKE_OCAMLRUN=$(MKEXE_BOOT)
|
||||
CFLAGS:=-DBOOTSTRAPPING_FLEXLINK $(CFLAGS)
|
||||
else
|
||||
MAKE_OCAMLRUN=$(MKEXE) -o $(1) $(2)
|
||||
endif
|
||||
|
||||
DBGO=d.$(O)
|
||||
OBJS=$(COMMONOBJS:.o=.$(O)) win32.$(O) main.$(O)
|
||||
DOBJS=$(OBJS:.$(O)=.$(DBGO)) instrtrace.$(DBGO)
|
||||
|
||||
ocamlrun$(EXE): libcamlrun.$(A) prims.$(O)
|
||||
$(MKEXE) -o ocamlrun$(EXE) prims.$(O) $(call SYSLIB,ws2_32) \
|
||||
$(EXTRALIBS) libcamlrun.$(A)
|
||||
$(call MAKE_OCAMLRUN,ocamlrun$(EXE),prims.$(O) libcamlrun.$(A) \
|
||||
$(call SYSLIB,ws2_32) $(EXTRALIBS))
|
||||
|
||||
ocamlrund$(EXE): libcamlrund.$(A) prims.$(O) main.$(O)
|
||||
$(MKEXE) -o ocamlrund$(EXE) $(BYTECCDBGCOMPOPTS) prims.$(O) \
|
||||
|
|
|
@ -19,6 +19,9 @@
|
|||
/* <private> */
|
||||
#include "../../config/m.h"
|
||||
#include "../../config/s.h"
|
||||
#ifdef BOOTSTRAPPING_FLEXLINK
|
||||
#undef SUPPORT_DYNAMIC_LINKING
|
||||
#endif
|
||||
/* </private> */
|
||||
|
||||
#ifndef CAML_NAME_SPACE
|
||||
|
|
|
@ -110,13 +110,28 @@ NATIVECCLIBS=-lws2_32
|
|||
CPP=$(BYTECC) -E
|
||||
|
||||
### Flexlink
|
||||
FLEXLINK=flexlink -chain mingw -stack 16777216 -link -static-libgcc
|
||||
FLEXDIR:=$(shell $(FLEXLINK) -where)
|
||||
FLEXLINK_CMD=flexlink
|
||||
FLEXDLL_CHAIN=mingw
|
||||
# FLEXLINK_FLAGS must be safe to insert in an OCaml string
|
||||
# (see ocamlmklibconfig.ml in tools/Makefile.nt)
|
||||
FLEXLINK_FLAGS=-chain $(FLEXDLL_CHAIN) -stack 16777216 -link -static-libgcc
|
||||
FLEXLINK=$(FLEXLINK_CMD) $(FLEXLINK_FLAGS)
|
||||
FLEXDIR:=$(shell $(FLEXLINK) -where 2>/dev/null)
|
||||
ifeq ($(FLEXDIR),)
|
||||
IFLEXDIR=-I"../flexdll"
|
||||
else
|
||||
IFLEXDIR=-I"$(FLEXDIR)"
|
||||
endif
|
||||
# MKDLL, MKEXE and MKMAINDLL must ultimately be equivalent to
|
||||
# $(FLEXLINK_CMD) $(FLEXLINK_FLAGS) [-exe|-maindll]
|
||||
# or OCAML_FLEXLINK overriding will not work (see utils/config.mlp)
|
||||
MKDLL=$(FLEXLINK)
|
||||
MKEXE=$(FLEXLINK) -exe
|
||||
MKMAINDLL=$(FLEXLINK) -maindll
|
||||
|
||||
### Native command to build ocamlrun.exe without flexlink
|
||||
MKEXE_BOOT=$(BYTECC) -o $(1) $(2)
|
||||
|
||||
### How to build a static library
|
||||
MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1)
|
||||
#ml let mklib out files opts = Printf.sprintf "rm -f %s && %sar rcs %s %s %s" out toolpref opts out files;;
|
||||
|
|
|
@ -110,13 +110,28 @@ NATIVECCLIBS=-lws2_32
|
|||
CPP=$(BYTECC) -E
|
||||
|
||||
### Flexlink
|
||||
FLEXLINK=flexlink -chain mingw64 -stack 33554432
|
||||
FLEXDIR:=$(shell $(FLEXLINK) -where)
|
||||
FLEXLINK_CMD=flexlink
|
||||
FLEXDLL_CHAIN=mingw64
|
||||
# FLEXLINK_FLAGS must be safe to insert in an OCaml string
|
||||
# (see ocamlmklibconfig.ml in tools/Makefile.nt)
|
||||
FLEXLINK_FLAGS=-chain $(FLEXDLL_CHAIN) -stack 33554432
|
||||
FLEXLINK=$(FLEXLINK_CMD) $(FLEXLINK_FLAGS)
|
||||
FLEXDIR:=$(shell $(FLEXLINK) -where 2>/dev/null)
|
||||
ifeq ($(FLEXDIR),)
|
||||
IFLEXDIR=-I"../flexdll"
|
||||
else
|
||||
IFLEXDIR=-I"$(FLEXDIR)"
|
||||
endif
|
||||
# MKDLL, MKEXE and MKMAINDLL must ultimately be equivalent to
|
||||
# $(FLEXLINK_CMD) $(FLEXLINK_FLAGS) [-exe|-maindll]
|
||||
# or OCAML_FLEXLINK overriding will not work (see utils/config.mlp)
|
||||
MKDLL=$(FLEXLINK)
|
||||
MKEXE=$(FLEXLINK) -exe
|
||||
MKMAINDLL=$(FLEXLINK) -maindll
|
||||
|
||||
### Native command to build ocamlrun.exe without flexlink
|
||||
MKEXE_BOOT=$(BYTECC) -o $(1) $(2)
|
||||
|
||||
### How to build a static library
|
||||
MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1)
|
||||
#ml let mklib out files opts = Printf.sprintf "rm -f %s && %sar rcs %s %s %s" out toolpref opts out files;;
|
||||
|
|
|
@ -101,13 +101,29 @@ NATIVECCLIBS=advapi32.lib ws2_32.lib
|
|||
CPP=cl -nologo -EP
|
||||
|
||||
### Flexlink
|
||||
FLEXLINK=flexlink -merge-manifest -stack 16777216
|
||||
FLEXDIR:=$(shell $(FLEXLINK) -where)
|
||||
FLEXLINK_CMD=flexlink
|
||||
FLEXDLL_CHAIN=msvc
|
||||
# FLEXLINK_FLAGS must be safe to insert in an OCaml string
|
||||
# (see ocamlmklibconfig.ml in tools/Makefile.nt)
|
||||
FLEXLINK_FLAGS=-merge-manifest -stack 16777216
|
||||
FLEXLINK=$(FLEXLINK_CMD) $(FLEXLINK_FLAGS)
|
||||
FLEXDIR:=$(shell $(FLEXLINK) -where 2>/dev/null)
|
||||
ifeq ($(FLEXDIR),)
|
||||
IFLEXDIR=-I"../flexdll"
|
||||
else
|
||||
IFLEXDIR=-I"$(FLEXDIR)"
|
||||
endif
|
||||
# MKDLL, MKEXE and MKMAINDLL must ultimately be equivalent to
|
||||
# $(FLEXLINK_CMD) $(FLEXLINK_FLAGS) [-exe|-maindll]
|
||||
# or OCAML_FLEXLINK overriding will not work (see utils/config.mlp)
|
||||
MKDLL=$(FLEXLINK)
|
||||
MKEXE=$(FLEXLINK) -exe
|
||||
MKMAINDLL=$(FLEXLINK) -maindll
|
||||
|
||||
### Native command to build ocamlrun.exe without flexlink
|
||||
MERGEMANIFESTEXE=test ! -f $(1).manifest || mt -nologo -outputresource:$(1) -manifest $(1).manifest && rm -f $(1).manifest
|
||||
MKEXE_BOOT=$(BYTECC) /Fe$(1) $(2) /link /subsystem:console && ($(MERGEMANIFESTEXE))
|
||||
|
||||
### How to build a static library
|
||||
MKLIB=link -lib -nologo -out:$(1) $(2)
|
||||
#ml let mklib out files opts = Printf.sprintf "link -lib -nologo -out:%s %s %s" out opts files;;
|
||||
|
|
|
@ -105,13 +105,29 @@ NATIVECCLIBS=advapi32.lib ws2_32.lib $(EXTRALIBS)
|
|||
CPP=cl -nologo -EP
|
||||
|
||||
### Flexlink
|
||||
FLEXLINK=flexlink -x64 -merge-manifest -stack 33554432
|
||||
FLEXDIR:=$(shell $(FLEXLINK) -where)
|
||||
FLEXLINK_CMD=flexlink
|
||||
FLEXDLL_CHAIN=msvc64
|
||||
# FLEXLINK_FLAGS must be safe to insert in an OCaml string
|
||||
# (see ocamlmklibconfig.ml in tools/Makefile.nt)
|
||||
FLEXLINK_FLAGS=-x64 -merge-manifest -stack 33554432
|
||||
FLEXLINK=$(FLEXLINK_CMD) $(FLEXLINK_FLAGS)
|
||||
FLEXDIR:=$(shell $(FLEXLINK) -where 2>/dev/null)
|
||||
ifeq ($(FLEXDIR),)
|
||||
IFLEXDIR=-I"../flexdll"
|
||||
else
|
||||
IFLEXDIR=-I"$(FLEXDIR)"
|
||||
endif
|
||||
# MKDLL, MKEXE and MKMAINDLL must ultimately be equivalent to
|
||||
# $(FLEXLINK_CMD) $(FLEXLINK_FLAGS) [-exe|-maindll]
|
||||
# or OCAML_FLEXLINK overriding will not work (see utils/config.mlp)
|
||||
MKDLL=$(FLEXLINK)
|
||||
MKEXE=$(FLEXLINK) -exe
|
||||
MKMAINDLL=$(FLEXLINK) -maindll
|
||||
|
||||
### Native command to build ocamlrun.exe without flexlink
|
||||
MERGEMANIFESTEXE=test ! -f $(1).manifest || mt -nologo -outputresource:$(1) -manifest $(1).manifest && rm -f $(1).manifest
|
||||
MKEXE_BOOT=$(BYTECC) /Fe$(1) $(2) /link /subsystem:console && ($(MERGEMANIFESTEXE))
|
||||
|
||||
### How to build a static library
|
||||
MKLIB=link -lib -nologo -machine:AMD64 /out:$(1) $(2)
|
||||
#ml let mklib out files opts = Printf.sprintf "link -lib -nologo -machine:AMD64 -out:%s %s %s" out opts files;;
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Subproject commit db1d82aa8662d146562067288d0331c4ec2e1bd0
|
|
@ -17,7 +17,7 @@ CAMLRUN ?= ../boot/ocamlrun
|
|||
CAMLYACC ?= ../boot/ocamlyacc
|
||||
|
||||
CAMLC=$(CAMLRUN) ../boot/ocamlc -I ../boot
|
||||
CAMLOPT=$(CAMLRUN) ../ocamlopt -I ../stdlib
|
||||
CAMLOPT=$(if $(wildcard ../flexdll/Makefile),OCAML_FLEXLINK="../boot/ocamlrun ../flexdll/flexlink.exe") $(CAMLRUN) ../ocamlopt -I ../stdlib
|
||||
COMPFLAGS=-warn-error A
|
||||
LINKFLAGS=
|
||||
YACCFLAGS=-v
|
||||
|
|
|
@ -519,6 +519,14 @@ Display a short usage summary and exit.
|
|||
%
|
||||
\end{options}
|
||||
|
||||
\noindent
|
||||
On native Windows, the following environment variable is also consulted:
|
||||
|
||||
\begin{options}
|
||||
\item["OCAML_FLEXLINK"] Alternative executable to use instead of the
|
||||
configured value. Primarily used for bootstrapping.
|
||||
\end{options}
|
||||
|
||||
\section{Modules and the file system}
|
||||
|
||||
This short section is intended to clarify the relationship between the
|
||||
|
|
|
@ -2232,6 +2232,14 @@ libraries are supported) and "lib"\var{outputc}".a".
|
|||
If not specified, defaults to the output name given with "-o".
|
||||
\end{options}
|
||||
|
||||
\noindent
|
||||
On native Windows, the following environment variable is also consulted:
|
||||
|
||||
\begin{options}
|
||||
\item["OCAML_FLEXLINK"] Alternative executable to use instead of the
|
||||
configured value. Primarily used for bootstrapping.
|
||||
\end{options}
|
||||
|
||||
\paragraph{Example} Consider an OCaml interface to the standard "libz"
|
||||
C library for reading and writing compressed files. Assume this
|
||||
library resides in "/usr/local/zlib". This interface is
|
||||
|
|
|
@ -505,6 +505,14 @@ Display a short usage summary and exit.
|
|||
%
|
||||
\end{options}
|
||||
|
||||
\noindent
|
||||
On native Windows, the following environment variable is also consulted:
|
||||
|
||||
\begin{options}
|
||||
\item["OCAML_FLEXLINK"] Alternative executable to use instead of the
|
||||
configured value. Primarily used for bootstrapping.
|
||||
\end{options}
|
||||
|
||||
\paragraph{Options for the IA32 architecture}
|
||||
The IA32 code generator (Intel Pentium, AMD Athlon) supports the
|
||||
following additional option:
|
||||
|
|
|
@ -18,7 +18,7 @@ CAMLYACC ?= ../boot/ocamlyacc
|
|||
##########################
|
||||
ROOTDIR = ..
|
||||
OCAMLC = $(CAMLRUN) $(ROOTDIR)/ocamlc -nostdlib -I $(ROOTDIR)/stdlib
|
||||
OCAMLOPT = $(CAMLRUN) $(ROOTDIR)/ocamlopt -nostdlib -I $(ROOTDIR)/stdlib
|
||||
OCAMLOPT = $(if $(wildcard $(ROOTDIR)/flexdll/Makefile),OCAML_FLEXLINK="$(ROOTDIR)/boot/ocamlrun $(ROOTDIR)/flexdll/flexlink.exe") $(CAMLRUN) $(ROOTDIR)/ocamlopt -nostdlib -I $(ROOTDIR)/stdlib
|
||||
OCAMLDEP = $(CAMLRUN) $(ROOTDIR)/tools/ocamldep
|
||||
OCAMLLEX = $(CAMLRUN) $(ROOTDIR)/boot/ocamllex
|
||||
OCAMLLIB = $(LIBDIR)
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
|
||||
include ../Makefile
|
||||
|
||||
export OCAML_FLEXLINK:=$(if $(wildcard $(ROOTDIR)/flexdll/Makefile),$(ROOTDIR)/boot/ocamlrun $(ROOTDIR)/flexdll/flexlink.exe)
|
||||
|
||||
# The Unix version now works fine under Windows
|
||||
|
||||
# Note .. is the current directory (this makefile is included from
|
||||
|
|
|
@ -22,6 +22,8 @@ COMPFLAGS=-w +33 -warn-error A -g
|
|||
MKLIB=$(CAMLRUN) ../../tools/ocamlmklib
|
||||
CFLAGS=-I../../byterun $(EXTRACFLAGS)
|
||||
|
||||
export OCAML_FLEXLINK:=$(if $(wildcard ../../flexdll/Makefile),../../boot/ocamlrun ../../flexdll/flexlink.exe)
|
||||
|
||||
CAMLOBJS=thread.cmo mutex.cmo condition.cmo event.cmo threadUnix.cmo
|
||||
CMIFILES=$(CAMLOBJS:.cmo=.cmi)
|
||||
COBJS=st_stubs_b.$(O)
|
||||
|
|
|
@ -56,11 +56,12 @@ endif
|
|||
|
||||
OCAML=$(OCAMLRUN) $(OTOPDIR)/ocaml $(OCFLAGS) \
|
||||
-init $(OTOPDIR)/testsuite/lib/empty
|
||||
OCAMLC=$(OCAMLRUN) $(OTOPDIR)/ocamlc $(CUSTOM) $(OCFLAGS)
|
||||
OCAMLOPT=$(OCAMLRUN) $(OTOPDIR)/ocamlopt $(OCFLAGS)
|
||||
FLEXLINK_PREFIX=$(if $(FLEXLINK),$(if $(wildcard $(TOPDIR)/flexdll/Makefile),OCAML_FLEXLINK="$(WINTOPDIR)/boot/ocamlrun $(WINTOPDIR)/flexdll/flexlink.exe" ))
|
||||
OCAMLC=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/ocamlc $(CUSTOM) $(OCFLAGS)
|
||||
OCAMLOPT=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/ocamlopt $(OCFLAGS)
|
||||
OCAMLDOC=$(OCAMLRUN) $(OTOPDIR)/ocamldoc/ocamldoc
|
||||
OCAMLLEX=$(OCAMLRUN) $(OTOPDIR)/lex/ocamllex
|
||||
OCAMLMKLIB=$(OCAMLRUN) $(OTOPDIR)/tools/ocamlmklib \
|
||||
OCAMLMKLIB=$(FLEXLINK_PREFIX)$(OCAMLRUN) $(OTOPDIR)/tools/ocamlmklib \
|
||||
-ocamlc "$(OTOPDIR)/boot/ocamlrun$(EXE) \
|
||||
$(OTOPDIR)/ocamlc $(OCFLAGS)" \
|
||||
-ocamlopt "$(OTOPDIR)/boot/ocamlrun$(EXE) \
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
|
||||
include Makefile.shared
|
||||
|
||||
CAMLOPT:=$(if $(wildcard ../flexdll/Makefile),OCAML_FLEXLINK="../boot/ocamlrun ../flexdll/flexlink.exe") $(CAMLOPT)
|
||||
|
||||
# To make custom toplevels
|
||||
|
||||
OCAMLMKTOP=ocamlmktop.cmo
|
||||
|
|
|
@ -101,7 +101,7 @@ clean::
|
|||
# To help building mixed-mode libraries (OCaml + C)
|
||||
|
||||
ocamlmklib: ocamlmklibconfig.cmo ocamlmklib.cmo
|
||||
$(CAMLC) $(LINKFLAGS) -o ocamlmklib ocamlmklibconfig.cmo ocamlmklib.cmo
|
||||
$(CAMLC) $(LINKFLAGS) -o ocamlmklib ocamlmklibconfig.cmo config.cmo ocamlmklib.cmo
|
||||
|
||||
install::
|
||||
cp ocamlmklib $(INSTALL_BINDIR)/ocamlmklib$(EXE)
|
||||
|
@ -109,12 +109,9 @@ install::
|
|||
clean::
|
||||
rm -f ocamlmklib
|
||||
|
||||
ocamlmklibconfig.ml: ../config/Makefile
|
||||
ocamlmklibconfig.ml: ../config/Makefile Makefile
|
||||
(echo 'let bindir = "$(BINDIR)"'; \
|
||||
echo 'let ext_lib = "$(EXT_LIB)"'; \
|
||||
echo 'let ext_dll = "$(EXT_DLL)"'; \
|
||||
echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\
|
||||
echo 'let mkdll = "$(MKDLL)"'; \
|
||||
echo 'let byteccrpath = "$(BYTECCRPATH)"'; \
|
||||
echo 'let nativeccrpath = "$(NATIVECCRPATH)"'; \
|
||||
echo 'let mksharedlibrpath = "$(MKSHAREDLIBRPATH)"'; \
|
||||
|
|
|
@ -244,9 +244,9 @@ let build_libs () =
|
|||
if !dynlink then begin
|
||||
let retcode = command
|
||||
(Printf.sprintf "%s %s -o %s %s %s %s %s %s"
|
||||
mkdll
|
||||
Config.mkdll
|
||||
(if !debug then "-g" else "")
|
||||
(prepostfix "dll" !output_c ext_dll)
|
||||
(prepostfix "dll" !output_c Config.ext_dll)
|
||||
(String.concat " " !c_objs)
|
||||
(String.concat " " !c_opts)
|
||||
(String.concat " " !ld_opts)
|
||||
|
@ -256,9 +256,9 @@ let build_libs () =
|
|||
in
|
||||
if retcode <> 0 then if !failsafe then dynlink := false else exit 2
|
||||
end;
|
||||
safe_remove (prepostfix "lib" !output_c ext_lib);
|
||||
safe_remove (prepostfix "lib" !output_c Config.ext_lib);
|
||||
scommand
|
||||
(mklib (prepostfix "lib" !output_c ext_lib)
|
||||
(mklib (prepostfix "lib" !output_c Config.ext_lib)
|
||||
(String.concat " " !c_objs) "");
|
||||
end;
|
||||
if !bytecode_objs <> [] then
|
||||
|
|
|
@ -44,9 +44,23 @@ let native_pack_linker = "%%PACKLD%%"
|
|||
let ranlib = "%%RANLIBCMD%%"
|
||||
let ar = "%%ARCMD%%"
|
||||
let cc_profile = "%%CC_PROFILE%%"
|
||||
let mkdll = "%%MKDLL%%"
|
||||
let mkexe = "%%MKEXE%%"
|
||||
let mkmaindll = "%%MKMAINDLL%%"
|
||||
let mkdll, mkexe, mkmaindll =
|
||||
(* @@DRA Cygwin - but only if shared libraries are enabled, which we should be able to detect? *)
|
||||
if Sys.os_type = "Win32" then
|
||||
try
|
||||
let flexlink =
|
||||
let flexlink = Sys.getenv "OCAML_FLEXLINK" in
|
||||
let f i =
|
||||
let c = flexlink.[i] in
|
||||
if c = '/' then '\\' else c in
|
||||
(String.init (String.length flexlink) f) ^ " %%FLEXLINK_FLAGS%%" in
|
||||
flexlink,
|
||||
flexlink ^ " -exe",
|
||||
flexlink ^ " -maindll"
|
||||
with Not_found ->
|
||||
"%%MKDLL%%", "%%MKEXE%%", "%%MKMAINDLL%%"
|
||||
else
|
||||
"%%MKDLL%%", "%%MKEXE%%", "%%MKMAINDLL%%"
|
||||
|
||||
let flambda = %%FLAMBDA%%
|
||||
|
||||
|
|
Loading…
Reference in New Issue