pkgsrc/lang/icon/Makefile

66 lines
1.6 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.36 2005/12/05 20:50:25 rillig Exp $
DISTNAME= icon.v942src
PKGNAME= icon-9.4.2
CATEGORIES= lang
MASTER_SITES= http://www.cs.arizona.edu/icon/ftp/packages/unix/
EXTRACT_SUFX= .tgz
2003-07-17 23:41:05 +02:00
MAINTAINER= tech-pkg@NetBSD.org
HOMEPAGE= http://www.cs.arizona.edu/icon/index.htm
COMMENT= The Icon programming language
CONFIGURE_TARGET= X-Configure
BUILD_TARGET= All
2003-07-03 00:28:05 +02:00
TEST_TARGET= Test
Update of icon to 9.4.0. Version 9.4 of Icon is a modified and repackaged implementation based on version 9.3.2 of Icon. The changes make it easier to maintain, install, and use under Unix while retaining potential portability to other systems. Most significant are changes to path searching, described below, and the inclusion of the Icon program library as a standard part of all Unix source and binary distributions. The Icon language is unchanged, and this 9.4 Unix implementation remains compatible at the source level with Icon 9.3 for Windows. Recent feature additions New features added since the publication of the Icon books are described below. Reading foreign text files (new with Version 9.3.1 of Icon) The function read() recognizes three kinds of line terminators when reading a file opened in translated mode: Windows (CR+LF), Macintosh (CR), or Unix (LF). Consequently, text files created on one platform can be read by an Icon program running on a different platform. Reading directory contents (new with Version 9.3.2 of Icon) The files in a directory can be listed by opening the directory as a file. Subsequent reads return the names of the files contained in the directory. The names are returned in no particular order, and for Unix, the directories "." and ".." are included. Path searching (new with Version 9.4 of Icon) Under Unix, colons (:) may now separate directories in the LPATH and IPATH environment variables as an alternative to spaces. The Icon translator and linker search these paths when looking for $include and link files respectively. The Icon program library is now searched automatically, but LPATH and IPATH can still be set to control the search order. For version 9.4, the effective path in each case is: 1. the current directory 2. any directories named by the environment variable 3. the Icon library directory Other changes affect the configuration of Icon at installation time and the way executable Icon programs locate the interpreter. These changes, which are transparent to most users, are discussed in more detail on the [2]File Organization page. Other Icon Changes Several areas of the Icon implementation have been cleaned up, in particular the run-time initialization code, and some obsolete configurations have been removed. With one clearly marked exception, programs in the standard test suite now generate reproducible output. The following problems have been corrected: * The sign bit was lost when converting a real to a large integer. * A duplicate close(f) could crash the interpreter. * Very large coordinate values were silently mishandled. * Window attributes over 127 characters long caused a segfault. * A segfault during traceback could produce an infinite loop. * A file inclusion bug in gcc 2.96 prevented Icon from building. Library Changes The program library has been incorporated into the main Icon source tree and is routinely built along with icont and iconx. Tests for most of the core library functions and loadable C functions have been incorporated the standard test suite, and some additional consistency tests were developed. Numerous changes were made throughout the library to fix linking problems, to fix typos and formatting, and to support building via Makefiles. Some files that were miscategorized as graphics or non-graphics have been moved. Duplicate files in the cfuncs and packs/loadfunc directories have been eliminated. Some other obsolete files were also removed. Other significant changes were: procs/datetime fixed dayoweek() to get all twelve months right procs/factors fixed divisors() to consistently return all factors fixed genfactors() for some failing cases added some minor optimizations procs/genrfncs added several new sequence generators procs/io modified to allow ":" as a path separator under Unix procs/lists fixed fatal bugs in lminlen() and lmaxlen() added several new list manipulation procedures procs/lstfncs added: procedures to produce lists from sequences procs/numbers fixed decimal() for values where remainder repeats procs/pdco added several new control operations procs/periodic added: procedures related to periodic sequences procs/permutat added: procedures for permutations procs/polynom added: manipulate multi-variate polynomials procs/pqueue added new priority queue procedures procs/rational added real2rat(v, p) #: convert real to rational added medrat(r1, r2) #: rational mediant procs/records added fieldnum(R, s) #: return index of field R.s procs/seqops replaced: procedures to manipulate T-sequences procs/strings modified fchars() to break ties lexically renamed permute() to permutes() cfuncs/icall.h fixed reading of misaligned doubles by RealVal() cfuncs/fpoll.c support fpoll() under BSD Unix flavors gprocs/drawlab modified to let the caller control the window size progs/htprep modified to improve quoting progs/ipatch modified to understand v9.4 headers as well as v9.3 progs/unclog added: program to reformat CVS logs gprogs/breakout added: a new breakout game gprogs/dlgvu modified to allow interruption while drawing labels gprogs/gallery modified to recognize some nonstandard JPEG files gpacks/tiger modified to allow interruption of drawing gpacks/xtiles fixed the usage message packs/loadfunc/cspace increased the default window size
2001-06-25 20:00:16 +02:00
.include "../../mk/bsd.prefs.mk"
.include "../../mk/compiler.mk"
.if ${OPSYS} == "NetBSD"
NAME= netbsd
. if (${MACHINE_ARCH} == "alpha") || (${MACHINE_ARCH} == "i386") || \
(${MACHINE_ARCH} == "sparc") || (${MACHINE_ARCH} == "powerpc") || \
(${MACHINE_ARCH} == "mipseb") || (${MACHINE_ARCH} == "mipsel") || \
(${MACHINE_ARCH} == "m68k") || (${MACHINE_ARCH} == "vax")
. else
PTHREAD_OPTS+= require native
. include "../../mk/pthread.buildlink3.mk"
. endif
.elif ${OPSYS} == "SunOS"
. if !empty(CC_VERSION:M*gcc*)
NAME= sun_gcc
. elif !empty(CC_VERSION:MSun)
NAME= sun_sunc
. else
PKG_FAIL_REASON+= "${PKGNAME} does not know about ${CC_VERSION}"
. endif
. if ${MACHINE_ARCH} == "sparc"
. else
PTHREAD_OPTS+= require native
. include "../../mk/pthread.buildlink3.mk"
. endif
.else
PKG_FAIL_REASON+= "${PKGNAME} does not have the correct config name for this system"
.endif
Massive cleanup of buildlink3.mk and builtin.mk files in pkgsrc. Several changes are involved since they are all interrelated. These changes affect about 1000 files. The first major change is rewriting bsd.builtin.mk as well as all of the builtin.mk files to follow the new example in bsd.builtin.mk. The loop to include all of the builtin.mk files needed by the package is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk is now included by each of the individual builtin.mk files and provides some common logic for all of the builtin.mk files. Currently, this includes the computation for whether the native or pkgsrc version of the package is preferred. This causes USE_BUILTIN.* to be correctly set when one builtin.mk file includes another. The second major change is teach the builtin.mk files to consider files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most of the builtin.mk files test for the presence of built-in software by checking for the existence of certain files, e.g. <pthread.h>, and we now assume that if that file is under ${LOCALBASE}, then it must be from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The exceptions to this new check are the X11 distribution packages, which are handled specially as noted below. The third major change is providing builtin.mk and version.mk files for each of the X11 distribution packages in pkgsrc. The builtin.mk file can detect whether the native X11 distribution is the same as the one provided by pkgsrc, and the version.mk file computes the version of the X11 distribution package, whether it's built-in or not. The fourth major change is that the buildlink3.mk files for X11 packages that install parts which are part of X11 distribution packages, e.g. Xpm, Xcursor, etc., now use imake to query the X11 distribution for whether the software is already provided by the X11 distribution. This is more accurate than grepping for a symbol name in the imake config files. Using imake required sprinkling various builtin-imake.mk helper files into pkgsrc directories. These files are used as input to imake since imake can't use stdin for that purpose. The fifth major change is in how packages note that they use X11. Instead of setting USE_X11, package Makefiles should now include x11.buildlink3.mk instead. This causes the X11 package buildlink3 and builtin logic to be executed at the correct place for buildlink3.mk and builtin.mk files that previously set USE_X11, and fixes packages that relied on buildlink3.mk files to implicitly note that X11 is needed. Package buildlink3.mk should also include x11.buildlink3.mk when linking against the package libraries requires also linking against the X11 libraries. Where it was obvious, redundant inclusions of x11.buildlink3.mk have been removed.
2005-06-01 20:02:37 +02:00
.include "../../mk/x11.buildlink3.mk"
Update of icon to 9.4.0. Version 9.4 of Icon is a modified and repackaged implementation based on version 9.3.2 of Icon. The changes make it easier to maintain, install, and use under Unix while retaining potential portability to other systems. Most significant are changes to path searching, described below, and the inclusion of the Icon program library as a standard part of all Unix source and binary distributions. The Icon language is unchanged, and this 9.4 Unix implementation remains compatible at the source level with Icon 9.3 for Windows. Recent feature additions New features added since the publication of the Icon books are described below. Reading foreign text files (new with Version 9.3.1 of Icon) The function read() recognizes three kinds of line terminators when reading a file opened in translated mode: Windows (CR+LF), Macintosh (CR), or Unix (LF). Consequently, text files created on one platform can be read by an Icon program running on a different platform. Reading directory contents (new with Version 9.3.2 of Icon) The files in a directory can be listed by opening the directory as a file. Subsequent reads return the names of the files contained in the directory. The names are returned in no particular order, and for Unix, the directories "." and ".." are included. Path searching (new with Version 9.4 of Icon) Under Unix, colons (:) may now separate directories in the LPATH and IPATH environment variables as an alternative to spaces. The Icon translator and linker search these paths when looking for $include and link files respectively. The Icon program library is now searched automatically, but LPATH and IPATH can still be set to control the search order. For version 9.4, the effective path in each case is: 1. the current directory 2. any directories named by the environment variable 3. the Icon library directory Other changes affect the configuration of Icon at installation time and the way executable Icon programs locate the interpreter. These changes, which are transparent to most users, are discussed in more detail on the [2]File Organization page. Other Icon Changes Several areas of the Icon implementation have been cleaned up, in particular the run-time initialization code, and some obsolete configurations have been removed. With one clearly marked exception, programs in the standard test suite now generate reproducible output. The following problems have been corrected: * The sign bit was lost when converting a real to a large integer. * A duplicate close(f) could crash the interpreter. * Very large coordinate values were silently mishandled. * Window attributes over 127 characters long caused a segfault. * A segfault during traceback could produce an infinite loop. * A file inclusion bug in gcc 2.96 prevented Icon from building. Library Changes The program library has been incorporated into the main Icon source tree and is routinely built along with icont and iconx. Tests for most of the core library functions and loadable C functions have been incorporated the standard test suite, and some additional consistency tests were developed. Numerous changes were made throughout the library to fix linking problems, to fix typos and formatting, and to support building via Makefiles. Some files that were miscategorized as graphics or non-graphics have been moved. Duplicate files in the cfuncs and packs/loadfunc directories have been eliminated. Some other obsolete files were also removed. Other significant changes were: procs/datetime fixed dayoweek() to get all twelve months right procs/factors fixed divisors() to consistently return all factors fixed genfactors() for some failing cases added some minor optimizations procs/genrfncs added several new sequence generators procs/io modified to allow ":" as a path separator under Unix procs/lists fixed fatal bugs in lminlen() and lmaxlen() added several new list manipulation procedures procs/lstfncs added: procedures to produce lists from sequences procs/numbers fixed decimal() for values where remainder repeats procs/pdco added several new control operations procs/periodic added: procedures related to periodic sequences procs/permutat added: procedures for permutations procs/polynom added: manipulate multi-variate polynomials procs/pqueue added new priority queue procedures procs/rational added real2rat(v, p) #: convert real to rational added medrat(r1, r2) #: rational mediant procs/records added fieldnum(R, s) #: return index of field R.s procs/seqops replaced: procedures to manipulate T-sequences procs/strings modified fchars() to break ties lexically renamed permute() to permutes() cfuncs/icall.h fixed reading of misaligned doubles by RealVal() cfuncs/fpoll.c support fpoll() under BSD Unix flavors gprocs/drawlab modified to let the caller control the window size progs/htprep modified to improve quoting progs/ipatch modified to understand v9.4 headers as well as v9.3 progs/unclog added: program to reformat CVS logs gprogs/breakout added: a new breakout game gprogs/dlgvu modified to allow interruption while drawing labels gprogs/gallery modified to recognize some nonstandard JPEG files gpacks/tiger modified to allow interruption of drawing gpacks/xtiles fixed the usage message packs/loadfunc/cspace increased the default window size
2001-06-25 20:00:16 +02:00
pre-build:
${MKDIR} ${WRKSRC}/lib/icon
do-configure:
cd ${WRKSRC}/config/netbsd; \
${SED} -e 's:@X11BASE@:${X11BASE}:g' define.h.in \
> define.h
cd ${WRKSRC}; ${MAKE} ${CONFIGURE_TARGET} name=${NAME}
Update of icon to 9.4.0. Version 9.4 of Icon is a modified and repackaged implementation based on version 9.3.2 of Icon. The changes make it easier to maintain, install, and use under Unix while retaining potential portability to other systems. Most significant are changes to path searching, described below, and the inclusion of the Icon program library as a standard part of all Unix source and binary distributions. The Icon language is unchanged, and this 9.4 Unix implementation remains compatible at the source level with Icon 9.3 for Windows. Recent feature additions New features added since the publication of the Icon books are described below. Reading foreign text files (new with Version 9.3.1 of Icon) The function read() recognizes three kinds of line terminators when reading a file opened in translated mode: Windows (CR+LF), Macintosh (CR), or Unix (LF). Consequently, text files created on one platform can be read by an Icon program running on a different platform. Reading directory contents (new with Version 9.3.2 of Icon) The files in a directory can be listed by opening the directory as a file. Subsequent reads return the names of the files contained in the directory. The names are returned in no particular order, and for Unix, the directories "." and ".." are included. Path searching (new with Version 9.4 of Icon) Under Unix, colons (:) may now separate directories in the LPATH and IPATH environment variables as an alternative to spaces. The Icon translator and linker search these paths when looking for $include and link files respectively. The Icon program library is now searched automatically, but LPATH and IPATH can still be set to control the search order. For version 9.4, the effective path in each case is: 1. the current directory 2. any directories named by the environment variable 3. the Icon library directory Other changes affect the configuration of Icon at installation time and the way executable Icon programs locate the interpreter. These changes, which are transparent to most users, are discussed in more detail on the [2]File Organization page. Other Icon Changes Several areas of the Icon implementation have been cleaned up, in particular the run-time initialization code, and some obsolete configurations have been removed. With one clearly marked exception, programs in the standard test suite now generate reproducible output. The following problems have been corrected: * The sign bit was lost when converting a real to a large integer. * A duplicate close(f) could crash the interpreter. * Very large coordinate values were silently mishandled. * Window attributes over 127 characters long caused a segfault. * A segfault during traceback could produce an infinite loop. * A file inclusion bug in gcc 2.96 prevented Icon from building. Library Changes The program library has been incorporated into the main Icon source tree and is routinely built along with icont and iconx. Tests for most of the core library functions and loadable C functions have been incorporated the standard test suite, and some additional consistency tests were developed. Numerous changes were made throughout the library to fix linking problems, to fix typos and formatting, and to support building via Makefiles. Some files that were miscategorized as graphics or non-graphics have been moved. Duplicate files in the cfuncs and packs/loadfunc directories have been eliminated. Some other obsolete files were also removed. Other significant changes were: procs/datetime fixed dayoweek() to get all twelve months right procs/factors fixed divisors() to consistently return all factors fixed genfactors() for some failing cases added some minor optimizations procs/genrfncs added several new sequence generators procs/io modified to allow ":" as a path separator under Unix procs/lists fixed fatal bugs in lminlen() and lmaxlen() added several new list manipulation procedures procs/lstfncs added: procedures to produce lists from sequences procs/numbers fixed decimal() for values where remainder repeats procs/pdco added several new control operations procs/periodic added: procedures related to periodic sequences procs/permutat added: procedures for permutations procs/polynom added: manipulate multi-variate polynomials procs/pqueue added new priority queue procedures procs/rational added real2rat(v, p) #: convert real to rational added medrat(r1, r2) #: rational mediant procs/records added fieldnum(R, s) #: return index of field R.s procs/seqops replaced: procedures to manipulate T-sequences procs/strings modified fchars() to break ties lexically renamed permute() to permutes() cfuncs/icall.h fixed reading of misaligned doubles by RealVal() cfuncs/fpoll.c support fpoll() under BSD Unix flavors gprocs/drawlab modified to let the caller control the window size progs/htprep modified to improve quoting progs/ipatch modified to understand v9.4 headers as well as v9.3 progs/unclog added: program to reformat CVS logs gprogs/breakout added: a new breakout game gprogs/dlgvu modified to allow interruption while drawing labels gprogs/gallery modified to recognize some nonstandard JPEG files gpacks/tiger modified to allow interruption of drawing gpacks/xtiles fixed the usage message packs/loadfunc/cspace increased the default window size
2001-06-25 20:00:16 +02:00
do-install:
cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} dest=${PREFIX} Install
.include "../../mk/bsd.pkg.mk"