[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / lang / chicken5

File: [cvs.NetBSD.org] / pkgsrc / lang / chicken5 / Makefile (download)

Revision 1.2, Tue Jul 2 13:22:40 2019 UTC (15 months, 2 weeks ago) by ryoon
Branch: MAIN
Changes since 1.1: +2 -2 lines

Update to 5.1.0

Changelog:
5.1.0

- Core libraries
  - Symbols ending or starting with a colon are now always pipe-quoted
    when written by `write` to ensure they can be read back with a
    different keyword-style setting.
  - Read-write invariance of special symbols starting with #! other
    than #!key, #!rest or #!optional is now preserved (#1572).
  - When using (set-file-position!) on a port, its EOF status will now
    be reset.
  - In (chicken file posix), the values of perm/irgrp, perm/iwgrp,
    perm/ixgrp, perm/iroth, perm/iwoth and perm/ixoth are now correctly
    defined (they were all for "usr"; #1602, thanks to Eric Hoffman).
  - In (chicken file posix), `file-truncate` now accepts also accepts
    port objects, for consistency with other file procedures.
    All such procedures from (chicken file posix) now have the correct
    types in types.db (fixes #1609, thanks to Robert Jensen).
  - Add the system-config-directory and system-cache-directory procedures
    in the chicken.platform module. These procedures follow the XDG
    specification and also give sensible results on Windows.
  - Fix get-environment from (chicken process-context) to raise an
    error when passed #f instead of segfaulting.
  - Qualified symbols (##foo#bar style) are no longer encoded by a
    byte prefix inside the symbol name.  This ensures read-write
    invariance of symbols which start with a low-byte character
    (fixes #1077, except for keywords, which start with NUL bytes).
  - Fix a missing export (list->s64vector) in SRFI-4.

- Runtime system
  - Keywords are now distinct types; they are not a subtype of symbols.
  - Use arc4random on FreeBSD (thanks to Tobias Kortkamp and gahr)
  - Removed the unused, undocumented (and incorrect!) C functions
    C_delete_symbol_table and C_set_symbol_table.
  - Continuations which discard additional values beyond the first no
    longer accept multiple values via direct invocation after being
    captured through `call/cc`, only via `values` (revert of #1390,
    due to #1601)
  - SRFI-4 vector predicates, reference, set and length procedures
    should now be faster in tight loops as they're inlineable (#757).
  - Keywords are now interned in a separate keyword table, not in the
    standard symbol table.  This brings full read-write invariance
    for symbols (they can now also start with NUL bytes).  Keywords
    no longer have plists.  Fixes #1576.
  - Increased the "binary compatibility version" to 11.

- Compiler
  - Restored optimized implementations of =, +, -, /, * and quotient in
    fixnum-arithmetic mode (fixes #1604 mostly; thanks to "chickendan").
  - Added an optimization pass for reducing the amount of boxing of
    intermediate floating point values, enabled by the "-lfa2" compiler
    option.
  - The "lfa2" pass is now enabled at optimization levels 2 or higher.

- Module system
  - When you try to import the module you are currently defining into
    itself, an error will be raised. This prevents an infinite loop in
    the compiler when later trying to import that same module (fixes
    #1506, thanks to Kristian Lein-Mathisen).

- Foreign function interface
  - Improved hygiene in FFI macro expansions, which means you don't
     have to import "scheme" or "(chicken base)" for them to work.

- Type system
  - It is now possible to quote free variables in type declarations,
     which acts as shorthand for `forall' (thanks to "megane")

- Tools
  - csi now uses (system-config-directory) to find csirc and falls back to
    $HOME/.csirc when needed.
  - chicken-install now uses (system-config-directory) to find a user
    defined setup.defaults file ; it also uses (system-cache-directory)
    for its egg cache directory when the CHICKEN_EGG_CACHE environment
    variable is not defined.

- Egg specifications
  - Allows "cond-expand" and "error" forms in egg specification files.
  - Add "c-object" and "object" properties to link separately compiled
     C objects into CHICKEN code.

# $NetBSD: Makefile,v 1.2 2019/07/02 13:22:40 ryoon Exp $

DISTNAME=	chicken-5.1.0
CATEGORIES=	lang
MASTER_SITES=	http://code.call-cc.org/releases/${PKGVERSION_NOREV}/

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	http://www.call-cc.org/
COMMENT=	Scheme to C compiler, handling R5RS
LICENSE=	modified-bsd

MAKE_JOBS_SAFE=	no

USE_LIBTOOL=		yes
USE_TOOLS+=		gmake
UNLIMIT_RESOURCES=	datasize

OWN_DIRS=		${PREFIX}/lib/chicken ${PREFIX}/lib/chicken/9

BUILD_TARGET=		all

.include "../../mk/bsd.prefs.mk"

# PLATFORM detection:
.if !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly"
PLATFORM=	bsd
.elif ${OPSYS} == "Linux"
PLATFORM=	linux
.elif ${OPSYS} == "Darwin"
PLATFORM=	macosx
.elif ${OPSYS} == "SunOS"
PLATFORM=	solaris
.elif ${OPSYS} == "Haiku"
PLATFORM=	haiku
.else
#PLATFORM+=	${OPSYS} == "Interix"
# possible choices left: aix android cross-linux-mingw cygwin hurd mingw
#                        mingw-msys
PKG_SKIP_REASON+=	"${OPSYS} is not supported"
.endif

MAKE_FILE=	GNUmakefile
MAKE_ENV+=	C_COMPILER=${CC:Q}
MAKE_ENV+=	HOST=	# fix ${HOST} prepending ${CC}
# Need to have these in MAKE_FLAGS, MAKE_ENV is not enough due to the
# way the build system overrides them.
MAKE_FLAGS+=	PLATFORM=${PLATFORM:Q} PREFIX=${PREFIX:Q} DESTDIR=${DESTDIR:Q}
MAKE_FLAGS+=	MANDIR=${PREFIX:Q}/${PKGMANDIR}
MAKE_FLAGS+=	INFODIR=${PREFIX:Q}/${PKGINFODIR:Q}
MAKE_FLAGS+=	DOCDIR=${PREFIX:Q}/share/doc/${PKGNAME_NOREV}
MAKE_FLAGS+=	INSTALL_PROGRAM=${INSTALL:Q}

TEST_TARGET=	check

.include "../../mk/bsd.pkg.mk"