From 1a7ad8e573b87f6db3f955498b736ce69bf484ec Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 9 Sep 2006 09:05:39 +0000 Subject: r18294: remove leading ././ from .mk files metze (This used to be commit f41e2f7f5a71d22ae6b27ac9fb0239512728e12c) --- source4/build/smb_build/config_mk.pm | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) (limited to 'source4/build/smb_build/config_mk.pm') diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index 5c5c0ad92b..fbf20f4ae9 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -130,17 +130,32 @@ sub run_config_mk($$$$) my $section = "GLOBAL"; my $makefile = ""; - my $parsing_file = $builddir."/".$filename; + my $parsing_file = $filename; + my $retry_parsing_file = undef; $ENV{samba_builddir} = $builddir; $ENV{samba_srcdir} = $srcdir; - - if (!open(CONFIG_MK, $parsing_file)) { - $parsing_file = $srcdir."/".$filename; - open(CONFIG_MK, $parsing_file) or - die("Can't open neither `$builddir."/".$filename' nor `$srcdir/$filename'\n"); + + if (($srcdir ne ".") or ($builddir ne ".")) { + $parsing_file = $builddir."/".$filename; + $retry_parsing_file = $srcdir."/".$filename; } - + + if (open(CONFIG_MK, $parsing_file)) { + $retry_parsing_file = undef; + } else { + die("Can't open $parsing_file") unless defined($retry_parsing_file); + } + + if (defined($retry_parsing_file)) { + if (open(CONFIG_MK, $parsing_file)) { + $parsing_file = $retry_parsing_file; + $retry_parsing_file = undef; + } else { + die("Can't open neither '$parsing_file' nor '$retry_parsing_file'\n"); + } + } + push (@parsed_files, $parsing_file); @@ -173,7 +188,12 @@ sub run_config_mk($$$$) # include if ($line =~ /^include (.*)$/) { - $makefile .= run_config_mk($input, $srcdir, $builddir, dirname($filename)."/$1"); + my $subfile= $1; + my $subdir = dirname($filename); + $subdir =~ s/^\.$//g; + $subdir =~ s/^\.\///g; + $subdir .= "/" if ($subdir ne ""); + $makefile .= run_config_mk($input, $srcdir, $builddir, $subdir.$subfile); next; } -- cgit