Problem with building .info files?

2006-11-14 Thread Paul D. Smith
The rule for building .info files from .texi files looks incorrect to me:

  .texinfo.info:
restore=:  backupdir=$(am__leading_dot)am  \
am__cwd=`pwd`  cd $(srcdir)  \
rm -rf $$backupdir  mkdir $$backupdir  \
  [...]

It seems to me that cd'ing into $(srcdir) and mucking around in there
is inappropriate: what if the source tree is on some read-only media,
or we don't have write privs to it, or whatever?

Shouldn't these backups be kept in the build directory?

In general the scripting of this rule seems dodgy in a number of
ways... but maybe there's something special about makeinfo or whatever
that mandates it?

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: Cover Texts in the automake documentation

2006-04-10 Thread Paul D. Smith
%% Russ Allbery [EMAIL PROTECTED] writes:

  ra Alexandre Duret-Lutz [EMAIL PROTECTED] writes:
   Eric:
   | Is there any way you might consider dropping the
   | Front and Back Cover Texts requirements from the manual?

   Sorry, this is the FSF policy.  Not my call.

  ra There are other GNU packages with GFDL manuals that do not have
  ra Front and Back Cover Texts, so it's clearly not a mandatory
  ra policy.  Unfortunately, the rest of us aren't really in a position
  ra to talk to the right people to get this changed, whereas the
  ra official Automake maintainers would be.  Could you try?

It's my understanding (and I'm in no way speaking for the FSF here) that
if the manual is published by the FSF as a book, with an ISBN etc., it
has to have these front and back cover texts.  Those texts only exist in
the printed forms of the manual (since the front and back covers
referred to by the texts only exist in printed forms of the manual).


However, I have no idea whether or not this is a mandatory requirement
for all GNU packages with published manuals.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: I: adjust test suite for upcoming GNU Make 3.83

