pkgsrc/lang/gcc3/Makefile.common
jschauma 3e6ec66a6a Apparently, IRIX can do --enable-shared. However, regardless of what
IRIX system we are on, gcc can NOT be compiled (bootstrapped) as a
64bit binary.  Fortunately, IRIX64 can handle 32bit binaries, so that we
can force use of 32bit when using MIPSPro.

This allows gcc3-c to build fine under IRIX and IRIX64.
2004-05-16 03:16:42 +00:00

137 lines
3.9 KiB
Makefile

# $NetBSD: Makefile.common,v 1.5 2004/05/16 03:16:42 jschauma Exp $
GCC_VERSION= 3.3.3
DISTNAME= gcc-${GCC_VERSION}
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/releases/gcc-${GCC_VERSION}/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= tech-pkg@NetBSD.org
HOMEPAGE= http://www.gnu.org/software/gcc/gcc.html
NOT_FOR_PLATFORM= Darwin-*-*
USE_BUILDLINK3= yes
USE_PKGINSTALL= yes
USE_GNU_TOOLS+= make
MAKEFLAGS+= GMAKE_LOCALE=no
HAS_CONFIGURE= yes
PATCHDIR= ${.CURDIR}/../../lang/gcc3/patches
DISTINFO_FILE= ${.CURDIR}/../../lang/gcc3/distinfo
.include "../../mk/bsd.prefs.mk"
# Make location overridable, to allow ping-pong bootstraps.
GCC3_DEFAULT_SUBPREFIX= gcc3
GCC3_INSTALLTO_SUBPREFIX?= ${GCC3_DEFAULT_SUBPREFIX}
.if ${GCC3_INSTALLTO_SUBPREFIX} != ${GCC3_DEFAULT_SUBPREFIX}
GCC3_PKGMODIF= _${GCC3_INSTALLTO_SUBPREFIX}
.endif
GCC_SUBPREFIX= ${GCC3_INSTALLTO_SUBPREFIX}
GCC_PREFIX= ${PREFIX}/${GCC_SUBPREFIX}
CONFIGURE_ARGS+= --prefix=${GCC_PREFIX}
PLIST_SUBST+= GCC_SUBPREFIX=${GCC_SUBPREFIX}
FILES_SUBST+= GCC_PREFIX=${GCC_PREFIX}
FILES_SUBST+= PKGNAME=${PKGNAME}
MESSAGE_SUBST+= GCC_PREFIX=${GCC_PREFIX}
BUILDLINK_PASSTHRU_RPATHDIRS+= ${GCC_PREFIX}
.if defined(INFO_FILES)
INFO_DIR= ${GCC_SUBPREFIX}/info
.endif
# These come from $WRKSRC/Makefile.in
ALL_GCC= all-gcc
ALL_GCC_C= $$(ALL_GCC) all-target-newlib all-target-libgloss
ALL_GCC_CXX= $$(ALL_GCC_C) all-target-libstdc++-v3
# Support threads and building of crt*.o on post-1.6 -current.
# Use buildlink to avoid a GNU pth package.
.if ${OPSYS} == "NetBSD" && exists(/usr/include/pthread.h)
GCC_PLATFORM= ${MACHINE_GNU_ARCH}--netbsdelf2.0
PTHREAD_OPTS+= require native
. include "../../mk/pthread.buildlink3.mk"
.else
GCC_PLATFORM= ${MACHINE_GNU_PLATFORM}
.endif
CONFIGURE_ARGS+= --host=${GCC_PLATFORM}
PLIST_SUBST+= GCC_PLATFORM=${GCC_PLATFORM}
.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} --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}
. endif
.endif
.if defined(USE_BINUTILS) && !empty(USE_BINUTILS:M[yY][eE][sS])
DEPENDS+= binutils>=2.13.2.1:../../devel/binutils
EVAL_PREFIX+= BINUTILS_PREFIX=binutils
BINUTILS_PREFIX_DEFAULT= ${LOCALBASE}
CONFIGURE_ARGS+= --with-as=${BINUTILS_PREFIX}/${MACHINE_GNU_PLATFORM}/bin/as
.endif
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "Linux" || ${OPSYS} == "SunOS" || \
${OPSYS} == "IRIX"
CONFIGURE_ARGS+= --enable-shared
.else
CONFIGURE_ARGS+= --disable-shared
.endif
.include "../../mk/compiler.mk"
.if ${OPSYS} == "IRIX"
. if !empty(PKGSRC_COMPILER:Mmipspro*)
CONFIGURE_ENV+= SGI_ABI="n32"
MAKE_ENV+= SGI_ABI="n32"
. endif
.endif
GCC_ARCHSUBDIR= ${GCC_SUBPREFIX}/lib/gcc-lib/${GCC_PLATFORM}/${GCC_VERSION}
GCC_ARCHDIR= ${PREFIX}/${GCC_ARCHSUBDIR}
.if defined(INSTLIBS)
BUILDLINK_LIBTOOL= ${BUILDLINK_DIR}/bin/libtool
.PHONY: scrub-libtool-archives
post-build: scrub-libtool-archives
scrub-libtool-archives:
. for lafile in ${INSTLIBS}
${BUILDLINK_LIBTOOL} --fix-la ${WRKSRC}/${GCC_PLATFORM}/${lafile}
. endfor
.endif
# Create the directories for the build, patch the ltconfig script to
# always use "sunos" shared library numbering (for consistent PLISTs
# across platforms), and touch all the necessary files so that they're
# not regenerated after the configure script is run.
#
pre-configure:
${MKDIR} ${BUILD_DIRS}
cd ${WRKSRC}; for file in ltconfig boehm-gc/ltconfig; do \
${MV} -f $$file $$file.bak; \
${SED} -e "s|\(version_type\)=linux|\1=sunos|g" \
$$file.bak > $$file; \
${CHMOD} +x $$file; \
done
cd ${WRKSRC} && contrib/gcc_update --touch