tech-pkg: Re: CVS commit: pkgsrc/net/mtr

Subject: Re: CVS commit: pkgsrc/net/mtr
To: Frederick Bruckman <fredb@immanent.net>
From: Johnny Lam <jlam@jgrind.org>
List: tech-pkg
Date: 10/25/2001 12:01:47
On Thu, Oct 25, 2001 at 01:36:31PM -0500, Frederick Bruckman wrote:
> On 2001年10月25日, Johnny Lam wrote:
> 
> > We could patch configure and the Makefile.in files, but we'd still have
> > the problem where, on machines that have automake installed, the configure-
> > generated Makefiles detect that the configure script is too new, and will
> > do the whole "aclocal; automake; autoconf; autoheader" sequence, which
> > overwrites all of our changes. We need something like:
> 
> Your solution is needlessly complicated. All you have to do is "touch"
> the appropriate files in a pre-configure target, usually "configure",
> if it wasn't patched, all "Makefile.in"'s, and some kind of stamp
> file, like "stamp-h.in". You can usually see what to do by inspecting
> the "Makefile.in"'s. ("configure" is hardly ever too new, by the way
> -- it usually goes "aclocal; autoheader; automake; autoconf", so
> "configure" is the final target of all this.)
> 
> There are lot's of examples in "pkgsrc" of how to do this. See
> "chat/xchat" e.g..
I'm all for a better solution. I've made a patch to bsd.pkg.mk based on the
one in chat/xchat. The behaviour is turned on by defining SUPPRESS_AUTOMAKE
in the package Makefile. I've tested on chat/kyahoo. Do we want something
like this? Can someone come up with a better sounding variable than
"SUPPRESS_AUTOMAKE"? 
	-- Johnny Lam <jlam@jgrind.org>
Index: bsd.pkg.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bsd.pkg.mk,v
retrieving revision 1.828
diff -u -r1.828 bsd.pkg.mk
--- bsd.pkg.mk	2001年10月24日 19:42:28	1.828
+++ bsd.pkg.mk	2001年10月25日 18:56:05
@@ -1509,6 +1509,29 @@
 	${_PKG_SILENT}${_PKG_DEBUG}${TRUE}
 .endif
 
+.if defined(SUPPRESS_AUTOMAKE)
+#
+# Prevent invocation of GNU "auto*" during the build process driven by the
+# generated Makefiles by touching various auto{conf,make} source files to
+# make them up-to-date.
+#
+AUTOMAKE_PATTERNS+=	*.m4
+AUTOMAKE_PATTERNS+=	*.in
+AUTOMAKE_PATTERNS+=	configure
+_AUTOMAKE_PATTERNS_FIND=	\
+	${AUTOMAKE_PATTERNS:S/$/!/:S/^/-o -name !/:S/!/"/g:S/-o//1}
+
+_CONFIGURE_PREREQ+=	suppress-automake
+suppress-automake:
+. if defined(HAS_CONFIGURE)
+	${_PKG_SILENT}${_PKG_DEBUG}					\
+	cd ${WRKSRC};							\
+	${FIND} . ${_AUTOMAKE_PATTERNS_FIND} | ${XARGS} ${TOUCH} ${TOUCH_ARGS}
+. else
+	${_PKG_SILENT}${_PKG_DEBUG}${TRUE}
+. endif
+.endif
+
 .if !target(do-configure)
 do-configure: ${_CONFIGURE_PREREQ}
 	${_PKG_SILENT}${_PKG_DEBUG}if [ -f ${SCRIPTDIR}/configure ]; then \

AltStyle によって変換されたページ (->オリジナル) /