Re: Error because README is missing
%% Akim Demaille [EMAIL PROTECTED] writes: ad Finally, note that you are allowed to ask config.status to perform ad substitutions on files it doesn't know[1]. In your case, I'm unsure ad binding the instantiation to configure instead of make is right. Doh! I thought this would be the perfect answer but I completely forgot: the whole point behind build.sh is that you _DON'T HAVE A MAKE PROGRAM_! This shell script lets you build the GNU make distribution on a system with no native make installed. So, I can't put the rules to build the build.sh file in the Makefile, since when you need build.sh there will not be any make to run the Makefile. I suppose I could tell those folks to run the config.status step by hand, but I'd really like to get this built through the configure script. Ideas? -- --- Paul D. Smith [EMAIL PROTECTED] HASMAT--HA Software Mthds Tools Please remain calm...I may be mad, but I am a professional. --Mad Scientist --- These are my opinions---Nortel Networks takes no responsibility for them.
Re: Error because README is missing
* Paul Smith wrote on Sun, Dec 05, 2004 at 08:25:56PM CET: %% Akim Demaille [EMAIL PROTECTED] writes: ad Finally, note that you are allowed to ask config.status to perform ad substitutions on files it doesn't know[1]. In your case, I'm unsure ad binding the instantiation to configure instead of make is right. Doh! I thought this would be the perfect answer but I completely forgot: the whole point behind build.sh is that you _DON'T HAVE A MAKE PROGRAM_! This shell script lets you build the GNU make distribution on a system with no native make installed. So, I can't put the rules to build the build.sh file in the Makefile, since when you need build.sh there will not be any make to run the Makefile. I suppose I could tell those folks to run the config.status step by hand, but I'd really like to get this built through the configure script. Ideas? dnl ... AC_CONFIG_FILES([Makefile]) AC_OUTPUT touch foo.in ./config.status --file foo What am I missing? Regards, Ralf
Re: Error because README is missing
* Stepan Kasal wrote on Mon, Dec 06, 2004 at 10:03:27AM CET: Hello, On Mon, Dec 06, 2004 at 09:28:17AM +0100, Ralf Wildenhues wrote: AC_OUTPUT touch foo.in ./config.status --file foo why the ``touch''? (./config.status doesn't check the timestamps.) Oh, that was just copy-n-paste from the example I tested, the `touch' creates the file. :-) But while we're at it, since Automake uses $SHELL with config.status, maybe it's more portable to do it as well (I don't know): $SHELL ./config.status --file foo Regards, Ralf
Re: Error because README is missing
%% Ralf Wildenhues [EMAIL PROTECTED] writes: I suppose I could tell those folks to run the config.status step by hand, but I'd really like to get this built through the configure script. Ideas? rw dnl ... rw AC_CONFIG_FILES([Makefile]) rw AC_OUTPUT rw touch foo.in rw ./config.status --file foo rw What am I missing? I wasn't sure config.status would be available while (my part of) configure was still running. I guess if all AC_OUTPUT does is run config.status --file then that would make sense, but it could also do the translation inline. I'll give it a try; cheers! -- --- Paul D. Smith [EMAIL PROTECTED] HASMAT--HA Software Mthds Tools Please remain calm...I may be mad, but I am a professional. --Mad Scientist --- These are my opinions---Nortel Networks takes no responsibility for them.
Re: Error because README is missing
%% Akim Demaille [EMAIL PROTECTED] writes: I need a way to have a file marked as a config file, but not have configure (or automake) fail if the .in input file doesn't exist. ad Hm... What is the service you are expecting? You say that ad configure shouldn't fail, but if it's a config file, configure is ad expected to fail. Unless you do mean configure, and not ad config.status? When I first check out my code from CVS, I don't have a build.sh.in file. That file is autogenerated as part of the build process, from a template file. It's not required for a maintainer-mode build: that file is basically a bootstrap assist: a way to build make if you don't have any make yet. Maintainers are expected to have a full suite of tools at their disposal including make. By the time I actually make a distfile, that file (build.sh.in) will be there and it will be included in the distfile so normal users will never see this issue. But, I need a way to run autoreconf in a clean workspace where that file doesn't exist... and if I use normal AC_CONFIG_FILES then automake complains and won't build my Makefile.in. -- --- Paul D. Smith [EMAIL PROTECTED] HASMAT--HA Software Mthds Tools Please remain calm...I may be mad, but I am a professional. --Mad Scientist --- These are my opinions---Nortel Networks takes no responsibility for them.
Re: Error because README is missing
Paul == Paul Smith [EMAIL PROTECTED] writes: %% Akim Demaille [EMAIL PROTECTED] writes: I need a way to have a file marked as a config file, but not have configure (or automake) fail if the .in input file doesn't exist. ad Hm... What is the service you are expecting? You say that ad configure shouldn't fail, but if it's a config file, configure is ad expected to fail. Unless you do mean configure, and not ad config.status? When I first check out my code from CVS, I don't have a build.sh.in file. That file is autogenerated as part of the build process, from a template file. If you have a bootstrap script, why wouldn't it create a fake file, run autoreconf, and them create the right file? Do you run autoreconf several times? It seems so, since that's what implied Andreas' solution. Finally, note that you are allowed to ask config.status to perform substitutions on files it doesn't know[1]. In your case, I'm unsure binding the instantiation to configure instead of make is right. An example: in autoconf's tree. src/ace/_build % ./config.status --help nostromo 17:45 `config.status' instantiates files from templates according to the current configuration. Usage: ./config.status [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --versionprint version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheckupdate config.status by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: config/Makefile tests/Makefile tests/atlocal tests/autoconf:tests/wrapper.in tests/autoheader:tests/wrapper.in tests/autom4te:tests/wrapper.in tests/autoreconf:tests/wrapper.in tests/autoscan:tests/wrapper.in tests/autoupdate:tests/wrapper.in tests/ifnames:tests/wrapper.in man/Makefile lib/emacs/Makefile Makefile doc/Makefile lib/Makefile lib/Autom4te/Makefile lib/autoscan/Makefile lib/m4sugar/Makefile lib/autoconf/Makefile lib/autotest/Makefile bin/Makefile Configuration commands: tests/atconfig Report bugs to [EMAIL PROTECTED]. src/ace/_build % echo @srcdir@ foo.innostromo 17:45 src/ace/_build % ./config.status --file=foo nostromo 17:45 config.status: creating foo src/ace/_build % cat foo nostromo 17:45 ..
Re: Error because README is missing
%% Akim Demaille [EMAIL PROTECTED] writes: ad If you have a bootstrap script, why wouldn't it create a fake ad file, run autoreconf, and them create the right file? I don't have a bootstrap script for building out of CVS. I could create one, I guess. ad Finally, note that you are allowed to ask config.status to perform ad substitutions on files it doesn't know[1]. In your case, I'm unsure ad binding the instantiation to configure instead of make is right. Ah!! I think you're right; that's probably the right way to do it. Thanks, I'll look into this. -- --- Paul D. Smith [EMAIL PROTECTED] HASMAT--HA Software Mthds Tools Please remain calm...I may be mad, but I am a professional. --Mad Scientist --- These are my opinions---Nortel Networks takes no responsibility for them.
Re: Error because README is missing
Andreas == Andreas Schwab [EMAIL PROTECTED] writes: Untested code ahead. m4_syscmd([test -f build.sh.in])dnl m4_if(m4_sysval, 0, [AC_CONFIG_FILES(build.sh)]) Bad idea: side effects are incompatible with the (autom4te) cache. If the environment changes but not the sources of configure, it won't be regenerated. Similarly with what Automake needs to trace.
Re: Error because README is missing
That worked! Thanks Andreas. -- --- Paul D. Smith [EMAIL PROTECTED] HASMAT--HA Software Mthds Tools Please remain calm...I may be mad, but I am a professional. --Mad Scientist --- These are my opinions---Nortel Networks takes no responsibility for them.
Re: Error because README is missing
%% Alexandre Duret-Lutz [EMAIL PROTECTED] writes: adl Hi Paul, Paul == Paul Smith [EMAIL PROTECTED] writes: Paul In the GNU make package I don't have a README file when Paul it is first checked out from CVS. Paul This used to work but now automake is failing: adl What version(s) used to work, and which one is failing? I'm not sure which ones used to work, but I know 1.8 and 1.9 both fail. I think what used to happen is I would get warnings, but automake would still succeed so I could just ignore the warning and continue on, and by the time I actually got around to building a distribution everything would be fine. Paul There is a README.in which is translated into a README, Paul replacing the version info etc. adl When and how? This turns out to be the key question. My setup is a little odd; I'm willing to change/fix it if someone can suggest a better way to do what I'm doing. The README file is created with a makefile target, but it isn't in Makefile.am (see the description below). I actually solved the README problem by putting a dummy target in my Makefile.am, like this: README: Now automake doesn't complain about this anymore. However, I actually had a second error that I didn't mention because I figured it would be the same problem... but it's not. The second error is this: $ automake --add-missing --no-force configure.in:398: required file `build.sh.in' not found This file is being created with this in my configure.in file: if test -f $srcdir/build.sh.in; then AC_CONFIG_FILES(build.sh) fi Adding an empty target for build.sh.in into Makefile.am doesn't help in this situation, I guess because it's referenced in configure.in, not Makefile.am. Is there any way to get automake to work in this situation? --- What I have is a Makefile.am that's pretty straightforward. Then at the bottom of that file I have: @MAINT_MAKEFILE@ I also have a file maintMakefile which contains a bunch of maintainer-only rules for building GNU make from CVS, etc., and this makefile is written in non-portable GNU make. The Makefile.am does _NOT_ list the maintMakefile in the list of files to be distributed, so when I create a dist tarball it's not there. In configure.in I have some text like this: # Include the Maintainer's Makefile section, if it's here. MAINT_MAKEFILE=/dev/null if test -r $srcdir/maintMakefile; then MAINT_MAKEFILE=$srcdir/maintMakefile fi AC_SUBST_FILE(MAINT_MAKEFILE) The goal behind this is: * Allows me to write some complex rules using GNU make features. * Allows maintainer-only targets to be automatically added to the makefile when you have a CVS version, but automatically _NOT_ added to the makefile when you're building a real distribution. * You need GNU make to build from CVS, but not to build a dist tarball. The problem is that the rule to build the README file is in the maintMakefile, not in the Makefile.am. As an experiment I moved it to Makefile.am and sure enough, my error went away. -- --- Paul D. Smith [EMAIL PROTECTED] HASMAT--HA Software Mthds Tools Please remain calm...I may be mad, but I am a professional. --Mad Scientist --- These are my opinions---Nortel Networks takes no responsibility for them.
Re: Error because README is missing
Paul D. Smith [EMAIL PROTECTED] writes: However, I actually had a second error that I didn't mention because I figured it would be the same problem... but it's not. The second error is this: $ automake --add-missing --no-force configure.in:398: required file `build.sh.in' not found This file is being created with this in my configure.in file: if test -f $srcdir/build.sh.in; then AC_CONFIG_FILES(build.sh) fi AC_CONFIG_FILES is a declaration-like macro, you can't execute it conditionallyon the shell level. If you want to make it conditional on the existence of the input file you need to do that on the m4 level. Untested code ahead. m4_syscmd([test -f build.sh.in])dnl m4_if(m4_sysval, 0, [AC_CONFIG_FILES(build.sh)]) Andreas. -- Andreas Schwab, SuSE Labs, [EMAIL PROTECTED] SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 And now for something completely different.
Re: Error because README is missing
Hi Paul, Paul == Paul Smith [EMAIL PROTECTED] writes: Paul In the GNU make package I don't have a README file when Paul it is first checked out from CVS. There is a README.in Paul which is translated into a README, replacing the version Paul info etc. When and how? Paul This used to work but now automake is failing: What version(s) used to work, and which one is failing? Paul Makefile.am: required file `./README' not found Paul Any hints on how I can convince automake that the file Paul will really be there by the time the package is already Paul built, so it doesn't give this error? I'd rather fix Automake than work around it, because this kind of setup is expected to work already. tests/distcom3.test seems to cover exactly your case, and does not produce any error. Maybe you could modify it to show how to reproduce your problem? -- Alexandre Duret-Lutz