--- /usr/ports/devel/ccache/Makefile Tue Sep 14 00:42:39 2004 +++ /usr/ports/devel/ccache/Makefile Tue Sep 14 00:40:32 2004 @@ -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,61 @@ PORTDOCS= index.html \ ccache-man.html +.if !defined(WITHOUT_COMPILER_LINKS) +PKGMESSAGE= ${WRKDIR}/pkg-message +CCLINKDIR= libexec/ccache/ +.endif + +.include + +.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 +.include --- /usr/ports/devel/ccache/distinfo Tue Sep 14 00:42:39 2004 +++ /usr/ports/devel/ccache/distinfo Mon Sep 13 11:25:25 2004 @@ -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 --- /usr/ports/devel/ccache/files/patch-md4 Tue Sep 14 00:42:39 2004 +++ /usr/ports/devel/ccache/files/patch-md4 Tue Sep 14 00:42:18 2004 @@ -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 ++#include 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 @@ -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 --- /usr/ports/devel/ccache/files/pkg-message.in Wed Dec 31 19:00:00 1969 +++ /usr/ports/devel/ccache/files/pkg-message.in Tue Sep 14 00:49:41 2004 @@ -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!!