NetBSD pkgsrc (package source) is a package management system for
Unix-like operating systems
This is the gcc 3.4 compiler suite.
This package has a test target. For testing (only), this
package requires dejagnu.
===========================================================================
$NetBSD: MESSAGE,v 1.2 2005/09/28 14:15:49 rillig Exp $
${PKGNAME} has been installed in ${LOCALBASE}/gcc34
To use this compiler in pkgsrc:
1) In your "pre-configure" target:
.include "../../lang/gcc34/preconfigure.mk"
2) .include "../../lang/gcc34/buildlink3.mk"
The "preconfigure.mk" makefile fragment will override the compiler tools
selected by ../../mk/compiler.mk to use gcc version 3.4.x.
===========================================================================
# $NetBSD: Makefile,v 1.45 2010/05/04 20:46:31 tez Exp $
#
DISTNAME= gcc-${GCC_VERSION}
PKGNAME= gcc34-${GCC_VERSION}
PKGREVISION= 3
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_VERSION}/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= shannonjr@NetBSD.org
HOMEPAGE= http://www.gnu.org/software/gcc/gcc.html
COMMENT= This is the gcc 3.4 compiler
GCC_VERSION= 3.4.6
NOT_FOR_PLATFORM= Interix-*-*
.include "../../mk/bsd.prefs.mk"
# Determine whether to use binutils
.if ${OPSYS} == "NetBSD"
. if !defined(USE_BINUTILS)
AS_PATH:= ${AS}
. for _dir_ in ${PATH:C/\:/ /g}
. if empty(AS_PATH:M/*)
. if exists(${_dir_}/${AS})
AS_PATH:= ${_dir_}/${AS}
. endif
. endif
. endfor
. if !empty(AS_PATH:M${LOCALBASE}/*)
USE_BINUTILS= YES
. else
AS_VERSION!= ${AS_PATH} --version | ${AWK} '{ \
split($$3, v, /[.]/); \
printf "%02d%02d%02d%02d\n",v[1],v[2],v[3],v[4]; \
exit; \
}'
USE_BINUTILS!= ${TEST} ${AS_VERSION} -lt 02130201 && ${ECHO} YES || ${ECHO} NO
. endif
MAKEFLAGS+= USE_BINUTILS=${USE_BINUTILS:Q}
. endif
.endif
.if defined(USE_BINUTILS) && !empty(USE_BINUTILS:M[yY][eE][sS])
DEPENDS+= binutils>=2.14:../../devel/binutils
CONFIGURE_ARGS+= --with-as=${LOCALBASE}/bin/as
CONFIGURE_ARGS+= --with-ld=${LOCALBASE}/bin/ld
CONFIGURE_ARGS+= --with-gnu-as
CONFIGURE_ARGS+= --with-gnu-ld
.endif
REPLACE_AWK+= libjava/addr2name.awk
USE_TOOLS+= awk:run
# Optional languages - change as required
# If BUILD_ADA is YES, then you'll need to specify
# an Ada in the "Ada bootstrap compiler section"
BUILD_DEFS+= BUILD_ADA BUILD_CXX BUILD_F77 \
BUILD_JAVA BUILD_OBJC
BUILD_ADA?= NO
BUILD_CXX?= YES
BUILD_F77?= NO
BUILD_JAVA?= YES
BUILD_OBJC?= YES
LANGS='c'
.if !empty(BUILD_ADA:M[Yy][Ee][Ss])
LANGS+='ada'
.endif
.if !empty(BUILD_CXX:M[Yy][Ee][Ss])
LANGS+='c++'
.endif
.if !empty(BUILD_F77:M[Yy][Ee][Ss])
LANGS+='f77'
.endif
.if !empty(BUILD_JAVA:M[Yy][Ee][Ss])
LANGS+='java'
.endif
.if !empty(BUILD_OBJC:M[Yy][Ee][Ss])
LANGS+='objc'
.endif
CONFIGURE_ARGS+= --enable-languages=${LANGS:Q}
CONFIGURE_ARGS+= --with-system-zlib
CONFIGURE_ARGS+= --enable-shared
CONFIGURE_ARGS+= --enable-__cxa_atexit
CONFIGURE_ARGS+= --enable-long-long
CONFIGURE_ARGS+= --with-local-prefix=${GCC_PREFIX:Q}
CONFIGURE_ARGS+= --with-libiconv-prefix=${BUILDLINK_PREFIX.iconv}
MAKE_ENV+= ICONVPREFIX=${BUILDLINK_PREFIX.iconv}
MAKE_ENV+= SHELL=${CONFIG_SHELL}
# FIXME Because gcc ignores rpath for some reason, it breaks on DragonFly -
# binaries are linked against libintl. Disabling NLS for now.
.if ${OPSYS} == "DragonFly"
CONFIGURE_ARGS+= --disable-nls
.endif
UNLIMIT_RESOURCES+= datasize
.if !empty(BUILD_F77:M[Yy][Ee][Ss])
.include "../../devel/gmp/buildlink3.mk"
CONFIGURE_ARGS+= --with-gmp=${BUILDLINK_PREFIX.gmp}
USE_TOOLS+= chmod
MAKE_ENV+= ac_cv_path_ac_cv_prog_chmod=${TOOLS_CHMOD:Q}
.endif
# GNU pth is useless here
.if !empty(BUILD_ADA:M[Yy][Ee][Ss])
# ADA tasking strictly requires native threads
PTHREAD_OPTS+= require native
.else
PTHREAD_OPTS+= native
.endif
.include "../../mk/pthread.buildlink3.mk"
.if defined(PTHREAD_TYPE) && ${PTHREAD_TYPE} != "native"
CONFIGURE_ARGS+= --disable-threads
.endif
USE_TOOLS+= gmake makeinfo msgfmt
HAS_CONFIGURE= YES # no GNU_CONFIGURE!
CONFIG_SHELL?= ${SH}
CONFIGURE_ENV+= CONFIG_SHELL=${CONFIG_SHELL:Q}
.if !empty(BUILD_ADA:M[Yy][Ee][Ss])
# Ada bootstrap compiler section
# An Ada compiler is required to build the Ada compiler. You
# may specify:
#USE_GCC34ADA =# Define to use gcc-3.4.x-ada
# Or, you may specify the path of any gcc/gnat Ada compiler
# by providing the full path of the compiler (example) below:
#ALT_GCC= prefix/bin/gcc
. if defined(ALT_GCC)
. if exists(${ALT_GCC})
ALT_GCC_RTS!= ${ALT_GCC} --print-file-name=adalib
. if !empty(ALT_GCC_RTS)
RALT_GCC_RTS= ${ALT_GCC_RTS:S%${LOCALBASE}%%:S%/%%}
. else
PKG_SKIP_REASON+= "${ALT_GCC} does not appear to be an Ada compiler"
. endif
. else
PKG_SKIP_REASON+= "Missing bootstrap Ada compiler"
. endif
. endif
. if !defined(USE_GCC34ADA) && !defined(ALT_GCC)
PKG_SKIP_REASON+= "An Ada bootstrap compiler must be specified to BUILD_ADA"
. endif
.endif
GCC_SUBPREFIX= gcc34
GCC_PREFIX= ${PREFIX}/${GCC_SUBPREFIX}
FILES_SUBST+= PKGNAME=${PKGNAME:Q}
MESSAGE_SUBST+= GCC_PREFIX=${GCC_PREFIX}
CONFIGURE_ARGS+= --prefix=${GCC_PREFIX:Q}
CPPFLAGS+= -I${BUILDLINK_DIR}/include
CFLAGS+= -I${BUILDLINK_DIR}/include
.if ${OPSYS} == "NetBSD"
# thread / crtbegin / __cxa_atexit support depend on a "netbsd2" OS name
GCC_PLATFORM= ${LOWER_ARCH}--${LOWER_OPSYS}${APPEND_ELF}${LOWER_OS_VERSION:C/[_a-z].*//}
CONFIGURE_ARGS+= --host=${GCC_PLATFORM:Q}
ABI_BASELINE_PAIR= ${GCC_PLATFORM:C/--/-/}
MAKE_ENV+= ABI_BASELINE_PAIR=${ABI_BASELINE_PAIR:Q}
.endif # NetBSD
post-patch:
.if ${OPSYS} == "NetBSD"
. if exists(${FILESDIR}/${LOWER_ARCH}-baseline_symbols${LOWER_OS_VERSION:C/\..*//}.txt)
(${TEST} -d ${WRKSRC}/libstdc++-v3/config/abi/${ABI_BASELINE_PAIR} || \
${MKDIR} ${WRKSRC}/libstdc++-v3/config/abi/${ABI_BASELINE_PAIR})
${CP} ${FILESDIR}/${LOWER_ARCH}-baseline_symbols${LOWER_OS_VERSION:C/\..*//}.txt \
${WRKSRC}/libstdc++-v3/config/abi/${ABI_BASELINE_PAIR}/baseline_symbols.txt
. endif
.endif
(cd ${FILESDIR}; \
${CP} adasignal.c ${WRKSRC}/gcc/ada; \
${CP} ada_lwp_self.c ${WRKSRC}/gcc/ada; \
${CP} dummy_pthreads.c ${WRKSRC}/gcc/ada; \
for i in *.adb *.ads ; do \
${CP} $$i ${WRKSRC}/gcc/ada; \
done )
.if !empty(BUILD_ADA:M[Yy][Ee][Ss])
. if defined(USE_GCC34ADA)
# Overide compiler.mk setup to use gcc-3.4.x-ada
pre-configure:
.include "../../lang/gcc34-ada/preconfigure.mk"
. elif defined(ALT_GCC)
pre-configure:
(${TEST} -d ${WRKDIR}/.gcc/bin/ || ${MKDIR} ${WRKDIR}/.gcc/bin/)
(cd ${WRKDIR}/.buildlink && ${MKDIR} ${RALT_GCC_RTS} && \
cd ${RALT_GCC_RTS} && ${LN} -sf ${ALT_GCC_RTS}/libgnat.a .)
(cd ${ALT_GCC:H} && \
bin_files=`${FIND} . -type f \( -perm -0100 \) -print` && \
cd ${WRKDIR}/.gcc/bin/ && \
for filename in ${ALT_GCC:T} $${bin_files} ; do \
${ECHO} '#!${TOOLS_SHELL}' > $${filename}; \
${ECHO} -n "exec ${ALT_GCC:H}/$${filename} " >>$${filename}; \
${ECHO} '"$$@"' >>$${filename}; \
${CHMOD} +x $${filename}; \
done )
. endif
.endif
.if ${OPSYS} == "DragonFly"
${CP} ${FILESDIR}/dragonfly.h ${WRKSRC}/gcc/config/dragonfly.h
${CP} ${FILESDIR}/dragonfly-spec.h ${WRKSRC}/gcc/config/dragonfly-spec.h
${CP} ${FILESDIR}/i386-dragonfly.h ${WRKSRC}/gcc/config/i386/dragonfly.h
${CP} ${FILESDIR}/i386-dragonfly64.h ${WRKSRC}/gcc/config/i386/dragonfly64.h
.endif
do-configure:
${MKDIR} ${WRKDIR}/obj
cd ${WRKDIR}/obj; ${SETENV} ${CONFIGURE_ENV} ${CONFIG_SHELL} ${WRKSRC}/configure ${CONFIGURE_ARGS}
do-build:
(${_ULIMIT_CMD} cd ${WRKDIR}/obj && ${SETENV} ${MAKE_ENV} ${GMAKE} bootstrap)
.if !empty(BUILD_ADA:M[Yy][Ee][Ss])
(${_ULIMIT_CMD} cd ${WRKDIR}/obj/gcc && ${SETENV} ${MAKE_ENV} ${GMAKE} gnatlib-shared)
(${_ULIMIT_CMD} cd ${WRKDIR}/obj/gcc && ${SETENV} ${MAKE_ENV} ${GMAKE} gnatlib_and_tools)
.endif
do-test:
.if (${MACHINE_GNU_ARCH} == "x86_64")
(cd ${FILESDIR} && ${CP} netbsd64macro.dfs ${WRKSRC}/gcc/testsuite/ada/acats/support/macro.dfs)
.endif
(cd ${WRKDIR}/obj && ${GMAKE} -k check)
do-install:
(cd ${WRKDIR}/obj && ${SETENV} ${MAKE_ENV} ${GMAKE} install \
&& ${TEST} -f ${GCC_PREFIX}/bin/cc || ${LN} -f ${GCC_PREFIX}/bin/gcc ${GCC_PREFIX}/bin/cc)
.if !empty(BUILD_ADA:M[Yy][Ee][Ss])
(SPECPATH=`${GCC_PREFIX}/bin/gcc -print-file-name=specs` && \
for EXPANDEDSPECPATH in $${SPECPATH} ; do \
SPECDIR=`${DIRNAME} $${EXPANDEDSPECPATH}`; \
${ECHO} $${SPECDIR}/adainclude > $${SPECDIR}/ada_source_path; \
${ECHO} $${SPECDIR}/adalib > $${SPECDIR}/ada_object_path; \
done )
.endif
GENERATE_PLIST+= \
${FIND} ${GCC_PREFIX} \( -type f -o -type l \) -print \
| ${SORT} | ${SED} -e "s,${PREFIX}/,,g";
.include "../../mk/bsd.prefs.mk"
.if !empty(BUILD_ADA:M[Yy][Ee][Ss])
. if defined(USE_GCC34ADA)
BUILDLINK_DEPMETHOD.gcc34-ada=build
.include "../../lang/gcc34-ada/buildlink3.mk"
. endif
.endif
.include "../../devel/zlib/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../converters/libiconv/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
1) You may want to adjust the "Optional languages"
section of the Makefile before building this package.
2) The Ada compiler front-end of gcc is itself written
in Ada. Consequently, an Ada compiler must be used
to build this pkg. In pkgsrc, lang/gcc3-ada is version
3.3 of the gcc Ada compiler; it also requires an Ada
compiler to build. This pkg may also be built from
lang/gcc34-ada.
For bootstrapping, you can download a pre-built version
of gcc 3.4.0 Ada from:
http://www.johnrshannon.com/NetBSD/ix86/gccAda-3.4.0.tgz
http://www.johnrshannon.com/NetBSD/pentium4/gccAda-3.4.0.tgz
http://www.johnrshannon.com/NetBSD/x86_64/gccAda-3.4.0.tgz
The first two pkgs were built on NetBSD 2.0-BETA. The AMD64
pkg was built under NetBSD 1.6ZL.
# $NetBSD: buildlink3.mk,v 1.17 2009/03/20 19:24:49 joerg Exp $
BUILDLINK_PREFIX.gcc34:=${LOCALBASE}/gcc34
BUILDLINK_TREE+= gcc34
.if !defined(GCC34_BUILDLINK3_MK)
GCC34_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.gcc34+= gcc34>=${_GCC_REQD}
BUILDLINK_ABI_DEPENDS.gcc34?= gcc34>=3.4.5nb1
BUILDLINK_PKGSRCDIR.gcc34?= ../../lang/gcc34
. if exists(${BUILDLINK_PREFIX.gcc34}/bin/gcc)
_GNAT1!=${BUILDLINK_PREFIX.gcc34}/bin/gcc -print-prog-name=gnat1
. if exists(${_GNAT1})
BUILDLINK_ENV+= ADAC=${BUILDLINK_PREFIX.gcc34}/bin/gcc
. endif
BUILDLINK_LIBDIRS.gcc34+= lib
_GCC_ARCHDIR!= ${DIRNAME} `${BUILDLINK_PREFIX.gcc34}/bin/gcc --print-libgcc-file-name`
. if empty(_GCC_ARCHDIR:M*not_found*)
BUILDLINK_LIBDIRS.gcc34+= ${_GCC_ARCHDIR:S/^${BUILDLINK_PREFIX.gcc34}\///}/
. if exists(${_GNAT1})
BUILDLINK_LIBDIRS.gcc34+= ${_GCC_ARCHDIR:S/^${BUILDLINK_PREFIX.gcc34}\///}/adalib
. endif
BUILDLINK_INCDIRS.gcc34+= include ${_GCC_ARCHDIR:S/^${BUILDLINK_PREFIX.gcc34}\///}/include
. endif
. endif
BUILDLINK_FILES_CMD.gcc34= \
(cd ${BUILDLINK_PREFIX.gcc34} && \
${FIND} bin libexec lib \( -type f -o -type l \) -print)
BUILDLINK_FNAME_TRANSFORM.gcc34= -e s:\buildlink:buildlink/gcc34:
# Packages that link against shared libraries need a full dependency.
. if defined(_USE_GCC_SHLIB)
BUILDLINK_DEPMETHOD.gcc34+= full
. else
BUILDLINK_DEPMETHOD.gcc34?= build
. endif
.include "../../mk/pthread.buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.endif # GCC34_BUILDLINK3_MK
BUILDLINK_TREE+= -gcc34
$NetBSD: distinfo,v 1.20 2010/05/04 20:46:31 tez Exp $
SHA1 (gcc-3.4.6.tar.bz2) = 97b290fdc572c8e490b3b39f243e69bacad23c2b
RMD160 (gcc-3.4.6.tar.bz2) = b15003368cedc7964f6ceaee0c39ddc43a46c442
Size (gcc-3.4.6.tar.bz2) = 28193401 bytes
SHA1 (patch-aa) = 40ba26c4af81ecc0effce3b7ac3c74bdfe4b56a6
SHA1 (patch-ab) = 50345471e99264104e136acd7c09da0a5275cb62
SHA1 (patch-ae) = 928fa6155e614ca85b02359cf893d6c62231b192
SHA1 (patch-af) = cdd6b0d13c557996cb6582d7fa5dc651d37ee0ee
SHA1 (patch-ag) = beee5294d387faafa640ab048823499da629e715
SHA1 (patch-ah) = 3b3471f42e801f8588c1e0959d5cfa704ce16a3e
SHA1 (patch-ai) = 78320fde6d073cb4bc87b281b83168f173344341
SHA1 (patch-aj) = ea0bef88be9e823ed2acfa54a59f29016de8cc5e
SHA1 (patch-ak) = 1188e98e65fce3b968f9a2c211ffe315644d87d5
SHA1 (patch-al) = 3368a43981499dd46b2caa111eae19a0549d7499
SHA1 (patch-am) = 5a27d8f6a289f9b110a4bdc640547e43b799f08c
SHA1 (patch-at) = f74c2cd4919c59c0591e5aac7fdf8bb20fb87b96
SHA1 (patch-ba) = 6fc03fc155f630329f7dc831eece6b6464b453a6
SHA1 (patch-bb) = aa088194fb073fcde8d2f558ed55ec36106d60d0
SHA1 (patch-ca) = e04ff912406505abd015789f288ef09a7e1ae386
SHA1 (patch-cc) = 0af9845a62f9a6f8ec27657d0ae0c16394e9fc12
SHA1 (patch-cd) = a22078951e1369900fcb58a281c75b3a86edd3ea
# Create compiler driver scripts in ${WRKDIR}.
(test -d ${WRKDIR}/.gcc/bin || ${MKDIR} ${WRKDIR}/.gcc/bin)
(cd ${BUILDLINK_PREFIX.gcc34}/bin && bin_files=`${LS} *` && \
cd ${WRKDIR}/.gcc/bin && \
for _target_ in $${bin_files} ; do \
${ECHO} '#!${TOOLS_SHELL}' > $${_target_} && \
${ECHO} -n "exec ${BUILDLINK_PREFIX.gcc34}/bin/$${_target_}" >> $${_target_} && \
${ECHO} ' "$$@"' >> $${_target_} && \
${CHMOD} +x $${_target_}; \
done )