From 2b0d134de7c0b19a2a2ac1b9cd7a04c4988e7712 Mon Sep 17 00:00:00 2001 From: bcda <mooney@aps.anl.gov> Date: Mon, 30 Jul 2001 18:44:07 +0000 Subject: [PATCH] Modified makeIocCdCommands.pl to support "include" directives and the EPICS_SUPPORT_PATH environment variable. --- config/makeIocCdCommands.pl | 96 +++++++++++++++++++++++++------------ 1 file changed, 65 insertions(+), 31 deletions(-) diff --git a/config/makeIocCdCommands.pl b/config/makeIocCdCommands.pl index 0c1962f..bdf200c 100644 --- a/config/makeIocCdCommands.pl +++ b/config/makeIocCdCommands.pl @@ -2,6 +2,14 @@ eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*- if $running_under_some_shell; # makeIocCdCommands.pl use Cwd; +use Env; + +$post = $ENV{"EPICS_SUPPORT_PATH"}; +if ($post ne "") +{ + $prefix = "EPICS_SUPPORT_PATH"; + $applications{$prefix} = $post; +} $cwd = cwd(); #hack for sun4 @@ -24,37 +32,63 @@ print OUT "top = \"$top\"\n"; $topbin = "${top}/bin/${arch}"; #skip check that top/bin/${arch} exists; src may not have been builT print OUT "topbin = \"$topbin\"\n"; -$release = "$top/config/RELEASE"; -if (-r "$release") { - open(IN, "$release") or die "Cannot open $release\n"; - while ($line = <IN>) { - next if ( $line =~ /\s*#/ ); - chomp($line); - $_ = $line; - #the following looks for - # prefix = $(macro)post - ($prefix,$macro,$post) = /(.*)\s*=\s*\$\((.*)\)(.*)/; - if ($macro eq "") { # true if no macro is present - # the following looks for - # prefix = post - ($prefix,$post) = /(.*)\s*=\s*(.*)/; - } else { - $base = $applications{$macro}; - if ($base eq "") { - print "error: $macro was not previously defined\n"; - } else { - $post = $base . $post; - } - } - $applications{$prefix} = $post; - $app = lc($prefix); - if ( -d "$post") { #check that directory exists - print OUT "$app = \"$post\"\n"; - } - if ( -d "$post/bin/$arch") { #check that directory exists - print OUT "${app}bin = \"$post/bin/$arch\"\n"; - } + +@files =(); +push(@files,"$top/config/RELEASE"); +foreach $file (@files) { + if (-r "$file") { + open(IN, "$file") or die "Cannot open $file\n"; + while ($line = <IN>) { + next if ( $line =~ /\s*#/ ); + chomp($line); + $_ = $line; + ($prefix,$macro,$post) = /(.*)\s* \s*\$\((.*)\)(.*)/; + #test for "include" command + if ($prefix eq "include") { + if ($macro eq "") { + # true if no macro is present + #the following looks for + #prefix = post + ($prefix,$post) = /(.*)\s* \s*(.*)/; + } + else { + $base = $applications{$macro}; + if ($base eq "") { + #print "error: $macro was not previously defined\n"; + } + else { + $post = $base . $post; + } + } + push(@files,"$post") + } + else { + #the following looks for + # prefix = $(macro)post + ($prefix,$macro,$post) = /(.*)\s*=\s*\$\((.*)\)(.*)/; + if ($macro eq "") { # true if no macro is present + # the following looks for + # prefix = post + ($prefix,$post) = /(.*)\s*=\s*(.*)/; + } else { + $base = $applications{$macro}; + if ($base eq "") { + print "error: $macro was not previously defined\n"; + } else { + $post = $base . $post; + } + } + $applications{$prefix} = $post; + $app = lc($prefix); + if ( -d "$post") { #check that directory exists + print OUT "$app = \"$post\"\n"; + } + if ( -d "$post/bin/$arch") { #check that directory exists + print OUT "${app}bin = \"$post/bin/$arch\"\n"; + } + } + } + close IN; } - close IN; } close OUT; -- GitLab