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

Annotation of pkgsrc/lang/rust/Makefile, Revision 1.83

1.83    ! he          1: # $NetBSD: Makefile,v 1.82 2019/02/14 16:24:23 he Exp $
1.1       jperkin     2:
1.83    ! he          3: DISTNAME=      rustc-1.33.0-src
1.1       jperkin     4: PKGNAME=       ${DISTNAME:S/rustc/rust/:S/-src//}
                      5: CATEGORIES=    lang
                      6: MASTER_SITES=  http://static.rust-lang.org/dist/
                      7:
                      8: MAINTAINER=    pkgsrc-users@NetBSD.org
1.9       wiz         9: HOMEPAGE=      https://www.rust-lang.org/
1.1       jperkin    10: COMMENT=       Safe, concurrent, practical language
                     11: LICENSE=       mit OR apache-2.0
                     12:
                     13: USE_GCC_RUNTIME=       yes
1.10      ryoon      14: USE_LANGUAGES=         c c++11
1.18      jperkin    15: USE_LIBTOOL=           yes
1.59      jperkin    16: USE_TOOLS+=            bash ggrep gmake perl:build pkg-config
1.22      ryoon      17: # For internal llvm
                     18: BUILD_DEPENDS+=                cmake-[0-9]*:../../devel/cmake
1.6       jperkin    19:
1.74      ryoon      20: CHECK_PORTABILITY_SKIP+=vendor/openssl-src/openssl/.travis-create-release.sh
                     21:
1.18      jperkin    22: HAS_CONFIGURE=         yes
1.72      tnn        23: PYTHON_FOR_BUILD_ONLY= yes
1.66      adam       24: CONFIG_SHELL=          ${PYTHONBIN}
                     25: CONFIGURE_SCRIPT=      src/bootstrap/configure.py
1.18      jperkin    26: CONFIGURE_ARGS+=       --prefix=${PREFIX}
                     27: CONFIGURE_ARGS+=       --mandir=${PREFIX}/${PKGMANDIR}
                     28: CONFIGURE_ARGS+=       --sysconfdir=${PKG_SYSCONFDIR}
                     29: CONFIGURE_ARGS+=       --python=${PYTHONBIN}
                     30: CONFIGURE_ARGS+=       --release-channel=stable
1.20      ryoon      31: #CONFIGURE_ARGS+=      --enable-local-rust
1.18      jperkin    32: CONFIGURE_ARGS+=       --local-rust-root=${RUST_BOOTSTRAP_PATH}
                     33: CONFIGURE_ARGS+=       --enable-extended       # Build and install cargo too.
                     34: CONFIGURE_ARGS+=       --enable-rpath
                     35: CONFIGURE_ARGS+=       --disable-codegen-tests
                     36: CONFIGURE_ARGS+=       --disable-dist-src
                     37: CONFIGURE_ARGS+=       --disable-llvm-static-stdcpp
                     38: CONFIGURE_ARGS+=       --disable-ninja
1.66      adam       39: # XXX: to be enabled in the future
                     40: #CONFIGURE_ARGS+=      --jemalloc-root=${BUILDLINK_PREFIX.jemalloc}/lib
                     41: #CONFIGURE_ARGS+=      --enable-llvm-link-shared
                     42: #CONFIGURE_ARGS+=      --llvm-root=${BUILDLINK_PREFIX.llvm}
1.18      jperkin    43:
1.70      he         44: # Use "dist" build target for cross compile of bootstrap
                     45: #BUILD_TARGET=         dist
                     46: BUILD_TARGET=          build
                     47:
1.55      he         48: # The gcc-wrap / c++-wrap script takes CROSS_ROOT environment variable
                     49: # to do a cross-build.  The wrapper script assumes dest/ and tools/
                     50: # as a result of a cross-build as subdirectories of this root
1.58      he         51: #CROSS_ROOT=           /u/evbarm-armv7hf
1.62      he         52: #CROSS_ROOT=           /u/sparc64
                     53: #CROSS_ROOT=           /u/macppc
1.78      he         54: #CROSS_ROOT=           /u/evbarm64
1.55      he         55: #MAKE_ENV+=            CROSS_ROOT=${CROSS_ROOT}
                     56:
                     57: # The GNU cross target designation
1.58      he         58: #GNU_CROSS_TARGET=     armv7--netbsdelf-eabihf
1.62      he         59: #GNU_CROSS_TARGET=     sparc64--netbsd
                     60: #GNU_CROSS_TARGET=     powerpc--netbsd
1.78      he         61: #GNU_CROSS_TARGET=     aarch64--netbsd
1.70      he         62: #MAKE_ENV+=            GNU_CROSS_TARGET=${GNU_CROSS_TARGET}
1.55      he         63:
                     64: # To cross-build rust, you need to specify
                     65: # the ultimate target to built for, as well as the
                     66: # host the compiler is supposed to run on.
                     67: # Rust's target designation
1.70      he         68: #TARGET=               armv7-unknown-netbsd-eabihf
                     69: #TARGET=               sparc64-unknown-netbsd
                     70: #TARGET=               powerpc-unknown-netbsd
1.78      he         71: #TARGET=               aarch64-unknown-netbsd
1.61      he         72: #SCRIPTS=              ${WRKDIR}/scripts
1.55      he         73: #CONFIGURE_ARGS+=      --host=${TARGET}
                     74: #CONFIGURE_ARGS+=      --target=${TARGET}
1.78      he         75: # for gcc as target compiler:
1.61      he         76: #CONFIGURE_ARGS+=      --set=target.${TARGET}.cc=${SCRIPTS}/gcc-wrap
                     77: #CONFIGURE_ARGS+=      --set=target.${TARGET}.cxx=${SCRIPTS}/c++-wrap
                     78: #CONFIGURE_ARGS+=      --set=target.${TARGET}.linker=${SCRIPTS}/gcc-wrap
1.78      he         79: # for clang as target compiler:
                     80: #CONFIGURE_ARGS+=      --set=target.${TARGET}.cc=${SCRIPTS}/clang-wrap
                     81: #CONFIGURE_ARGS+=      --set=target.${TARGET}.cxx=${SCRIPTS}/clang++-wrap
                     82: #CONFIGURE_ARGS+=      --set=target.${TARGET}.linker=${SCRIPTS}/clang-wrap
                     83: # common:
1.56      he         84: #CONFIGURE_ARGS+=      --set=target.${TARGET}.ar=${CROSS_ROOT}/tools/bin/${GNU_CROSS_TARGET}-ar
1.55      he         85:
                     86: # May be required when cross-building on NetBSD
                     87: #MAKE_ENV+=            OPENSSL_DIR=/usr
                     88:
1.66      adam       89: # Getting RPATH with $ORIGIN into bootstrap may be troublesome, so
1.55      he         90: # uncommenting the LD_LIBRARY_PATH setting may be required to run
                     91: # the bootstrap
1.77      tnn        92: PKGSRC_MAKE_ENV+=      LD_LIBRARY_PATH=${RUST_BOOTSTRAP_PATH:Q}/lib
1.55      he         93:
                     94: .if !empty(MACHINE_PLATFORM:MNetBSD-*-powerpc)
                     95: # Bootstrapping on NetBSD/powerpc requires no debug-info from rustc
                     96: # (both for amd64->powerpc built and powerpc->powerpc built bootstrap bits)
                     97: CONFIGURE_ARGS+=       --disable-debug
                     98: CONFIGURE_ARGS+=       --disable-debuginfo-tests
                     99: CONFIGURE_ARGS+=       --disable-debug-assertions
                    100: CONFIGURE_ARGS+=       --disable-debuginfo
                    101: CONFIGURE_ARGS+=       --disable-debuginfo-lines
                    102: CONFIGURE_ARGS+=       --disable-debuginfo-only-std
                    103: CONFIGURE_ARGS+=       --disable-debuginfo-tools
                    104: .endif
                    105:
1.18      jperkin   106: # This should allow us to perform "offline" builds (so cargo doesn't fetch
                    107: # dependencies during the build stage) but this isn't hooked up yet.
                    108: CONFIGURE_ARGS+=       --enable-vendor
                    109:
1.41      jperkin   110: # cargo defaults to using the number of available CPUs
                    111: MAKE_ENV+=             CARGO_BUILD_JOBS=${MAKE_JOBS:U1}
                    112:
1.64      jperkin   113: CFLAGS.SunOS+=         -D_POSIX_PTHREAD_SEMANTICS
                    114:
1.1       jperkin   115: UNLIMIT_RESOURCES+=    cputime
                    116:
                    117: TEST_TARGET=   check
                    118:
1.12      wiz       119: # bin/* lib/*, but names vary
                    120: CHECK_RELRO_SUPPORTED= no
1.18      jperkin   121: CHECK_SSP_SUPPORTED=   no
1.12      wiz       122:
1.51      jperkin   123: CHECK_PORTABILITY_SKIP+=       src/vendor/openssl-src/openssl/.travis-create-release.sh
                    124:
1.1       jperkin   125: # Required for LLVM (-std=c++11)
                    126: GCC_REQD+=     4.8
                    127:
                    128: .include "../../mk/bsd.prefs.mk"
                    129:
                    130: #
1.3       ryoon     131: # Under NetBSD, do not use DT_RUNPATH
                    132: #
1.4       ryoon     133: BUILDLINK_TRANSFORM.NetBSD+=   rm:-Wl,--enable-new-dtags
1.3       ryoon     134:
1.53      ryoon     135: .PHONY: pre-build-fix
1.3       ryoon     136: #
1.1       jperkin   137: # Rust unfortunately requires itself to build.  On platforms which aren't
1.6       jperkin   138: # supported by upstream (where they offer binary bootstraps), or where we do
                    139: # not trust random binaries from the Internet, we need to build and provide our
                    140: # own bootstrap.  See the stage0-bootstrap below for more details.
1.1       jperkin   141: #
1.6       jperkin   142: DISTFILES:=            ${DEFAULT_DISTFILES}
1.83    ! he        143: RUST_STAGE0_VER=       1.32.0
1.1       jperkin   144: #
1.6       jperkin   145: .if !empty(MACHINE_PLATFORM:MDarwin-*-i386) || make(distinfo) || make (makesum) || make(mdi)
1.83    ! he        146: RUST_STAGE0_VER=       1.32.0
1.6       jperkin   147: RUST_ARCH:=            i686-apple-darwin
                    148: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10      ryoon     149: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    150: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53      ryoon     151: pre-build-fix:
1.6       jperkin   152: .endif
                    153: .if !empty(MACHINE_PLATFORM:MDarwin-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
1.83    ! he        154: RUST_STAGE0_VER=       1.32.0
1.6       jperkin   155: RUST_ARCH:=            x86_64-apple-darwin
                    156: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10      ryoon     157: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    158: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53      ryoon     159: pre-build-fix:
1.6       jperkin   160: .endif
                    161: .if !empty(MACHINE_PLATFORM:MLinux-*-i386) || make(distinfo) || make (makesum) || make(mdi)
1.83    ! he        162: RUST_STAGE0_VER=       1.32.0
1.6       jperkin   163: RUST_ARCH:=            i686-unknown-linux-gnu
                    164: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10      ryoon     165: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    166: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53      ryoon     167: pre-build-fix:
1.6       jperkin   168: .endif
                    169: .if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
1.83    ! he        170: RUST_STAGE0_VER=       1.32.0
1.6       jperkin   171: RUST_ARCH:=            x86_64-unknown-linux-gnu
                    172: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10      ryoon     173: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    174: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53      ryoon     175: pre-build-fix:
1.6       jperkin   176: .endif
1.69      jperkin   177: .if !empty(MACHINE_PLATFORM:MSunOS-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
1.83    ! he        178: RUST_STAGE0_VER=       1.32.0
1.69      jperkin   179: RUST_ARCH:=            x86_64-sun-solaris
                    180: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    181: SITES.${RUST_STAGE0}=  https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/
                    182: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0}
                    183: RUST_BOOTSTRAP_PATH?=  ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}
                    184: pre-build-fix:
                    185: .endif
1.30      triaxx    186: .if !empty(MACHINE_PLATFORM:MFreeBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
1.83    ! he        187: RUST_STAGE0_VER=       1.32.0
1.30      triaxx    188: RUST_ARCH:=            i686-unknown-freebsd
                    189: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    190: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    191: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53      ryoon     192: pre-build-fix:
1.30      triaxx    193: .endif
                    194: .if !empty(MACHINE_PLATFORM:MFreeBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
1.83    ! he        195: RUST_STAGE0_VER=       1.32.0
1.30      triaxx    196: RUST_ARCH:=            x86_64-unknown-freebsd
                    197: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    198: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    199: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53      ryoon     200: pre-build-fix:
1.30      triaxx    201: .endif
1.15      ryoon     202: .if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
1.80      he        203: RUST_STAGE0_VER=       1.32.0
1.15      ryoon     204: RUST_ARCH=             i686-unknown-netbsd
                    205: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    206: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.78      he        207: # Do not trust he@.
                    208: SITES.${RUST_STAGE0}=  ftp://golden-delicious.urc.uninett.no/pub/rust/
                    209: SITES.${RUST_STD_STAGE0}=      ftp://golden-delicious.urc.uninett.no/pub/rust/
1.50      ryoon     210: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.26      jperkin   211: # Setting this changes it for every distfile, which doesn't match what is
                    212: # currently in distinfo.
                    213: #DIST_SUBDIR=          ${PKGNAME}
1.15      ryoon     214: # For atomic ops
                    215: CFLAGS+=               -march=i586
1.53      ryoon     216: pre-build-fix:
1.24      ryoon     217:        ${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/cargo
1.15      ryoon     218: .endif
1.6       jperkin   219: .if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
1.81      he        220: RUST_STAGE0_VER=       1.32.0
1.3       ryoon     221: RUST_ARCH=             x86_64-unknown-netbsd
1.6       jperkin   222: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
1.10      ryoon     223: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    224: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.53      ryoon     225: pre-build-fix:
1.1       jperkin   226: .endif
1.70      he        227: .if !empty(MACHINE_PLATFORM:MNetBSD-*-powerpc) || make(distinfo) || make (makesum) || make(mdi)
1.78      he        228: RUST_STAGE0_VER=       1.32.0
1.70      he        229: RUST_ARCH=             powerpc-unknown-netbsd
                    230: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    231: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    232: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
                    233: # Do not trust he@.
                    234: SITES.${RUST_STAGE0}=  ftp://golden-delicious.urc.uninett.no/pub/rust/
                    235: SITES.${RUST_STD_STAGE0}=      ftp://golden-delicious.urc.uninett.no/pub/rust/
                    236: pre-build-fix:
                    237: .endif
1.78      he        238: .if !empty(MACHINE_PLATFORM:MNetBSD-*-aarch64) || make(distinfo) || make (makesum) || make(mdi)
                    239: RUST_STAGE0_VER=       1.32.0
                    240: RUST_ARCH=             aarch64-unknown-netbsd
                    241: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    242: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    243: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
                    244: # Do not trust he@.
                    245: SITES.${RUST_STAGE0}=  ftp://golden-delicious.urc.uninett.no/pub/rust/
                    246: SITES.${RUST_STD_STAGE0}=      ftp://golden-delicious.urc.uninett.no/pub/rust/
                    247: pre-build-fix:
                    248: .endif
1.70      he        249: .if !empty(MACHINE_PLATFORM:MNetBSD-*-sparc64) || make(distinfo) || make (makesum) || make(mdi)
1.79      he        250: RUST_STAGE0_VER=       1.32.0
1.70      he        251: RUST_ARCH=             sparc64-unknown-netbsd
                    252: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    253: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    254: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
1.68      ryoon     255: ## Do not trust he@.
1.70      he        256: SITES.${RUST_STAGE0}=  ftp://golden-delicious.urc.uninett.no/pub/rust/
                    257: SITES.${RUST_STD_STAGE0}=      ftp://golden-delicious.urc.uninett.no/pub/rust/
                    258: pre-build-fix:
                    259: .endif
                    260: .if !empty(MACHINE_PLATFORM:MNetBSD-*-earmv7hf) || make(distinfo) || make (makesum) || make(mdi)
                    261: RUST_ARCH=             armv7-unknown-netbsd-eabihf
1.82      he        262: RUST_STAGE0_VER=       1.32.0
1.70      he        263: RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    264: RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
                    265: DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
                    266: # Do not trust he@.
                    267: SITES.${RUST_STAGE0}=  ftp://golden-delicious.urc.uninett.no/pub/rust/
                    268: SITES.${RUST_STD_STAGE0}=      ftp://golden-delicious.urc.uninett.no/pub/rust/
                    269: pre-build-fix:
                    270: .endif
1.1       jperkin   271:
1.17      tnn       272: # You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf if you have a local bootstrap compiler.
                    273: .if !defined(RUST_ARCH) && !defined(RUST_BOOTSTRAP_PATH)
1.6       jperkin   274: NOT_FOR_PLATFORM+=     ${MACHINE_PLATFORM}
1.17      tnn       275: .else
                    276: RUST_BOOTSTRAP_PATH?=  ${WRKDIR}/rust-bootstrap
1.2       jperkin   277: .endif
1.1       jperkin   278:
                    279: .if ${OPSYS} == "SunOS"
                    280: BUILD_DEPENDS+=                coreutils>=0:../../sysutils/coreutils
                    281: TOOLS_CREATE+=         md5sum
                    282: TOOLS_PATH.md5sum=     ${PREFIX}/bin/gmd5sum
                    283: .endif
                    284:
1.10      ryoon     285: SUBST_CLASSES+=                rpath
1.40      jperkin   286: SUBST_STAGE.rpath=     pre-configure
1.10      ryoon     287: SUBST_FILES.rpath=     src/bootstrap/bin/rustc.rs
                    288: SUBST_VARS.rpath=      PREFIX
                    289:
                    290: post-extract:
1.17      tnn       291:        set -e;                                                                 \
1.51      jperkin   292:        if ${TEST} -e ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}/install.sh \
1.17      tnn       293:          -a ! -e ${RUST_BOOTSTRAP_PATH}/bin/rustc; then \
                    294:                cd ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH};              \
                    295:                ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH};     \
                    296:                cd ${WRKDIR}/rust-std-${RUST_STAGE0_VER}-${RUST_ARCH};          \
                    297:                ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH};     \
                    298:        fi