2005-07-10 Thread Paul D. Smith
%% Alexandre Duret-Lutz [EMAIL PROTECTED] writes:

  adl So any solution that require a syntax that is different in
  adl prerequisites than it is in the commands seems wrong to me.

  pds I definitely agree that this incongruity is disturbing, but
  pds that's the way it is.

  adl Don't read me wrong, that wasn't a judgement of the way things
  adl are but an attempt to characterize an acceptable solution for
  adl Automake.  Automake is meant to produce portable Makefiles so I
  adl don't want to introduce non-portable constructs in its generated
  adl output, even conditionally (it's already hard enough to test).
  adl The only place we could tolerate non-portable constructs is in
  adl the user input (*.am) that is output almost verbatim.  Hence my
  adl statement: since users writes the variables, I'm looking for a
  adl solution that involves only changing these variables, and since
  adl these variables are used both in prerequisite lists and
  adl commands...

I definitely understand your concern.  All I can say is that filenames
with $ in them (and so, in effect, any support of Java IIRC) is already
completely non-portable.  I guess the problem is that it used to be
non-portable in that it wouldn't work correctly, but at least the output
makefile was a valid makefile for all versions of make.  Now, if we want
to support backward-compatibility, you'd need to put some code into the
makefile which is valid make syntax only in GNU make... which means
you'd have to forgo even printing it into a makefile unless you knew it
was needed.

Hm.  Or, do you?

This actually should be valid make syntax in all versions of make:

  PRE_D = $(if $(filter second-expansion,$(.FEATURES)),,$$)

  FILENAMES = foo$$bar

  all: $(subst $$,$(PRE_D),$(FILENAMES))
  @echo 'FILENAMES = $(FILENAMES)'
  @echo '$@ : $^'

  foo$$bar:
  @echo 'touch $@'

Now, obviously, it won't WORK properly with any make other than GNU
make, but at least the syntax is valid POSIX make syntax.

The other problem of course, is that you can't use the subst function in
every makefile for every prerequisite: you'd need to figure out which
makefiles might have $ in the prerequisite lists and only use it
there.

So, it's still gross.


The other alternative is to do away with backward compatibility and just
say that as of release automake XXX you need GNU make 3.81 if your
makefiles have $ in the names.  The nice(?) thing about this is that
these makefiles should also, then, work with other SysV make versions.

Or, you can have an automake option that selects which the user has.  Or
test for it, although of course that's not very reliable.

Bleah.  I see no good solution to this.

  pds Hopefully the next version of GNU make will have some more generic
  pds mechanism for quoting that will handle ALL different special
  pds characters that might appear in filenames, including colons and
  pds whitespace as well as dollar signs.

  adl Excellent!  That seems to be the ticket, doesn't it?

Well, sure, but that won't help us between the time 3.81 is released and
the time the version with the quoting enhancement is released.  I'd
really hate to have to tell people they couldn't use 3.81 with
automake.  I guess it would only impact users with $ in filenames but
still...

And, of course, that syntax won't be portable either :-/.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: I: adjust test suite for upcoming GNU Make 3.83

2005-07-01 Thread Paul D. Smith
Hi all;

I got no real response to this.  This release of GNU make (3.81) is
coming up (one hopes!) and this seems like a real problem that we need
to come up with a solution for.  If we don't it seems like automake and
GNU make 3.81 and Java simply will not be usable together.

Anyone have any thoughts or opinions on this?


Reminding you; from the NEWS file for 3.81beta3:

ftp://alpha.gnu.org/gnu/make/make-3.81beta3.tar.bz2

 * WARNING: Backward-incompatibility!
   GNU make now implements a generic second expansion feature on the
   prerequisites of both explicit and implicit (pattern) targets.  After
   the rule has been parsed, the prerequisites are expanded a second
   time, this time with all the automatic variables in scope.  This means
   that in addition to using standard SysV $$@ in prerequisites lists,
   you can also use complex functions such as $$(notdir $$@) etc.
   This behavior applies to implicit rules, as well, where the second
   expansion occurs after the rule is matched.  However, this means
   that you need to double-quote any $ in your filenames; instead of
   foo: boo$$bar you must write foo: foobar.

Since we last spoke, however, there has been a new feature added which
may help somewhat:

 * New special variables available in this release:
- .FEATURES: Contains a list of special features available in this
  version of GNU make.

One of the words in the .FEATURES list will be second-expansion if this
feature is present.

However, I see no way to take advantage of this that is compatible with
non-GNU versions of make.  I don't know whether automake currently works
correctly for Java with any other version of make, but this would
definitely cause that not to be the case going forward.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: I: adjust test suite for upcoming GNU Make 3.83

2005-07-01 Thread Paul D. Smith
FYI, here's one way to handle it (obviously requires GNU make):

  ifeq (,$(filter second-expansion,$(.FEATURES)))
# GNU make 3.81
PRE_D := $$
  else
# GNU make =3.81
PRE_D := 
  endif

  # Now use PRE_D in prerequisites

  all: foo$(PRE_D)bar ; @echo '$@: $'

  foo$$bar: ; @echo 'building $@'


-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




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: automake -vs- huge projects

2003-12-18 Thread Paul D. Smith
%% Bob Friesenhahn [EMAIL PROTECTED] writes:

   So, IMO, for being useful, you'd either have to extend make to accept
   the *.am-syntax or to reimplement make.

  bf Exactly.  The binary 'automake' would be a plain make which also
  bf understands Automake syntax.

  bf If a non-standard tool is required to be on the user's system in order
  bf to build software, then it might as well be a tool that does
  bf everything. :-)

If you're willing to require GNU make then I'm quite confidant you could
write automake as nothing more than a suite of GNU make macros and
functions.

I doubt there would be any need for code changes to GNU make at all.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: automake -vs- huge projects

2003-12-17 Thread Paul D. Smith
%% Lars Hecking [EMAIL PROTECTED] writes:

  lh What about an automake option then to generate Makefiles for GNU
  lh make?

You might get slightly more takers for an option to allow use of pattern
rules, without specifically tying them to GNU make or relying on other
_very_ GNU make-centric features.

I think there are several versions of make that support pattern rules.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: automake -vs- huge projects

2003-12-16 Thread Paul D. Smith
%% Bob Friesenhahn [EMAIL PROTECTED] writes:

  bf Per-subdirectory rules and definitions can be added in order to
  bf significantly reduce the amount of redundant code, and to
  bf re-enable the capability to usefully override parts of the default
  bf Makefile.in.

