From owner-dev-commits-ports-all@freebsd.org Mon Jul 12 16:40:53 2021 Return-Path: Delivered-To: dev-commits-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0896D663746; Mon, 12 Jul 2021 16:40:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4GNqJh6RjHz4k7h; Mon, 12 Jul 2021 16:40:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C62D6124C0; Mon, 12 Jul 2021 16:40:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 16CGeqpH086998; Mon, 12 Jul 2021 16:40:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 16CGeq38086997; Mon, 12 Jul 2021 16:40:52 GMT (envelope-from git) Date: Mon, 12 Jul 2021 16:40:52 GMT Message-Id: <202107121640.16CGeq38086997@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Bryan Drewery Subject: git: 53c0dd571599 - main - devel/ccache*: Split memcached fork into its own port. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bdrewery X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 53c0dd571599a3b01dd1db379dc810f534e7360a Auto-Submitted: auto-generated X-BeenThere: dev-commits-ports-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the ports repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jul 2021 16:40:53 -0000 The branch main has been updated by bdrewery: URL: https://cgit.FreeBSD.org/ports/commit/?id=53c0dd571599a3b01dd1db379dc810f534e7360a commit 53c0dd571599a3b01dd1db379dc810f534e7360a Author: Bryan Drewery AuthorDate: 2021-07-09 19:37:19 +0000 Commit: Bryan Drewery CommitDate: 2021-07-12 16:38:57 +0000 devel/ccache*: Split memcached fork into its own port. --- devel/ccache-memcached-static/Makefile | 4 +- devel/ccache-memcached/Makefile | 110 ++++++++++++++++++++- .../distinfo} | 0 .../files/ccache-howto-freebsd.txt.in | 67 +++++++++++++ .../files/ccache-update-links.sh.in | 69 +++++++++++++ .../files/patch-Makefile.in} | 0 .../files/patch-configure.ac} | 0 devel/ccache-memcached/files/patch-src__ccache.c | 56 +++++++++++ devel/ccache-memcached/files/pkg-message.in | 9 ++ devel/ccache-memcached/files/world-ccache.in | 9 ++ devel/ccache-memcached/pkg-descr | 8 ++ devel/ccache-memcached/pkg-plist | 9 ++ devel/ccache/Makefile | 83 ++-------------- devel/ccache/Makefile.compilers | 27 +++++ .../{extra-patch-Makefile.in => patch-Makefile.in} | 0 devel/ccache/pkg-plist | 2 +- 16 files changed, 369 insertions(+), 84 deletions(-) diff --git a/devel/ccache-memcached-static/Makefile b/devel/ccache-memcached-static/Makefile index 79b543069b77..a37421fedde8 100644 --- a/devel/ccache-memcached-static/Makefile +++ b/devel/ccache-memcached-static/Makefile @@ -1,8 +1,8 @@ PKGNAMESUFFIX= -memcached-static -MASTERDIR= ${.CURDIR}/../ccache +MASTERDIR= ${.CURDIR}/../ccache-memcached -OPTIONS_SLAVE= MEMCACHED STATIC +OPTIONS_SLAVE= STATIC CONFLICTS_INSTALL= ccache-[0-9]* ccache-memcached[0-9]* ccache-static[0-9]* diff --git a/devel/ccache-memcached/Makefile b/devel/ccache-memcached/Makefile index f9d810b4d987..cd1bde6c1e12 100644 --- a/devel/ccache-memcached/Makefile +++ b/devel/ccache-memcached/Makefile @@ -1,9 +1,109 @@ -PKGNAMESUFFIX= -memcached +# Created by: Dominic Marks -MASTERDIR= ${.CURDIR}/../ccache +PORTNAME= ccache +PKGNAMESUFFIX?= -memcached +PORTVERSION= 3.5.dev.20180926 +PORTREVISION= 1 +CATEGORIES= devel +MASTER_SITES= LOCAL/bdrewery \ + GH -OPTIONS_SLAVE= MEMCACHED +MAINTAINER= bdrewery@FreeBSD.org +COMMENT= Tool to minimize the compile time of C/C++ programs -CONFLICTS_INSTALL= ccache-[0-9]* ccache-memcached-static[0-9]* ccache-static-[0-9]* +LICENSE= GPLv3+ +LICENSE_FILE= ${WRKSRC}/GPL-3.0.txt -.include "${MASTERDIR}/Makefile" +USE_GITHUB= yes +GH_TAGNAME= f7712082106bef085515f86ae47e7dbbd2a48b57 + +CONFLICTS_INSTALL?= ccache-[0-9]* ccache-static-[0-9]* ccache-memcached-static-[0-9]* + +GNU_CONFIGURE= yes + +# Some files shared with devel/ccache +CCACHEDIR?= ${MASTERDIR}/../ccache + +HOWTO= ccache-howto-freebsd.txt +SUB_FILES= ${HOWTO} world-ccache pkg-message ccache-update-links.sh + +PORTDOCS= ccache-howto-freebsd.txt MANUAL.html MANUAL.adoc NEWS.adoc \ + NEWS.html + +OPTIONS_DEFINE= CLANGLINK LLVMLINK STATIC DOCS TINDERBOX +OPTIONS_DEFAULT=CLANGLINK LLVMLINK +OPTIONS_SUB= yes + +CLANGLINK_DESC= Create clang compiler links if clang is installed +LLVMLINK_DESC= Create llvm compiler links if llvm is installed +TINDERBOX_DESC= Create tarball for tinderbox usage + +USES= autoreconf compiler gmake pkgconfig + +CONFIGURE_ENABLE+= memcached +LIB_DEPENDS+= libmemcached.so:databases/libmemcached +LDFLAGS+= -L${LOCALBASE}/lib +CFLAGS+= -I${LOCALBASE}/include + +STATIC_CONFIGURE_ENABLE= static +STATIC_LDFLAGS+= -static +# Hack for libsasl2.a requiring HMAC_CTX_reset from hidden libntlm.a. +STATIC_LDFLAGS+= -L${LOCALBASE}/lib/sasl2 + +# While this works in theory it breaks due to install conflict in Poudriere +NO_CCACHE_DEPEND= yes + +.include + +# Extra dependencies needed for generating manpage +.if ${PORT_OPTIONS:MDOCS} +BUILD_DEPENDS+= ${LOCALBASE}/bin/a2x:textproc/asciidoc +ALL_TARGET= all docs +.endif + +.include + +. if ${COMPILER_TYPE} == clang +CPPFLAGS+= -DCC_IS_CLANG +. elif ${COMPILER_TYPE} == gcc +CPPFLAGS+= -DCC_IS_GCC +. endif + +.include "${CCACHEDIR}/Makefile.compilers" + +SUB_LIST+= HOWTO="${HOWTO}" + +post-build-TINDERBOX-on: + @${MKDIR} ${WRKDIR}/tb/opt + ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${WRKDIR}/tb/opt +.for l in ${CCACHE_COMPILERS} + @${LN} -sf ${PORTNAME} ${WRKDIR}/tb/opt/${l} +.endfor + @${TAR} -C ${WRKDIR}/tb -cpf ${WRKSRC}/${PORTNAME}.tar opt + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/ccache ${STAGEDIR}${PREFIX}/bin + # Memcached uses the 3.5 dev branch which requires asciidoc to generate + # ccache.1. +.if ${PORT_OPTIONS:MDOCS} + ${INSTALL_MAN} ${WRKSRC}/doc/ccache.1 ${STAGEDIR}${PREFIX}/man/man1 +.endif + ${MKDIR} ${STAGEDIR}${PREFIX}/${CCLINKDIR}/world + ${INSTALL_SCRIPT} ${WRKDIR}/world-ccache \ + ${STAGEDIR}${PREFIX}/${CCLINKDIR}/world/ccache + ${INSTALL_SCRIPT} ${WRKDIR}/ccache-update-links.sh \ + ${STAGEDIR}${PREFIX}/bin/ccache-update-links + +do-install-TINDERBOX-on: + ${MKDIR} ${STAGEDIR}${DATADIR} + ${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.tar ${STAGEDIR}${DATADIR} + +do-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/doc/MANUAL.html ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/doc/MANUAL.adoc ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/doc/NEWS.adoc ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/doc/NEWS.html ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKDIR}/${HOWTO} ${STAGEDIR}${DOCSDIR} + +.include diff --git a/devel/ccache/distinfo.memcached b/devel/ccache-memcached/distinfo similarity index 100% rename from devel/ccache/distinfo.memcached rename to devel/ccache-memcached/distinfo diff --git a/devel/ccache-memcached/files/ccache-howto-freebsd.txt.in b/devel/ccache-memcached/files/ccache-howto-freebsd.txt.in new file mode 100644 index 000000000000..5db61cd832e2 --- /dev/null +++ b/devel/ccache-memcached/files/ccache-howto-freebsd.txt.in @@ -0,0 +1,67 @@ +To use ccache for ports, just add WITH_CCACHE_BUILD=yes to +/etc/make.conf. The rest of this guide is for building +/usr/src and other checkouts. + +To use ccache for base (11.0+) just add WITH_CCACHE_BUILD=yes +to /etc/src.conf. Refer to src.conf(5) for more information. + +------------------------------------------------------------------------------- + +For older releases, before 11.0, add the following to /etc/make.conf. +You can replace cc and c++ with the compilers of your choice. +(remember that only GCC and Clang can build world and kernel) + +.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*)) +.if !defined(NOCCACHE) && exists(%%PREFIX%%/%%CCLINKDIR%%/world/cc) +CC:=${CC:C,^cc,%%PREFIX%%/%%CCLINKDIR%%/world/cc,1} +CXX:=${CXX:C,^c\+\+,%%PREFIX%%/%%CCLINKDIR%%/world/c++,1} +.endif +.endif + +For Korn/Bourne shells Add the following to /etc/profile: + export PATH=%%PREFIX%%/%%CCLINKDIR%%:$PATH + export CCACHE_PATH=/usr/bin:%%LOCALBASE%%/bin + +For csh/tcsh Add the following to /etc/csh.cshrc: + setenv PATH %%PREFIX%%/%%CCLINKDIR%%:$PATH + setenv CCACHE_PATH /usr/bin:%%LOCALBASE%%/bin + +For icc users: + Add %%ICCPREFIX%% to CCACHE_PATH + +------------------------------------------------------------------------------- + +To use distcc: + +For Korn/Bourne shells Add the following to /etc/profile: + export CCACHE_PREFIX=distcc + export DISTCC_HOSTS="localhost host1 host2" + +For csh/tcsh Add the following to /etc/csh.cshrc: + setenv CCACHE_PREFIX distcc + setenv DISTCC_HOSTS "localhost host1 host2" + +-- + +If you have a problem building world +define NOCCACHE and try again. + +If you have a problem building a port +reset PATH=$CCACHE_PATH and try again. + +-- + +Make sure you run 'ccache-update-links' after you install/uninstall +additional compilers in order to create/remove compiler links. + +-- + +Ccache's default cache size is 1GB and this is larger than the default size of +the root partition (/) on FreeBSD. To over come this you may specify a new +cache location on a different partition with the following examples. + +For Korn/Bourne shells Add the following to /etc/profile: + export CCACHE_DIR=/usr/.ccache + +For csh/tcsh Add the following to /etc/csh.cshrc + setenv CCACHE_DIR "/usr/.ccache" diff --git a/devel/ccache-memcached/files/ccache-update-links.sh.in b/devel/ccache-memcached/files/ccache-update-links.sh.in new file mode 100644 index 000000000000..bfeb2e220bfb --- /dev/null +++ b/devel/ccache-memcached/files/ccache-update-links.sh.in @@ -0,0 +1,69 @@ +#!/bin/sh +# +# Author: Emanuel Haupt + +CCACHE_COMPILERS="%%CCACHE_COMPILERS%% ${EXTRA_COMPILERS}" +CCLINKDIR="%%CCLINKDIR%%" +PREFIX="%%PREFIX%%" + +usage() { + cat << "EOUSAGE" +Usage: ccache-update-links [hv] + +ccache-update-links maintains symlinks needed by ccache to work with additional +compilers. + + -h, --help this help + -v verbose + +EOUSAGE +} + +case "$1" +in + -h|--help) + usage + ;; +esac + +strip_path() { + local IFS=":" + local path + set -- ${PATH} + while [ $# -gt 0 ]; do + if ! [ "${1}" = "${PREFIX}/libexec/ccache" ]; then + path="${path}${path:+:}${1}" + fi + shift + done + echo "${path}" +} + +# Remove ccache wrappers from PATH +PATH=$(strip_path) + +# create compiler links +for comp in ${CCACHE_COMPILERS} +do + if command -v "${comp}" >/dev/null; then + if [ ! -L "${PREFIX}/${CCLINKDIR}/${comp}" ]; then + [ "$1" = "-v" ] && echo "create symlink for ${comp}" + ln -sf ${PREFIX}/bin/ccache ${PREFIX}/${CCLINKDIR}/${comp} + fi + + if [ ! -L "${PREFIX}/${CCLINKDIR}/world/${comp}" ]; then + [ "$1" = "-v" ] && echo "create symlink for ${comp} (world)" + ln -sf ccache ${PREFIX}/${CCLINKDIR}/world/${comp} + fi + else + if [ -L "${PREFIX}/${CCLINKDIR}/${comp}" ]; then + [ "$1" = "-v" ] && echo "remove symlink for ${comp}" + rm -f ${PREFIX}/${CCLINKDIR}/${comp} + fi + + if [ -L "${PREFIX}/${CCLINKDIR}/world/${comp}" ]; then + [ "$1" = "-v" ] && echo "remove symlink for ${comp} (world)" + rm -f ${PREFIX}/${CCLINKDIR}/world/${comp} + fi + fi +done diff --git a/devel/ccache/files/extra-patch-memcached-Makefile.in b/devel/ccache-memcached/files/patch-Makefile.in similarity index 100% rename from devel/ccache/files/extra-patch-memcached-Makefile.in rename to devel/ccache-memcached/files/patch-Makefile.in diff --git a/devel/ccache/files/extra-patch-memcached-configure.ac b/devel/ccache-memcached/files/patch-configure.ac similarity index 100% rename from devel/ccache/files/extra-patch-memcached-configure.ac rename to devel/ccache-memcached/files/patch-configure.ac diff --git a/devel/ccache-memcached/files/patch-src__ccache.c b/devel/ccache-memcached/files/patch-src__ccache.c new file mode 100644 index 000000000000..62be558d1bad --- /dev/null +++ b/devel/ccache-memcached/files/patch-src__ccache.c @@ -0,0 +1,56 @@ +- Determine whether cc(1) is clang or gcc at compile-time. +- Don't hash -fcolor-diagnostics; make will auto use it while make -j will not. + There's no reason to not use the cache in either of these cases if it is + already available. +-bdrewery + + +--- src/ccache.c.orig 2018-03-25 13:24:05.000000000 -0700 ++++ src/ccache.c 2018-06-26 11:44:03.336177000 -0700 +@@ -487,6 +487,16 @@ guess_compiler(const char *path) + } else if (str_eq(name, "pump") || str_eq(name, "distcc-pump")) { + result = GUESSED_PUMP; + } ++#if defined(CC_IS_CLANG) || defined(CC_IS_GCC) ++ if (result == GUESSED_UNKNOWN && ++ (strcmp(name, "cc") == 0 || strcmp(name, "CC") == 0 || ++ strcmp(name, "c++") == 0)) ++#if defined(CC_IS_CLANG) ++ result = GUESSED_CLANG; ++#elif defined(CC_IS_GCC) ++ result = GUESSED_GCC; ++#endif ++#endif + free(name); + return result; + } +@@ -1657,6 +1667,7 @@ calculate_common_hash(struct args *args, struct mdfour + free(p); + } + ++#if 0 + // Possibly hash GCC_COLORS (for color diagnostics). + if (guessed_compiler == GUESSED_GCC) { + const char *gcc_colors = getenv("GCC_COLORS"); +@@ -1665,6 +1676,7 @@ calculate_common_hash(struct args *args, struct mdfour + hash_string(hash, gcc_colors); + } + } ++#endif + } + + // Update a hash sum with information specific to the direct and preprocessor +@@ -1697,6 +1709,13 @@ calculate_object_hash(struct args *args, struct mdfour + + // -Wl,... doesn't affect compilation (except for clang). + if (str_startswith(args->argv[i], "-Wl,") && !is_clang) { ++ continue; ++ } ++ ++ /* Colors do not affect compilation. */ ++ if (str_startswith(args->argv[i], "-fcolor-diagnostics") || ++ str_eq(args->argv[i], "-fdiagnostics-color") || ++ str_eq(args->argv[i], "-fdiagnostics-color=always")) { + continue; + } + diff --git a/devel/ccache-memcached/files/pkg-message.in b/devel/ccache-memcached/files/pkg-message.in new file mode 100644 index 000000000000..088912983fd3 --- /dev/null +++ b/devel/ccache-memcached/files/pkg-message.in @@ -0,0 +1,9 @@ +[ +{ type: install + message: <&2 && + exit 1 + +unset CCACHE_PATH +export CCACHE_COMPILERCHECK=content +exec %%PREFIX%%/%%CCLINKDIR%%/${0##*/} "$@" diff --git a/devel/ccache-memcached/pkg-descr b/devel/ccache-memcached/pkg-descr new file mode 100644 index 000000000000..659133c687f4 --- /dev/null +++ b/devel/ccache-memcached/pkg-descr @@ -0,0 +1,8 @@ +ccache is a compiler cache. It acts as a caching pre-processor to C/C++ +compilers, using the -E compiler switch and a hash to detect when a +compilation can be satisfied from cache. This often results in a 5 to 10 +times speedup in common compilations. + +ccache-memcached is an older fork with memcached support. + +WWW: https://ccache.samba.org/ diff --git a/devel/ccache-memcached/pkg-plist b/devel/ccache-memcached/pkg-plist new file mode 100644 index 000000000000..d85d009442a1 --- /dev/null +++ b/devel/ccache-memcached/pkg-plist @@ -0,0 +1,9 @@ +bin/ccache +bin/ccache-update-links +@comment manpage requires extra dependencies +%%DOCS%%man/man1/ccache.1.gz +%%CCLINKDIR%%/world/ccache +%%TINDERBOX%%%%DATADIR%%/ccache.tar +@postexec echo "Create compiler links..." +@postexec %D/bin/ccache-update-links -v +@preunexec find %D/%%CCLINKDIR%% -type l -exec rm -f {} \; diff --git a/devel/ccache/Makefile b/devel/ccache/Makefile index 6936820166e1..4da908163cfd 100644 --- a/devel/ccache/Makefile +++ b/devel/ccache/Makefile @@ -1,7 +1,7 @@ # Created by: Dominic Marks PORTNAME= ccache -#PORTVERSION must be set later due to depending on PORT_OPTIONS. +PORTVERSION= 3.7.1 PORTREVISION= 1 CATEGORIES= devel MASTER_SITES= https://github.com/ccache/ccache/releases/download/v${DISTVERSION}/ \ @@ -18,70 +18,27 @@ CONFLICTS_INSTALL?= ccache-static-[0-9]* ccache-memcached-[0-9]* ccache-memcache GNU_CONFIGURE= yes HOWTO= ccache-howto-freebsd.txt -CCLINKDIR= libexec/ccache SUB_FILES= ${HOWTO} world-ccache pkg-message ccache-update-links.sh PORTDOCS= ccache-howto-freebsd.txt MANUAL.html MANUAL.adoc NEWS.adoc \ NEWS.html -OPTIONS_DEFINE= CLANGLINK LLVMLINK STATIC DOCS TINDERBOX MEMCACHED +OPTIONS_DEFINE= CLANGLINK LLVMLINK STATIC DOCS TINDERBOX OPTIONS_DEFAULT=CLANGLINK LLVMLINK +OPTIONS_SUB= yes CLANGLINK_DESC= Create clang compiler links if clang is installed LLVMLINK_DESC= Create llvm compiler links if llvm is installed TINDERBOX_DESC= Create tarball for tinderbox usage -MEMCACHED_DESC= Build in experimental Memcached support USES= compiler -MEMCACHED_EXTRA_PATCHES= \ - ${FILESDIR}/extra-patch-memcached-configure.ac \ - ${FILESDIR}/extra-patch-memcached-Makefile.in -MEMCACHED_CONFIGURE_ENABLE= memcached -MEMCACHED_USES= autoreconf gmake pkgconfig -MEMCACHED_LIB_DEPENDS= libmemcached.so:databases/libmemcached -MEMCACHED_LDFLAGS= -L${LOCALBASE}/lib -MEMCACHED_CFLAGS= -I${LOCALBASE}/include - STATIC_CONFIGURE_ENABLE= static - -.if empty(OPTIONS_SLAVE:MMEMCACHED) -EXTRA_PATCHES+= ${FILESDIR}/extra-patch-Makefile.in -.endif - -.if defined(WITH_CCACHE_BUILD) && empty(OPTIONS_SLAVE:MMEMCACHED) && \ - !defined(NO_CCACHE_DEPEND) -MEMCACHED_IGNORE= MEMCACHED cannot be combined with WITH_CCACHE_BUILD. Use devel/ccache-memcached -# XXX: This needs more testing with Poudriere before enabling. Also bsd.options.mk support. -#MEMCACHED_DEPENDS_ARGS+= NO_CCACHE_DEPEND=1 -.endif +STATIC_LDFLAGS+= -static # Support WITH_CCACHE_BUILD but don't depend on it. NO_CCACHE_DEPEND= yes -OPTIONS_SUB= yes - -STATIC_LDFLAGS+= -static - -.include - -.if ${PORT_OPTIONS:MMEMCACHED} -# Hack for libsasl2.a requiring HMAC_CTX_reset from hidden libntlm.a. -STATIC_LDFLAGS+= -L${LOCALBASE}/lib/sasl2 -PORTVERSION= 3.5.dev.20180926 -USE_GITHUB= yes -GH_TAGNAME= f7712082106bef085515f86ae47e7dbbd2a48b57 -MASTER_SITES= -DISTINFO_FILE= ${MASTERDIR}/distinfo.memcached -.if ${PORT_OPTIONS:MDOCS} -BUILD_DEPENDS+= ${LOCALBASE}/bin/a2x:textproc/asciidoc -ALL_TARGET= all docs -PLIST_FILES+= man/man1/ccache.1.gz -.endif -.else -PORTVERSION= 3.7.1 -.endif - .include . if ${COMPILER_TYPE} == clang @@ -90,35 +47,11 @@ CPPFLAGS+= -DCC_IS_CLANG CPPFLAGS+= -DCC_IS_GCC . endif -PLIST_SUB+= CCLINKDIR="${CCLINKDIR}" - -.if ${ARCH}=="i386" -CCACHE_COMPILERS+= icc icpc -.endif - -GNU_COMPILERS+= 34 42 43 44 45 46 47 48 49 5 6 7 8 9 10 -CCACHE_COMPILERS+= cc c++ CC gcc g++ ${GNU_COMPILERS:S|^|gcc|} \ - ${GNU_COMPILERS:S|^|g++|} \ - ${GNU_COMPILERS:S|^|cpp|} - -.if ${PORT_OPTIONS:MCLANGLINK} -CLANG_COMPILERS+= 33 34 35 36 37 38 39 40 50 60 70 80 90 10 -devel -CCACHE_COMPILERS+= clang clang++ ${CLANG_COMPILERS:S|^|clang|} \ - ${CLANG_COMPILERS:S|^|clang++|} \ - ${CLANG_COMPILERS:S|^|cpp|} -.endif - -.if ${PORT_OPTIONS:MLLVMLINK} -CCACHE_COMPILERS+= llvm-gcc llvm-c++ llvm-g++ -.endif +.include "${MASTERDIR}/Makefile.compilers" -CCACHE_COMPILERS+= ${EXTRA_COMPILERS} -SUB_LIST+= CCACHE_COMPILERS="${CCACHE_COMPILERS}" \ - CCLINKDIR="${CCLINKDIR}" \ - ICCPREFIX="${LOCALBASE}/intel_cc_80/bin" \ - HOWTO="${HOWTO}" +SUB_LIST+= HOWTO="${HOWTO}" -post-patch-MEMCACHED-off: +post-patch: @${REINPLACE_CMD} \ -e 's,_XOPEN_SOURCE 600,_XOPEN_SOURCE 700,' \ -e 's,_POSIX_C_SOURCE 200112L,_POSIX_C_SOURCE 200809L,' \ @@ -136,9 +69,7 @@ do-install: ${INSTALL_PROGRAM} ${WRKSRC}/ccache ${STAGEDIR}${PREFIX}/bin # Memcached uses the 3.5 dev branch which requires asciidoc to generate # ccache.1. -.if !${PORT_OPTIONS:MMEMCACHED} || ${PORT_OPTIONS:MDOCS} ${INSTALL_MAN} ${WRKSRC}/doc/ccache.1 ${STAGEDIR}${PREFIX}/man/man1 -.endif ${MKDIR} ${STAGEDIR}${PREFIX}/${CCLINKDIR}/world ${INSTALL_SCRIPT} ${WRKDIR}/world-ccache \ ${STAGEDIR}${PREFIX}/${CCLINKDIR}/world/ccache diff --git a/devel/ccache/Makefile.compilers b/devel/ccache/Makefile.compilers new file mode 100644 index 000000000000..86bd59e19d43 --- /dev/null +++ b/devel/ccache/Makefile.compilers @@ -0,0 +1,27 @@ +CCLINKDIR?= libexec/ccache +PLIST_SUB+= CCLINKDIR="${CCLINKDIR}" +SUB_LIST+= CCACHE_COMPILERS="${CCACHE_COMPILERS}" \ + CCLINKDIR="${CCLINKDIR}" \ + ICCPREFIX="${LOCALBASE}/intel_cc_80/bin" + +.if ${ARCH}=="i386" +CCACHE_COMPILERS+= icc icpc +.endif + +GNU_COMPILERS+= 34 42 43 44 45 46 47 48 49 5 6 7 8 9 10 +CCACHE_COMPILERS+= cc c++ CC gcc g++ ${GNU_COMPILERS:S|^|gcc|} \ + ${GNU_COMPILERS:S|^|g++|} \ + ${GNU_COMPILERS:S|^|cpp|} + +.if ${PORT_OPTIONS:MCLANGLINK} +CLANG_COMPILERS+= 33 34 35 36 37 38 39 40 50 60 70 80 90 10 -devel +CCACHE_COMPILERS+= clang clang++ ${CLANG_COMPILERS:S|^|clang|} \ + ${CLANG_COMPILERS:S|^|clang++|} \ + ${CLANG_COMPILERS:S|^|cpp|} +.endif + +.if ${PORT_OPTIONS:MLLVMLINK} +CCACHE_COMPILERS+= llvm-gcc llvm-c++ llvm-g++ +.endif + +CCACHE_COMPILERS+= ${EXTRA_COMPILERS} diff --git a/devel/ccache/files/extra-patch-Makefile.in b/devel/ccache/files/patch-Makefile.in similarity index 100% rename from devel/ccache/files/extra-patch-Makefile.in rename to devel/ccache/files/patch-Makefile.in diff --git a/devel/ccache/pkg-plist b/devel/ccache/pkg-plist index 8f6ad6707c81..c3327694fe5a 100644 --- a/devel/ccache/pkg-plist +++ b/devel/ccache/pkg-plist @@ -1,6 +1,6 @@ bin/ccache bin/ccache-update-links -%%NO_MEMCACHED%%man/man1/ccache.1.gz +man/man1/ccache.1.gz %%CCLINKDIR%%/world/ccache %%TINDERBOX%%%%DATADIR%%/ccache.tar @postexec echo "Create compiler links..."