Require that the user specify a work directory. This provides a
safeguard against accidental invocations.

diff --git a/tools/winemaker b/tools/winemaker
index bb50dd8..8b9eb72 100755
--- a/tools/winemaker
+++ b/tools/winemaker
@@ -3,7 +3,7 @@
 # Copyright 2000 Francois Gouget for CodeWeavers
 # fgouget@codeweavers.com
 #
-my $version="0.5.3";
+my $version="0.5.4";
 
 use Cwd;
 use File::Basename;
@@ -50,6 +50,10 @@
 # General options
 
 ##
+# This is the directory in which winemaker will operate.
+my $opt_work_dir;
+
+##
 # Make a backup of the files
 my $opt_backup;
 
@@ -1872,6 +1876,9 @@
       }
     }
   }
+  if (!defined $a_source_file) {
+    $a_source_file="Makefile.in";
+  }
 
   generate_configure("configure.in",$a_source_file);
   unlink("configure");
@@ -1944,6 +1951,7 @@
 $opt_lower=$OPT_LOWER_UPPERCASE;
 $opt_lower_include=1;
 
+# $opt_work_dir=<undefined>
 # $opt_single_target=<undefined>
 $opt_target_type=$TT_GUIEXE;
 $opt_flags=0;
@@ -2027,10 +2035,17 @@
   # Catch errors
   } else {
     if ($arg ne "--help" and $arg ne "-h" and $arg ne "-?") {
-      print STDERR "Unknown option: $arg\n";
+      if (!defined $opt_work_dir) {
+        $opt_work_dir=$arg;
+      } else {
+        print STDERR "error: the work directory, \"$arg\", has already been specified (was \"$opt_work_dir\")\n";
+        $usage=1;
+        last;
+      }
+    } else {
+      $usage=1;
+      last;
     }
-    $usage=1;
-    last;
   }
 }
 
@@ -2039,6 +2054,15 @@
    print "Copyright 2000 Francois Gouget <fgouget\@codeweavers.com> for CodeWeavers\n";
 }
 
+if (!defined $opt_work_dir) {
+  print STDERR "error: you must specify the directory containing the sources to be converted\n";
+  $usage=1;
+} elsif (!chdir $opt_work_dir) {
+  print STDERR "error: could not chdir to the work directory\n";
+  print STDERR "       $!\n";
+  $usage=1;
+}
+
 if (defined $usage) {
   print STDERR "Usage: winemaker [--nobanner] [--backup|--nobackup]\n";
   print STDERR "                 [--lower-none|--lower-all|--lower-uppercase]\n";
@@ -2048,6 +2072,7 @@
   print STDERR "                 [-Dmacro[=defn]] [-Idir] [-Ldir] [-idll] [-llibrary]\n";
   print STDERR "                 [--interactive] [--single-target name]\n";
   print STDERR "                 [--generated-files|--nogenerated-files]\n";
+  print STDERR "                 work_directory\n";
   exit (2);
 }