From ac5e06a07b23212991e152370900361adee14a58 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 13 Nov 2019 01:24:52 +0000 Subject: [PATCH] fix out of tree builds --- Perdir.mk.in | 1 + Subdir.mk.in | 2 +- lib/t/Subdir.mk.in | 2 +- subdirmk/autogen.sh | 1 + subdirmk/generate | 6 ++++-- subdirmk/regen.mk.in | 5 +++-- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Perdir.mk.in b/Perdir.mk.in index e71764e..f819348 100644 --- a/Perdir.mk.in +++ b/Perdir.mk.in @@ -1,6 +1,7 @@ &CLEAN += & *~ *.tmp &CLEAN += $(&OBJECTS) $(&DEPFILES) +&CLEAN += $(&TARGETS) # &TARGETS_clean diff --git a/Subdir.mk.in b/Subdir.mk.in index 79249db..cd8fa53 100644 --- a/Subdir.mk.in +++ b/Subdir.mk.in @@ -23,4 +23,4 @@ COMPILE ?= $(CC) -c -o$@ -MD $(DEFS) $(INCLUDES) $(CFLAGS) %.o: %.c $(COMPILE) $< -include &^/subdirmk/regen.mk +include subdirmk/regen.mk diff --git a/lib/t/Subdir.mk.in b/lib/t/Subdir.mk.in index a5efee5..a957397 100644 --- a/lib/t/Subdir.mk.in +++ b/lib/t/Subdir.mk.in @@ -28,7 +28,7 @@ &OBJECTS += & toytest.o &LIBS += lib/libtoy.a -&CLEAN += & toytest +&CLEAN += & toytest toytest.stamp &toytest: $(&OBJECTS) $(&LIBS) $(LINK) $^ diff --git a/subdirmk/autogen.sh b/subdirmk/autogen.sh index 5658c0a..f1b4df5 100755 --- a/subdirmk/autogen.sh +++ b/subdirmk/autogen.sh @@ -1,3 +1,4 @@ #!/bin/sh set -e +cd ${0%/*} autoconf diff --git a/subdirmk/generate b/subdirmk/generate index ae5db30..a10e055 100755 --- a/subdirmk/generate +++ b/subdirmk/generate @@ -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 () { 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); } diff --git a/subdirmk/regen.mk.in b/subdirmk/regen.mk.in index f7a7219..f9d7240 100644 --- a/subdirmk/regen.mk.in +++ b/subdirmk/regen.mk.in @@ -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) -- 2.30.2