freebsd-ports/lang/gcc46/Makefile
Gerald Pfeifer 4f5c18a510 Update to the 20060311 snapshot of GCC 4.2.0.
The spamming of $PREFIX/include/ssp is now finally gone after my reports
upstream, which allows us to restrict the conflict with gcc-4.1.* to the
case where we build Java.

Convert the build-time dependency on math/mpfr to a full one, since the
Fortran frontend also needs this at run time.

Always build both shared and static libraries instead of having these as
two exclusive options defaulting to the former.

Remove bogus USE_X11 (which was not used by default nor any other port).

No longer hardcode the version number in LATEST_LINK.
2006-03-15 22:42:16 +00:00

189 lines
5.8 KiB
Makefile

# ex:ts=8
# Ports collection makefile for: egcs
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
# $FreeBSD$
#
PORTNAME= gcc
PORTVERSION= 4.2.0
PORTREVISION= 20060311
CATEGORIES= lang java
VERSIONSTRING= 4.2-${PORTREVISION}
MASTER_SITES= ${MASTER_SITE_GCC}
MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING}
DISTFILES= gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \
gcc-g++-${VERSIONSTRING}${EXTRACT_SUFX} \
gcc-objc-${VERSIONSTRING}${EXTRACT_SUFX} \
gcc-testsuite-${VERSIONSTRING}${EXTRACT_SUFX}
MAINTAINER= gerald@FreeBSD.org
COMMENT= GNU Compiler Collection 4.2
.if defined(WITH_FORTRAN)
LIB_DEPENDS= gmp.6:${PORTSDIR}/math/libgmp4 \
mpfr.1:${PORTSDIR}/math/mpfr
.endif
SUFFIX= 42
LATEST_LINK?= gcc${SUFFIX}${PKGNAMESUFFIX}
NOT_FOR_ARCHS= alpha
USE_BISON= yes
USE_BZIP2= yes
USE_GMAKE= yes
USE_ICONV= yes
USE_PERL5_BUILD=yes
.if defined(WITH_JAVA_AWT)
USE_GNOME= gtk20
.endif
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
.if ${ARCH} == amd64 || ${ARCH} == ia64 || ${ARCH} == sparc64
WITHOUT_JAVA= yes
.endif
# FIXME: As of 20051202, installing libgcj nearly kills 1GB machines.
WITHOUT_JAVA= yes
.if ${ARCH} == "amd64"
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
SRCDIR= ${WRKDIR}/gcc-${VERSIONSTRING}
WRKSRC= ${WRKDIR}/build
TARGLIB= ${PREFIX}/lib/gcc/${CONFIGURE_TARGET}/${PORTVERSION}
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --disable-nls \
--with-system-zlib \
--with-libiconv-prefix=${LOCALBASE} \
--program-suffix=${SUFFIX} \
--libdir=${TARGLIB} \
--with-gxx-include-dir=${TARGLIB}/include/c++/ \
--infodir=${PREFIX}/${INFO_PATH}/gcc${SUFFIX}
CONFIGURE_ENV= RANLIB=:
.if defined(WITH_JAVA_AWT)
CONFIGURE_ARGS+= --enable-java-awt=xlib,gtk #--enable-gtk-cairo=yes
.endif
MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
ALL_TARGET= bootstrap
INSTALLS_SHLIB= yes
LDCONFIG_DIRS= ${TARGLIB}
PLIST_SUB= GCC_VER=${PORTVERSION} GNU_HOST=${CONFIGURE_TARGET} \
SUFFIX=${SUFFIX}
MAN1= cpp${SUFFIX}.1 \
g++${SUFFIX}.1 \
gcc${SUFFIX}.1 \
gcov${SUFFIX}.1
INFO= gcc${SUFFIX}/cpp \
gcc${SUFFIX}/cppinternals \
gcc${SUFFIX}/gcc \
gcc${SUFFIX}/gccinstall \
gcc${SUFFIX}/gccint
.if defined(WITH_FORTRAN)
DISTFILES+= gcc-fortran-${VERSIONSTRING}${EXTRACT_SUFX}
CONFIGURE_ARGS+=--with-gmp=${LOCALBASE}
MAN1+= gfortran${SUFFIX}.1
INFO+= gcc${SUFFIX}/gfortran
PLIST_SUB+= FORTRAN=""
.else
PLIST_SUB+= FORTRAN="@comment "
.endif
.if ! defined(WITHOUT_JAVA)
CONFLICTS= gcc-4.1.*
DISTFILES+= gcc-java-${VERSIONSTRING}${EXTRACT_SUFX}
EXTRA_PATCHES= ${FILESDIR}/java-patch-hier
# FIXME: we are currently getting weird build failures with libjava on
# some 4.x and 5.x systems, which the following works around. PR 81788.
CONFIGURE_ARGS+=--disable-rpath
MAN1+= fastjar${SUFFIX}.1 \
gcj${SUFFIX}.1 \
gcj-dbtool${SUFFIX}.1 \
gcjh${SUFFIX}.1 \
gij${SUFFIX}.1 \
gjnih${SUFFIX}.1 \
grmic${SUFFIX}.1 \
grmiregistry${SUFFIX}.1 \
grepjar${SUFFIX}.1 \
jar${SUFFIX}.1 \
jcf-dump${SUFFIX}.1 \
jv-scan${SUFFIX}.1 jv-convert${SUFFIX}.1 \
rmic${SUFFIX}.1 rmiregistry${SUFFIX}.1
INFO+= gcc${SUFFIX}/gcj gcc${SUFFIX}/fastjar
PLIST_SUB+= JAVA=""
.else
CONFIGURE_ARGS+=--disable-libgcj
PLIST_SUB+= JAVA="@comment "
.endif
pre-everything::
@${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} target=${CONFIGURE_TARGET}"
.if ! defined(WITHOUT_JAVA)
@${ECHO_MSG} "(with Java)"
.endif
post-patch:
@${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \
${SRCDIR}/gcc/version.c
pre-configure:
cd ${SRCDIR} ; contrib/gcc_update --touch
@${RM} -f ${SRCDIR}/gcc/*/*.info*
@${MKDIR} ${CONFIGURE_WRKSRC}
post-build:
@${ECHO_MSG} "Consider running 'make check' before 'make install', especially"
@${ECHO_MSG} "if you have not performed this build on -STABLE or -CURRENT."
@${ECHO_MSG} "This assumes that you have the dejagnu port installed."
check: build
cd ${WRKSRC}; export RUNTESTFLAGS='--target_board ''unix{-pthread}'''; ${GMAKE} -sk check
post-install:
# man pages can only be generated if Perl >= 5.6 is installed;
# fake them otherwise.
for mp in ${_MANPAGES}; do \
${TEST} -e $${mp} || ${TOUCH} ${TOUCH_FLAGS} $${mp}; \
done
.for f in c++ gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry
# gij and jv-convert, for example, are not built on all platforms.
if [ -e ${PREFIX}/man/man1/${f}.1 ]; then \
${MV} -f ${PREFIX}/man/man1/${f}.1 \
${PREFIX}/man/man1/${f}${SUFFIX}.1; \
fi
.endfor
${MV} -f ${PREFIX}/include/mf-runtime.h \
${TARGLIB}/gcc/${CONFIGURE_TARGET}/${PORTVERSION}/include
${RM} -f ${TARGLIB}/*.la
${RM} -f ${PREFIX}/man/man7/fsf-funding.7 \
${PREFIX}/man/man7/gfdl.7 ${PREFIX}/man/man7/gpl.7
# Add target libraries and include files to packaging list.
${RM} -f ${WRKDIR}/PLIST.lib
.for d in ${TARGLIB:S/^${PREFIX}\///} ${TARGLIB:S/^${PREFIX}\///:S/lib/libexec/} include/gcj include/gnu include/java include/javax
cd ${PREFIX} ; if [ -d $d ]; then \
${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\
${FIND} $d -type d | ${SORT} -r \
| ${SED} -e 's/^/@dirrm /g' >>${WRKDIR}/PLIST.lib ;\
fi
.endfor
${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc/${CONFIGURE_TARGET} 2>&1 || true" >> ${WRKDIR}/PLIST.lib
${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc 2>&1 || true" >> ${WRKDIR}/PLIST.lib
${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc/${CONFIGURE_TARGET} 2>&1 || true" >> ${WRKDIR}/PLIST.lib
${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc 2>&1 || true" >> ${WRKDIR}/PLIST.lib
cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
cklatest:
.for SITE in ftp://gcc.gnu.org/pub/gcc/snapshots/
@-ncftpls -l ${SITE} | ${GREP} 'LATEST.*4\.2'
.endfor
.include <bsd.port.post.mk>