Subject: CVS commit: pkgsrc/mk/compiler
To: None <>
From: Johnny C. Lam <>
List: pkgsrc-changes
Date: 02/01/2004 00:31:00
Module Name:	pkgsrc
Committed By:	jlam
Date:		Sun Feb  1 00:31:00 UTC 2004

Added Files:

Log Message:
New compiler specification framework, based on mk/  The
changes from the old are:

  * Split apart the compiler-specific logic into separate files.  This
    should make supporting other compilers a bit easier.

  * Deprecate all of the USE_* variables, e.g. USE_GCC[23],
    USE_SUNPRO, etc.  It's all replaced with a new PKGSRC_COMPILER

  * Clean up the GCC handling so that it's all controlled by a single
    variable GCC_REQD.  The following behaviour is expected:

    (a) If USE_PKGSRC_GCC is defined, then pretend there is no GCC on
        the system.
    (b) If there is no GCC, then the appropriate GCC corresponding to
        GCC_REQD is installed and used.
    (c) If there is a GCC, if it satisfies GCC_REQD, then use it;
        otherwise install and use the appropriate GCC package.
    (d) If lang/gcc is installed and GCC_REQD > 2.95.3, then lang/gcc3
        is installed and used.
    (e) If lang/gcc3 is installed and GCC_REQD = 2.95.3, then gcc3 is
        still used instead of installing lang/gcc.

New features include:

  * PKGSRC_COMPILER takes a list of values specifying the chain of
    compilers to call when building packages.  Valid values are:

	distcc          distributed C/C++ (chainable)
	ccache          compiler cache (chainable)
	gcc             GNU
	mipspro         Silicon Graphics, Inc. MIPSpro
	sunpro          Sun Microsystems, Inc. WorkShip/Forte/Sun
			ONE Studio

    The default is "gcc".  You can use ccache and/or distcc with an
    appropriate PKGSRC_COMPILER setting, e.g. "ccache distcc gcc".

  * Change GCC_REQD to hold a list of values that we scan through to
    find the highest version of GCC required by the build.  Package
    Makefiles should now do "GCC_REQD+=..." instead of "GCC_REQD=...".

To generate a diff of this commit:
cvs rdiff -r0 -r1.1 pkgsrc/mk/compiler/ \
    pkgsrc/mk/compiler/ pkgsrc/mk/compiler/ \
    pkgsrc/mk/compiler/ pkgsrc/mk/compiler/ \

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.