281 lines
8.6 KiB
Makefile
281 lines
8.6 KiB
Makefile
# @configure_input@
|
|
|
|
#**************************************************************************
|
|
#* *
|
|
#* 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. *
|
|
#* *
|
|
#**************************************************************************
|
|
|
|
# The configuration Makefile
|
|
|
|
## The EMPTY variable, used in other definitions
|
|
EMPTY=
|
|
|
|
## Arguments passed to the configure script
|
|
|
|
CONFIGURE_ARGS=@CONFIGURE_ARGS@
|
|
|
|
## Top build directory
|
|
|
|
TOP_BUILDDIR = @top_builddir@
|
|
|
|
## Installation directories
|
|
|
|
prefix=@prefix@
|
|
|
|
exec_prefix=@exec_prefix@
|
|
|
|
### Where to install the binaries
|
|
BINDIR=@bindir@
|
|
|
|
datarootdir=@datarootdir@
|
|
|
|
### Where to install the standard library
|
|
LIBDIR=@libdir@
|
|
|
|
### Where to install the stub code for the standard library
|
|
STUBLIBDIR=@libdir@/stublibs
|
|
|
|
### Where to install the man pages
|
|
# Man pages for commands go in $(MANDIR)/man$(PROGRAMS_MAN_SECTION)
|
|
# Man pages for the library go in $(MANDIR)/man/man$(LIBRARIES_MAN_SECTION)
|
|
MANDIR=@mandir@
|
|
PROGRAMS_MAN_SECTION=@programs_man_section@
|
|
LIBRARIES_MAN_SECTION=@libraries_man_section@
|
|
|
|
### Do #! scripts work on your system?
|
|
### Beware: on some systems (e.g. SunOS 4), this will work only if
|
|
### the string "#!$(BINDIR)/ocamlrun" is less than 32 characters long.
|
|
### In doubt, set HASHBANGSCRIPTS to false.
|
|
SHEBANGSCRIPTS=@shebangscripts@
|
|
LONG_SHEBANG=@long_shebang@
|
|
# For compatibility
|
|
HASHBANGSCRIPTS:=$(SHEBANGSCRIPTS)
|
|
|
|
### Path to the libtool script
|
|
LIBTOOL = $(TOP_BUILDDIR)/libtool
|
|
|
|
### Which C compiler to use
|
|
TOOLPREF=@ac_tool_prefix@
|
|
CC=@CC@
|
|
|
|
CC_HAS_DEBUG_PREFIX_MAP=@cc_has_debug_prefix_map@
|
|
AS_HAS_DEBUG_PREFIX_MAP=@as_has_debug_prefix_map@
|
|
|
|
### Additional link-time options
|
|
# To support dynamic loading of shared libraries (they need to look at
|
|
# our own symbols):
|
|
OC_LDFLAGS=@oc_ldflags@
|
|
|
|
### How to invoke the C preprocessor through the C compiler
|
|
CPP=@CPP@
|
|
|
|
### How to invoke ranlib
|
|
RANLIB=@RANLIB@
|
|
RANLIBCMD=@RANLIBCMD@
|
|
|
|
### How to invoke ar
|
|
ARCMD=@AR@
|
|
|
|
### Extension of object files
|
|
O=@OBJEXT@
|
|
EXT_OBJ=.@OBJEXT@
|
|
|
|
### How to tell the C compiler to output an object file
|
|
OUTPUTOBJ=@outputobj@
|
|
|
|
### Extension of static libraries
|
|
A=@libext@
|
|
EXT_LIB=.@libext@
|
|
|
|
### Extension of assembler files
|
|
S=@S@
|
|
EXT_ASM=.@S@
|
|
|
|
### Extension for shared libraries
|
|
SO=@SO@
|
|
EXT_DLL=.@SO@
|
|
|
|
SHAREDLIB_CFLAGS=@sharedlib_cflags@
|
|
|
|
# Compile-time option to $(CC) to add a directory to be searched
|
|
# at run-time for shared libraries
|
|
RPATH=@rpath@
|
|
|
|
############# Configuration for the native-code compiler
|
|
|
|
### Whether the native compiler has been enabled or not
|
|
NATIVE_COMPILER=@native_compiler@
|
|
|
|
### Name of architecture for the native-code compiler
|
|
### Currently supported:
|
|
###
|
|
### i386 Intel Pentium PCs under Linux, *BSD*, NextStep
|
|
### power Macintosh under Mac OS X and Linux
|
|
### arm ARM under Linux
|
|
###
|
|
### Set ARCH=none if your machine is not supported
|
|
ARCH=@arch@
|
|
|
|
# Whether the architecture has 64 bits
|
|
ARCH64=@arch64@
|
|
|
|
# Endianness for this architecture
|
|
ENDIANNESS=@endianness@
|
|
|
|
### Name of architecture model for the native-code compiler.
|
|
### Some architectures come in several slightly different flavors
|
|
### that share a common code generator. This variable tailors the
|
|
### behavior of the code generator to the particular flavor used.
|
|
### Currently needed only if ARCH=power; leave MODEL=default for
|
|
### other architectures.
|
|
### If ARCH=power: set MODEL=ppc
|
|
### For other architectures: leave MODEL=default
|
|
###
|
|
MODEL=@model@
|
|
|
|
### Name of operating system family for the native-code compiler.
|
|
SYSTEM=@system@
|
|
|
|
### Command and flags to use for assembling ocamlopt-generated code
|
|
ASM=@AS@
|
|
|
|
### Command and flags to use for assembling .S files (often with preprocessing)
|
|
ASPP=@ASPP@
|
|
|
|
### Set to "true" to install ".byte" executables (ocamlc.byte, etc.)
|
|
INSTALL_BYTECODE_PROGRAMS=@install_bytecode_programs@
|
|
|
|
############# Configuration for the contributed libraries
|
|
|
|
### Which libraries to compile and install
|
|
# Currently available:
|
|
# bigarray Large, multidimensional numerical arrays
|
|
# (legacy support: this library is now part of the
|
|
# Standard Library)
|
|
# dynlink Dynamic linking (bytecode and native)
|
|
# (win32)unix Unix system calls
|
|
# str Regular expressions and high-level string processing
|
|
# systhreads Same as threads, requires POSIX threads
|
|
OTHERLIBRARIES=@otherlibraries@
|
|
|
|
### Link-time options to ocamlc or ocamlopt for linking with POSIX threads
|
|
# Needed for the "systhreads" package
|
|
PTHREAD_LINK=@pthread_link@
|
|
PTHREAD_CAML_LINK=$(addprefix -cclib ,$(PTHREAD_LINK))
|
|
|
|
UNIX_OR_WIN32=@unix_or_win32@
|
|
UNIXLIB=@unixlib@
|
|
INSTALL_SOURCE_ARTIFACTS=@install_source_artifacts@
|
|
|
|
OC_CFLAGS=@oc_cflags@
|
|
CFLAGS?=@CFLAGS@
|
|
OC_CPPFLAGS=@oc_cppflags@
|
|
CPPFLAGS?=@CPPFLAGS@
|
|
OCAMLC_CFLAGS=@ocamlc_cflags@
|
|
|
|
OCAMLC_CPPFLAGS=@ocamlc_cppflags@
|
|
BYTECCLIBS=@bytecclibs@
|
|
EXE=@exeext@
|
|
OUTPUTEXE=@outputexe@
|
|
SUPPORTS_SHARED_LIBRARIES=@supports_shared_libraries@
|
|
MKSHAREDLIBRPATH=@mksharedlibrpath@
|
|
DYNLINKOPTS=@DLLIBS@
|
|
NATDYNLINK=@natdynlink@
|
|
NATDYNLINKOPTS=@natdynlinkopts@
|
|
SYSLIB=@syslib@
|
|
MKLIB=@mklib@
|
|
# #7678: ocamlopt uses these only to compile .c files, and the behaviour for the
|
|
# two drivers should be identical.
|
|
OCAMLOPT_CFLAGS=@ocamlc_cflags@
|
|
OCAMLOPT_CPPFLAGS=@ocamlc_cppflags@
|
|
NATIVECCLIBS=@nativecclibs@
|
|
SYSTHREAD_SUPPORT=@systhread_support@
|
|
PACKLD=@PACKLD@
|
|
IFLEXDIR=@iflexdir@
|
|
EXTRALIBS=@extralibs@
|
|
CCOMPTYPE=@ccomptype@
|
|
TOOLCHAIN=@toolchain@
|
|
CMXS=@cmxs@
|
|
|
|
# On Windows, 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)
|
|
|
|
MKEXE=@mkexe@
|
|
MKDLL=@mksharedlib@
|
|
MKMAINDLL=@mkmaindll@
|
|
|
|
MKEXEDEBUGFLAG=@mkexedebugflag@
|
|
RUNTIMED=@debug_runtime@
|
|
RUNTIMEI=@instrumented_runtime@
|
|
WITH_DEBUGGER=@with_debugger@
|
|
WITH_CAMLTEX=@with_camltex@
|
|
WITH_OCAMLDOC=@ocamldoc@
|
|
WITH_OCAMLTEST=@ocamltest@
|
|
ASM_CFI_SUPPORTED=@asm_cfi_supported@
|
|
WITH_FRAME_POINTERS=@frame_pointers@
|
|
WITH_PROFINFO=@profinfo@
|
|
PROFINFO_WIDTH=@profinfo_width@
|
|
WITH_FPIC=@fpic@
|
|
TARGET=@target@
|
|
HOST=@host@
|
|
FLAMBDA=@flambda@
|
|
WITH_FLAMBDA_INVARIANTS=@flambda_invariants@
|
|
FORCE_SAFE_STRING=@force_safe_string@
|
|
DEFAULT_SAFE_STRING=@default_safe_string@
|
|
WINDOWS_UNICODE=@windows_unicode@
|
|
AFL_INSTRUMENT=@afl@
|
|
MAX_TESTSUITE_DIR_RETRIES=@max_testsuite_dir_retries@
|
|
FLAT_FLOAT_ARRAY=@flat_float_array@
|
|
FUNCTION_SECTIONS=@function_sections@
|
|
AWK=@AWK@
|
|
STDLIB_MANPAGES=@stdlib_manpages@
|
|
NAKED_POINTERS=@naked_pointers@
|
|
|
|
### Native command to build ocamlrun.exe
|
|
|
|
ifeq "$(TOOLCHAIN)" "msvc"
|
|
MERGEMANIFESTEXE=test ! -f $(1).manifest \
|
|
|| mt -nologo -outputresource:$(1) -manifest $(1).manifest \
|
|
&& rm -f $(1).manifest
|
|
MKEXE_BOOT=$(CC) $(OC_CFLAGS) $(CFLAGS) $(OUTPUTEXE)$(1) $(2) \
|
|
/link /subsystem:console $(OC_LDFLAGS) && ($(MERGEMANIFESTEXE))
|
|
else
|
|
MKEXE_BOOT=$(CC) $(OC_CFLAGS) $(CFLAGS) $(OC_LDFLAGS) $(OUTPUTEXE)$(1) $(2)
|
|
endif # ifeq "$(TOOLCHAIN)" "msvc"
|
|
|
|
# The following variables were defined only in the Windows-specific makefiles.
|
|
# They were not defined by the configure script used on Unix systems,
|
|
# so we also make sure to provide them only under Windows
|
|
# User code should absolutely not rely on their presence because
|
|
# in the future their definition may be moved to a more private part of
|
|
# the compiler's build system
|
|
ifeq "$(UNIX_OR_WIN32)" "win32"
|
|
OTOPDIR=$(WINTOPDIR)
|
|
CTOPDIR=$(WINTOPDIR)
|
|
CYGPATH=cygpath -m
|
|
DIFF=/usr/bin/diff -q --strip-trailing-cr
|
|
FIND=/usr/bin/find
|
|
SORT=/usr/bin/sort
|
|
SET_LD_PATH=PATH="$(PATH):$(LD_PATH)"
|
|
FLEXLINK_CMD=flexlink
|
|
FLEXDLL_CHAIN=@flexdll_chain@
|
|
# FLEXLINK_FLAGS must be safe to insert in an OCaml string
|
|
# (see ocamlmklibconfig.ml in tools/Makefile)
|
|
FLEXLINK_FLAGS=@flexlink_flags@
|
|
FLEXLINK=$(FLEXLINK_CMD) $(FLEXLINK_FLAGS)
|
|
else # ifeq "$(UNIX_OR_WIN32)" "win32"
|
|
# On Unix, make sure FLEXLINK is defined but empty
|
|
FLEXLINK =
|
|
endif # ifeq "$(UNIX_OR_WIN32)" "win32"
|