Re: Error because README is missing

2004-12-06 Thread Paul Smith
%% 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

2004-12-06 Thread Ralf Wildenhues
* 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

2004-12-06 Thread Ralf Wildenhues
* 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

2004-12-06 Thread Paul Smith
%% 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

2004-12-02 Thread Paul Smith
%% 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

2004-12-02 Thread Akim Demaille
 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

2004-12-02 Thread Paul Smith
%% 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

2004-12-01 Thread Akim Demaille
 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

2004-11-30 Thread Paul Smith
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

2004-11-29 Thread Paul D. Smith
%% 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

2004-11-29 Thread Andreas Schwab
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

2004-10-23 Thread Alexandre Duret-Lutz
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