1.39      ryoon     299: # patch(1) in NetBSD does not handle .cargo-checksum.json like long width file.
1.76      jperkin   300:        ${CP} ${WRKSRC}/vendor/rand/.cargo-checksum.json \
                    301:              ${WRKSRC}/vendor/rand/.cargo-checksum.json.orig
1.83    ! he        302:        ${SED} -e 's/1e732c2e3b4bd1561f11e0979bf9d20669a96eae7afe0deff9dfbb980ee47bf1/55abd8100db14a076dedbf84ce0f2db08158e1bd33ff1d4978bd3c4ad978f281/' ${WRKSRC}/vendor/rand/.cargo-checksum.json.orig > ${WRKSRC}/vendor/rand/.cargo-checksum.json
        !           303:        ${CP} ${WRKSRC}/vendor/libc/.cargo-checksum.json \
        !           304:                ${WRKSRC}/vendor/libc/.cargo-checksum.json.orig
        !           305:        ${SED} -e 's/7950a26f3eb0b7bc8e71f524cc2e05832b759fe2ce12a58e0c1957e0ec1286dc/a188bb00f0eddf252738f830b864e3a39bf2345f05f195d5ee5ca42b101f1de5/' ${WRKSRC}/vendor/libc/.cargo-checksum.json.orig > ${WRKSRC}/vendor/libc/.cargo-checksum.json
        !           306:        ${CP} ${WRKSRC}/vendor/backtrace-sys/.cargo-checksum.json \
        !           307:              ${WRKSRC}/vendor/backtrace-sys/.cargo-checksum.json.orig
        !           308:        ${SED} -e 's/59763fc255248b54fba5d0761d61093a73d51fa4cb400b0df1b5f339b9c2f48a/ba66d192421fd536ceddb50616c4c4aea06f4e39450eb0bc2bbbaed0b1e684c1/' ${WRKSRC}/vendor/backtrace-sys/.cargo-checksum.json.orig > ${WRKSRC}/vendor/backtrace-sys/.cargo-checksum.json
