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