Create the main_target in single-target mode.

The defined(@array) construct is said to be deprecated, avoid it.
Simplify the usage reporting.
Add a word of caution to the usage message.
This commit is contained in:
François Gouget 2001-01-11 20:17:42 +00:00 committed by Alexandre Julliard
parent 785203ced8
commit 38b3ac5986
1 changed files with 40 additions and 27 deletions

View File

@ -3,7 +3,7 @@
# Copyright 2000 Francois Gouget for CodeWeavers
# fgouget@codeweavers.com
#
my $version="0.5.4";
my $version="0.5.5";
use Cwd;
use File::Basename;
@ -294,7 +294,6 @@ sub project_init
#
#####
my $usage;
my %warnings;
my %templates;
@ -881,16 +880,20 @@ sub source_scan_directory
# Scan the source directories in search of things to build
sub source_scan
{
my $main_target=@{$main_project[$P_TARGETS]}[0];
# If there's a single target then this is going to be the default target
if (defined $opt_single_target) {
# Create the main target
my $main_target=[];
target_init($main_target);
if ($opt_target_type == $TT_DLL) {
@$main_target[$T_NAME]="lib$opt_single_target.so";
} else {
@$main_target[$T_NAME]="$opt_single_target";
}
@$main_target[$T_TYPE]=$opt_target_type;
# Add it to the list
push @{$main_project[$P_TARGETS]},$main_target;
}
# The main directory is always going to be there
@ -1887,7 +1890,7 @@ sub generate_global_files
}
# Add execute permission to configure for whoever has the right to read it
my @st=stat("configure");
if (defined @st) {
if (@st) {
my $mode=$st[2];
$mode|=($mode & 0444) >>2;
chmod($mode,"configure");
@ -1969,6 +1972,32 @@ $opt_no_banner=0;
#
#####
sub print_banner
{
print "Winemaker $version\n";
print "Copyright 2000 Francois Gouget <fgouget\@codeweavers.com> for CodeWeavers\n";
}
sub usage
{
print_banner();
print STDERR "Usage: winemaker [--nobanner] [--backup|--nobackup]\n";
print STDERR " [--lower-none|--lower-all|--lower-uppercase]\n";
print STDERR " [--lower-include|--nolower-include]\n";
print STDERR " [--guiexe|--windows|--cuiexe|--console|--dll]\n";
print STDERR " [--wrap|--nowrap] [--mfc|--nomfc]\n";
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";
print STDERR "\nWinemaker is designed to recursively convert all the Windows sources found in\n";
print STDERR "the specified directory so that they can be compiled with Winelib. During this\n";
print STDERR "process it will modify and rename some of the files in that directory.\n";
print STDERR "\tPlease read the manual page before use.\n";
exit (2);
}
project_init(\@main_project,"");
while (@ARGV>0) {
@ -2039,41 +2068,25 @@ while (@ARGV>0) {
$opt_work_dir=$arg;
} else {
print STDERR "error: the work directory, \"$arg\", has already been specified (was \"$opt_work_dir\")\n";
$usage=1;
last;
usage();
}
} else {
$usage=1;
last;
usage();
}
}
}
if ($opt_no_banner == 0 or defined $usage) {
print "Winemaker $version\n";
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;
usage();
} elsif (!chdir $opt_work_dir) {
print STDERR "error: could not chdir to the work directory\n";
print STDERR " $!\n";
$usage=1;
usage();
}
if (defined $usage) {
print STDERR "Usage: winemaker [--nobanner] [--backup|--nobackup]\n";
print STDERR " [--lower-none|--lower-all|--lower-uppercase]\n";
print STDERR " [--lower-include|--nolower-include]\n";
print STDERR " [--guiexe|--windows|--cuiexe|--console|--dll]\n";
print STDERR " [--wrap|--nowrap] [--mfc|--nomfc]\n";
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);
if ($opt_no_banner == 0) {
print_banner();
}
# Fix the file and directory names