1.74      ryoon     309:
1.55      he        310: .if ${OPSYS} == "NetBSD"
1.61      he        311:        SDIR=${WRKDIR}/scripts; \
                    312:        ${MKDIR} $${SDIR}; \
                    313:        cd $${SDIR}; \
                    314:        ${RM} -f c++-wrap; \
                    315:        ${RM} -f clang++-wrap; \
                    316:        ${RM} -f clang-wrap; \
                    317:        ${CP} ${.CURDIR}/files/gcc-wrap .; \
                    318:        ${CHMOD} +x gcc-wrap; \
                    319:        ${LN} -s gcc-wrap c++-wrap; \
                    320:        ${LN} -s gcc-wrap clang++-wrap; \
                    321:        ${LN} -s gcc-wrap clang-wrap
1.55      he        322: .endif
1.17      tnn       323:
1.30      triaxx    324: .if ${OPSYS} == "FreeBSD"
                    325: MAKE_ENV+=             OPENSSL_DIR=${SSLBASE}
                    326: .endif
                    327:
1.73      tnn       328: .if ${OPSYS} == "NetBSD" && !empty(PKGSRC_COMPILER:Mclang) && !exists(/lib/libgcc_s.so)
                    329: BUILDLINK_TRANSFORM+=  rm:-lgcc_s
                    330: MAKE_ENV+=             PKGSRC_HAVE_LIBCPP=yes
                    331: .endif
                    332:
