Index: trunk/psconfig/psbuild
===================================================================
--- trunk/psconfig/psbuild	(revision 15158)
+++ trunk/psconfig/psbuild	(revision 15222)
@@ -2,4 +2,5 @@
 
 $tagsets = "tagsets";
+if (!-d $tagsets || !-r $tagsets || !-x $tagsets) { die "missing the directory of distribution tables: $tagsets\n"; }
 
 $version = "";
@@ -49,4 +50,7 @@
 	&list_distributions ();
     }
+    if ($ARGV[0] eq "-env") {
+	&show_environment ();
+    }
     if ($ARGV[0] eq "-h")     { &usage (); }
     if ($ARGV[0] eq "-help")  { &usage (); }
@@ -69,4 +73,37 @@
 exit 0;
 
+sub show_environment {
+    
+    # use psconfig.csh to set needed build aliases
+
+    # set the psconfig version:
+    if ("$version" eq "") {
+	$version = $ENV{'PSVERSION'};
+    }
+    if ("$version" eq "") {
+	$version = "default";
+    }
+
+    $psconfigure = `csh psconfig.csh --psconfigure $version`; chomp $psconfigure;
+    $psautogen   = `csh psconfig.csh --psautogen $version`;   chomp $psautogen;
+    $psperlbuild = `csh psconfig.csh --psperlbuild $version`; chomp $psperlbuild;
+
+    # print "psconfigure: $psconfigure\n";
+    # print "psautogen:   $psautogen\n";
+    # print "psperlbuild: $psperlbuild\n";
+
+    # set build environment variables
+    ps_setenv (1, "PATH", 		  "--path");
+    ps_setenv (1, "CPATH",		  "--cpath");
+    ps_setenv (1, "ARCH", 		  "--arch");
+    ps_setenv (1, "LIBRARY_PATH",    "--library_path");
+    ps_setenv (1, "LD_LIBRARY_PATH", "--ld_library_path");
+    ps_setenv (1, "PKG_CONFIG_PATH", "--pkg_config_path");
+    ps_setenv (1, "ACLOCAL_FLAGS",   "--aclocal_flags");
+    ps_setenv (1, "PERL5LIB",        "--perl5lib");
+
+    exit 0;
+}
+
 sub build_distribution {
     
@@ -85,17 +122,17 @@
     $psperlbuild = `csh psconfig.csh --psperlbuild $version`; chomp $psperlbuild;
 
-    print "psconfigure: $psconfigure\n";
-    print "psautogen:   $psautogen\n";
-    print "psperlbuild: $psperlbuild\n";
+    # print "psconfigure: $psconfigure\n";
+    # print "psautogen:   $psautogen\n";
+    # print "psperlbuild: $psperlbuild\n";
 
     # set build environment variables
-    ps_setenv ("PATH", 		  "--path");
-    ps_setenv ("CPATH",		  "--cpath");
-    ps_setenv ("ARCH", 		  "--arch");
-    ps_setenv ("LIBRARY_PATH",    "--library_path");
-    ps_setenv ("LD_LIBRARY_PATH", "--ld_library_path");
-    ps_setenv ("PKG_CONFIG_PATH", "--pkg_config_path");
-    ps_setenv ("ACLOCAL_FLAGS",   "--aclocal_flags");
-    ps_setenv ("PERL5LIB",        "--perl5lib");
+    ps_setenv (0, "PATH", 		  "--path");
+    ps_setenv (0, "CPATH",		  "--cpath");
+    ps_setenv (0, "ARCH", 		  "--arch");
+    ps_setenv (0, "LIBRARY_PATH",    "--library_path");
+    ps_setenv (0, "LD_LIBRARY_PATH", "--ld_library_path");
+    ps_setenv (0, "PKG_CONFIG_PATH", "--pkg_config_path");
+    ps_setenv (0, "ACLOCAL_FLAGS",   "--aclocal_flags");
+    ps_setenv (0, "PERL5LIB",        "--perl5lib");
 
     # some versions of libtool use this value:
@@ -122,10 +159,15 @@
 
 	$workdir = "../$cvsname[$i]";
-	print "workdir: $workdir\n";
-	chdir $workdir;
-	
+
 	# XXX need to grab current value for cleanup
 	print "\n ** psbuild: $cvsname[$i] ** \n";
 	print "\033]0; ** psbuild: $cvsname[$i] ** \007";
+
+	if (!-d $workdir || !-r $workdir || !-x $workdir) { 
+	    print STDERR "WARNING: no directory for component $cvsname[$i], skipping\n"; 
+	    next;
+	}
+	
+	chdir $workdir;
 
 	# how do we build this component?
@@ -268,6 +310,7 @@
 sub ps_setenv {
 
-    my $var = $_[0];
-    my $flag = $_[1];
+    my $verbose = $_[0];
+    my $var = $_[1];
+    my $flag = $_[2];
 
     my $answer = `csh psconfig.csh $flag $version`;
@@ -275,4 +318,7 @@
 
     $ENV{$var} = $answer;
-}
-
+    if ($verbose) {
+	print STDERR "$var = $answer\n";
+    }
+}
+