Not if you want to continue to generate portable makefiles.

There is no way in POSIX make (for example) to generate a target in a
subdirectory using a suffix rule.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: automake 1.7d feedback

2003-11-24 Thread Paul D. Smith
%% Bruno Haible [EMAIL PROTECTED] writes:

  bh automake-1.7d is fine for me: I cannot find anything wrong with it.

  bh However, there is an important change in behaviour that IMO should
  bh be mentioned in the NEWS file (or maybe even undone): While it was
  bh possible to add dependencies to automake targets in
  bh automake-1.7.x, such dependencies are now interpreted as
  bh *overriding* the automake definition. In usual Makefiles, when I
  bh write

  bhtarget: dependencies
  bh   RULES

  bh then it overrides the original target definition if and only if the
  bh RULES section is nonempty. This is a pitfall for users: While the
  bh syntax of Makefile.am is the same as the syntax of Makefiles,
  bh writing a line like

  bhtarget: dependencies

  bh doesn't mean the same thing.

Speaking from the peanut gallery, with my GNU make hat on, I'd say this
is a bug.  I think it's important for automake to preserve standard make
functionality, at least in this very basic situation.  It's often
extremely useful to be able to separate the prerequisite definition from
the command script definition.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: Help - I'm going mad!!! /bin/bash: --gnu: command not found