1.53      ryoon     333: pre-build: pre-build-fix
1.73      tnn       334: .if ${OPSYS} == "NetBSD" && !empty(PKGSRC_COMPILER:Mclang) && !exists(/lib/libgcc_s.so)
                    335:        cp ${FILESDIR}/libgcc_s.so.1 ${RUST_BOOTSTRAP_PATH}/lib/.
                    336: .endif
1.51      jperkin   337:
1.10      ryoon     338: do-build:
                    339:        cd ${WRKSRC} \
1.66      adam      340:        && ${SETENV} ${MAKE_ENV} \
1.70      he        341:                ${PYTHONBIN} ./x.py -v ${BUILD_TARGET} -j ${MAKE_JOBS:U1}
1.10      ryoon     342:
                    343: do-install:
                    344:        cd ${WRKSRC} \
1.66      adam      345:        && ${SETENV} ${MAKE_ENV} ${INSTALL_ENV} \
                    346:                ${PYTHONBIN} ./x.py -v install -j ${MAKE_JOBS:U1}
1.10      ryoon     347:
1.66      adam      348: GENERATE_PLIST+=find ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \
                    349:                sed 's,${DESTDIR}${PREFIX}/,,' | ${SORT} ;
1.1       jperkin   350:
1.66      adam      351: .if ${OPSYS} == "Darwin"
                    352: LDFLAGS+=              -headerpad_max_install_names
