From owner-ports-jp@jp.freebsd.org  Thu Aug 21 10:21:26 1997
Received: by jaz.jp.freebsd.org (8.8.7+2.7Wbeta6/8.7.3) id KAA28093
	Thu, 21 Aug 1997 10:21:26 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.7+2.7Wbeta6/8.7.3) with ESMTP id KAA28074
	for <ports-jp@jp.FreeBSD.org>; Thu, 21 Aug 1997 10:21:24 +0900 (JST)
Received: by uno.sat.t.u-tokyo.ac.jp (8.8.5/8.7.3) with ESMTP
	id KAA16298; Thu, 21 Aug 1997 10:21:12 +0900 (JST)
Received: (from asami@localhost) by vader.cs.berkeley.edu (8.8.6/8.7.3) id SAA05104; Wed, 20 Aug 1997 18:19:28 -0700 (PDT)
Date: Wed, 20 Aug 1997 18:19:28 -0700 (PDT)
Message-Id: <199708210119.SAA05104@vader.cs.berkeley.edu>
To: ports-jp@jp.FreeBSD.org
In-reply-to: <9136.872087653@coconut.itojun.org>
From: asami@cs.berkeley.edu (Satoshi Asami)
Reply-To: ports-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=20]
X-Sequence: ports-jp 1571
Subject: [ports-jp 1571] Re: bsd.port.mk with timestamp checking
Errors-To: owner-ports-jp@jp.freebsd.org
Sender: owner-ports-jp@jp.freebsd.org

 * From: itojun@itojun.org

 * 	$B$*;n$7$"$l!#(B

$B$3!<$f!<$N$O$J$k$Y$/%Q%C%A7A<0$G$*4j$$$7$?$$$s$G$9$,!#(B(^_^;)

$B$H$$$&$@$1$8$c$"$l$J$N$G!"$G$#$U$C$F$_$^$7$?!#(B

=======
--- bsd.port.mk	Tue Aug 19 21:32:50 1997
+++ /tmp/bsd.port.mk	Wed Aug 20 14:03:02 1997
@@ -390,6 +389,7 @@
 MD5?=			md5
 .endif
 MD5_FILE?=		${FILESDIR}/md5
+STAMP_FILE?=		${FILESDIR}/stamp
 
 MAKE_FLAGS?=	-f
 MAKEFILE?=		Makefile
@@ -814,6 +814,12 @@
 	@${DO_NADA}
 .endif
 
+.if defined(NO_CHECKSTAMP) && !target(checkstamp)
+checkstamp: fetch
+	@${DO_NADA}
+.endif
+
+
 # Disable extract
 .if defined(NO_EXTRACT) && !target(extract)
 extract: checksum
@@ -1174,7 +1180,7 @@
 ################################################################
 
 .if !target(fetch)
-fetch:
+fetch: checkstamp
 	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-fetch
 .endif
 
@@ -1357,6 +1363,14 @@
 	done
 .endif
 
+.if !target(makestamp)
+makestamp:
+	@${MKDIR} ${FILESDIR}
+	@if [ -f ${STAMP_FILE} ]; then ${RM} -f ${STAMP_FILE}; fi
+	@grep 'Id: bsd.port.mk,v' /usr/share/mk/bsd.port.mk | head -1 | \
+		perl -pe 's/.*(\d\d\d\d)\/(\d\d)\/(\d\d) (\d\d):(\d\d):(\d\d).*/$$1$$2$$3$$4/' > ${STAMP_FILE}
+.endif
+
 .if !target(checksum)
 checksum: fetch
 	@if [ ! -f ${MD5_FILE} ]; then \
@@ -1399,6 +1413,23 @@
 		  fi) ; \
 	fi
 .endif
+
+.if !target(checkstamp)
+checkstamp:
+	@if [ ! -f ${STAMP_FILE} ]; then \
+		${ECHO_MSG} ">> No bsd.port.mk timestamp file."; \
+	else ( \
+		CURSTAMP=`grep 'Id: bsd.port.mk,v' /usr/share/mk/bsd.port.mk | head -1 | perl -pe 's/.*(\d\d\d\d)\/(\d\d)\/(\d\d) (\d\d):(\d\d):(\d\d).*/$$1$$2$$3$$4/'`; \
+		EXPECTEDSTAMP=`cat ${STAMP_FILE}`; \
+		if [ "$$CURSTAMP" -lt "$$EXPECTEDSTAMP" ]; then \
+			${ECHO_MSG} "bsd.port.mk looks older than expected."; \
+			${ECHO_MSG} "If you wish to force make the port, type"; \
+			${ECHO_MSG} "\"make NO_CHECKSTAMP=yes [other args]\"."; \
+			exit 1; \
+		fi ); \
+	fi
+.endif
+
 
 ################################################################
 # The special package-building targets
=======

 * 	$B4pK\E*$K$O!"(Bport$B:n@.<T$N;H$C$?(Bbsd.port.mk$B$NF|IU$r$_$^$9!#(B
 * 	perl$B8F$s$G$k$H$3$m$,$J$5$1$J$$$G$9$,!";H$C$F$/$l$k$J$i(Bsed
 * 	$B;H$&$h$&$KD>$7$^$9!#(Bbranch$B$O$H$j$"$($:L5;k$7$F$F$$$$$G$9$h$M(B?
 * 	($B$3$&$$$&%A%'%C%/$O$J$$$h$j$O$"$C$?J}$,$:$C$H$$$$$H$*$b$&$N$G(B)

$B;n$7$F$$$^$;$s$,!"$h$5$=$&$G$9$M!#AG@2$i$7$$!#(B

$B$G$b!"$3$l$@$1$@$H(B "/bin/sh" -> "${SH}"$B$H$+$GBgNL$K%3%_%C%H$9$k$H$-$K(B
$B%?%$%`%9%?%s%W%U%!%$%k$rD>$9$N$rK:$l$k$3$H$,$"$j$=$&$G$9$M!#$^$"!"$=$s(B
$B$J$3$H$^$GLLE]8+$-$l$J$$$H$$$($P$=$l$^$G$G$9$,!#(B

$B$3$l!"K\2H$N(B ports$B$NJ}$KN.$9$s$G$9$+!)!J$=$&$7$J$$$H$^$?F|K\?M$@$1$G>!(B
$B<j$K$3$s$JBg;v$J$3$H$r7h$a$F!"$H$+8@$o$l$?$j$7$F!#(B^_^;$B!K(B

$B$"$5$_(B
