2013-03-14 15:44:58 +01:00
|
|
|
# $NetBSD: Makefile.common,v 1.37 2013/03/14 14:44:58 wiz Exp $
|
2004-12-24 18:16:04 +01:00
|
|
|
|
2009-09-08 20:35:46 +02:00
|
|
|
# used by x11/labltk/Makefile
|
|
|
|
# used by x11/ocaml-graphics/Makefile
|
Update to version 4.00.1. Renamed patches from two-letter system and added
comments.
Updated buildlink3.mk to default to a full dependency (more pertinent in most
cases; usually the standard library needs to be installed for an ocaml
program to run)
Changes from 3.12 to 4.00.1 include:
OCaml 4.00.1:
-------------
Various bug fixes.
OCaml 4.00.0:
-------------
(Changes that can break existing programs are marked with a "*")
- The official name of the language is now OCaml.
Language features:
- Added Generalized Algebraic Data Types (GADTs) to the language.
See chapter "Language extensions" of the reference manual for documentation.
- It is now possible to omit type annotations when packing and unpacking
first-class modules. The type-checker attempts to infer it from the context.
Using the -principal option guarantees forward compatibility.
- New (module M) and (module M : S) syntax in patterns, for immediate
unpacking of a first-class module.
Compilers:
- Revised simplification of let-alias (PR#5205, PR#5288)
- Better reporting of compiler version mismatch in .cmi files
* Warning 28 is now enabled by default.
- New option -absname to use absolute paths in error messages
- Optimize away compile-time beta-redexes, e.g. (fun x y -> e) a b.
- Added option -bin-annot to dump the AST with type annotations.
- Added lots of new warnings about unused variables, opens, fields,
constructors, etc.
* New meaning for warning 7: it is now triggered when a method is overridden
with the "method" keyword. Use "method!" to avoid the warning.
Native-code compiler:
- Optimized handling of partially-applied functions (PR#5287)
- Small improvements in code generated for array bounds checks (PR#5345,
PR#5360).
* New ARM backend (PR#5433):
. Supports both Linux/EABI (armel) and Linux/EABI+VFPv3 (armhf).
. Added support for the Thumb-2 instruction set with average code size
savings of 28%.
. Added support for position-independent code, natdynlink, profiling and
exception backtraces.
- Generation of CFI information, and filename/line number debugging (with -g)
annotations, enabling in particular precise stack backtraces with
the gdb debugger. Currently supported for x86 32-bits and 64-bits only.
(PR#5487)
- New tool: ocamloptp, the equivalent of ocamlcp for the native-code compiler.
OCamldoc:
- PR#5645: ocamldoc doesn't handle module/type substitution in signatures
- PR#5544: improve HTML output (less formatting in html code)
- PR#5522: allow refering to record fields and variant constructors
- fix PR#5419 (error message in french)
- fix PR#5535 (no cross ref to class after dump+load)
* Use first class modules for custom generators, to be able to
load various plugins incrementally adding features to the current
generator
* PR#5507: Use Location.t structures for locations.
- fix: do not keep code when not told to keep code.
Standard library:
- Added float functions "hypot" and "copysign" (PR#3806, PR#4752, PR#5246)
* Arg: options with empty doc strings are no longer included in the usage string
(PR#5437)
- Array: faster implementations of "blit", "copy", "sub", "append" and "concat"
(PR#2395, PR#2787, PR#4591)
* Hashtbl:
. Statistically-better generic hash function based on Murmur 3 (PR#5225)
. Fixed behavior of generic hash function w.r.t. -0.0 and NaN (PR#5222)
. Added optional "random" parameter to Hashtbl.create to randomize
collision patterns and improve security (PR#5572, CVE-2012-0839)
. Added "randomize" function and "R" parameter to OCAMLRUNPARAM
to turn randomization on by default (PR#5572, CVE-2012-0839)
. Added new functorial interface "MakeSeeded" to support randomization
with user-provided seeded hash functions.
. Install new header <caml/hash.h> for C code.
- Filename: on-demand (lazy) initialization of the PRNG used by "temp_file".
- Marshal: marshalling of function values (flag Marshal.Closures) now
also works for functions that come from dynamically-loaded modules (PR#5215)
- Random:
. More random initialization (Random.self_init()), using /dev/urandom
when available (e.g. Linux, FreeBSD, MacOS X, Solaris)
* Faster implementation of Random.float (changes the generated sequences)
- Scanf: new function "unescaped" (PR#3888)
- Set and Map: more efficient implementation of "filter" and "partition"
- String: new function "map" (PR#3888)
Installation procedure:
- Compiler internals are now installed in `ocamlc -where`/compiler-libs.
The files available there include the .cmi interfaces for all compiler
modules, plus the following libraries:
ocamlcommon.cma/.cmxa modules common to ocamlc, ocamlopt, ocaml
ocamlbytecomp.cma/.cmxa modules for ocamlc and ocaml
ocamloptcomp.cma/.cmxa modules specific to ocamlopt
camltoplevel.cma modules specific to ocaml
(PR#1804, PR#4653, frequently-asked feature).
* Some .cmi for toplevel internals that used to be installed in
`ocamlc -where` are now to be found in `ocamlc -where`/compiler-libs.
Add "-I +compiler-libs" where needed.
* toplevellib.cma is no longer installed because subsumed by
ocamlcommon.cma ocamlbytecomp.cma ocamltoplevel.cma
- Added a configuration option (-with-debug-runtime) to compile and install
a debug version of the runtime system, and a compiler option
(-runtime-variant) to select the debug runtime.
and various bug fixes.
2012-10-08 17:05:32 +02:00
|
|
|
DISTNAME= ocaml-4.00.1
|
2004-12-24 18:16:04 +01:00
|
|
|
CATEGORIES= lang
|
Update to version 4.00.1. Renamed patches from two-letter system and added
comments.
Updated buildlink3.mk to default to a full dependency (more pertinent in most
cases; usually the standard library needs to be installed for an ocaml
program to run)
Changes from 3.12 to 4.00.1 include:
OCaml 4.00.1:
-------------
Various bug fixes.
OCaml 4.00.0:
-------------
(Changes that can break existing programs are marked with a "*")
- The official name of the language is now OCaml.
Language features:
- Added Generalized Algebraic Data Types (GADTs) to the language.
See chapter "Language extensions" of the reference manual for documentation.
- It is now possible to omit type annotations when packing and unpacking
first-class modules. The type-checker attempts to infer it from the context.
Using the -principal option guarantees forward compatibility.
- New (module M) and (module M : S) syntax in patterns, for immediate
unpacking of a first-class module.
Compilers:
- Revised simplification of let-alias (PR#5205, PR#5288)
- Better reporting of compiler version mismatch in .cmi files
* Warning 28 is now enabled by default.
- New option -absname to use absolute paths in error messages
- Optimize away compile-time beta-redexes, e.g. (fun x y -> e) a b.
- Added option -bin-annot to dump the AST with type annotations.
- Added lots of new warnings about unused variables, opens, fields,
constructors, etc.
* New meaning for warning 7: it is now triggered when a method is overridden
with the "method" keyword. Use "method!" to avoid the warning.
Native-code compiler:
- Optimized handling of partially-applied functions (PR#5287)
- Small improvements in code generated for array bounds checks (PR#5345,
PR#5360).
* New ARM backend (PR#5433):
. Supports both Linux/EABI (armel) and Linux/EABI+VFPv3 (armhf).
. Added support for the Thumb-2 instruction set with average code size
savings of 28%.
. Added support for position-independent code, natdynlink, profiling and
exception backtraces.
- Generation of CFI information, and filename/line number debugging (with -g)
annotations, enabling in particular precise stack backtraces with
the gdb debugger. Currently supported for x86 32-bits and 64-bits only.
(PR#5487)
- New tool: ocamloptp, the equivalent of ocamlcp for the native-code compiler.
OCamldoc:
- PR#5645: ocamldoc doesn't handle module/type substitution in signatures
- PR#5544: improve HTML output (less formatting in html code)
- PR#5522: allow refering to record fields and variant constructors
- fix PR#5419 (error message in french)
- fix PR#5535 (no cross ref to class after dump+load)
* Use first class modules for custom generators, to be able to
load various plugins incrementally adding features to the current
generator
* PR#5507: Use Location.t structures for locations.
- fix: do not keep code when not told to keep code.
Standard library:
- Added float functions "hypot" and "copysign" (PR#3806, PR#4752, PR#5246)
* Arg: options with empty doc strings are no longer included in the usage string
(PR#5437)
- Array: faster implementations of "blit", "copy", "sub", "append" and "concat"
(PR#2395, PR#2787, PR#4591)
* Hashtbl:
. Statistically-better generic hash function based on Murmur 3 (PR#5225)
. Fixed behavior of generic hash function w.r.t. -0.0 and NaN (PR#5222)
. Added optional "random" parameter to Hashtbl.create to randomize
collision patterns and improve security (PR#5572, CVE-2012-0839)
. Added "randomize" function and "R" parameter to OCAMLRUNPARAM
to turn randomization on by default (PR#5572, CVE-2012-0839)
. Added new functorial interface "MakeSeeded" to support randomization
with user-provided seeded hash functions.
. Install new header <caml/hash.h> for C code.
- Filename: on-demand (lazy) initialization of the PRNG used by "temp_file".
- Marshal: marshalling of function values (flag Marshal.Closures) now
also works for functions that come from dynamically-loaded modules (PR#5215)
- Random:
. More random initialization (Random.self_init()), using /dev/urandom
when available (e.g. Linux, FreeBSD, MacOS X, Solaris)
* Faster implementation of Random.float (changes the generated sequences)
- Scanf: new function "unescaped" (PR#3888)
- Set and Map: more efficient implementation of "filter" and "partition"
- String: new function "map" (PR#3888)
Installation procedure:
- Compiler internals are now installed in `ocamlc -where`/compiler-libs.
The files available there include the .cmi interfaces for all compiler
modules, plus the following libraries:
ocamlcommon.cma/.cmxa modules common to ocamlc, ocamlopt, ocaml
ocamlbytecomp.cma/.cmxa modules for ocamlc and ocaml
ocamloptcomp.cma/.cmxa modules specific to ocamlopt
camltoplevel.cma modules specific to ocaml
(PR#1804, PR#4653, frequently-asked feature).
* Some .cmi for toplevel internals that used to be installed in
`ocamlc -where` are now to be found in `ocamlc -where`/compiler-libs.
Add "-I +compiler-libs" where needed.
* toplevellib.cma is no longer installed because subsumed by
ocamlcommon.cma ocamlbytecomp.cma ocamltoplevel.cma
- Added a configuration option (-with-debug-runtime) to compile and install
a debug version of the runtime system, and a compiler option
(-runtime-variant) to select the debug runtime.
and various bug fixes.
2012-10-08 17:05:32 +02:00
|
|
|
MASTER_SITES= http://caml.inria.fr/pub/distrib/ocaml-4.00/
|
2005-03-24 12:32:50 +01:00
|
|
|
EXTRACT_SUFX= .tar.bz2
|
2004-12-24 18:16:04 +01:00
|
|
|
|
2013-02-18 17:29:28 +01:00
|
|
|
MAINTAINER= jaapb@NetBSD.org
|
2004-12-24 18:16:04 +01:00
|
|
|
HOMEPAGE= http://caml.inria.fr/ocaml/
|
|
|
|
COMMENT= The latest implementation of the Caml dialect of ML
|
2011-03-29 15:45:01 +02:00
|
|
|
LICENSE= gnu-gpl-v2
|
2004-12-24 18:16:04 +01:00
|
|
|
|
2005-05-22 22:07:36 +02:00
|
|
|
USE_TOOLS+= gmake
|
2004-12-24 18:16:04 +01:00
|
|
|
HAS_CONFIGURE= yes
|
2012-06-22 13:36:10 +02:00
|
|
|
CONFIGURE_ENV+= BDB_LIBS=${BDB_LINK:Q}
|
2006-02-02 21:47:26 +01:00
|
|
|
CONFIGURE_ENV+= BDB_BUILTIN=${USE_BUILTIN.${BDB_TYPE}:Q}
|
2008-01-23 21:42:25 +01:00
|
|
|
CONFIGURE_ARGS+= -prefix ${PREFIX}
|
2006-02-02 21:47:26 +01:00
|
|
|
CONFIGURE_ARGS+= -libs ${LDFLAGS:Q}
|
2004-12-24 18:16:04 +01:00
|
|
|
CONFIGURE_ARGS+= -with-pthread
|
2006-10-03 23:06:25 +02:00
|
|
|
CONFIGURE_ARGS+= -host ${MACHINE_GNU_PLATFORM:Q}
|
2006-10-22 07:49:09 +02:00
|
|
|
CONFIGURE_ARGS+= -mandir ${PREFIX}/${PKGMANDIR}
|
2005-06-14 23:00:41 +02:00
|
|
|
CPPFLAGS+= -DDB_DBM_HSEARCH
|
2004-12-24 18:16:04 +01:00
|
|
|
|
2008-12-22 21:04:07 +01:00
|
|
|
INSTALL_MAKE_FLAGS+= PREFIX=${DESTDIR}${PREFIX} \
|
|
|
|
MANDIR=${DESTDIR}${PREFIX}/${PKGMANDIR}
|
2009-09-08 20:35:46 +02:00
|
|
|
DISTINFO_FILE= ${.CURDIR}/../../lang/ocaml/distinfo
|
|
|
|
PATCHDIR= ${.CURDIR}/../../lang/ocaml/patches
|
2008-12-22 21:04:07 +01:00
|
|
|
|
2004-12-24 18:16:04 +01:00
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
|
2005-05-22 00:35:46 +02:00
|
|
|
.if ${OPSYS} == "Darwin" || ${OPSYS} == "Linux"
|
2004-12-24 18:16:04 +01:00
|
|
|
INSTALL_UNSTRIPPED= yes
|
|
|
|
.endif
|
|
|
|
|
2005-06-14 23:00:41 +02:00
|
|
|
.include "../../mk/bdb.buildlink3.mk"
|
|
|
|
|
2012-06-22 13:36:10 +02:00
|
|
|
BDB_LINK= ${BDB_LIBS}
|
|
|
|
.if empty(BDBBASE:M/usr)
|
|
|
|
BDB_LINK+= -L${BDBBASE}/lib ${COMPILER_RPATH_FLAG}${BDBBASE}/lib
|
|
|
|
.endif
|
|
|
|
|
2005-01-19 18:43:59 +01:00
|
|
|
post-extract: cp-power-bsd cp-gnu-config
|
2004-12-24 18:16:04 +01:00
|
|
|
|
2006-02-02 21:47:26 +01:00
|
|
|
.PHONY: cp-power-bsd
|
2004-12-24 18:16:04 +01:00
|
|
|
cp-power-bsd:
|
2008-01-23 21:42:25 +01:00
|
|
|
${CP} ${WRKSRC}/asmrun/power-elf.S ${WRKSRC}/asmrun/power-bsd.S
|
2004-12-24 18:16:04 +01:00
|
|
|
|
2006-02-02 21:47:26 +01:00
|
|
|
.PHONY: cp-gnu-config
|
2005-01-19 18:43:59 +01:00
|
|
|
cp-gnu-config:
|
2008-01-23 21:42:25 +01:00
|
|
|
${CP} ${PKGSRCDIR}/mk/gnu-config/config.guess ${WRKSRC}/config/gnu/
|
|
|
|
${CP} ${PKGSRCDIR}/mk/gnu-config/config.sub ${WRKSRC}/config/gnu/
|
2005-01-19 18:43:59 +01:00
|
|
|
|
2004-12-24 18:16:04 +01:00
|
|
|
.include "../../mk/pthread.buildlink3.mk"
|