1.11      maya      353:
1.1       jperkin   354: .PHONY: fix-darwin-install-name
                    355: post-install: fix-darwin-install-name
                    356: fix-darwin-install-name:
1.52      minskim   357: .  for bin in clippy-driver rls rustc rustdoc
1.1       jperkin   358:        otool -XL ${DESTDIR}${PREFIX}/bin/${bin}                        \
                    359:            | ${GREP} '@rpath' | while read rpath rest; do              \
                    360:                install_name_tool -change $$rpath                       \
                    361:                    `${ECHO} $$rpath | ${SED} -e 's,@rpath,${PREFIX}/lib,g'` \
                    362:                    ${DESTDIR}${PREFIX}/bin/${bin};                     \
                    363:        done
                    364: .  endfor
1.52      minskim   365: .  for libdir in lib lib/rustlib/${RUST_ARCH}/lib lib/rustlib/${RUST_ARCH}/codegen-backends
1.1       jperkin   366:        for f in ${DESTDIR}${PREFIX}/${libdir}/lib*.dylib; do           \
                    367:                [ ! -f $$f ] && continue;                               \
                    368:                install_name_tool -id `${ECHO} $$f | ${SED} -e 's,${DESTDIR},,g'` $$f; \
                    369:                otool -XL $$f | grep '@rpath' | while read rpath rest; do \
                    370:                        install_name_tool -change $$rpath \
