chiark / gitweb /
fix out of tree builds
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 13 Nov 2019 01:24:52 +0000 (01:24 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 13 Nov 2019 01:24:52 +0000 (01:24 +0000)
Perdir.mk.in
Subdir.mk.in
lib/t/Subdir.mk.in
subdirmk/autogen.sh
subdirmk/generate
subdirmk/regen.mk.in

index e71764e6cd6b9f9c649b1a4e5a2d268de13f91ac..f8193482e9b12d43f071bd38cdede67ed5e6d8bd 100644 (file)
@@ -1,6 +1,7 @@
 
 &CLEAN += & *~ *.tmp
 &CLEAN += $(&OBJECTS) $(&DEPFILES)
+&CLEAN += $(&TARGETS)
 
 # &TARGETS_clean
 
index 79249db459f8b329ed10abb7115d3c385d5abb8b..cd8fa532d2e183c16084c66091a073525909188c 100644 (file)
@@ -23,4 +23,4 @@ COMPILE               ?= $(CC) -c -o$@ -MD $(DEFS) $(INCLUDES) $(CFLAGS)
 %.o: %.c
        $(COMPILE) $<
 
-include &^/subdirmk/regen.mk
+include subdirmk/regen.mk
index a5efee561681282828c5d05ae92914c9738622bf..a957397ff559178dba79098ce36a529765c4528a 100644 (file)
@@ -28,7 +28,7 @@
 &OBJECTS       += & toytest.o
 &LIBS          += lib/libtoy.a
 
-&CLEAN         += & toytest
+&CLEAN         += & toytest toytest.stamp
 
 &toytest:      $(&OBJECTS) $(&LIBS)
        $(LINK) $^
index 5658c0af6129c7bf3e006025cce5aa3656f44792..f1b4df5f75195edf4030bbb40509283af15d026e 100755 (executable)
@@ -1,3 +1,4 @@
 #!/bin/sh
 set -e
+cd ${0%/*}
 autoconf
index ae5db303ea79c56504b76070a29f018ab4c9b23f..a10e055590c9df2c671e85d264ef2bfa7a5cb339 100755 (executable)
@@ -13,6 +13,7 @@
 #   Perdir.mk.in
 
 use strict;
+use POSIX;
 
 print "$0 @ARGV\n" or die $!;
 
@@ -108,13 +109,13 @@ sub filter_subdir_mk ($$$$$) {
     #use Data::Dumper;
     #print STDERR "filter @_\n";
 
-    my $in = "${dir_prefix}Subdir.mk.in";
+    my $in = "${srcdir}/${dir_prefix}Subdir.mk.in";
     my $caps_re = qr{[A-Z][0-9_A-Z]*(?=\W)};
     my $lc_re = qr{[a-z][-+,0-9_a-z]*(?=\W)};
     my $esclit = '&';
     my $esc = '\\&';
 
-    for my $f ($in, "Perdir.mk.in") {
+    for my $f ($in, "${srcdir}/Perdir.mk.in") {
       open I, '<', $f or die "open $f: $!\n";
       while (<I>) {
        for (;;) {
@@ -183,6 +184,7 @@ sub process_subtree ($$) {
     foreach my $child (@{ $node->[1] }) {
        my @childpath = (@$path, $child->[0]);
        my $child_subdir = join '/', @childpath;
+       mkdir $child_subdir or $!==EEXIST or die "mkdir $child_subdir: $!";
        push @{ $targets{$_} }, $child_subdir foreach
            process_subtree($child, \@childpath);
     }
index f7a72192aa8c31319ffd20ba5164da92e2faf071..f9d7240d412dd0cbb2583b5e8a2bdb08e49fe18b 100644 (file)
@@ -23,8 +23,9 @@ makefiles.phantom:                                            \
                $(foreach m,$(MAKEFILES),$(top_srcdir)/$(m).in)
        ./$(CONFIG_STATUS)
 
-realclean: clean
+realclean:: clean
        $(RM) config.status config.log
-       $(RM) main.mk $(MAKEFILES)
+       $(RM) main.mk subdirmk/regen.mk $(MAKEFILES)
+       $(RM) $(addsuffix Makefile,$(dir $(MAKEFILES)))
 
 -include $(ALL_DEPFILES)