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.
===> The following configuration options are available for ccache-3.7.12_9:
CLANGLINK=on: Create clang compiler links if clang is installed
DOCS=on: Build and/or install documentation
LLVMLINK=on: Create llvm compiler links if llvm is installed
STATIC=off: Build static executables and/or libraries
TINDERBOX=off: Create tarball for tinderbox usage
===> Use 'make config' to modify these settings
devel/ccache: fix documented default cache size
The howto file stated the default cache size is 1GB, but ccache's
actual default has been 5GB since version 3.4.1.
PR: 271572
Approved by: bdrewery (maintainer timeout)
devel/ccache4: new port
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.
PR: 234971
Approved by: bdrewery
Author: Oleg Sidorkin <osidorkin@gmail.com>
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
devel: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* "Waitman Gobble" <uzimac@da3m0n8t3r.com>
* <jkoshy@FreeBSD.org>
* Aaron Dalton <aaron@FreeBSD.org>
* Aaron Dalton <aaron@daltons.ca>
* Aaron H. K. Diep <ahkdiep@gmail.com>
* Aaron Hurt <ahurt@anbcs.com>
* Abel Chow <abel_chow@yahoo.com>
* Adam McLaurin
* Adam Saponara <as@php.net>
* Adam Weinberger <adamw@FreeBSD.org>
* Ade Lovett <ade@FreeBSD.org>
(Only the first 15 lines of the commit message are shown above )
*/*: Remove redundant '-[0-9]*' from CONFLICTS_INSTALL
The conflict checks compare the patterns first against the package
names without version (as reported by "pkg query "%n"), then - if
there was no match - agsinst the full package names including the
version (as reported by "pkg query "%n-%v").
Approved by: portmgr (blanket)
devel/ccache: Bump to 3.7.12
- Some unneeded gmake features are stripped from the Makefile.in to
avoid a dependency.
- This is the last no-dependency ccache. The 4.0 branch requires at
least CMake which breaks WITH_CCACHE_BUILD handling. Work is in
progress to resolve that.
- Update compiler list
- Symlink to compiler-cpp where appropriate but not raw 'cpp' as the default
compiler packages don't consistently provide that command.
Fix recursive dependency issue with gmake.
Add a hard .error so I don't miss this again.
PR: 237979
Submitted by: tcberner, adamw (based on)
Pointyhat to: bdrewery
- Update to 3.4.2
- MEMCACHED: Switch to github development branch for memcached
- Fix memcached (non-static) linking in libsasl, libopie, libcrypto when
unneeded (files/extra-patch-memcached-configure.ac).
- Fix CONFLICTS_INSTALL causing slave ports to conflict on themselves.
- DOCS: Add NEWS files
Update howto
- 11.0+ base can just use WITH_CCACHE_BUILD=yes [1]
- Remove older advise for libtool which is no longer needed
- No need for clang unused argument hack anymore
PR: 222765 [1]
Submitted by: pete@nomadlogic.org [1] (based on)
MEMCACHED+STATIC: Fix not having HAVE_LIBMEMCACHED defined.
This was causing memcached functionality to not work.
Also flip around the link ordering for libmemcached and libsasl2 to
resolve link-time issues.
Sponsored by: Dell EMC Isilon
Fix ccache-memcached-static build with libmemcached+sasl support.
Now that libmemcached supports/requires sasl, we must link it and its
dependencies in. Use an awful hack due to the lack of sane pkgconf
files.
Add devel/ccache-static and devel/ccache-memcached-static ports.
These are to allow packages to be created for use where a static
ccache is needed to avoid build dependencies. Poudriere is
growing support for this use case. While a ccache-static is
not likely as useful, the ccache-memcached-static port will
allow Poudriere to use ccache+memcached in its jails without
needing to bootstrap ccache-memcached and dealing with the
cyclic dependency problem of building that or compromising
with not building it with a compiler cache.
WITH_CCACHE_BUILD: Add a NO_CCACHE_DEPEND to allow using ccache without the
dependency.
This allows WITH_CCACHE_BUILD to be set and still allow modifying MAKE_ENV/CC,
etc, to achieve using the ccache wrappers located at LOCALBASE/libexec/ccache.
This kind of mechanism is needed to support ccache-memcached which has
many build dependencies. Building a version of that first then allows
building further ports with it without introducing cyclic dependencies.
Poudriere will grow support for using a static version of ccache for this
purpose.
With hat: portmgr
ccache-memcached: Fix STATIC build.
Libmemcached is a C++ library, thus we need to use a C++ linker to link to it.
This is only really a problem when building a static binary since we need to
bring in various libc++ and libcxxrt symbols. The upstream ccache+memcached
patch had support for this with --enable-static but only via a hack for
GCC to force addding -lstdc++. The method in these patches works
for either compiler by using CXX to check for -lmemcached, and later using
CXX to link ccache.
Add a patch for memcached to ccache along with a slave devel/ccache-memcached
port.
This patch is not safe for WITH_CCACHE_BUILD support yet as that causes all
ports to depend on devel/ccache. Enabling that patch would then cause the
new devel/libmemcached dependency to require devel/ccache which is a cyclic
dependency. The autoconf dependency also causes issues.
Add a devel/ccache-memcached slave port that would allow a user to use
the ccache+memcached package manually with ports without WITH_CCACHE_BUILD.
This patch comes from https://github.com/ccache/ccache/pull/58 and has been
an ongoing effort over a few years to be merged into the mainline of ccache.
Documenation for it can be found in the MANUAL file at:
/usr/local/share/doc/ccache/MANUAL.txt
Sponsored by: Dell EMC Isilon
- Don't cache -fcolor-diagnostics.
Unlike gmake, which ccache is primarily targetted at, our make does not
give a TTY to stderr. Thus make -j does not use -fcolor-diagnostics by
default. If you run with make -j, then run make again ccache will
add in -fcolor-diagnostics and find only cache misses. Skip processing of
-fcolor-diagnostics (and gcc equivalents) to avoid this problem and fix
cache hits when flip-flopping between TTY/colors. Fixing our make is
possible but this change also allows the user to decide to add
-fcolor-diagnostics and still use their existing uncolored cache.
Always default CCACHE_CPP2 to 1, otherwise a build error with parenthesis can
occur in buildworld when upgrading from a GCC-built clang or pre-10 system to a
system built with clang.
Fix use with clang. CCACHE_CPP2 is still required. Otherwise the
errors with parenthesis occur again.
Seen with www/uwsgi.
Reported by: blackflow on freenode
- Add COLORS option to enable contributed colors patch that uses colors
when possible
PR: ports/186851
Submitted by: Olivier <software-freebsd@interfasys.ch>
Obtained from: https://groups.google.com/forum/#!topic/ccache/-Zehp1Zs3Lg [*]
[*] Backported to 3.1.9 by me and CC_IS_CLANG and CC_IS_GCC support added.
- Convert to staging
- Update howto with a safer example
- Update howto with note on using WITH_CCACHE_BUILD for ports
- Add TINDERBOX option and fix install/plist for when it is not enabled
- Always enable CCACHE_CPP2 on CURRENT after clang became the default.
This fixes building ports with ccache+clang without needing CCACHE_CPP2
set in make.conf. This fix will be removed once upstream ccache has a
working fix for this.
Note that this does not fix the issue if building on non-CURRENT with
CC=clang
- Fix ccache for CURRENT world builds by automatically defining
CCACHE_CPP2=1 when COMPILER_TYPE=clang (this will be removed
once upstream fixes the issue). This does not address port
builds yet.
- Add more hints for building with clang
- Split MASTER_SITES into 2 lines
- Note that textproc/libexttextcat is an example port that currently
fails to build with clang+ccache due to bug 8118 ('unused -I'). I
plan to add the upstream patch to fix this after more testing.
Restore 'Created by' header information. This has been removed during the
first announcement of the new trimming rule and the finalized overworked
version.
Feature safe: yes