[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Broken makefile given Autoconf version mismatch
From: |
Ralf Wildenhues |
Subject: |
Re: Broken makefile given Autoconf version mismatch |
Date: |
Wed, 12 Apr 2006 20:45:04 +0200 |
User-agent: |
Mutt/1.5.9i |
* Stepan Kasal wrote on Wed, Apr 12, 2006 at 02:17:53PM CEST:
> The proposal
>
> http://lists.gnu.org/archive/html/bug-autoconf/2005-03/msg00027.html
>
> goes in this direction, but needs more work, as Bruno said.
> I might do that work when we come to an agreement what we want.
I know you won't like this ;-) but just to help the discussion,
here's a patch that I think does more or less what Bruno's patch
intends to do, against current CVS. I'm unsure why he chose the
replacements that he chose, so I left them that way. And I would
certainly not mind a cleaner solution.
(The backslash quoting mess in the case patterns is because old
shells will mind different quoting.)
Note that it fails to do the complete work for the Autoconf package
itself, if that has been bootstrapped with CVS Automake: that uses
`${datarootdir}' for the value of `lispdir', too. So wouldn't that
mean AM_PATH_LISPDIR needs increased Autoconf requirement, as in the
other patch below?
Cheers,
Ralf
Automake:
* m4/lispdir.m4 (AM_PATH_LISPDIR): Require Autoconf 2.59c.
Index: m4/lispdir.m4
===================================================================
RCS file: /cvs/automake/automake/m4/lispdir.m4,v
retrieving revision 1.27
diff -u -r1.27 lispdir.m4
--- m4/lispdir.m4 27 Feb 2005 00:24:31 -0000 1.27
+++ m4/lispdir.m4 12 Apr 2006 18:39:31 -0000
@@ -15,7 +15,8 @@
# AM_PATH_LISPDIR
# ---------------
AC_DEFUN([AM_PATH_LISPDIR],
-[ # If set to t, that means we are running in a shell under Emacs.
+[AC_PREREQ([2.59c])dnl
+ # If set to t, that means we are running in a shell under Emacs.
# If you have an Emacs named "t", then use the full path.
test x"$EMACS" = xt && EMACS=
AC_CHECK_PROGS([EMACS], [emacs xemacs], [no])
Autoconf:
* lib/autoconf/status.m4 (_AC_OUTPUT_CHECK_DATAROOTDIR):
New macro, to be used..
(_AC_OUTPUT_FILE): ..here, to output a warning and override
those directory variables that contain `${datarootdir}' as per
GCS change, when the instantiated file does not contain the
plain string `datarootdir', indicating that it needs to be
updated.
<datadir, docdir, infodir, localedir, mandir>: Substitute these
here.
* NEWS: Update.
Based on a patch by Bruno Haible.
Index: NEWS
===================================================================
RCS file: /cvsroot/autoconf/autoconf/NEWS,v
retrieving revision 1.359
diff -u -r1.359 NEWS
--- NEWS 10 Apr 2006 17:57:17 -0000 1.359
+++ NEWS 12 Apr 2006 18:03:29 -0000
@@ -25,7 +25,10 @@
This means that if you use any of address@hidden@', address@hidden@', or
address@hidden@' in a file, you will have to ensure `${datarootdir}' is
- defined in this file.
+ defined in this file. As a temporary measure, if any of those are
+ found but no mention of `datarootdir', the substitutions will be
+ replaced with with values that do not contain `${datarootdir}',
+ and a warning will be issued.
** @top_builddir@ is now a dir name: it is always nonempty and doesn't have
a trailing slash. Similar change will be made to ac_top_builddir in a
Index: lib/autoconf/status.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/status.m4,v
retrieving revision 1.94
diff -u -r1.94 status.m4
--- lib/autoconf/status.m4 6 Apr 2006 17:38:06 -0000 1.94
+++ lib/autoconf/status.m4 12 Apr 2006 18:22:07 -0000
@@ -475,6 +475,52 @@
])# _AC_OUTPUT_FILES_PREPARE
+# _AC_OUTPUT_CHECK_DATAROOTDIR
+# ----------------------------
+# Compute @datadir@, @docdir@, @infodir@, @localedir@, @mandir@ substitution
+# value depending on whether the file has a definition for ${datarootdir}
+# (i.e. obeys the GNU standards as of autoconf-2.60) or not (i.e. obeys the
+# GNU standards as of autoconf <= 2.59).
+#
+# Remove this sometime after 2.61.
+m4_defun([_AC_OUTPUT_CHECK_DATAROOTDIR],
+[cat >>$CONFIG_STATUS <<_ACEOF
+if grep datarootdir \$ac_file_inputs >/dev/null; then
+ ac_datadir='$datadir'
+ ac_docdir='$docdir'
+ ac_infodir='$infodir'
+ ac_localedir='$localedir'
+ ac_mandir='$mandir'
+else
+ if test -n "\`sed -n '/@datadir@/p;/@datadir@/p;/@docdir@/p;/@infodir@/p
+ /@localedir@/p;/@mandir@/p' \$ac_file_inputs\`"; then
+ AS_WARN([\$ac_file ignores the --datarootdir setting])
+ fi
+ case '$datadir' in
+ \\\$\\{datarootdir\\}*) ac_datadir='\${prefix}/share' ;;
+ *) ac_datadir='$datadir' ;;
+ esac
+ case '$docdir' in
+ \\\$\\{datarootdir\\}*)
+ ac_docdir=\`echo '$docdir' | sed 's,{datarootdir},{datadir},'\` ;;
+ *) ac_docdir='$docdir' ;;
+ esac
+ case '$infodir' in
+ \\\$\\{datarootdir\\}*) ac_infodir='\${datadir}/info' ;;
+ *) ac_infodir='$infodir' ;;
+ esac
+ case '$localedir' in
+ \\\$\\{datarootdir\\}*) ac_localedir='\${datadir}/locale' ;;
+ *) ac_localedir='$localedir' ;;
+ esac
+ case '$mandir' in
+ \\\$\\{datarootdir\\}*) ac_mandir='\${datadir}/man' ;;
+ *) ac_mandir='$mandir' ;;
+ esac
+fi
+_ACEOF
+])
+
# _AC_OUTPUT_FILE
# ---------------
# Do the variable substitutions to create the Makefiles or whatever.
@@ -496,6 +542,8 @@
])
_ACEOF
+_AC_OUTPUT_CHECK_DATAROOTDIR
+
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
@@ -512,7 +560,9 @@
s&@top_builddir@&$ac_top_builddir_sub&;t t[]AC_SUBST_TRACE([top_builddir])
m4_foreach([_AC_Var], [srcdir, abs_srcdir, top_srcdir, abs_top_srcdir,
builddir, abs_builddir,
- abs_top_builddir]AC_PROVIDE_IFELSE([AC_PROG_INSTALL],
[[, INSTALL]]),
+
abs_top_builddir]AC_PROVIDE_IFELSE([_AC_OUTPUT_CHECK_DATAROOTDIR],
+ [[, datadir, docdir, infodir, localedir,
+ mandir]])AC_PROVIDE_IFELSE([AC_PROG_INSTALL], [[,
INSTALL]]),
[s&@_AC_Var@&$ac_[]_AC_Var&;t t[]AC_SUBST_TRACE(_AC_Var)
])dnl
" $ac_file_inputs m4_defn([_AC_SED_CMDS])>$tmp/out
- Broken makefile given Autoconf version mismatch, Noah Misch, 2006/04/11
- Re: Broken makefile given Autoconf version mismatch, Stepan Kasal, 2006/04/12
- Re: Broken makefile given Autoconf version mismatch, Ralf Wildenhues, 2006/04/12
- Re: Broken makefile given Autoconf version mismatch,
Ralf Wildenhues <=
- Re: Broken makefile given Autoconf version mismatch, Stepan Kasal, 2006/04/12
- Re: Broken makefile given Autoconf version mismatch, Ralf Wildenhues, 2006/04/12
- Re: Broken makefile given Autoconf version mismatch, Keith Marshall, 2006/04/16
- Re: Broken makefile given Autoconf version mismatch, Andreas Schwab, 2006/04/16
- Re: Broken makefile given Autoconf version mismatch, Keith Marshall, 2006/04/16
- Re: Broken makefile given Autoconf version mismatch, Andreas Schwab, 2006/04/16
- Re: Broken makefile given Autoconf version mismatch, Stepan Kasal, 2006/04/16
- Re: Broken makefile given Autoconf version mismatch, Keith Marshall, 2006/04/16
- Re: Broken makefile given Autoconf version mismatch, Stepan Kasal, 2006/04/17
- Re: Broken makefile given Autoconf version mismatch, Paul Eggert, 2006/04/17