diff options
author | hans <hans@pkgsrc.org> | 2012-04-13 11:10:09 +0000 |
---|---|---|
committer | hans <hans@pkgsrc.org> | 2012-04-13 11:10:09 +0000 |
commit | 263baa05c212a3eb438f5a3c105597e0c1736296 (patch) | |
tree | 6cf4727cde9d9f6ed7c19026b7e022d0ee5a02f1 /lang/gcc45 | |
parent | 4015337103b458d736530754daa441b4efe69cf9 (diff) | |
download | pkgsrc-263baa05c212a3eb438f5a3c105597e0c1736296.tar.gz |
Bring over the fixes and cleanups from lang/gcc46 and lang/gcc44:
- use options for language selection
- SunOS fixes
- reduced dependencies
Diffstat (limited to 'lang/gcc45')
-rw-r--r-- | lang/gcc45/Makefile | 90 | ||||
-rw-r--r-- | lang/gcc45/buildlink3.mk | 14 | ||||
-rw-r--r-- | lang/gcc45/options.mk | 89 |
3 files changed, 124 insertions, 69 deletions
diff --git a/lang/gcc45/Makefile b/lang/gcc45/Makefile index b85b67abed7..b49ac7843c6 100644 --- a/lang/gcc45/Makefile +++ b/lang/gcc45/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.7 2012/03/15 06:45:26 sbd Exp $ +# $NetBSD: Makefile,v 1.8 2012/04/13 11:10:09 hans Exp $ DISTNAME= gcc-${GCC_VERSION} PKGNAME= gcc45-${GCC_VERSION} -PKGREVISION= 1 +PKGREVISION= 2 CATEGORIES= lang MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_VERSION}/} EXTRACT_SUFX= .tar.bz2 @@ -14,9 +14,7 @@ LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3 PKG_DESTDIR_SUPPORT= user-destdir -USE_TOOLS+= awk:run bash:run perl chmod \ - gmake:run makeinfo msgfmt bison flex gm4 \ - sed:run unzip zip:run +USE_TOOLS+= awk:run bash:run chmod gmake:run makeinfo sed:run GCC_VERSION= 4.5.3 @@ -37,6 +35,15 @@ UNLIMIT_RESOURCES+= stacksize .include "options.mk" # Determine whether to use binutils +.if ${OPSYS} == "SunOS" +CONFIGURE_ENV+= OBJDUMP=/usr/sfw/bin/gobjdump +CONFIGURE_ARGS+= --without-gnu-ld --with-ld=/usr/ccs/bin/ld +. if !exists(/usr/sfw/bin/gas) +CONFIGURE_ARGS+= --without-gnu-as --with-as=/usr/ccs/bin/as +. else +CONFIGURE_ARGS+= --with-gnu-as --with-as=/usr/sfw/bin/gas +. endif +.endif # REPLACE_AWK+= gcc/testsuite/gcc.test-framework/test-framework.awk \ # gcc/mkmap-symver.awk \ @@ -58,72 +65,27 @@ REPLACE_BASH+= gcc/dbgcnt.def REPLACE_BASH+= gcc/testsuite/gcc.test-framework/gen_directive_tests REPLACE_BASH+= libstdc++-v3/scripts/run_doxygen -# Optional languages - change as required -# Ada could be added although there is a bootstrapping issue. See -# ../gcc34-ada for guidance -BUILD_DEFS+= BUILD_CXX BUILD_FORTRAN BUILD_JAVA BUILD_OBJC -BUILD_CXX?= YES -BUILD_FORTRAN?= YES -BUILD_JAVA?= NO -BUILD_OBJC?= YES - -LANGS= c - -#.if !empty(BUILD_CXX:M[aA][dD][aA]) -#LANGS+= ada -#.endif - -.if !empty(BUILD_CXX:M[Yy][Ee][Ss]) -LANGS+= c++ -.endif - -.if !empty(BUILD_FORTRAN:M[Yy][Ee][Ss]) -LANGS+= fortran -.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+= --prefix=${GCC_PREFIX:Q} 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+= --enable-libssp CONFIGURE_ARGS+= --enable-threads=posix -CONFIGURE_ARGS+= --with-gmp=${BUILDLINK_PREFIX.gmp} -CONFIGURE_ARGS+= --with-mpfr=${BUILDLINK_PREFIX.mpfr} -.if !(${OPSYS} == "Linux") +.if ${OPSYS} == "NetBSD" +.include "../../devel/binutils/buildlink3.mk" +.include "../../devel/libelf/buildlink3.mk" CONFIGURE_ARGS+= --with-ld=${PREFIX}/bin/gnu-ld CONFIGURE_ARGS+= --with-libelf=${PREFIX} +MAKE_ENV+= ac_cv_func_clock_gettime=yes +.endif +.if ${OPSYS} == "Linux" +CONFIGURE_ARGS+= --disable-libquadmath --disable-libquadmath-support .endif CONFIGURE_ENV+= CONFIG_SHELL=${CONFIG_SHELL} -# ${WRKSRC}/gcc-4.4.1/libjava/contrib/aotcompile.py.in stores the path to -# a 'make' program so we need to make sure we give it the installed 'make' and not -# the tool wrapped one. -CONFIGURE_ENV+= PKGSRC_MAKE=${TOOLS_PATH.gmake} -MAKE_ENV+= PKGSRC_MAKE=${TOOLS_PATH.gmake} - - -# fastjar-0.93 from pkgsrc/archivers/fastjar seems to trigger a build -# failure (seen on NetBSD-5.0/i386) when building java. So in case -# the fastjar package is installed, make sure the configure script -# doesn't pick it up. -CONFIGURE_ENV+= JAR=no -MAKE_ENV+= JAR=no -MAKE_ENV+= ac_cv_prog_JAR=no - -MAKE_ENV+= ICONVPREFIX=${BUILDLINK_PREFIX.iconv} MAKE_ENV+= SHELL=${CONFIG_SHELL} MAKE_ENV+= ac_cv_path_ac_cv_prog_chmod=${TOOLS_CHMOD} @@ -144,8 +106,6 @@ CFLAGS+= -I${BUILDLINK_DIR}/include #MAKE_ENV+= AR=/usr/bin/ar #.endif # NetBSD -LIBS.SunOS+= -lgmp - pre-configure: .if ${OPSYS} == "DragonFly" ${CP} ${FILESDIR}/dragonfly.h ${WRKSRC}/gcc/config/dragonfly.h @@ -175,14 +135,14 @@ do-install: (cd ${WRKDIR}/obj && ${SETENV} ${MAKE_ENV} ${GMAKE} install DESTDIR=${DESTDIR} \ && ${TEST} -f ${DESTDIR}${GCC_PREFIX}/bin/cc || ${LN} -f ${DESTDIR}${GCC_PREFIX}/bin/gcc ${DESTDIR}${GCC_PREFIX}/bin/cc) +.if ${OPSYS} == "SunOS" && ${OS_VERSION} != "5.11" && !empty(MACHINE_ARCH:M*86*) +post-install: + -${SH} files/values.c ${DESTDIR}${GCC_PREFIX}/bin/gcc -m32 + -${SH} files/values.c ${DESTDIR}${GCC_PREFIX}/bin/gcc -m64 +.endif + GENERATE_PLIST+= \ cd ${DESTDIR}${PREFIX} && ${FIND} ${GCC_SUBPREFIX} \( -type f -o -type l \) -print \ | ${SORT} ; -.include "../../devel/gmp/buildlink3.mk" -.include "../../math/mpcomplex/buildlink3.mk" -.include "../../devel/zlib/buildlink3.mk" -.include "../../math/mpfr/buildlink3.mk" -.include "../../devel/binutils/buildlink3.mk" -.include "../../devel/libelf/buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/lang/gcc45/buildlink3.mk b/lang/gcc45/buildlink3.mk index a5127584e3e..80990266f04 100644 --- a/lang/gcc45/buildlink3.mk +++ b/lang/gcc45/buildlink3.mk @@ -1,4 +1,4 @@ -# $NetBSD: buildlink3.mk,v 1.2 2012/02/01 22:22:57 hans Exp $ +# $NetBSD: buildlink3.mk,v 1.3 2012/04/13 11:10:09 hans Exp $ BUILDLINK_TREE+= gcc45 @@ -48,6 +48,14 @@ BUILDLINK_FILES_CMD.gcc45= \ (cd ${BUILDLINK_PREFIX.gcc45} && \ ${FIND} ${_GCC45_SUBDIR}/bin ${_GCC45_SUBDIR}/include ${_GCC45_SUBDIR}/libexec ${_GCC45_SUBDIR}/lib \( -type f -o -type l \) -print) +# When not using the GNU linker, gcc will always link shared libraries +# against the shared version of libgcc. Always enable _USE_GCC_SHILB on +# platforms that don't use the GNU linker, such as SunOS. +.include "../../mk/bsd.prefs.mk" +.if ${OPSYS} == "SunOS" +_USE_GCC_SHLIB= yes +.endif + # Packages that link against shared libraries need a full dependency. .if defined(_USE_GCC_SHLIB) BUILDLINK_DEPMETHOD.gcc45+= full @@ -56,7 +64,11 @@ BUILDLINK_DEPMETHOD.gcc45?= build .endif .include "../../mk/pthread.buildlink3.mk" +pkgbase := gcc45 +.include "../../mk/pkg-build-options.mk" +.if !empty(PKG_BUILD_OPTIONS.gcc46:Mnls) .include "../../devel/gettext-lib/buildlink3.mk" +.endif .endif # GCC45_BUILDLINK3_MK BUILDLINK_TREE+= -gcc45 diff --git a/lang/gcc45/options.mk b/lang/gcc45/options.mk index a530b871096..f2a78ee8adf 100644 --- a/lang/gcc45/options.mk +++ b/lang/gcc45/options.mk @@ -1,21 +1,104 @@ -# $NetBSD: options.mk,v 1.1.1.1 2011/05/14 20:19:47 wiz Exp $ +# $NetBSD: options.mk,v 1.2 2012/04/13 11:10:09 hans Exp $ PKG_OPTIONS_VAR= PKG_OPTIONS.gcc45 -PKG_SUPPORTED_OPTIONS= nls -PKG_SUGGESTED_OPTIONS= +PKG_SUPPORTED_OPTIONS= nls gcc-inplace-math gcc-c++ gcc-fortran gcc-java gcc-objc #gcc-ada +PKG_SUGGESTED_OPTIONS= gcc-c++ gcc-fortran gcc-objc .if ${OPSYS} == "NetBSD" PKG_SUGGESTED_OPTIONS+= nls +.elif ${OPSYS} == "SunOS" +PKG_SUGGESTED_OPTIONS+= gcc-inplace-math .endif +PKG_OPTIONS_LEGACY_VARS+= BUILD_CXX:gcc-c++ +PKG_OPTIONS_LEGACY_VARS+= BUILD_FORTRAN:gcc-fortran +PKG_OPTIONS_LEGACY_VARS+= BUILD_JAVA:gcc-java +PKG_OPTIONS_LEGACY_VARS+= BUILD_OBJC:gcc-objc + .include "../../mk/bsd.options.mk" ### +### Build math libraries in place +### +.if !empty(PKG_OPTIONS:Mgcc-inplace-math) +.include "../../devel/gmp/inplace.mk" +.include "../../math/mpcomplex/inplace.mk" +.include "../../math/mpfr/inplace.mk" +.else +CONFIGURE_ARGS+= --with-gmp=${BUILDLINK_PREFIX.gmp} +CONFIGURE_ARGS+= --with-mpc=${BUILDLINK_PREFIX.mpcomplex} +CONFIGURE_ARGS+= --with-mpfr=${BUILDLINK_PREFIX.mpfr} +LIBS.SunOS+= -lgmp +.include "../../devel/gmp/buildlink3.mk" +.include "../../math/mpcomplex/buildlink3.mk" +.include "../../math/mpfr/buildlink3.mk" +.endif + +### ### Native Language Support ### .if !empty(PKG_OPTIONS:Mnls) +USE_TOOLS+= msgfmt CONFIGURE_ARGS+= --enable-nls +CONFIGURE_ARGS+= --with-libiconv-prefix=${BUILDLINK_PREFIX.libiconv} .include "../../converters/libiconv/buildlink3.mk" .include "../../devel/gettext-lib/buildlink3.mk" +MAKE_ENV+= ICONVPREFIX=${BUILDLINK_PREFIX.iconv} .else CONFIGURE_ARGS+= --disable-nls .endif + +### +### Optional languages +### Ada could be added although there is a bootstrapping issue. See +### ../gcc34-ada for guidance +### + +LANGS= c + +.if !empty(PKG_OPTIONS:Mgcc-java) +. if empty(PKG_OPTIONS:Mgcc-c++) +PKG_OPTIONS+= gcc-c++ +. endif + +LANGS+= java +REPLACE_PYTHON= libjava/contrib/aot-compile.in + +USE_TOOLS+= unzip zip:run +CONFIGURE_ARGS+= --with-system-zlib + +# ${WRKSRC}/gcc-4.6.1/libjava/contrib/aotcompile.py.in stores the path to +# a 'make' program so we need to make sure we give it the installed # 'make' and not +# the tool wrapped one. +CONFIGURE_ENV+= PKGSRC_MAKE=${TOOLS_PATH.gmake} +MAKE_ENV+= PKGSRC_MAKE=${TOOLS_PATH.gmake} + +# fastjar-0.93 from pkgsrc/archivers/fastjar seems to trigger a build +# failure (seen on NetBSD-5.0/i386) when building java. So in case +# the fastjar package is installed, make sure the configure script +# doesn't pick it up. +CONFIGURE_ENV+= JAR=no +MAKE_ENV+= JAR=no +MAKE_ENV+= ac_cv_prog_JAR=no + +.include "../../devel/zlib/buildlink3.mk" +.include "../../lang/python/application.mk" +.endif + +.if !empty(PKG_OPTIONS:Mgcc-c++) +LANGS+= c++ +USE_TOOLS+= perl +CONFIGURE_ARGS+= --enable-__cxa_atexit +CONFIGURE_ARGS+= --with-gxx-include-dir=${GCC_PREFIX}/include/c++/ +.endif + +.if !empty(PKG_OPTIONS:Mgcc-fortran) +LANGS+= fortran +.endif + +.if !empty(PKG_OPTIONS:Mgcc-objc) +LANGS+= objc +.endif + +#.if !empty(PKG_OPTIONS:Mgcc-ada) +#LANGS+= ada +#.endif |