ocaml/config/Makefile.msvc64

206 lines
5.7 KiB
Makefile

#**************************************************************************
#* *
#* OCaml *
#* *
#* Xavier Leroy, projet Cristal, INRIA Rocquencourt *
#* *
#* Copyright 1999 Institut National de Recherche en Informatique et *
#* en Automatique. *
#* *
#* All rights reserved. This file is distributed under the terms of *
#* the GNU Lesser General Public License version 2.1, with the *
#* special exception on linking described in the file LICENSE. *
#* *
#**************************************************************************
# Configuration for Windows, Visual C++ compiler
######### General configuration
PREFIX=C:/ocamlms64
### Where to install the binaries.
BINDIR=$(PREFIX)/bin
### Where to install the standard library
LIBDIR=$(PREFIX)/lib
### 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=msvc
# It doesn't make much sense to set "TARGET" and "HOST" for msvc but it's needed
# for the myocamlbuild config.
# The only case these will be used currently is to check whether we're
# cross-compiling or not so setting them to the same value is what matters.
HOST=msvc64
TARGET=$(HOST)
CCOMPTYPE=msvc
O=obj
A=lib
S=asm
SO=s.obj
EXE=.exe
EXT_DLL=.dll
EXT_OBJ=.$(O)
EXT_LIB=.$(A)
EXT_ASM=.$(S)
MANEXT=1
HASHBANGSCRIPTS=false
PTHREAD_LINK=
X11_INCLUDES=
X11_LINK=
BYTECCRPATH=
SUPPORTS_SHARED_LIBRARIES=true
SHAREDCCCOMPOPTS=-Ox
NATIVECCPROFOPTS=
NATIVECCRPATH=
ASM=ml64 -nologo -Cp -c -Fo
ASPP=
ASPPPROFFLAGS=
PROFILING=noprof
DYNLINKOPTS=
CC_PROFILE=
SYSTHREAD_SUPPORT=true
CMXS=cmxs
NATDYNLINK=true
RUNTIMED=noruntimed
ASM_CFI_SUPPORTED=false
UNIXLIB=win32unix
GRAPHLIB=win32graph
FLAMBDA=false
########## Configuration for the bytecode compiler
### Which C compiler to use for the bytecode interpreter.
BYTECC=cl -nologo -D_CRT_SECURE_NO_DEPRECATE
### Additional compile-time options for $(BYTECC). (For static linking.)
BYTECCCOMPOPTS=-O2 -Gy- -MD
### Additional compile-time options for $(BYTECC). (For debug version.)
BYTECCDBGCOMPOPTS=-DDEBUG -Zi -W3 -Wp64
### Additional link-time options for $(BYTECC). (For static linking.)
BYTECCLINKOPTS=
### Additional compile-time options for $(BYTECC). (For building a DLL.)
DLLCCCOMPOPTS=-O2 -Gy- -MD
### Libraries needed
#EXTRALIBS=bufferoverflowu.lib # for the old PSDK compiler only
EXTRALIBS=
BYTECCLIBS=advapi32.lib ws2_32.lib $(EXTRALIBS)
NATIVECCLIBS=advapi32.lib ws2_32.lib $(EXTRALIBS)
### How to invoke the C preprocessor
CPP=cl -nologo -EP
### Flexlink
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 =
#ml Printf.sprintf "link -lib -nologo -machine:AMD64 -out:%s %s %s"
#ml out opts files;;
MKSHAREDLIBRPATH=
### Canonicalize the name of a system library
SYSLIB=$(1).lib
#ml let syslib x = x ^ ".lib";;
### The ranlib command
RANLIB=echo
RANLIBCMD=
### The ar command
ARCMD=
############# Configuration for the native-code compiler
### Name of architecture for the native-code compiler
ARCH=amd64
### Name of architecture model for the native-code compiler.
MODEL=default
### Name of operating system family for the native-code compiler.
SYSTEM=win64
### Which C compiler to use for the native-code compiler.
NATIVECC=cl -nologo
### Additional compile-time options for $(NATIVECC).
NATIVECCCOMPOPTS=-O2 -Gy- -MD
### Additional link-time options for $(NATIVECC)
NATIVECCLINKOPTS=
### Build partially-linked object file
PACKLD=link -lib -nologo -machine:AMD64 -out:# must have no space after '-out:'
### Clear this to disable compiling ocamldebug
WITH_DEBUGGER=ocamldebugger
### Clear this to disable compiling ocamldoc
WITH_OCAMLDOC=ocamldoc
############# Configuration for the contributed libraries
OTHERLIBRARIES=win32unix systhreads str num win32graph dynlink bigarray
### Name of the target architecture for the "num" library
BNG_ARCH=generic
BNG_ASM_LEVEL=0
############# Aliases for common commands
MAKEREC=$(MAKE) -f Makefile.nt
MAKECMD=$(MAKE)
############# for the testsuite makefiles
#ml let topdir = "" and wintopdir = "";;
OTOPDIR=$(WINTOPDIR)
CTOPDIR=$(WINTOPDIR)
CYGPATH=cygpath -m
DIFF=diff -q --strip-trailing-cr
FIND=/usr/bin/find
SORT=/usr/bin/sort
SET_LD_PATH=PATH="$(PATH):$(LD_PATH)"
MAX_TESTSUITE_DIR_RETRIES=1