automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Subdirectory problem


From: Alexandre Duret-Lutz
Subject: Re: Subdirectory problem
Date: 22 Sep 2002 21:01:25 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

>>> "Peter" == Peter Gavin <address@hidden> writes:

[...]

 Peter> But, make distclean fails to remove liba/.libs or any of
 Peter> the files within, apparently because make distclean does
 Peter> rm -f liba/liba.la instead of using libtool to remove
 Peter> it.

Thanks.  I'm installing the following patch to fix this bug.
(This will go in Automake 1.7.)  However you'll see that this
issue disappears if you use `AUTOMAKE_OPTIONS = subdir-objects',
so that shouldn't be a problem for you.

2002-09-22  Alexandre Duret-Lutz  <address@hidden>

        * automake.in (handle_ltlibraries): Fill $libtool_clean_directories
        here, with directories where .la files are built...
        (handle_single_transform_list): ... not here with directories
        where .lo files are built.
        * tests/libtool3.test: Build a library in a subdirectory to 
        check for this.
        Reported by Peter Gavin.
 
Index: THANKS
===================================================================
RCS file: /cvs/automake/automake/THANKS,v
retrieving revision 1.185
diff -u -r1.185 THANKS
--- THANKS      20 Sep 2002 10:10:20 -0000      1.185
+++ THANKS      22 Sep 2002 18:57:43 -0000
@@ -152,6 +152,7 @@
 Per Cederqvist         address@hidden
 Per Oyvind Hvidsten    address@hidden
 Peter Breitenlohner     address@hidden
+Peter Gavin            address@hidden
 Peter Mattis           address@hidden
 Peter Muir             address@hidden
 Petter Reinholdtsen    address@hidden
Index: automake.in
===================================================================
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.1360
diff -u -r1.1360 automake.in
--- automake.in 22 Sep 2002 14:35:19 -0000      1.1360
+++ automake.in 22 Sep 2002 18:58:10 -0000
@@ -2542,8 +2542,6 @@
                {
                    (my $xobj = $object) =~ s,lo$,\$(OBJEXT),;
                    $compile_clean_files{$xobj} = MOSTLY_CLEAN;
-
-                   $libtool_clean_directories{$directory} = 1;
                }
 
                 push (@dep_list, require_build_directory ($directory));
@@ -3414,6 +3412,10 @@
       # If the resulting library lies into a subdirectory,
       # make sure this directory will exist.
       my $dirstamp = require_build_directory_maybe ($onelib);
+
+      # Remember to cleanup .libs/ in this directory.
+      my $dirname = dirname $onelib;
+      $libtool_clean_directories{$dirname} = 1;
 
       $output_rules .= &file_contents ('ltlibrary',
                                       ('LTLIBRARY'  => $onelib,
Index: tests/libtool3.test
===================================================================
RCS file: /cvs/automake/automake/tests/libtool3.test,v
retrieving revision 1.2
diff -u -r1.2 libtool3.test
--- tests/libtool3.test 8 Sep 2002 13:07:55 -0000       1.2
+++ tests/libtool3.test 22 Sep 2002 18:58:36 -0000
@@ -23,6 +23,8 @@
 required='libtoolize gcc'
 . ./defs || exit 1
 
+set -e
+
 cat >> configure.in << 'END'
 AC_PROG_CC
 AM_PROG_LIBTOOL
@@ -30,14 +32,17 @@
 END
 
 cat > Makefile.am << 'END'
-lib_LTLIBRARIES = lib0.la
+lib_LTLIBRARIES = lib0.la liba/liba.la
 lib0_la_SOURCES = 0.c
+liba_liba_la_SOURCES = liba/a.c
 
 bin_PROGRAMS = 1
 1_SOURCES = 1.c
-1_LDADD = lib0.la
+1_LDADD = lib0.la $(top_builddir)/liba/liba.la
 END
 
+mkdir liba
+
 cat > 0.c << 'END'
 int
 zero (void)
@@ -56,7 +61,13 @@
 }
 END
 
-set -e
+cat > liba/a.c << 'END'
+int
+a (void)
+{
+   return 'a';
+}
+END
 
 # Use --copy to workaround a bug in Cygwin's `cp -p' during distcheck.
 # (This bug is already exhibited by subobj9.test.)  In brief: Cygwin's

-- 
Alexandre Duret-Lutz





reply via email to

[Prev in Thread] Current Thread [Next in Thread]