use warnings;
use FileHandle;
+use File::Basename;
use Cwd;
+if ($#ARGV >= 0 and $ARGV[0] eq "-u") {
+ # Convenience for Unix users: -u means that after we finish what
+ # we're doing here, we also run mkauto.sh and then 'configure' in
+ # the Unix subdirectory. So it's a one-stop shop for regenerating
+ # the actual end-product Unix makefile.
+ #
+ # Arguments supplied after -u go to configure.
+ shift @ARGV;
+ @confargs = @ARGV;
+ $do_unix = 1;
+}
+
open IN, "Recipe" or do {
# We want to deal correctly with being run from one of the
# subdirs in the source tree. So if we can't find Recipe here,
return ();
}
+$orig_dir = cwd;
+
# Now we're ready to output the actual Makefiles.
if (defined $makefiles{'cygwin'}) {
if (defined $makefiles{'vcproj'}) {
$dirpfx = &dirpfx($makefiles{'vcproj'}, "\\");
- $orig_dir = cwd;
-
##-- MSVC 6 Workspace and projects
#
# Note: All files created in this section are written in binary
create_devcpp_project(\%all_object_deps, $progname);
}
+ chdir $orig_dir;
+
sub create_devcpp_project {
my ($all_object_deps, $progname) = @_;
# Construct program's dependency info (Taken from 'vcproj', seems to work right here, too.)
chdir "..";
}
}
+
+# All done, so do the Unix postprocessing if asked to.
+
+if ($do_unix) {
+ chdir $orig_dir;
+ system "./mkauto.sh";
+ die "mkfiles.pl: mkauto.sh returned $?\n" if $? > 0;
+ chdir ($targetdir = dirname($makefiles{"am"}))
+ or die "$targetdir: chdir: $!\n";
+ system "./configure", @confargs;
+ die "mkfiles.pl: configure returned $?\n" if $? > 0;
+}