X-Git-Url: https://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/a7cabb5d0f067e78afd029d8ec41d14660d8f9e2..ccd4df684019395c163eb3174c5e8bf2d3d8bdfc:/scripts/fix-gnulib.pl diff --git a/scripts/fix-gnulib.pl b/scripts/fix-gnulib.pl index 69a7d86..ce27521 100755 --- a/scripts/fix-gnulib.pl +++ b/scripts/fix-gnulib.pl @@ -63,6 +63,7 @@ open STDOUT, ">", $output or die "$output: $!\n" if (defined $output); open STDIN, "<", $input or die "$input: $!\n" if (defined $input); my $printed_header = 0; +my $check_mkdir; my @cleanfiles; # Hashes to record make variables used in the automake source. The allvars @@ -231,9 +232,23 @@ EOF # ordinary variable so we can deal with them later. s/BUILT_SOURCES/gnulib_core_headers/; + # Rules for "toplevel" header files do not include commands to create + # the target directory; let's add that. + if (defined $check_mkdir) { + if (/gl_V_at/ || /AM_V_GEN/ and not /MKDIR_P/) { + my $dir = "lib/$check_mkdir"; + $dir =~ s|/[^/]*||; + + print "\t\$(AM_V_GEN)\$(MKDIR_P) $dir\n"; + s/AM_V_GEN|gl_V_at/AM_V_at/; + } + undef $check_mkdir + } + # Targets are similar to variables: the target and its dependencies # need to be mangled. - if (/^[^\t].*:/) { + if (/^([^\t:]*):/) { + $check_mkdir = $1; $_ = mangle_target($_); }