too-aggressive clean rule

View: New views
5 Messages — Rating Filter:   Alert me  

too-aggressive clean rule

by Ben Pfaff :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Commit 99bafccc08919a5d640cb35962c4d730a2cad3a1 "Fix make
distcheck" introduces the following:

    # This seems to be necessary as the libtool artifacts aren't removed
    # Automake bug ?
    tests_data_datasheet_test_CLEAN:
            $(RM) -r tests/data

There are a couple of problems with this.  First, $(RM) isn't
defined on every system, and so sometimes it expands to the null
string.  I'm not sure where it's defined, in fact, but Automake
itself just uses "rm" all over, so I'm sure that it's OK to use
plain "rm".  Second, if you run configure" in the source
directory then this deletes datasheet-test.c and
datasheet-test.sh, which is obviously a bad idea.  Finally, I
think that -f is warranted in case the files in question haven't
been built.

I see a few other uses of $(RM) elsewhere, too:

    perl-module/automake.mk:        $(RM) $@
    perl-module/automake.mk:          $(RM) $(module_sources) ; \
    perl-module/automake.mk:        $(RM) perl-module/Makefile.old
    po/automake.mk:   $(RM) $(DESTDIR)$(prefix)/share/locale/$$lang/LC_MESSAGES/$(DOMAIN).mo ; \
    src/ui/gui/automake.mk:          $(RM) $(themedir)/$$size/$(context)/psppicon.png ; \
    tests/automake.mk:      $(RM) -r tests/data

Jason: This probably explains the problem you were seeing.
--
"...I've forgotten where I was going with this,
 but you can bet it was scathing."
--DesiredUsername


_______________________________________________
pspp-dev mailing list
pspp-dev@...
http://lists.gnu.org/mailman/listinfo/pspp-dev

Re: too-aggressive clean rule

by John Darrington-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, Oct 08, 2009 at 08:10:57PM -0700, Ben Pfaff wrote:
     Commit 99bafccc08919a5d640cb35962c4d730a2cad3a1 "Fix make
     distcheck" introduces the following:
     
         # This seems to be necessary as the libtool artifacts aren't removed
         # Automake bug ?
         tests_data_datasheet_test_CLEAN:
                 $(RM) -r tests/data

Clearly this rule is far too promiscuous.  I seem to remember it was a kludge
to work around a problem. Various .lib directories were not getting removed.
Thus, the make distcheck rule failed.
     
     There are a couple of problems with this.  First, $(RM) isn't
     defined on every system, and so sometimes it expands to the null
     string.  I'm not sure where it's defined, in fact, but Automake
     itself just uses "rm" all over, so I'm sure that it's OK to use
     plain "rm".  Second, if you run configure" in the source
     directory then this deletes datasheet-test.c and
     datasheet-test.sh, which is obviously a bad idea.  Finally, I
     think that -f is warranted in case the files in question haven't
     been built.

I always understood that $(RM) should be prefered.  It expands to "rm -f"
on POSIX systems an "DEL /Y" on windoze.
     
--
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://pgp.mit.edu or any PGP keyserver for public key.




_______________________________________________
pspp-dev mailing list
pspp-dev@...
http://lists.gnu.org/mailman/listinfo/pspp-dev

signature.asc (196 bytes) Download Attachment

Re: too-aggressive clean rule

by Ben Pfaff :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

John Darrington <john@...> writes:

> I always understood that $(RM) should be prefered.  It expands to "rm -f"
> on POSIX systems an "DEL /Y" on windoze.

What makes it expand that way?  Here on my GNU/Linux box, with
Automake 1.10 and GNU Make 3.81, it expands to the null string.
I do not see a definition for it in Makefile.in.
--
Ben Pfaff
http://benpfaff.org


_______________________________________________
pspp-dev mailing list
pspp-dev@...
http://lists.gnu.org/mailman/listinfo/pspp-dev

Re: too-aggressive clean rule

by John Darrington-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

It's a builtin variable, just like CC.  According to the make manual:

RM
    Command to remove a file; default `rm -f'.


Perhaps you have an environment variable of that name set ?

J'




On Fri, Oct 09, 2009 at 09:38:31AM -0700, Ben Pfaff wrote:
     John Darrington <john@...> writes:
     
     > I always understood that $(RM) should be prefered.  It expands to "rm -f"
     > on POSIX systems an "DEL /Y" on windoze.
     
     What makes it expand that way?  Here on my GNU/Linux box, with
     Automake 1.10 and GNU Make 3.81, it expands to the null string.
     I do not see a definition for it in Makefile.in.
     --
     Ben Pfaff
     http://benpfaff.org
     
     
     _______________________________________________
     pspp-dev mailing list
     pspp-dev@...
     http://lists.gnu.org/mailman/listinfo/pspp-dev

--
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://pgp.mit.edu or any PGP keyserver for public key.




_______________________________________________
pspp-dev mailing list
pspp-dev@...
http://lists.gnu.org/mailman/listinfo/pspp-dev

signature.asc (196 bytes) Download Attachment

Re: too-aggressive clean rule

by Ben Pfaff :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

John Darrington <john@...> writes:

> It's a builtin variable, just like CC.  According to the make manual:
>
> RM
>     Command to remove a file; default `rm -f'.

OK, it's a GNU make extension then, and not a very useful one for
PSPP, since Automake uses literal "rm".
--
"Let others praise ancient times; I am glad I was born in these."
--Ovid (43 BC-18 AD)


_______________________________________________
pspp-dev mailing list
pspp-dev@...
http://lists.gnu.org/mailman/listinfo/pspp-dev