[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / lang / gcc-aux

Annotation of pkgsrc/lang/gcc-aux/Makefile, Revision 1.18

1.18    ! marino      1: # $NetBSD: Makefile,v 1.17 2014/05/02 15:54:16 marino Exp $
1.1       marino      2: #
                      3:
                      4: PKGNAME=       gcc-aux-${SNAPSHOT}
                      5: DISTNAME=      gcc-${GCC_VERSION}
1.18    ! marino      6: PKGREVISION=   1
1.1       marino      7: CATEGORIES=    lang
                      8: MASTER_SITES=  ${MASTER_SITE_GNU:=gcc/gcc-${GCC_VERSION}/}
                      9: DISTFILES=     ${DISTNAME}.tar.bz2
                     10:
                     11: MAINTAINER=    draco@marino.st
                     12: HOMEPAGE=      http://www.dragonlace.net/
                     13: COMMENT=       GNAT Ada compiler based on GCC ${GCC_BRANCH}
                     14: LICENSE=       gnu-gpl-v3 AND gnu-lgpl-v3
                     15:
1.16      marino     16: .include "Makefile.version"
                     17: .include "Makefile.testsuite"
1.1       marino     18: .include "../../mk/bsd.prefs.mk"
                     19: .include "options.mk"
                     20:
1.16      marino     21: LANGS=         c ada c++
                     22: USE_TOOLS+=    gmake sed:run perl makeinfo bzip2 patch pod2man tar
                     23: APPLY_DIFFS=   core ada cxx
                     24:
                     25: # Requires bootstrap compiler, which is only available for on selected systems
                     26: # Disable SunOS for now until multilib version can be built and tested.
1.1       marino     27:
                     28: ONLY_FOR_PLATFORM=     DragonFly-*-*        \
1.16      marino     29:                        FreeBSD-*-i386       \
                     30:                        FreeBSD-*-x86_64     \
1.1       marino     31:                        NetBSD-[5-9]*-i386   \
1.18    ! marino     32:                        NetBSD-[5-9]*-x86_64 \
        !            33:                        SunOS-5.1[1-9]*-i386 \
        !            34:                        SunOS-5.1[1-9]*-x86_64
        !            35: #                      OpenBSD-*-amd64
        !            36: #                      OpenBSD-*-i386
        !            37: #                      MirBSD-*-amd64
        !            38: #                      MirBSD-*-i386
1.1       marino     39:
1.16      marino     40: GARCH=                 ${MACHINE_ARCH:S/amd64/x86_64/}
1.17      marino     41: BLD_TARGET=            ${GARCH}-aux-${LOWER_OPSYS}${OS_VERSION}
1.16      marino     42: OS_LABEL4VERS=         [${OPSYS}${GARCH:M*64:S/amd_//:S/x86_//}]
1.1       marino     43: FULL_GNATGCC=          NOT SET
1.2       marino     44: FULL_PATH=             /sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/gcc-aux/bin:${PREFIX}/sbin:${PREFIX}/bin
1.16      marino     45:
                     46: .if ${OPSYS} == DragonFly
                     47: BOOTSTRAP_COMPILER=    ada-bootstrap.${GARCH}.dragonfly.36A.tar.bz2
1.1       marino     48: .endif
1.16      marino     49:
                     50: .if ${OPSYS} == FreeBSD
                     51: MODERN_BINUTILS=       yes
                     52: .  if !empty(OS_VERSION:M[678].*)
                     53: BOOTSTRAP_COMPILER=    ada-bootstrap.${GARCH}.freebsd.84.tar.bz2
                     54: .  else
                     55: BOOTSTRAP_COMPILER=    ada-bootstrap.${GARCH}.freebsd.100B.tar.bz2
                     56: .  endif
1.1       marino     57: .endif
                     58:
1.18    ! marino     59: .if ${OPSYS} == NetBSD
1.12      marino     60: .if !empty(OS_VERSION:M6.99.*)
1.1       marino     61:    NSUFF=      7.0_DEV
                     62: .else
                     63:    NSUFF=      ${OS_VERSION}
                     64: .endif
1.16      marino     65: .if ${GARCH} == i386
                     66:    NELF=       elf
1.1       marino     67: .endif
1.18    ! marino     68: XLDF=                  -lm
1.16      marino     69: BOOTSTRAP_COMPILER=    ada-bootstrap.${GARCH}.netbsd.614.tar.bz2
                     70: BLD_TARGET=            ${MACHINE_ARCH}-aux-netbsd${NELF}${NSUFF}
1.1       marino     71: .endif
                     72:
1.18    ! marino     73: .if ${OPSYS} == SunOS
        !            74: SOL_OSV!=              expr substr ${OS_VERSION} 3 2
1.1       marino     75: BLD_TARGET=            ${MACHINE_ARCH}-aux-${LOWER_OPSYS}2.${SOL_OSV}
1.18    ! marino     76: BOOTSTRAP_COMPILER=    ada-bootstrap.x86_64.solaris.511.tar.bz2
        !            77: .  if ${ABI} == 64
        !            78: EXTRA_CONFARGS+=       --enable-multilib
        !            79: .  else
        !            80: COMPILER_ABI_SWITCH=   -m32
        !            81: .  endif
        !            82: MY_CONFIGURE_ENV+=     OBJDUMP=${PREFIX}/bin/gobjdump
        !            83: MODERN_BINUTILS=x      yes
        !            84: NATIVE_LINKER!=                which ld
        !            85: .endif
        !            86:
        !            87: .if ${OPSYS} == OpenBSD || ${OPSYS} == MirBSD
1.16      marino     88: MODERN_BINUTILS=       yes
                     89: .endif
                     90:
                     91: .if defined(MODERN_BINUTILS)
                     92: BUILDLINK_DEPMETHOD.binutils=  full
                     93: .include "../../devel/binutils/buildlink3.mk"
                     94: EXTRA_CONFARGS+=       --with-gnu-as --with-as=${PREFIX}/bin/gas
                     95: MY_CONFIGURE_ENV+=     AR=${PREFIX}/bin/gar
                     96: MY_CONFIGURE_ENV+=     AS=${PREFIX}/bin/gas
                     97: MY_CONFIGURE_ENV+=     NM=${PREFIX}/bin/gnm
                     98: MY_CONFIGURE_ENV+=     RANLIB=${PREFIX}/bin/granlib
1.18    ! marino     99: .  if defined(NATIVE_LINKER)
        !           100: EXTRA_CONFARGS+=       --without-gnu-ld --with-ld=${NATIVE_LINKER}
        !           101: .  else
        !           102: EXTRA_CONFARGS+=       --with-gnu-ld --with-ld=${PREFIX}/bin/gld
        !           103: MY_CONFIGURE_ENV+=     LD=${PREFIX}/bin/gld
        !           104: .  endif
1.16      marino    105: .else
                    106: EXTRA_CONFARGS+=       --with-gnu-ld --with-ld=/usr/bin/ld
                    107: EXTRA_CONFARGS+=       --with-gnu-as --with-as=/usr/bin/as
1.1       marino    108: .endif
                    109:
                    110:
                    111: # define some important directories and files
1.16      marino    112: WRKSRC=                        ${WRKDIR}/gcc-${GCC_VERSION}
1.1       marino    113: BUILDDIR=              ${WRKDIR}/build
1.16      marino    114: NEWBSDIR=              ${WRKDIR}/newbs/bootstrap
1.1       marino    115: CFG_SCRIPT=            ${WRKSRC}/configure
1.16      marino    116: REVFILE=               ${WRKSRC}/gcc/REVISION
1.1       marino    117: BOOTSTRAP_PREFIX=      ${WRKDIR}/bootstrap
1.16      marino    118: PKG_PREFIX=            ${PREFIX}/gcc-aux
                    119: BSFILENAME=            ada-bootstrap.${GARCH}.${LOWER_OPSYS}.${OS_VERSION:C/[A-Z_.-]//g}.tar
1.1       marino    120:
                    121:
1.3       marino    122: # testing if gcc-aux is already installed - if so, use this compiler along with
                    123: # its gnatlink, gnatbind, and gnatmake rather than the older bootstrap versions
                    124: .if exists(${LOCALBASE}/gcc-aux/bin/ada)
                    125: FULL_GNATGCC=${LOCALBASE}/gcc-aux/bin/ada
1.18    ! marino    126: FULL_GNATGXX=${LOCALBASE}/gcc-aux/bin/g++
1.3       marino    127: .endif
1.1       marino    128:
                    129:
                    130: .if ${FULL_GNATGCC} == "NOT SET"
                    131: # here we know we need to install the bootstrap compiler
1.16      marino    132: .  if defined(BOOTSTRAP_TRIPLET)
1.1       marino    133: FULL_GNATGCC=${BOOTSTRAP_PREFIX}/bin/gnatgcc
1.16      marino    134: .  else
1.18    ! marino    135: FULL_GNATGCC=${BOOTSTRAP_PREFIX}/bin/gcc ${COMPILER_ABI_SWITCH}
        !           136: FULL_GNATGXX=${BOOTSTRAP_PREFIX}/bin/g++ ${COMPILER_ABI_SWITCH}
1.16      marino    137: .  endif
1.1       marino    138: DISTFILES+= ${BOOTSTRAP_COMPILER}
1.12      marino    139: SITES.${BOOTSTRAP_COMPILER}=   http://downloads.dragonlace.net/src/
1.1       marino    140: FULL_PATH=${BOOTSTRAP_PREFIX}/bin:/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/sbin:${PREFIX}/bin
                    141: .endif
                    142:
                    143:
1.16      marino    144: # for port maintenance, invoke "make mdi PLUS_BOOTSTRAPS=1"
                    145: .if defined(PLUS_BOOTSTRAPS)
                    146: MASTER_SITES= http://downloads.dragonlace.net/src/ \
                    147:    ${MASTER_SITE_GNU:=gcc/gcc-${GCC_VERSION}/}
                    148: DISTFILES= \
                    149:    ${DISTNAME}.tar.bz2 \
                    150:    ada-bootstrap.i386.dragonfly.36A.tar.bz2 \
                    151:    ada-bootstrap.i386.freebsd.84.tar.bz2 \
                    152:    ada-bootstrap.i386.freebsd.100B.tar.bz2 \
                    153:    ada-bootstrap.i386.netbsd.614.tar.bz2 \
                    154:    ada-bootstrap.x86_64.dragonfly.36A.tar.bz2 \
                    155:    ada-bootstrap.x86_64.freebsd.84.tar.bz2 \
                    156:    ada-bootstrap.x86_64.freebsd.100B.tar.bz2 \
1.18    ! marino    157:    ada-bootstrap.x86_64.netbsd.614.tar.bz2 \
        !           158:    ada-bootstrap.x86_64.openbsd.55.tar.bz2 \
        !           159:    ada-bootstrap.x86_64.solaris.511.tar.bz2
1.16      marino    160: .endif
1.1       marino    161:
                    162: # establish ada-aware compiler for use
1.18    ! marino    163: MY_CONFIGURE_ENV+=     CC=${FULL_GNATGCC:Q}
        !           164: MY_CONFIGURE_ENV+=     CXX=${FULL_GNATGXX:Q}
1.1       marino    165: MY_CONFIGURE_ENV+=     PATH=${FULL_PATH}
1.18    ! marino    166: MY_CONFIGURE_ENV+=     LDFLAGS="${XLDF} ${COMPILER_RPATH_FLAG}${PREFIX}/lib"
1.16      marino    167: MY_MAKE_ENV+=          PATH=${FULL_PATH}
1.12      marino    168: MY_MAKE_ENV+=          LD_LIBRARY_PATH=${BUILDDIR}/gcc${EXTRA_LLP}
1.1       marino    169: # ${WRKSRC}/fixincludes/ looks for sed and compiles the path to sed into
                    170: # a binary so we need to make sure we give it the installed sed and not
                    171: # the tool wrapped one.
                    172: MY_MAKE_ENV+=          ac_cv_path_SED=${TOOLS_SED}
                    173: MY_MAKE_ENV+=          lt_cv_path_SED=${TOOLS_SED}
                    174:
                    175:
                    176: # The standard configuration options
                    177: CONFIGURE_ARGS=        --enable-languages=${LANGS:Q}
                    178: CONFIGURE_ARGS+=       --build=${BLD_TARGET}
                    179: CONFIGURE_ARGS+=       --prefix=${PKG_PREFIX:Q}
1.16      marino    180: CONFIGURE_ARGS+=       --enable-threads=posix
1.1       marino    181: CONFIGURE_ARGS+=       --disable-libmudflap
                    182: CONFIGURE_ARGS+=       --disable-libgomp
                    183: CONFIGURE_ARGS+=       --disable-libssp
                    184: CONFIGURE_ARGS+=       ${EXTRA_CONFARGS}
                    185:
                    186: # Automatic package list generation
                    187: GENERATE_PLIST=  cd ${DESTDIR}${PREFIX};
                    188: GENERATE_PLIST+= ${FIND} * \( -type f -or -type l \) | ${SORT} -dr;
                    189:
                    190:
                    191: post-extract:
                    192:        # Personalize GNAT for each different machine
                    193:        @${ECHO} "-=> GCC AUX ${OS_LABEL4VERS}" > ${REVFILE}
                    194:        # Create new directories in preparation of applying diff files
                    195:        ${MKDIR} ${WRKSRC}/libstdc++-v3/config/locale/dragonfly
                    196:        ${MKDIR} ${WRKSRC}/libstdc++-v3/config/os/bsd/dragonfly
                    197:        # Apply required composite diff files
                    198: .for suffix in ${APPLY_DIFFS}
                    199:        @${ECHO} "Applying composite patch diff-${suffix}"
1.16      marino    200:        ${PATCH} -d ${WRKSRC} -s -E < ${FILESDIR}/diff-${suffix}
1.1       marino    201: .endfor
1.16      marino    202:        (cd ${WRKSRC}/libstdc++-v3/testsuite && ${PERL5} -i \
                    203:          -pe 's|\*-\*-freebsd\*|*-*-dragonfly* *-*-freebsd*|' ${CXXTS4DF})
                    204:        (cd ${WRKSRC}/libstdc++-v3/testsuite/22_locale && ${PERL5} -i \
                    205:          -pe 's|ISO-8859|ISO8859|g;' \
                    206:          -pe 's|ja_JP.eucjp|ja_JP.eucJP|g;' \
                    207:          -pe 's|en_HK|zh_HK|g;' \
                    208:          -pe 's|en_PH|en_NZ|g;' \
                    209:          -pe 's|se_NO|no_NO|g;' \
                    210:          -pe 's|es_MX|es_ES|g;' \
                    211:          -pe 's|ru_RU.UTF8|ru_RU.UTF-8|g' ${LOCALE22FIX})
                    212: .if !empty(PKG_OPTIONS:Mstatic) || !empty(PKG_OPTIONS:Mbootstrap)
1.18    ! marino    213: .  if ${OPSYS} != SunOS
1.16      marino    214:        # Ensure GNAT tools are built statically
                    215:        ${PERL5} -pi -e 's/^GCC_LINK_FLAGS=.*/GCC_LINK_FLAGS=-static/' \
                    216:          ${WRKSRC}/gcc/ada/gcc-interface/Makefile.in
1.18    ! marino    217: .  endif
1.16      marino    218: .endif
1.18    ! marino    219: .if !exists(${LOCALBASE}/gcc-aux/bin/ada) && ${OPSYS} == SunOS
        !           220:        # In case /usr/pkg/bin/gas doesn't exist, establish fallback
        !           221:        ${LN} -s ${PREFIX}/bin/gas ${BOOTSTRAP_PREFIX}/bin/as
        !           222: .endif
        !           223:        # Illumos /usr/ccs binaries are symlinked to /usr/bin
        !           224:        # elfdump was present on OmniOS but not in Joyent dev area
        !           225:        ${PERL5} -i -pe 's|/usr/ccs/bin|/usr/bin|g;' \
        !           226:          -pe 's|readelf -s|greadelf -s|' ${WRKSRC}/contrib/make_sunver.pl
1.3       marino    227:        # Update LINK_SPEC to add gcc-aux lib runpath in every binary
                    228:        @${ECHO} "Configuring LINK_SPEC runpath"
1.16      marino    229:        ${PERL5} -pi -e 's;\@PREFIX\@;${PREFIX};' \
1.3       marino    230:          ${WRKSRC}/gcc/config/dragonfly.h \
                    231:          ${WRKSRC}/gcc/config/i386/freebsd.h \
                    232:          ${WRKSRC}/gcc/config/i386/netbsd-elf.h
                    233:
1.16      marino    234: .if defined(BOOTSTRAP_TRIPLET)
1.1       marino    235:        # Bootstrap compiler has statically linked z, gmp, mpc, mpfr and iconv
                    236:        # The only shared lib is libc.so.7, so it should work for a long time.
1.16      marino    237:        # No longer used, only here to support future SunOS bootstrap generation
1.1       marino    238:
                    239:        ${MKDIR} ${BOOTSTRAP_PREFIX}
1.16      marino    240:        ${MV} ${BOOTSTRAP_PREFIX}/../bin ${BOOTSTRAP_PREFIX}
                    241:        ${MV} ${BOOTSTRAP_PREFIX}/../lib ${BOOTSTRAP_PREFIX}
                    242:        ${MV} ${BOOTSTRAP_PREFIX}/../libexec ${BOOTSTRAP_PREFIX}
1.1       marino    243:        ${RM} -rf ${BOOTSTRAP_PREFIX}/lib/gcc/${BOOTSTRAP_TRIPLET}/include-fixed
                    244: .endif
                    245:
                    246:
                    247: do-configure:
                    248:        ${MKDIR} ${BUILDDIR}
                    249:        cd ${BUILDDIR} && ${SETENV} ${MY_CONFIGURE_ENV} \
1.16      marino    250:                ${CFG_SCRIPT} ${CONFIGURE_ARGS}
1.1       marino    251:
                    252:
                    253: do-build:
                    254:        # The unlimited stacksize is for NetBSD64
                    255:        cd ${BUILDDIR} && \
1.16      marino    256:                ${ULIMIT_CMD_stacksize} && \
                    257:                ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -j${MAKE_JOBS:U1:Q} all
1.1       marino    258:
                    259:
1.16      marino    260: .if !empty(PKG_OPTIONS:Mtestsuite) && empty(PKG_OPTIONS:Mbootstrap)
1.1       marino    261: do-test: build test-ada test-fortran test-objc test-cxx test-c
                    262:
                    263: test-ada:
1.18    ! marino    264: .if (${OPSYS} == NetBSD) && (${MACHINE_ARCH} == x86_64)
1.1       marino    265:        # NetBSD has an extremely small default stacksize of 2MB, which is
                    266:        # insufficient for the gnat.dg testsuite.
                    267:        # specifically: entry_queues test on AMD64
                    268:        # Unlimiting stack resources on i386-netbsdelf* will result in
                    269:        # failure of gnat.dg/task_stack_align.adb execution test.
                    270:        cd ${BUILDDIR} && \
                    271:        ${ULIMIT_CMD_stacksize} && \
                    272:        ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-ada
                    273: .else
                    274:        cd ${BUILDDIR} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-ada
                    275: .endif
                    276:
                    277: test-fortran:
1.16      marino    278: .if !empty(PKG_OPTIONS:Mfortran)
1.1       marino    279:        cd ${BUILDDIR} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-fortran
                    280: .endif
                    281:
                    282: test-objc:
1.16      marino    283: .if !empty(PKG_OPTIONS:Mobjc)
1.1       marino    284:        cd ${BUILDDIR} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-objc
                    285: .endif
                    286:
                    287: test-cxx:
                    288:        # libstdc++ always ends with error status, so ignore it
                    289:        cd ${BUILDDIR} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk \
                    290:        check-c++ || ${TRUE}
                    291:
                    292: test-c:
                    293:        cd ${BUILDDIR} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-c
                    294: .endif
                    295:
                    296: do-install:
1.12      marino    297:        cd ${BUILDDIR} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} install-strip \
1.16      marino    298:                DESTDIR=${DESTDIR}
                    299:        ${MV} ${DESTDIR}${PKG_PREFIX}/share ${WRKDIR}/moved_share
1.18    ! marino    300:
1.16      marino    301: .if !empty(PKG_OPTIONS:Mbootstrap)
1.18    ! marino    302: create-bootstrap: stage-install
1.16      marino    303:        ${MKDIR} ${NEWBSDIR}
1.18    ! marino    304:        ${CP} -RpP ${DESTDIR}${PKG_PREFIX}/bin ${NEWBSDIR}/
        !           305:        ${CP} -RpP ${DESTDIR}${PKG_PREFIX}/lib ${NEWBSDIR}/
        !           306:        ${CP} -RpP ${DESTDIR}${PKG_PREFIX}/include ${NEWBSDIR}/
        !           307:        ${CP} -RpP ${DESTDIR}${PKG_PREFIX}/libexec ${NEWBSDIR}/
1.16      marino    308:        ${RM} ${NEWBSDIR}/bin/${GARCH}*
                    309:        ${RM} -rf ${NEWBSDIR}/lib/gcc/${BLD_TARGET}/${GCC_VERSION}/include-fixed
                    310:        (cd ${NEWBSDIR}/.. ; \
                    311:                ${TAR} -cf ${BSFILENAME} bootstrap; ${BZIP2} ${BSFILENAME})
                    312: .endif
1.1       marino    313:
                    314: .include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>