Mercurial > mxe-octave
view src/ocaml-core-1-fixes.patch @ 4654:b9e4ebcad82f
disable doc extraction for optim package
Disable the rules for extracting doc strings because they don't work
when cross compiling. Our patches to the source files don't touch the
doc strings, so there is no need to update them anyway.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 10 Apr 2018 07:50:10 -0400 |
parents | 5ebcd132140a |
children |
line wrap: on
line source
This file is part of MXE. See index.html for further information. Contains ad hoc patches for cross building. From 002715e4bdd4f2aacb6ce8b1b89bae734b6c36fc Mon Sep 17 00:00:00 2001 From: MXE Date: Wed, 13 Jun 2012 22:27:54 +0200 Subject: [PATCH] various patches to build an ocaml cross compiler diff --git a/Makefile b/Makefile index e53fd0d..0decd00 100644 --- a/Makefile +++ b/Makefile @@ -289,16 +289,17 @@ install: for i in $(OTHERLIBRARIES); do \ (cd otherlibs/$$i; $(MAKE) install) || exit $$?; \ done - cd ocamldoc; $(MAKE) install + # cd ocamldoc; $(MAKE) install if test -f ocamlopt; then $(MAKE) installopt; else :; fi if test -f debugger/ocamldebug; then (cd debugger; $(MAKE) install); \ else :; fi cp config/Makefile $(LIBDIR)/Makefile.config - BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) PREFIX=$(PREFIX) \ - ./build/partial-install.sh + #BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) PREFIX=$(PREFIX) \ + # ./build/partial-install.sh # Installation of the native-code compiler installopt: + if test -d $(COMPLIBDIR); then : ; else $(MKDIR) $(COMPLIBDIR); fi cd asmrun; $(MAKE) install cp ocamlopt $(BINDIR)/ocamlopt$(EXE) cd stdlib; $(MAKE) installopt @@ -737,7 +738,7 @@ ocamlbuild.native: ocamlopt ocamlbuild-mixed-boot ocamlbuildlib.native: ocamlopt ocamlbuild-mixed-boot ./build/ocamlbuildlib-native-only.sh -ocamlbuild-mixed-boot: ocamlc +ocamlbuild-mixed-boot: ocamlc otherlibraries ./build/mixed-boot.sh touch ocamlbuild-mixed-boot diff --git a/Makefile-mingw.in b/Makefile-mingw.in new file mode 100644 index 0000000..c3dddf6 --- /dev/null +++ b/Makefile-mingw.in @@ -0,0 +1,160 @@ +######### General configuration + +PREFIX=@prefix@ + +### Remove this to disable compiling camlp4 +#CAMLP4=camlp4 + +### Where to install the binaries +BINDIR=$(PREFIX)/bin + +### Where to install the standard library +LIBDIR=$(PREFIX)/lib/ocaml + +### Where to install the stub DLLs +STUBLIBDIR=$(LIBDIR)/stublibs + +### Where to install the info files +DISTRIB=$(PREFIX) + +### Where to install the man pages +MANDIR=$(PREFIX)/man + +########## Toolchain and OS dependencies + +TOOLCHAIN=cc + +### Toolchain prefix +TOOLPREF=@toolpref@- + +CCOMPTYPE=cc +O=o +A=a +S=s +SO=dll +EXE= +EXT_DLL=.dll +EXT_OBJ=.$(O) +EXT_LIB=.$(A) +EXT_ASM=.$(S) +MANEXT=1 +SHARPBANGSCRIPTS=true +PTHREAD_LINK= +X11_INCLUDES= +X11_LINK= +DBM_INCLUDES= +DBM_LINK= +BYTECCRPATH= +SUPPORTS_SHARED_LIBRARIES=true +SHAREDCCCOMPOPTS= +MKSHAREDLIBRPATH= +NATIVECCPROFOPTS=-pg +NATIVECCRPATH= +ASM=$(TOOLPREF)as +ASPP=$(TOOLPREF)gcc -c +ASPPPROFFLAGS=-DPROFILING +PROFILING=prof +DYNLINKOPTS=-ldl +DEBUGGER=ocamldebugger +CC_PROFILE=-pg +SYSTHREAD_SUPPORT=true +EXTRALIBS= +NATDYNLINK=true +NATDYNLINKOPTS= +CMXS=cmxs +RUNTIMED=noruntimed +ASM_CFI_SUPPORTED=false + +########## Configuration for the bytecode compiler + +### Which C compiler to use for the bytecode interpreter. +BYTECC=$(TOOLPREF)gcc + +### Additional compile-time options for $(BYTECC). (For static linking.) +BYTECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused + +### Additional link-time options for $(BYTECC). (For static linking.) +BYTECCLINKOPTS=-L$(PREFIX)/lib + +### Additional compile-time options for $(BYTECC). (For building a DLL.) +DLLCCCOMPOPTS= + +### Libraries needed +BYTECCLIBS= +NATIVECCLIBS= + +### How to invoke the C preprocessor + +### Flexlink +FLEXLINK=$(TOOLPREF)flexlink -chain mingw +FLEXDIR=$(shell $(FLEXLINK) -where) +IFLEXDIR=-I"$(FLEXDIR)" +MKDLL=$(FLEXLINK) +MKEXE=$(FLEXLINK) -exe +MKMAINDLL=$(FLEXLINK) -maindll + +### How to build a static library +MKLIB=$(TOOLPREF)ar rcs $(1) $(2) +#ml let mklib out files opts = Printf.sprintf ("%sar rcs %s %s %s") toolpref out opts files;; + +### Canonicalize the name of a system library +SYSLIB=-l$(1) +#ml let syslib x = "-l"^x;; + +### The ranlib command +RANLIB=$(TOOLPREF)ranlib +RANLIBCMD=$(TOOLPREF)ranlib + +### The ar command +ARCMD=$(TOOLPREF)ar + +############# Configuration for the native-code compiler + +### Name of architecture for the native-code compiler +ARCH=i386 + +### Name of architecture model for the native-code compiler. +MODEL=default + +### Name of operating system family for the native-code compiler. +SYSTEM=mingw + +### Which C compiler to use for the native-code compiler. +NATIVECC=$(BYTECC) + +### Additional compile-time options for $(NATIVECC). +NATIVECCCOMPOPTS=-O -mms-bitfields -Wall -Wno-unused + +### Additional link-time options for $(NATIVECC) +NATIVECCLINKOPTS=-L$(PREFIX)/lib + +### Build partially-linked object file +PACKLD=$(TOOLPREF)ld -r $(NATIVECCLINKOPTS) -o #there must be a space after this '-o' + +############# Configuration for the contributed libraries + +OTHERLIBRARIES=@otherlibraries@ + +### Name of the target architecture for the "num" library +BNG_ARCH=i386 +BNG_ASM_LEVEL=1 + +### Configuration for LablTk +# Set TK_ROOT to the directory where you installed TCL/TK 8.5 +# There must be no spaces or special characters in $(TK_ROOT) +TK_DEFS= +TK_LINK= + +############# Aliases for common commands + +# MAKEREC=$(MAKE) -f Makefile.nt +# MAKECMD=$(MAKE) + +# Build compiler for cross-compilation. +BUILD_MKEXE=gcc +BUILD_RANLIB=ranlib +BUILD_MKDLL=gcc -shared +BUILD_CC=gcc +BUILD_CCLIBS=-lm +BUILD_CFLAGS= + diff --git a/asmrun/Makefile b/asmrun/Makefile index d4f0c56..a535666 100644 --- a/asmrun/Makefile +++ b/asmrun/Makefile @@ -26,7 +26,7 @@ COBJS=startup.o main.o fail.o roots.o globroots.o signals.o signals_asm.o \ misc.o freelist.o major_gc.o minor_gc.o memory.o alloc.o compare.o ints.o \ floats.o str.o array.o io.o extern.o intern.o hash.o sys.o parsing.o \ gc_ctrl.o terminfo.o md5.o obj.o lexing.o printexc.o callback.o weak.o \ - compact.o finalise.o custom.o unix.o backtrace.o natdynlink.o debugger.o \ + compact.o finalise.o custom.o unix.o win32.o backtrace.o natdynlink.o debugger.o \ meta.o dynlink.o ASMOBJS=$(ARCH).o @@ -153,6 +153,8 @@ globroots.c: ../byterun/globroots.c ln -s ../byterun/globroots.c globroots.c unix.c: ../byterun/unix.c ln -s ../byterun/unix.c unix.c +win32.c: ../byterun/win32.c + ln -s ../byterun/win32.c win32.c dynlink.c: ../byterun/dynlink.c ln -s ../byterun/dynlink.c dynlink.c signals.c: ../byterun/signals.c @@ -163,7 +165,7 @@ debugger.c: ../byterun/debugger.c LINKEDFILES=misc.c freelist.c major_gc.c minor_gc.c memory.c alloc.c array.c \ compare.c ints.c floats.c str.c io.c extern.c intern.c hash.c sys.c \ parsing.c gc_ctrl.c terminfo.c md5.c obj.c lexing.c printexc.c callback.c \ - weak.c compact.c finalise.c meta.c custom.c main.c globroots.c unix.c \ + weak.c compact.c finalise.c meta.c custom.c main.c globroots.c unix.c win32.c \ dynlink.c signals.c debugger.c clean:: diff --git a/asmrun/i386.S b/asmrun/i386.S index e8e00a4..800247e 100644 --- a/asmrun/i386.S +++ b/asmrun/i386.S @@ -76,6 +76,9 @@ popl %edx; popl %ecx; popl %eax; popl %ebp #define PROFILE_C \ pushl %ebp; movl %esp, %ebp; call Lmcount$stub; popl %ebp +#elif defined(SYS_mingw) +#define PROFILE_CAML +#define PROFILE_C #endif #else #define PROFILE_CAML diff --git a/byterun/Makefile.common b/byterun/Makefile.common index b519f75..2274562 100755 --- a/byterun/Makefile.common +++ b/byterun/Makefile.common @@ -24,7 +24,7 @@ COMMONOBJS=\ compare.o ints.o floats.o str.o array.o io.o extern.o intern.o \ hash.o sys.o meta.o parsing.o gc_ctrl.o terminfo.o md5.o obj.o \ lexing.o callback.o debugger.o weak.o compact.o finalise.o custom.o \ - dynlink.o + dynlink.o win32.o PRIMS=\ alloc.c array.c compare.c extern.c floats.c gc_ctrl.c hash.c \ diff --git a/byterun/dynlink.c b/byterun/dynlink.c index 5cb2ed7..b6605fa 100644 --- a/byterun/dynlink.c +++ b/byterun/dynlink.c @@ -80,7 +80,12 @@ static char * parse_ld_conf(void) stdlib = getenv("OCAMLLIB"); if (stdlib == NULL) stdlib = getenv("CAMLLIB"); - if (stdlib == NULL) stdlib = OCAML_STDLIB_DIR; + if (stdlib == NULL) +#ifdef OCAML_STDLIB_DIR + stdlib = OCAML_STDLIB_DIR; +#else + stdlib = "."; +#endif ldconfname = caml_stat_alloc(strlen(stdlib) + 2 + sizeof(LD_CONF_NAME)); strcpy(ldconfname, stdlib); strcat(ldconfname, "/" LD_CONF_NAME); diff --git a/byterun/unix.c b/byterun/unix.c index 7d24ef4..3619e67 100644 --- a/byterun/unix.c +++ b/byterun/unix.c @@ -15,6 +15,8 @@ /* Unix-specific stuff */ +#ifndef WIN32 + #define _GNU_SOURCE /* Helps finding RTLD_DEFAULT in glibc */ @@ -323,3 +325,5 @@ int caml_executable_name(char * name, int name_len) } #endif + +#endif /* !WIN32 */ diff --git a/byterun/win32.c b/byterun/win32.c index f8ba9c9..82afc1c 100644 --- a/byterun/win32.c +++ b/byterun/win32.c @@ -13,6 +13,8 @@ /* $Id: win32.c 12686 2012-07-10 11:34:39Z scherer $ */ +#ifdef WIN32 + /* Win32-specific stuff */ #include <windows.h> @@ -35,6 +37,26 @@ #include "flexdll.h" +/* XXX including <io.h> gets ../byterun/io.h for some reason. + * Including the real io.h using the full path fails because of + * some strange bug in the system header file itself. Give up and + * just define _finddata_t explicitly here. + */ +#ifndef _FSIZE_T_DEFINED +typedef unsigned long _fsize_t; +#define _FSIZE_T_DEFINED + +struct _finddata_t +{ + unsigned attrib; + time_t time_create; + time_t time_access; + time_t time_write; + _fsize_t size; + char name[FILENAME_MAX]; +}; +#endif + #ifndef S_ISREG #define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) #endif @@ -93,7 +115,7 @@ CAMLexport char * caml_search_exe_in_path(char * name) pathlen = strlen(name) + 1; if (pathlen < 256) pathlen = 256; while (1) { - fullname = stat_alloc(pathlen); + fullname = caml_stat_alloc(pathlen); retcode = SearchPath(NULL, /* use system search path */ name, ".exe", /* add .exe extension if needed */ @@ -107,7 +129,7 @@ CAMLexport char * caml_search_exe_in_path(char * name) break; } if (retcode < pathlen) break; - stat_free(fullname); + caml_stat_free(fullname); pathlen = retcode + 1; } return fullname; @@ -479,3 +501,5 @@ int caml_win32_random_seed (intnat data[16]) data[2] = GetCurrentProcessId(); return 3; } + +#endif /* WIN32 */ diff --git a/hardcode_mingw_include.patch b/hardcode_mingw_include.patch new file mode 100644 index 0000000..571747d --- /dev/null +++ b/hardcode_mingw_include.patch @@ -0,0 +1,24 @@ +Index: build-tree/ocaml-3.11.1/utils/clflags.ml +=================================================================== +--- build-tree.orig/ocaml-3.12.1/utils/clflags.ml 2010-01-07 04:00:11.000000000 +0100 ++++ build-tree/ocaml-3.12.1/utils/clflags.ml 2010-01-07 04:00:24.000000000 +0100 +@@ -20,7 +20,7 @@ + + let compile_only = ref false (* -c *) + and output_name = ref (None : string option) (* -o *) +-and include_dirs = ref ([] : string list)(* -I *) ++and include_dirs = ref (["@libdir@"] : string list)(* -I *) + and no_std_include = ref false (* -nostdlib *) + and print_types = ref false (* -i *) + and make_archive = ref false (* -a *) +--- build-tree.orig/ocaml-3.12.1/tools/ocamlmklib.mlp 2010-02-22 20:15:57.000000000 -0600 ++++ build-tree/ocaml-3.12.1/tools/ocamlmklib.mlp 2010-02-22 20:16:20.000000000 -0600 +@@ -29,7 +29,7 @@ + and failsafe = ref false (* whether to fall back on static build only *) + and c_libs = ref [] (* libs to pass to mksharedlib and ocamlc -cclib *) + and c_opts = ref [] (* options to pass to mksharedlib and ocamlc -ccopt *) +-and ld_opts = ref [] (* options to pass only to the linker *) ++and ld_opts = ref ["-I @libdir@"] (* options to pass only to the linker *) + and ocamlc = ref (compiler_path "ocamlc") + and ocamlopt = ref (compiler_path "ocamlopt") + and output = ref "a" (* Output name for Caml part of library *) diff --git a/myocamlbuild.ml b/myocamlbuild.ml index c687242..ccdd937 100644 --- a/myocamlbuild.ml +++ b/myocamlbuild.ml @@ -107,9 +107,11 @@ let if_mixed_dir dir = if mixed then ".."/dir else dir;; let unix_dir = - match Sys.os_type with - | "Win32" -> if_mixed_dir "otherlibs/win32unix" - | _ -> if_mixed_dir "otherlibs/unix";; + if_mixed_dir ( + let win32path = "otherlibs/win32unix" in + if Sys.file_exists (win32path / "unix.cma") then win32path + else "otherlibs/unix" + );; let threads_dir = if_mixed_dir "otherlibs/threads";; let systhreads_dir = if_mixed_dir "otherlibs/systhreads";; diff --git a/ocamldoc/Makefile b/ocamldoc/Makefile index 74c82d3..61036c8 100644 --- a/ocamldoc/Makefile +++ b/ocamldoc/Makefile @@ -69,6 +69,7 @@ INCLUDES_DEP=-I $(OCAMLSRCDIR)/parsing \ INCLUDES_NODEP= -I $(OCAMLSRCDIR)/stdlib \ -I $(OCAMLSRCDIR)/otherlibs/str \ -I $(OCAMLSRCDIR)/otherlibs/dynlink \ + -I $(OCAMLSRCDIR)/otherlibs/win32unix \ -I $(OCAMLSRCDIR)/otherlibs/unix \ -I $(OCAMLSRCDIR)/otherlibs/num \ -I $(OCAMLSRCDIR)/otherlibs/graph diff --git a/otherlibs/Makefile.shared b/otherlibs/Makefile.shared index 2c084a0..0e13022 100644 --- a/otherlibs/Makefile.shared +++ b/otherlibs/Makefile.shared @@ -33,7 +33,7 @@ MKLIB=$(CAMLRUN) $(ROOTDIR)/tools/ocamlmklib #EXTRACFLAGS= #EXTRACAMLFLAGS= #LINKOPTS= -#LDOPTS= +LDOPTS=-L$(LIBDIR) #HEADERS= CMIFILES ?= $(CAMLOBJS:.cmo=.cmi) @@ -42,7 +42,8 @@ CLIBNAME ?= $(LIBNAME) all: lib$(CLIBNAME).$(A) $(LIBNAME).cma $(CMIFILES) -allopt: lib$(CLIBNAME).$(A) $(LIBNAME).cmxa $(LIBNAME).$(CMXS) $(CMIFILES) +allopt: lib$(CLIBNAME).$(A) $(LIBNAME).cmxa $(CMIFILES) +# $(LIBNAME).$(CMXS) $(LIBNAME).cma: $(CAMLOBJS) $(MKLIB) -o $(LIBNAME) -oc $(CLIBNAME) -ocamlc '$(CAMLC)' -linkall $(CAMLOBJS) $(LINKOPTS) @@ -50,8 +51,8 @@ $(LIBNAME).cma: $(CAMLOBJS) $(LIBNAME).cmxa: $(CAMLOBJS_NAT) $(MKLIB) -o $(LIBNAME) -oc $(CLIBNAME) -ocamlopt '$(CAMLOPT)' -linkall $(CAMLOBJS_NAT) $(LINKOPTS) -$(LIBNAME).cmxs: $(LIBNAME).cmxa lib$(CLIBNAME).$(A) - $(CAMLOPT) -shared -o $(LIBNAME).cmxs -I . $(LIBNAME).cmxa +#$(LIBNAME).cmxs: $(LIBNAME).cmxa lib$(CLIBNAME).$(A) +# $(CAMLOPT) -shared -o $(LIBNAME).cmxs -I . $(LIBNAME).cmxa lib$(CLIBNAME).$(A): $(COBJS) $(MKLIB) -oc $(CLIBNAME) $(COBJS) $(LDOPTS) diff --git a/otherlibs/bigarray/Makefile b/otherlibs/bigarray/Makefile index d442edb..dc34d6d 100644 --- a/otherlibs/bigarray/Makefile +++ b/otherlibs/bigarray/Makefile @@ -14,8 +14,8 @@ # $Id: Makefile 11156 2011-07-27 14:17:02Z doligez $ LIBNAME=bigarray -EXTRACFLAGS=-I../unix -DIN_OCAML_BIGARRAY -DCAML_NAME_SPACE -EXTRACAMLFLAGS=-I ../unix +EXTRACFLAGS=-I../win32unix -I../unix -DIN_OCAML_BIGARRAY -DCAML_NAME_SPACE +EXTRACAMLFLAGS=-I ../win32unix -I ../unix COBJS=bigarray_stubs.$(O) mmap_unix.$(O) CAMLOBJS=bigarray.cmo HEADERS=bigarray.h diff --git a/otherlibs/systhreads/Makefile b/otherlibs/systhreads/Makefile index 502498f..7ed53df 100644 --- a/otherlibs/systhreads/Makefile +++ b/otherlibs/systhreads/Makefile @@ -15,13 +15,13 @@ include ../../config/Makefile -CAMLC=../../ocamlcomp.sh -I ../unix -CAMLOPT=../../ocamlcompopt.sh -I ../unix +CAMLC=../../ocamlcomp.sh -I ../win32unix -I ../unix +CAMLOPT=../../ocamlcompopt.sh -I ../win32unix -I ../unix MKLIB=../../boot/ocamlrun ../../tools/ocamlmklib COMPFLAGS=-warn-error A -g -BYTECODE_C_OBJS=st_stubs_b.o -NATIVECODE_C_OBJS=st_stubs_n.o +BYTECODE_C_OBJS=st_stubs_b.o win32_b.o +NATIVECODE_C_OBJS=st_stubs_n.o win32_n.o THREAD_OBJS= thread.cmo mutex.cmo condition.cmo event.cmo threadUnix.cmo @@ -37,6 +37,10 @@ st_stubs_b.o: st_stubs.c st_posix.h -c st_stubs.c mv st_stubs.o st_stubs_b.o +win32_b.$(O): st_stubs.c st_win32.h + $(BYTECC) -I ../../byterun $(BYTECCCOMPOPTS) $(CFLAGS) -c st_stubs.c + mv st_stubs.$(O) win32_b.$(O) + # Dynamic linking with -lpthread is risky on many platforms, so # do not create a shared object for libthreadsnat. libthreadsnat.a: $(NATIVECODE_C_OBJS) @@ -46,9 +50,13 @@ st_stubs_n.o: st_stubs.c st_posix.h $(NATIVECC) -O -I../../asmrun -I../../byterun $(NATIVECCCOMPOPTS) $(SHAREDCCCOMPOPTS) -DNATIVE_CODE -DTARGET_$(ARCH) -DSYS_$(SYSTEM) -c st_stubs.c mv st_stubs.o st_stubs_n.o +win32_n.$(O): st_stubs.c st_win32.h + $(NATIVECC) -DNATIVE_CODE -O -I../../asmrun -I../../byterun $(NATIVECCCOMPOPTS) -c st_stubs.c + mv st_stubs.$(O) win32_n.$(O) + threads.cma: $(THREAD_OBJS) $(MKLIB) -ocamlc '$(CAMLC)' -o threads $(THREAD_OBJS) \ - -cclib -lunix $(PTHREAD_LINK) + -cclib -lunix $(PTHREAD_LINK) -lcamlrun # See remark above: force static linking of libthreadsnat.a threads.cmxa: $(THREAD_OBJS:.cmo=.cmx) diff --git a/otherlibs/systhreads/Makefile.nt b/otherlibs/systhreads/Makefile.nt index dc118b7..4b53d6e 100644 --- a/otherlibs/systhreads/Makefile.nt +++ b/otherlibs/systhreads/Makefile.nt @@ -21,6 +21,7 @@ CAMLOPT=../../boot/ocamlrun ../../ocamlopt -I ../../stdlib -I ../win32unix COMPFLAGS=-warn-error A -g MKLIB=../../boot/ocamlrun ../../tools/ocamlmklib CFLAGS=-I../../byterun $(EXTRACFLAGS) +LDOPTS=-L@libdir@ CAMLOBJS=thread.cmo mutex.cmo condition.cmo event.cmo threadUnix.cmo CMIFILES=$(CAMLOBJS:.cmo=.cmi) @@ -34,7 +35,7 @@ all: lib$(LIBNAME).$(A) $(LIBNAME).cma $(CMIFILES) allopt: lib$(LIBNAME).$(A) $(LIBNAME).cmxa $(LIBNAME).cmxs $(CMIFILES) $(LIBNAME).cma: $(CAMLOBJS) - $(MKLIB) -o $(LIBNAME) -ocamlc "..\\..\\boot\\ocamlrun ..\\..\\ocamlc" -linkall $(CAMLOBJS) $(LINKOPTS) + $(MKLIB) -o $(LIBNAME) -ocamlc "../../boot/ocamlrun ../../ocamlc" -linkall $(CAMLOBJS) $(LINKOPTS) lib$(LIBNAME).$(A): $(COBJS) $(MKLIB) -o $(LIBNAME) $(COBJS) $(LDOPTS) @@ -46,7 +47,7 @@ st_stubs_b.$(O): st_stubs.c st_win32.h $(LIBNAME).cmxa: $(CAMLOBJS:.cmo=.cmx) - $(MKLIB) -o $(LIBNAME)nat -ocamlopt "..\\..\\boot\\ocamlrun ..\\..\\ocamlopt" -linkall $(CAMLOBJS:.cmo=.cmx) $(LINKOPTS) + $(MKLIB) -o $(LIBNAME)nat -ocamlopt "../../boot/ocamlrun ../../ocamlopt" -linkall $(CAMLOBJS:.cmo=.cmx) $(LINKOPTS) mv $(LIBNAME)nat.cmxa $(LIBNAME).cmxa mv $(LIBNAME)nat.$(A) $(LIBNAME).$(A) @@ -71,6 +72,7 @@ clean: partialclean install: cp dllthreads.dll $(STUBLIBDIR)/dllthreads.dll cp libthreads.$(A) $(LIBDIR)/libthreads.$(A) + cd $(LIBDIR); $(RANLIB) libthreads.$(A) mkdir -p $(LIBDIR)/threads cp $(CMIFILES) threads.cma $(LIBDIR)/threads rm -f $(LIBDIR)/threads/stdlib.cma @@ -78,6 +80,7 @@ install: installopt: cp libthreadsnat.$(A) $(LIBDIR)/libthreadsnat.$(A) + cd $(LIBDIR); $(RANLIB) libthreadsnat.$(A) cp $(THREAD_OBJS:.cmo=.cmx) threads.cmxa threads.$(A) $(LIBDIR)/threads cp threads.cmxs $(LIBDIR)/threads diff --git a/otherlibs/systhreads/st_win32.h b/otherlibs/systhreads/st_win32.h index da602b7..7e1dcb9 100644 --- a/otherlibs/systhreads/st_win32.h +++ b/otherlibs/systhreads/st_win32.h @@ -17,7 +17,7 @@ #define _WIN32_WINNT 0x0400 #include <windows.h> -#include <WinError.h> +#include <winerror.h> #include <stdio.h> #include <signal.h> diff --git a/otherlibs/win32graph/Makefile.nt b/otherlibs/win32graph/Makefile.nt index 62c4678..e7c6d6b 100644 --- a/otherlibs/win32graph/Makefile.nt +++ b/otherlibs/win32graph/Makefile.nt @@ -18,10 +18,11 @@ COBJS=open.$(O) draw.$(O) events.$(O) dib.$(O) CAMLOBJS=graphics.cmo WIN32LIBS=$(call SYSLIB,kernel32) $(call SYSLIB,gdi32) $(call SYSLIB,user32) LINKOPTS=-cclib "\"$(WIN32LIBS)\"" -LDOPTS=-ldopt "$(WIN32LIBS)" include ../Makefile.nt +LDOPTS=-L@libdir@ -ldopt "$(WIN32LIBS)" + graphics.ml: ../graph/graphics.ml cp ../graph/graphics.ml graphics.ml graphics.mli: ../graph/graphics.mli diff --git a/otherlibs/win32unix/Makefile.nt b/otherlibs/win32unix/Makefile.nt index 76a1c19..c401bbb 100644 --- a/otherlibs/win32unix/Makefile.nt +++ b/otherlibs/win32unix/Makefile.nt @@ -40,7 +40,6 @@ LIBNAME=unix COBJS=$(ALL_FILES:.c=.$(O)) CAMLOBJS=unix.cmo unixLabels.cmo LINKOPTS=-cclib $(WSOCKLIB) -LDOPTS=-ldopt $(WSOCKLIB) EXTRACAMLFLAGS=-nolabels EXTRACFLAGS=-I../unix HEADERS=unixsupport.h socketaddr.h @@ -48,6 +47,8 @@ HEADERS=unixsupport.h socketaddr.h include ../Makefile.nt +LDOPTS=-L@libdir@ -ldopt $(WSOCKLIB) + clean:: rm -f $(UNIX_FILES) $(UNIX_CAML_FILES) diff --git a/utils/config.mlp b/utils/config.mlp index cdf67d4..b905059 100644 --- a/utils/config.mlp +++ b/utils/config.mlp @@ -86,11 +86,7 @@ let ext_asm = "%%EXT_ASM%%" let ext_lib = "%%EXT_LIB%%" let ext_dll = "%%EXT_DLL%%" -let default_executable_name = - match Sys.os_type with - "Unix" -> "a.out" - | "Win32" | "Cygwin" -> "camlprog.exe" - | _ -> "camlprog" +let default_executable_name = "camlprog.exe" let systhread_supported = %%SYSTHREAD_SUPPORT%%;; @@ -118,7 +114,7 @@ let print_config oc = p "ext_asm" ext_asm; p "ext_lib" ext_lib; p "ext_dll" ext_dll; - p "os_type" Sys.os_type; + p "os_type" "Win32"; p "default_executable_name" default_executable_name; p_bool "systhread_supported" systhread_supported; flush oc; -- 1.7.9.5