summaryrefslogtreecommitdiff
path: root/devel/ccache
diff options
context:
space:
mode:
authorEdwin Groothuis <edwin@FreeBSD.org>2004-10-13 03:36:42 +0000
committerEdwin Groothuis <edwin@FreeBSD.org>2004-10-13 03:36:42 +0000
commit1aed325430574bb564df00990d1042d94f193245 (patch)
tree7c045261f977e10fc9a2ccb3853385e731e494e6 /devel/ccache
parent- add USE_GCC=3.3 and unbreak (diff)
[MAINTAINER] devel/ccache: update to 2.4
- Update to 2.4 - Add workaround to use ccache when USE_GCC is used in a port PR: ports/71717 Submitted by: Michael Johnson <ahze@ahze.net>
Notes
Notes: svn path=/head/; revision=119149
Diffstat (limited to 'devel/ccache')
-rw-r--r--devel/ccache/Makefile61
-rw-r--r--devel/ccache/distinfo4
-rw-r--r--devel/ccache/files/patch-md4130
-rw-r--r--devel/ccache/files/pkg-message.in20
4 files changed, 148 insertions, 67 deletions
diff --git a/devel/ccache/Makefile b/devel/ccache/Makefile
index 05175fecde6b..deed03229d0d 100644
--- a/devel/ccache/Makefile
+++ b/devel/ccache/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= ccache
-PORTVERSION= 2.3
-PORTREVISION= 1
+PORTVERSION= 2.4
CATEGORIES= devel
MASTER_SITES= http://ccache.samba.org/ftp/ccache/
@@ -23,14 +22,62 @@ PLIST_FILES= bin/ccache
PORTDOCS= index.html \
ccache-man.html
+.if !defined(WITHOUT_COMPILER_LINKS)
+PKGMESSAGE= ${WRKDIR}/pkg-message
+CCLINKDIR= libexec/ccache/
+PLIST_DIRS= libexec/ccache
+.endif
+
+.include <bsd.port.pre.mk>
+
+.if !defined(WITHOUT_COMPILER_LINKS)
+GNU_COMPILERS= 295 33 34 35
+CCACHE_COMPILERS= cc c++ ${GNU_COMPILERS:S|^|gcc|} ${GNU_COMPILERS:S|^|g++|}
+.if ${ARCH}=="i386"
+CCACHE_COMPILERS+= icc icpc
+.endif
+.if defined(EXTRA_COMPILERS)
+CCACHE_COMPILERS+= ${EXTRA_COMPILERS}
+.endif
+PLIST_FILES+= ${CCACHE_COMPILERS:S|^|${CCLINKDIR}|}
+PLIST_DIRTS+= ${CCLINKDIR}
+.endif
+
+pre-everything::
+.if !defined(WITHOUT_COMPILER_LINKS)
+ @${ECHO_MSG} "===> Ccache will install compiler links in ${PREFIX}/libexec/ccache"
+ @${ECHO_MSG} "===> Links that will be created are"
+ @${ECHO_MSG} "===> ${CCACHE_COMPILERS}"
+ @${ECHO_MSG} "===>"
+ @${ECHO_MSG} "===> You may add more by EXTRA_COMPILERS=\"Ccompiler1 C++compiler1 etc..\""
+ @${ECHO_MSG} "===>"
+ @${ECHO_MSG} "===> You can disable compiler links by defining"
+ @${ECHO_MSG} "===> WITHOUT_COMPILER_LINKS"
+ @${ECHO_MSG} "===>"
+.endif
+
+post-extract:
+.if !defined(WITHOUT_COMPILER_LINKS)
+ @${SED} -e 's|%%CCACHE_COMPILERS%%|${CCACHE_COMPILERS}|; \
+ s|%%PREFIX%%|${PREFIX}|; s|%%CCLINKDIR%%|${CCLINKDIR}|; \
+ s|%%LOCALBASE%%|${LOCALBASE}|' \
+ ${FILESDIR}/pkg-message.in >${PKGMESSAGE}
+.endif
do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/ccache ${PREFIX}/bin
- ${INSTALL_MAN} ${WRKSRC}/${MAN1} ${PREFIX}/man/man1
+ @${INSTALL_PROGRAM} ${WRKSRC}/ccache ${PREFIX}/bin
+ @${INSTALL_MAN} ${WRKSRC}/${MAN1} ${PREFIX}/man/man1
+.if !defined(WITHOUT_COMPILER_LINKS)
+ @${MKDIR} ${PREFIX}/${CCLINKDIR}
+.for link in ${CCACHE_COMPILERS}
+ @${LN} -sf ${PREFIX}/bin/ccache ${PREFIX}/${CCLINKDIR}/${link}
+.endfor
+.endif
.if !defined(NOPORTDOCS)
- ${MKDIR} ${DOCSDIR}
+ @${MKDIR} ${DOCSDIR}
.for i in ${PORTDOCS}
- ${INSTALL_DATA} ${WRKSRC}/web/${i} ${DOCSDIR}
+ @${INSTALL_DATA} ${WRKSRC}/web/${i} ${DOCSDIR}
.endfor
.endif
+ @${CAT} ${PKGMESSAGE}
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>IR}
diff --git a/devel/ccache/distinfo b/devel/ccache/distinfo
index 8ee385ae5745..0353c0e70bb1 100644
--- a/devel/ccache/distinfo
+++ b/devel/ccache/distinfo
@@ -1,2 +1,2 @@
-MD5 (ccache-2.3.tar.gz) = 5e4afc0b170bf282d1813aeaf3d577d2
-SIZE (ccache-2.3.tar.gz) = 84386
+MD5 (ccache-2.4.tar.gz) = 73c1ed1e767c1752dd0f548ec1e66ce7
+SIZE (ccache-2.4.tar.gz) = 86363
diff --git a/devel/ccache/files/patch-md4 b/devel/ccache/files/patch-md4
index 00b3cf75c519..751296e91af4 100644
--- a/devel/ccache/files/patch-md4
+++ b/devel/ccache/files/patch-md4
@@ -1,41 +1,26 @@
---- Makefile.in Mon Apr 29 05:14:11 2002
-+++ Makefile.in Fri May 3 14:48:08 2002
-@@ -11,7 +11,7 @@
- CFLAGS=@CFLAGS@ -I.
-
--OBJS= ccache.o mdfour.o hash.o execute.o util.o args.o stats.o \
-+OBJS= ccache.o hash.o execute.o util.o args.o stats.o \
- cleanup.o snprintf.o unify.o
--HEADERS = ccache.h mdfour.h
-+HEADERS = ccache.h
-
- all: ccache
-@@ -20,5 +20,5 @@
-
- ccache: $(OBJS) $(HEADERS)
-- $(CC) $(CFLAGS) -o $@ $(OBJS)
-+ $(CC) $(CFLAGS) -o $@ $(OBJS) -lmd
+--- ccache.h.orig Wed Sep 8 21:30:40 2004
++++ ccache.h Wed Sep 8 21:31:53 2004
+@@ -65,14 +65,14 @@
- ccache.1: ccache.yo
---- ccache.h Mon Apr 29 05:14:12 2002
-+++ ccache.h Fri May 3 14:47:05 2002
-@@ -57,5 +57,5 @@
typedef unsigned uint32;
-#include "mdfour.h"
-+#include <md4.h>
++#include <md4.h>
void hash_start(void);
-@@ -64,5 +64,5 @@
+ void hash_string(const char *s);
+ void hash_int(int x);
void hash_file(const char *fname);
char *hash_result(void);
-void hash_buffer(const char *s, int len);
+void hash_buffer(const unsigned char *s, unsigned int len);
void cc_log(const char *format, ...);
---- hash.c Mon Apr 29 05:14:12 2002
-+++ hash.c Fri May 3 15:18:08 2002
-@@ -21,15 +21,20 @@
+ void fatal(const char *msg);
+--- hash.c.orig Wed Sep 8 21:36:22 2004
++++ hash.c Wed Sep 8 21:36:25 2004
+@@ -20,17 +20,22 @@
+ */
#include "ccache.h"
+#include <sys/types.h>
@@ -44,14 +29,14 @@
-static struct mdfour md;
+static MD4_CTX md;
-+static off_t totalN;
++static off_t totalN;
-void hash_buffer(const char *s, int len)
+void hash_buffer(const unsigned char *s, unsigned int len)
{
- mdfour_update(&md, (unsigned char *)s, len);
-+ totalN += len;
-+ MD4Update(&md, s, len);
++ totalN += len;
++ MD4Update(&md, s, len);
}
void hash_start(void)
@@ -60,41 +45,45 @@
+ MD4Init(&md);
}
-@@ -47,16 +52,27 @@
+ void hash_string(const char *s)
+@@ -46,35 +51,40 @@
+ /* add contents of a file to the hash */
void hash_file(const char *fname)
{
- char buf[1024];
- int fd, n;
-+ char *buf;
-+ int fd;
-+ struct stat stats;
++ char *buf;
++ int fd;
++ struct stat stats;
- fd = open(fname, O_RDONLY);
+ fd = open(fname, O_RDONLY|O_BINARY);
if (fd == -1) {
cc_log("Failed to open %s\n", fname);
- fatal("hash_file");
-+ fatal(__FUNCTION__);
++ fatal(__FUNCTION__);
}
--
+
- while ((n = read(fd, buf, sizeof(buf))) > 0) {
- hash_buffer(buf, n);
-+ if (fstat(fd, &stats) != 0) {
-+ cc_log("Failed to fstat the opened %s (descriptor %d)\n",
-+ fname, fd);
-+ close(fd);
-+ fatal(__FUNCTION__);
-+ }
-+ buf = mmap(NULL, stats.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
-+ if (buf == MAP_FAILED) {
-+ cc_log("Failed to mmap %s\n", fname);
-+ close(fd);
-+ fatal(__FUNCTION__);
- }
+- }
++ if (fstat(fd, &stats) != 0) {
++ cc_log("Failed to fstat the opened %s (descriptor %d)\n",
++ fname, fd);
++ close(fd);
++ fatal(__FUNCTION__);
++ }
++ buf = mmap(NULL, stats.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
++ if (buf == MAP_FAILED) {
++ cc_log("Failed to mmap %s\n", fname);
++ close(fd);
++ fatal(__FUNCTION__);
++ }
+
-+ hash_buffer(buf, stats.st_size);
++ hash_buffer(buf, stats.st_size);
close(fd);
}
-@@ -65,15 +81,9 @@
+
+ /* return the hash result as a static string */
char *hash_result(void)
{
- unsigned char sum[16];
@@ -103,18 +92,20 @@
- hash_buffer(NULL, 0);
- mdfour_result(&md, sum);
-+ MD4End(&md, ret);
++ MD4End(&md, ret);
- for (i=0;i<16;i++) {
- sprintf(&ret[i*2], "%02x", (unsigned)sum[i]);
- }
- sprintf(&ret[i*2], "-%u", (unsigned)md.totalN);
-+ snprintf(ret + 32, sizeof ret - 32, "-%lu", (unsigned long)totalN);
-
+-
++ snprintf(ret + 32, sizeof ret - 32, "-%lu", (unsigned long)totalN);
return ret;
---- unify.c Sun Mar 31 23:00:31 2002
-+++ unify.c Fri May 3 15:53:13 2002
-@@ -105,11 +105,10 @@
+ }
+--- unify.c.orig Wed Sep 8 21:36:41 2004
++++ unify.c Wed Sep 8 21:37:20 2004
+@@ -104,13 +104,12 @@
+ hash_buffer((char *)buf, len);
len = 0;
}
- hash_buffer(NULL, 0);
@@ -124,7 +115,30 @@
buf[len++] = c;
- if (len == 64) {
- hash_buffer((char *)buf, len);
-+ if (len == sizeof buf) {
-+ hash_buffer((char *)buf, sizeof buf);
++ if (len == sizeof buf) {
++ hash_buffer((char *)buf, sizeof buf);
len = 0;
}
+ }
+--- Makefile.in.orig Mon Sep 6 09:04:22 2004
++++ Makefile.in Wed Sep 8 21:41:00 2004
+@@ -11,16 +11,16 @@
+ CFLAGS=@CFLAGS@ -I.
+ EXEEXT=@EXEEXT@
+
+-OBJS= ccache.o mdfour.o hash.o execute.o util.o args.o stats.o \
++OBJS= ccache.o hash.o execute.o util.o args.o stats.o \
+ cleanup.o snprintf.o unify.o
+-HEADERS = ccache.h mdfour.h
++HEADERS = ccache.h
+
+ all: ccache$(EXEEXT)
+
+ docs: ccache.1 web/ccache-man.html
+
+ ccache$(EXEEXT): $(OBJS) $(HEADERS)
+- $(CC) $(CFLAGS) -o $@ $(OBJS)
++ $(CC) $(CFLAGS) -o $@ $(OBJS) -lmd
+
+ ccache.1: ccache.yo
+ -yodl2man -o ccache.1 ccache.yo
diff --git a/devel/ccache/files/pkg-message.in b/devel/ccache/files/pkg-message.in
new file mode 100644
index 000000000000..b9e1ca341d9d
--- /dev/null
+++ b/devel/ccache/files/pkg-message.in
@@ -0,0 +1,20 @@
+Ccache has installed links for the following compilers
+%%CCACHE_COMPILERS%%
+in %%PREFIX%%/%%CCLINKDIR%%
+
+To use ccache add the following to /etc/make.conf
+
+.if !defined(NOCCACHE)
+CC=%%PREFIX%%/%%CCLINKDIR%%cc
+CXX=%%PREFIX%%/%%CCLINKDIR%%c++
+.endif
+
+If you have a problem building a port
+define NOCCACHE and try again.
+
+To use ccache with ports that use USE_GCC
+add %%PREFIX%%/%%CCLINKDIR%% to your PATH
+and make sure it is before %%LOCALBASE%%/bin
+
+Please make sure you have the compiler installed
+before you do this or it will not work!!