1.52      minskim   371:                            `${ECHO} $$rpath | ${SED} -e 's,@rpath,${PREFIX}/lib,g'` \
1.1       jperkin   372:                            $$f;                                        \
                    373:                done;                                                   \
                    374:        done
                    375: .  endfor
                    376: .endif
                    377:
1.6       jperkin   378: #
                    379: # Create a relocatable stage2 bootstrap from the bits we just built that can be
                    380: # used to build the next version of rust.  Currently only tested on SmartOS.
                    381: #
1.26      jperkin   382: BOOTSTRAP_TMPDIR=      ${WRKDIR}/${PKGNAME_NOREV}-${RUST_ARCH}
1.6       jperkin   383: USE_TOOLS+=            gtar
                    384:
1.55      he        385: # The NetBSD part is so far untested, because I could not convince
                    386: # the rust build to use the gcc wrapper when building natively,
                    387: # so that I could get a placeholder in the RPATH, because chrpath
                    388: # cannot extend the length of the RPATH...
                    389:
1.6       jperkin   390: stage0-bootstrap: install
1.26      jperkin   391:        ${RM} -rf ${BOOTSTRAP_TMPDIR}
1.6       jperkin   392:        ${MKDIR} ${BOOTSTRAP_TMPDIR}
1.55      he        393: .if ${OPSYS} == "NetBSD"
                    394:        (cd ${BOOTSTRAP_TMPDIR}; \
                    395:        DISTDIR=${WRKSRC}/bild/dist; \
                    396:        VER_ARCH=${PKGVERSION}-${RUST_ARCH}; \
                    397:        RUSTC=rustc-$${VER_ARCH}; \
                    398:        RUSTC_FILE=$${RUSTC}.tar.gz; \
                    399:        RUST_STD=rust-std-$${VER_ARCH}; \
                    400:        RUST_STD_FILE=$${RUST_STD}.tar.gz; \
                    401:        ${GTAR} -xzf $${DISTDIR}/$${RUSTC_FILE}; \
                    402:                (cd ${RUSTC}; \
                    403:        RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN/../lib'; \
                    404:        for f in rls-preview/bin/rls rustc/bin/rustc rustc/bin/rustdoc; do \
                    405:                chrpath -r $$RPATH $$f; \
                    406:        done; \
                    407:        RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN'; \
                    408:        for f in rustc/lib/*.so*; do \
                    409:                chrpath -r $$RPATH $$f; \
                    410:        done; \
                    411:        RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN:$$ORIGIN/../../..'; \
                    412:        for f in rustc/lib/rustlib/*/*/*.so*; do \
                    413:                chrpath -r $$RPATH $$f; \
                    414:        done;); \
                    415:        ${GTAR} -czf $${RUSTC_FILE} $${RUSTC}; \
                    416:        ${CP} $${DISTDIR}/$${RUST_STD_FILE} .; \
1.66      adam      417:        ${ECHO} "Fixed stage0 bootstrap in ${BOOTSTRAP_TMPDIR}:"; \
                    418:        ${ECHO} "$${RUSTC_FILE}"; \
                    419:        ${ECHO} "$${RUST_STD_FILE}"; \
1.55      he        420:        )
                    421: .endif
                    422: .if ${OS_VARIANT} == "SmartOS"
1.6       jperkin   423:        ${CP} -R ${DESTDIR}/${PREFIX}/bin ${BOOTSTRAP_TMPDIR}/
                    424:        ${CP} -R ${DESTDIR}/${PREFIX}/lib ${BOOTSTRAP_TMPDIR}/
1.26      jperkin   425:        ${MKDIR} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc
1.6       jperkin   426:        for lib in libgcc_s.so.1 libssp.so.0 libstdc++.so.6; do \
                    427:                ${CP} `${PKG_CC} -print-file-name=$${lib}` \
1.26      jperkin   428:                    ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
                    429:        done
                    430:        for lib in libcrypto.so.1.0.0 libcurl.so.4 libhttp_parser.so.2 \
                    431:                   libiconv.so.2 libidn2.so.0 libintl.so.8 liblber-2.4.so.2 \
                    432:                   libldap-2.4.so.2 libnghttp2.so.14 libsasl2.so.3 \
                    433:                   libssh2.so.1 libssl.so.1.0.0 libunistring.so.2 libz.so.1; do \
                    434:                ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
1.6       jperkin   435:        done
1.26      jperkin   436:        for f in ${BOOTSTRAP_TMPDIR}/bin/{cargo,rls,rustc,rustdoc}; do \
                    437:                /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN/../lib:$$ORIGIN/../lib/pkgsrc' $$f; \
                    438:        done
                    439:        for f in ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/*.so*; do \
                    440:                /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN' $$f; \
1.6       jperkin   441:        done
                    442:        for f in ${BOOTSTRAP_TMPDIR}/lib/*.so*; do \
1.26      jperkin   443:                /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN:$$ORIGIN/pkgsrc' $$f; \
1.6       jperkin   444:        done
1.43      jperkin   445:        for f in ${BOOTSTRAP_TMPDIR}/lib/rustlib/${RUST_ARCH}/*/*.so*; do \
1.26      jperkin   446:                /usr/bin/elfedit -e 'dyn:runpath $$ORIGIN:$$ORIGIN/../../..:$$ORIGIN/../../../pkgsrc' $$f; \
1.6       jperkin   447:        done
                    448:        (cd ${WRKDIR}; \
1.26      jperkin   449:         ${GTAR} -zcf ${PKGNAME_NOREV}-${RUST_ARCH}.tar.gz ${PKGNAME_NOREV}-${RUST_ARCH})
1.55      he        450: .endif
1.6       jperkin   451:
1.67      jperkin   452: # These dependencies currently use the bundled sources as they require
                    453: # development features not yet available in released versions.
                    454: #
                    455: #.include "../../devel/libgit2/buildlink3.mk"
                    456: #.include "../../security/libssh2/buildlink3.mk"
                    457: #.include "../../www/curl/buildlink3.mk"
                    458: #.include "../../www/http-parser/buildlink3.mk"
                    459:
1.1       jperkin   460: .include "../../devel/cmake/buildlink3.mk"
1.66      adam      461: #.include "../../devel/jemalloc/buildlink3.mk"
1.10      ryoon     462: .include "../../devel/zlib/buildlink3.mk"
1.66      adam      463: #.include "../../lang/llvm/buildlink3.mk"
1.1       jperkin   464: .include "../../lang/python/tool.mk"
1.10      ryoon     465: .include "../../security/openssl/buildlink3.mk"
1.1       jperkin   466: .include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>