2003-09-08 Thread Paul D. Smith
%% Dr. David Kirkby [EMAIL PROTECTED] writes:

  dk make[1]: Entering directory `/export/home/davek/atlc/src'
  dk cd ..  \
  dk--gnu  src/Makefile
  dk /bin/bash: --gnu: command not found

  dk /bin/bash does exist by the way, but seems unwillig to accept the
  dk --gnu option.

Nope, that's not what this means.  The error is not _about_ bash, it's
being generated _by_ bash.

Look more closely at the command line you're running: extracting the
backslash it's:

  cd ..  --gnu src/Makefile

That tells the shell it should cd to .., then if that succeeds run the
program after the , which is --gnu, with an argument src/Makefile.
There is no program --gnu on your system, so bash reports this error:

  --gnu: command not found


It seems pretty obvious that there's something missing in this command
line.  Probably in the makefile there's a variable there that's supposed
to hold the name of the command, but for some reason it contains no
value so it's being expanded to the empty string.  That's about all I
can tell you at this point, but you can stop going mad about this
particular message now, at least! :)

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: config.sub, config.guess, and the GNU FTP site

2003-09-05 Thread Paul D. Smith
%% Paul Eggert [EMAIL PROTECTED] writes:

  pe Ben, would you like to have checkin privileges to gnulib?
  pe Then you can simply install the latest versions there.

In another message, John Eaton seems to imply that there's already a
config Savannah project that contains these files in CVS.  In fact, I
can find it there now that I know about it :).

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: GNU ftp crack and config.{sub,guess}

2003-09-05 Thread Paul D. Smith
%% Russell Shaw [EMAIL PROTECTED] writes:

  rs Paul D. Smith wrote:
   I'm still waiting for _ANY_ kind of response here.
   Doesn't anyone know or care about config.guess or config.sub anymore?

  rs  From automake manual:

  rs config.guess
  rs config.sub

  rs These programs compute the canonical triplets for the given build,
  rs host, or target architecture. These programs are updated regularly
  rs to support new architectures and fix probes broken by changes in
  rs new kernel versions. You are encouraged to fetch the latest
  rs versions of these files from ftp://ftp.gnu.org/gnu/config before
  rs making a release.

Yep, but if you read the rest of my message you'll see that the files on
ftp.gnu.org are not actually there: they were removed when the system
was cracked and they have not been replaced yet.  So, I'm looking for a
new place to get the latest versions from.

  rs locate config.guess
  rs...
  rs/usr/share/doc/config.guess

When I release a GNU program I don't want to use whatever random
versions I happen to have lying around on my system.  I want the latest
stuff.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: GNU ftp crack and config.{sub,guess}

2003-09-04 Thread Paul D. Smith
I'm still waiting for _ANY_ kind of response here.

Doesn't anyone know or care about config.guess or config.sub anymore?


%% [EMAIL PROTECTED] writes:

  p Hi Ben;
  p I've been trying to build GNU make packages.  Like some of the other GNU
  p toolkits, my make dist process involves a wget of the very latest
  p config.guess and config.sub files from the ftp.gnu.org server.

  p Unfortunately right now this doesn't work: when the ftp.gnu.org server
  p was cracked they pulled all the source off of it until it could be
  p verified to be correct.  Most of the content has been replaced by
  p now, but these two files (from ftp.gnu.org/gnu/config/) are still not
  p there, so my make dist operations are failing :(.  I can work around
  p this by installing older versions by hand but I'd like to see the real
  p stuff available again.


  p I checked with the GNU folks and they would like you to provide them
  p with known-good (say, from CVS) copies of the proper versions of these
  p files, but haven't been able to get in touch with you.

  p Do you know anything about this?

  p Or, does anyone on the autoconf list know how we'd go about getting the
  p proper versions loaded onto ftp.gnu.org again?

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Removing MAKE = make setting

2003-07-10 Thread Paul D. Smith
Hi all;

The makefiles generated by automake always contain this line:

  MAKE = make

Well, this is a bummer for my use of automake (which is to build GNU
make itself); this line causes all sorts of problems.


Is there any way to keep automake from generating this line, or any way
to work around this anyone can think of?

Thanks!

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Problems with ansi2knr

2002-10-14 Thread Paul D. Smith

Hi all; I'm using automake 1.7 (with autoconf 2.54 and gettext 0.11.5).
I'm trying to add ansi2knr support so I can use ANSI function
definitions in GNU make.

I have special code to test the getloadavg.c, which builds a test
program using that code.  The test program is embedded in the file, and
enabled with a -DTEST to get a main(), etc.  I have this in my
Makefile.am:

  AUTOMAKE_OPTIONS = 1.7 dist-bzip2 check-news ansi2knr

...

  # The loadavg function is invoked during make check to test getloadavg.
  noinst_PROGRAMS = loadavg
  nodist_loadavg_SOURCES = loadavg.c
  loadavg_CFLAGS = -DTEST
  loadavg_LDADD = @GETLOADAVG_LIBS@

  loadavg.c: $(srcdir)/getloadavg.c
  cp $(srcdir)/getloadavg.c loadavg.c


This works for normal builds, but fails during builds without ANSI
compilers.

The problem is that when the rules to build loadavg-loadavg.o are
created, they depend on just loadavg.c, instead of loadavg$U.c.

For example:

  loadavg-loadavg$U.$(OBJEXT): loadavg.c
...
  loadavg-loadavg$U.o: loadavg.c
  #   if $(CC) $(DEFS) ...
  source='loadavg.c' object='loadavg-loadavg$U.o' libtool=no \
...

I have a rule that constructs a loadavg_.c from loadavg.c:

   loadavg_.c: loadavg.c $(ANSI2KNR)
   $(CPP) $(DEFS) $(DEFAULT_INCLUDES) [...]

but it's never being invoked because the ...$U.o depends on the plain
c instead of the ...$U.c.

Help?

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://make.paulandlesley.org
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist





Automake vs. autoheader: config.h.in

2002-04-24 Thread Paul D. Smith

Hi Tom et. al.:

I'm working on a trivial doc to include with GNU make that gives the
exact steps to build it from a clean checkout.  I based the algorithm on
what autoreconf uses, but I can't use autoreconf (mainly due to
gettextize issues).

So, autoreconf basically proceeds in this order: gettextize, aclocal,
automake, autoconf, autoheader.

The problem I have is that I have no config.h.in file of my own.  So,
until the last step (autoheader) there is no config.h.in file in my
directory.  This means that when automake is run as the third step, it
complains about a missing config.h.in (which isn't so bad), and it
doesn't add config.h.in to the list of common DISTFILES (which _is_ so
bad).

So, my question is is this a problem with autoreconf in that autoheader
should be run earlier?  Or is it a fundamental circularity in the
toolchain, and we just need to run one or the other twice (probably run
autoheader before automake, then run it again after autoconf to pick up
any changes autoconf made, for example)?

Or should I ignore the whole problem and add config.h.in to my list of
explicit extra dist files?

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.paulandlesley.org/gmake/
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: Two issues with automake

2002-04-22 Thread Paul D. Smith

%% Akim Demaille [EMAIL PROTECTED] writes:

  ad | 1) I had a line like this in my configure.in:
  ad |   test -f somefile.in  AC_OUTPUT(somefile)

  ad Err, I suppose you mean AC_CONFIG_FILES.  Two AC_OUTPUT is not
  ad supported by Autoconf.

Yes, precisely.

Anyway, I changed this to the safer but less aesthetically pleasing:

  if test -f somefile.in; then
AC_CONFIG_FILES(somefile)
  fi

and things seem to work fine.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.paulandlesley.org/gmake/
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: qeustion about make

2001-11-08 Thread Paul D. Smith

%% Mohammad Saleem [EMAIL PROTECTED] writes:

  ms I am using gnu make 3.79.1.
  ms I have a question regarding make. My question is that I want to define a
  ms symbol on command line. How to do with make?
  ms For example if I want to define MYOBJECT symbol, how to write?
  ms I even tried with
  ms prompt make -D MYOBJECT  test.c
  ms didn't work.

This is not actually an automake question; you should better address it
to [EMAIL PROTECTED]

The answer to your question is that the make variable CPPFLAGS is used
to hole C preprocessor flags.  So, if you want to change or the flags
that are passed to the preprocessor, you would override that make
variable on the command line, like this:

  $ make CPPFLAGS='-D MYOBJECT'

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.paulandlesley.org/gmake/
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: Use of vpath to build objects in separate directories

2001-09-11 Thread Paul D. Smith

%% Regarding Use of vpath to build objects in separate directories;
%% Brian Appel [EMAIL PROTECTED] writes:

  ba I know vpath can be used to cause object files to be written to a
  ba directory tree separate from the original source.

No, it can't.

  ba In fact, if I run configure in my separate destination directory,
  ba it builds Makefiles there and I can perform the make there.
  ba However, suppose I want to be able to initiate the make while in
  ba the source tree, instead of in the object tree?

You can't do that with VPATH.  The only way to do it is put full paths
to the object directory in your makefiles.

You can do this is a relatively automated manner, if you want, so that
normal writers of makefiles don't need to see this.  But, it has to be
there for make to see.

  ba In the past on this project, this kind of a thing was accomplished
  ba using a simple script which wrapped gnumake.  It would change
  ba directories from the source tree to the corresponding object tree,
  ba copy the makefile if necessary, and then run the make in the
  ba object tree (using vpath so that make would find the source).
  ba This was rather simple and allowed developers to execute makes
  ba while editing files without having to remember to change
  ba directories to where they wanted the object files to go (they
  ba would just execute the make from the source directory).

This will still work, of course.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.paulandlesley.org/gmake/
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: Misleading RCS behaviour

2001-06-10 Thread Paul D. Smith

%% Ben Elliston [EMAIL PROTECTED] writes:

   Paul == Paul D Smith [EMAIL PROTECTED] writes:

  Paul If you need to have the files created in their VPATH-found location
  Paul instead of in the local directly, use the GPATH variable to specify
  Paul which directories contain those types of files.

  Paul See the GNU make manual, and let me know.

  be OK, this seems better, but it's not used by Automake, so it's not all
  be that helpful to me.

Well, that seems like it might be a bug in automake :).  I guess it kind
of depends on exactly what you want, but I think you're right that given
the way automake works, the GPATH'd behavior for finding the source
directory would work better in general.

Without GPATH, new files checked out will be placed in the target
directory; with it they will be updated in the source directory.

However, you can just add:

  GPATH = $(VPATH)

to your Makefile.am files and get the same effect even if automake
doesn't support it.

Obviously this is an innocuous no-op statement in non-GNU make
variants.

  be By the way -- a documentation bug: GPATH is not in the concept
  be index. :-)

Oops... thanks.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.paulandlesley.org/gmake/
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: Fwd: make: you guys are gawds

2001-05-09 Thread Paul D. Smith

%% Stephan Beal [EMAIL PROTECTED] writes:

  sb Please excuse the non-bug post to bug-make@..., but I didn't find 
  sb another address for the make tool, and 'make@' bounced...

There's also [EMAIL PROTECTED] FWIW.

Thanks for the kudos.  Some of this must be attributed to the original
inventors of make, though; GNU make added some great new features but
GNU didn't invent make itself.

  sb I now sometimes wonder if automake's output (or even required user
  sb inputs, like all source and header filenames) couldn't be cut
  sb drastically by simply taking advantage of more of make's features,

The thing is, automake generates makefile which will work with any UNIX
make on any system that anyone is using.

There is very little that you can assume to be true for all versions of
make.  Most versions don't have pattern rules (although all have suffix
rules); some don't even have include.  Most don't allow you to use $
in an explicit rule (!).  Etc.

There is a POSIX.2 definition of make, but it's very weak (it doesn't
have include either, for example), and some makes probably don't even
conform 100% to that meager definition.

The goal with autoconf/automake is to allow GNU packages to be
maintained easily, and with maximum portability.  That means they don't
want to require that you install GNU make on your system before you can
build them, or that you must use GCC as your compiler, etc. etc.

Just be happy _you_ don't need to worry about that extreme level of
portability, and enjoy GNU make's advanced features :).

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.paulandlesley.org/gmake/
 Please remain calm...I may be mad, but I am a professional. --Mad Scientist




Re: Is alpha.gnu.org down? [Fwd: GNU make 3.79.0.1 pretest released]

2000-06-16 Thread Paul D. Smith

%% Free Software Foundation [EMAIL PROTECTED] writes:

  fsf [CC'ed to a number of lists where it appears the erroneous URL below was
  fsf published.]

   I'm trying to retrieve http://alpha.gnu.org/gnu/make/make-3.79.0.1.tar.gz

  fsf the proper URL is
  fsf ftp://alpha.gnu.org/gnu/make/make-3.79.0.1.tar.gz, which I have
  fsf tested, and it does indeed work.

Doh!

My bad.

Thanks for the correction.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.paulandlesley.org/gmake/
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




Re: Changing the name of the PACKAGE at configure time

2000-05-10 Thread Paul D. Smith

%% "Masterson, David" [EMAIL PROTECTED] writes:

  md If you want, I have a Perl tool that I picked up and enhanced
  md called PKGLINK that could help with this.  Basically, with
  md pkglink, you install all packages in there own prefix directory
  md and then use pkglink to symbolically link the default version you
  md want to publish into /usr/local (or someplace similar).  The users
  md only see /usr/local in their PATH(s), but you (the sysadmin) can
  md control which version is in /usr/local and easily uninstall
  md packages (simply un-pkglink and remove the package's prefix
  md directory).

There's already a GNU tool called "stow" which does much the same thing,
and does handy stuff like automatically making sure you're using the
fewest number of symlinks, etc. (e.g., if you have only one version of
the tool then stow just puts one symlink to the top of its data
directory; if you install a second one it automatically explodes that
link into multiple links for the multiple data directories).

Stow is cool.  We had a discussion about possible enhancements a few
months ago, but no real consensus on specific ways to handle the various
problems emerged.  Fresh insight is always welcome :).

-- 
-------
 Paul D. Smith [EMAIL PROTECTED] Network Management Development
 "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: Changing the name of the PACKAGE at configure time

2000-05-10 Thread Paul D. Smith

%% Jean-Marc Lasgouttes [EMAIL PROTECTED] writes:

   "Tom" == Tom Tromey [EMAIL PROTECTED] writes:

  JMarc What I mean is that I am ready to provide a more "standard" way
  JMarc of installing several LyX versions concurrently, but does this
  JMarc standard way exist?

  Tom Most people just make a new --prefix.

  jl Well, at my site we have gcc-2.8.1 _and_ gcc-2.95.2, emacs-19.34 _and_
  jl emacs-20.2, etc.

Yes, but if you ever try to install them you'll see they install as
"emacs" and "gcc" by default.

  jl I thought this was a kind of feature of some GNU tools. Is this
  jl way of fdoing things deprecated?

Not sure what you mean here.  Allowing multiple versions to be installed
is A Good Thing and is certainly not deprecated.  But AFAIK no GNU tools
install themselves with version number postfix or similar by default (or
at least if they do they always _also_ install as the standard file).

I'm with Jean-Marc, though, I wish that automake would add a new
standard install target that installed binaries as "name-VERSION"
instead of just "name" (for example).  Of course, this may not always
work for all packages, but...

-- 
-------
 Paul D. Smith [EMAIL PROTECTED] Network Management Development
 "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.




Need help with Windows port for GNU make (+ DOS pretesters)

2000-05-09 Thread Paul D. Smith

Hi all.

Recently Rob Tulloh has notified me that he's no longer able to give the
maintenance of the Windows port of GNU make the attention he would like,
due to other demands on his time.  I would like to publicly thank him
for his many years of dedication to and support of that effort, and I
hope his workload eases in the future so he can spare us some more
cycles! :)

This leaves us without anyone (AFAIK) on the alpha-test or pre-test
lists who is actively supporting or testing the Windows ports.
Unfortunately (? ;), I don't have a Windows system that I can even test
the build on, much less the expertise to provide code fixes.  Indeed, we
had some issues with the current 3.79 release on Windows :(.

So, if you are interested in helping pretest GNU make on Windows, and/or
if you are willing and able to help answer Windows-specific problems (a
good number of problems I see are related to Windows shells, etc. and I
just don't understand the issues well enough to provide solutions),
and/or if you would like to consider Windows-specific enhancements,
please let me know.

Thanks in advance.

BTW, while Eli Zaretskii is still providing excellent support for the
DOS port of GNU make, it would be great if we had a few more pretesters
for this port, as well.  Let me know if you'd like to become a pretester
for GNU make.

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.ultranet.com/~pauld/gmake/
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




GNU make 3.79 released

2000-04-05 Thread Paul D. Smith

[[ Note to pretesters: until the tar file is available on ftp.gnu.org
   you can access it via ftp://alpha.gnu.org/gnu/make/make-3.79.tar.gz ]]

GNU Make version 3.79 is now available for download.

The `make' utility automates the process of compilation.  When the source
files of a large program change, Make automatically determines which pieces
need to be updated and recompiles only those files.

