freebsd-ports/lang/gcc42/Makefile
Gerald Pfeifer 1c13cbbe50 Move the snapshot date from PORTREVISION to being a part of PORTVERSION
to allow for PORTREVISION bumps.

Simplify pre-everything and adjust PLIST_SUB accordingly.

Extract SUFFIX from PORTVERSION.  Use SUFFIX for TARGLIB (and thus for
the library path used by this port).  Also use SUFFIX for the libexec
directory instead of the full port version and flatten the directory
structure and simplify the logic along the way.

Move VERSIONSTRING down to pacify portlint after all those years and
extract it from PORTVERSION, too.

Make the determination of CONFIGURE_SCRIPT more robust.

Address a long term FIXME related to older versions of FreeBSD by
removing NOMANCOMPRESS=yes.

Adjust Makefile header; nothing really left from the original.
2009-05-26 14:26:22 +00:00

149 lines
4.1 KiB
Makefile

# ex:ts=8
# Ports collection makefile for: gcc42
# Date created: 2005-12-11
# Whom: Gerald Pfeifer <gerald@FreeBSD.org>
#
# $FreeBSD$
#
PORTNAME= gcc
PORTVERSION= 4.2.5.20090325
CATEGORIES= lang java
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}
MAINTAINER?= gerald@FreeBSD.org
COMMENT= GNU Compiler Collection 4.2
LIB_DEPENDS= gmp.8:${PORTSDIR}/math/libgmp4 \
mpfr.3:${PORTSDIR}/math/mpfr
VERSIONSTRING= ${PORTVERSION:C/([0-9]+\.[0-9]+).*\.([0-9]+)/\1-\2/}
SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
LATEST_LINK= gcc${SUFFIX}${PKGNAMESUFFIX}
NOT_FOR_ARCHS= ia64 powerpc
USE_BISON= build
USE_BZIP2= yes
USE_GMAKE= yes
USE_ICONV= yes
USE_PERL5_BUILD=yes
MAKE_JOBS_SAFE= yes
WANT_GNOME= yes
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:S/${WRKDIR}\///}/configure
.include <bsd.port.pre.mk>
.if ${ARCH} != i386
WITHOUT_JAVA= yes
.endif
.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${SUFFIX}
LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --disable-nls \
--with-system-zlib \
--with-libiconv-prefix=${LOCALBASE} \
--with-gmp=${LOCALBASE} \
--program-suffix=${SUFFIX} \
--libdir=${TARGLIB} \
--libexecdir=${LIBEXEC} \
--with-gxx-include-dir=${TARGLIB}/include/c++/
MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
ALL_TARGET= bootstrap-lean
USE_LDCONFIG= ${TARGLIB}
PLIST_SUB= GCC_VER=${PORTVERSION:C/(.+)\.[0-9]+/\1/} \
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 \
gcc${SUFFIX}/libgomp
.if ! defined(WITHOUT_JAVA)
DISTFILES+= gcc-java-${VERSIONSTRING}${EXTRACT_SUFX}
BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip
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
MAKE_ENV+= JAR=no
MAN1+= gcj${SUFFIX}.1 \
gcj-dbtool${SUFFIX}.1 \
gcjh${SUFFIX}.1 \
gij${SUFFIX}.1 \
gjnih${SUFFIX}.1 \
grmic${SUFFIX}.1 \
grmiregistry${SUFFIX}.1 \
jcf-dump${SUFFIX}.1 \
jv-scan${SUFFIX}.1 \
jv-convert${SUFFIX}.1
INFO+= gcc${SUFFIX}/gcj
PLIST_SUB+= JAVA=""
.if defined(WITH_JAVA_AWT)
LIB_DEPENDS+= cairo.2:${PORTSDIR}/graphics/cairo
USE_GNOME= gtk20 libartlgpl2
CONFIGURE_ARGS+= --enable-java-awt=gtk,xlib \
--enable-gtk-cairo
.endif
.else
CONFIGURE_ARGS+=--disable-libgcj
PLIST_SUB+= JAVA="@comment "
.endif
pre-everything::
@${ECHO_MSG} "Making GCC ${PORTVERSION} for ${OPSYS} ${OSREL} target=${CONFIGURE_TARGET}"
pre-extract:
@# Building libgcj with lang/gcc295 installed is causing a failure
@# about "hidden symbol `__eprintf'" in libgcc.a(_eprintf.o).
@if type gcc295 >/dev/null ; then \
echo "This port will not build in the presence of lang/gcc295."; \
exit 1; \
fi
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-install:
${RM} -f ${PREFIX}/man/man7/fsf-funding.7 \
${PREFIX}/man/man7/gfdl.7 ${PREFIX}/man/man7/gpl.7
${RM} -f ${TARGLIB}/*.la
# Add target libraries and include files to packaging list.
${RM} -f ${WRKDIR}/PLIST.lib
.for d in ${TARGLIB:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///} 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
cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
.include <bsd.port.post.mk>