summaryrefslogtreecommitdiff
path: root/lang/gcc45
diff options
context:
space:
mode:
authorhans <hans@pkgsrc.org>2012-04-13 11:10:09 +0000
committerhans <hans@pkgsrc.org>2012-04-13 11:10:09 +0000
commit263baa05c212a3eb438f5a3c105597e0c1736296 (patch)
tree6cf4727cde9d9f6ed7c19026b7e022d0ee5a02f1 /lang/gcc45
parent4015337103b458d736530754daa441b4efe69cf9 (diff)
downloadpkgsrc-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/Makefile90
-rw-r--r--lang/gcc45/buildlink3.mk14
-rw-r--r--lang/gcc45/options.mk89
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