GNU make is fully compliant with the POSIX.2 standard, and also has many
powerful extensions: flexible implicit pattern rules, an extensive set of
text manipulation functions, conditional evaluation of makefiles, support
for parallel command execution, automatic updating of makefiles, and more.

In addition to UNIX systems, it can be built for DOS, Windows (95/98/NT),
VMS, and Amiga platforms.

This release of GNU make contains several important bug fixes and some
new features, including improved flexibility in debugging options.  This
version also integrates GNU gettext for internationalization support,
with at least partial translations for Dutch, French, German, Korean,
Polish, Russian, and Spanish.  Please see the ABOUT-NLS file for
information on enabling internationalization, and for reporting problems
with any translations.

See the NEWS file and the GNU Make User's Manual, contained in the
distribution, for full details on user-visible changes.

Please see the README and INSTALL files for information on building GNU
make for your system.

Bugs and problems should be reported to the [EMAIL PROTECTED] mailing
list.  Requests for help can be sent to [EMAIL PROTECTED], or one of
the gnu.utils.bug or gnu.utils.help USENET newsgroups.  See the README
file for information on accessing the online bug database, or the latest
versions of GNU make via CVS.


The complete distribution is available from the GNU ftp site
ftp://ftp.gnu.org/gnu/make/ and its mirrors.  Please see:

  http://www.gnu.org/order/ftp.html

for a complete list of international mirror sites.  No patch file is
currently available, since it was over 245k compressed.  If you require
a patch file please contact [EMAIL PROTECTED].

  make-3.79.tar.gz  is 959005 bytes

MD5 checksum is:

  a59cc0e5792474f6809131650d2fff5a  make-3.79.tar.gz

Have fun!

-- 
---
 Paul D. Smith [EMAIL PROTECTED]  Find some GNU make tips at:
 http://www.gnu.org  http://www.ultranet.com/~pauld/gmake/
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist