André Hentschel : winemaker: Allow compiling 32-bit targets to be compiled on 64-bit hosts.
Alexandre Julliard
julliard at winehq.org
Thu Apr 22 11:24:00 CDT 2010
Module: wine
Branch: master
Commit: 65900b4a310d2392b0618e8a64ea3154919705a1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=65900b4a310d2392b0618e8a64ea3154919705a1
Author: André Hentschel <nerv at dawncrow.de>
Date: Wed Apr 21 20:22:13 2010 +0200
winemaker: Allow compiling 32-bit targets to be compiled on 64-bit hosts.
---
tools/winemaker | 28 ++++++++++++++++++++++------
tools/winemaker.de.man.in | 7 ++++---
tools/winemaker.man.in | 7 ++++---
3 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/tools/winemaker b/tools/winemaker
index 4cd46ff..60fe31f 100755
--- a/tools/winemaker
+++ b/tools/winemaker
@@ -67,6 +67,10 @@ my $OPT_ASK_SKIP=-1;
# The following constants define the architecture
##
+# Default Architecture will be choosen
+my $OPT_ARCH_DEFAULT=0;
+
+##
# 32-Bit Target
my $OPT_ARCH_32=32;
@@ -1019,7 +1023,9 @@ sub source_scan_project_file($$$)
}
if ((@$target[$T_FLAGS] & $TF_NOMSVCRT) == 0) {
push @{@$target[$T_LDFLAGS]},"-mno-cygwin";
- push @{@$target[$T_LDFLAGS]},"-m$opt_arch";
+ if ($opt_arch != $OPT_ARCH_DEFAULT) {
+ push @{@$target[$T_LDFLAGS]},"-m$opt_arch";
+ }
}
push @{@$project[$P_TARGETS]},$target;
@@ -1082,6 +1088,10 @@ sub source_scan_project_file($$$)
if ((@$project_settings[$T_FLAGS] & $TF_NOMSVCRT) == 0) {
push @{@$project_settings[$T_CEXTRA]},"-mno-cygwin";
push @{@$project_settings[$T_CXXEXTRA]},"-mno-cygwin";
+ if ($opt_arch != $OPT_ARCH_DEFAULT) {
+ push @{@$project_settings[$T_CEXTRA]},"-m$opt_arch";
+ push @{@$project_settings[$T_CXXEXTRA]},"-m$opt_arch";
+ }
}
if (@$project_settings[$T_FLAGS] & $TF_MFC) {
@@ -1506,7 +1516,9 @@ sub source_scan_directory($$$$)
}
if ((@$target[$T_FLAGS] & $TF_NOMSVCRT) == 0) {
push @{@$target[$T_LDFLAGS]},"-mno-cygwin";
- push @{@$target[$T_LDFLAGS]},"-m$opt_arch";
+ if ($opt_arch != $OPT_ARCH_DEFAULT) {
+ push @{@$target[$T_LDFLAGS]},"-m$opt_arch";
+ }
}
push @{@$project[$P_TARGETS]},$target;
@@ -1599,6 +1611,10 @@ sub source_scan_directory($$$$)
if ((@$project_settings[$T_FLAGS] & $TF_NOMSVCRT) == 0) {
push @{@$project_settings[$T_CEXTRA]},"-mno-cygwin";
push @{@$project_settings[$T_CXXEXTRA]},"-mno-cygwin";
+ if ($opt_arch != $OPT_ARCH_DEFAULT) {
+ push @{@$project_settings[$T_CEXTRA]},"-m$opt_arch";
+ push @{@$project_settings[$T_CXXEXTRA]},"-m$opt_arch";
+ }
}
if (@$project_settings[$T_FLAGS] & $TF_MFC) {
@@ -2496,7 +2512,7 @@ $opt_work_dir=undef;
$opt_single_target=undef;
$opt_target_type=$TT_GUIEXE;
$opt_flags=0;
-$opt_arch=$OPT_ARCH_32;
+$opt_arch=$OPT_ARCH_DEFAULT;
$opt_is_interactive=$OPT_ASK_NO;
$opt_ask_project_options=$OPT_ASK_NO;
$opt_ask_target_options=$OPT_ASK_NO;
@@ -2530,7 +2546,7 @@ sub usage()
print STDERR " [-Dmacro[=defn]] [-Idir] [-Pdir] [-idll] [-Ldir] [-llibrary]\n";
print STDERR " [--nodlls] [--nomsvcrt] [--interactive] [--single-target name]\n";
print STDERR " [--generated-files|--nogenerated-files]\n";
- print STDERR " [--wine64]\n";
+ print STDERR " [--wine32]\n";
print STDERR " work_directory|project_file|workspace_file\n";
print STDERR "\nWinemaker is designed to recursively convert all the Windows sources found in\n";
print STDERR "the specified directory or project-file, so that they can be compiled with Winelib.\n";
@@ -2568,8 +2584,8 @@ while (@ARGV>0) {
$opt_no_generated_files=0;
} elsif ($arg eq "--nogenerated-files") {
$opt_no_generated_files=1;
- } elsif ($arg eq "--wine64") {
- $opt_arch=$OPT_ARCH_64;
+ } elsif ($arg eq "--wine32") {
+ $opt_arch=$OPT_ARCH_32;
} elsif ($arg =~ /^-D/) {
push @{$global_settings[$T_DEFINES]},$arg;
} elsif ($arg =~ /^-I/) {
diff --git a/tools/winemaker.de.man.in b/tools/winemaker.de.man.in
index 12a58d0..ccb9731 100644
--- a/tools/winemaker.de.man.in
+++ b/tools/winemaker.de.man.in
@@ -33,7 +33,7 @@ winemaker \- Erzeugt eine Buildumgebung um Windows Programme unter Unix zu kompi
]
.br
[
-.IR "--wine64 " "]
+.IR "--wine32 " "]
.br
.IR "Arbeitsverzeichnis" "| " "Projektdatei" "| " "Workspacedatei"
@@ -174,8 +174,9 @@ Eine Makefile soll erzeugt werden. Diese Option ist Standard.
.I --nogenerated-files
Keine Makefile erstellen.
.TP
-.I --wine64
-Eine Makefile für 64-Bit erstellen.
+.I --wine32
+Ein 32-Bit Target erstellen. Das ist nützlich unter wow64 Systemen.
+Ohne dieser Option wird die Standard Architektur genutzt.
.SH BEISPIELE
.PP
diff --git a/tools/winemaker.man.in b/tools/winemaker.man.in
index ef78b4a..1169f57 100644
--- a/tools/winemaker.man.in
+++ b/tools/winemaker.man.in
@@ -33,7 +33,7 @@ winemaker \- generate a build infrastructure for compiling Windows programs on U
]
.br
[
-.IR "--wine64 " "]
+.IR "--wine32 " "]
.br
.IR "work_directory" "| " "project_file" "| " "workspace_file"
@@ -175,8 +175,9 @@ Tells winemaker to generate the Makefile. This is the default.
.I --nogenerated-files
Tells winemaker not to generate the Makefile.
.TP
-.I --wine64
-Tells winemaker to generate a 64-bit Makefile.
+.I --wine32
+Tells winemaker to generate a 32-bit target. This is useful on a wow64 systems.
+Without that option the default architecture is used.
.SH EXAMPLES
.PP
More information about the wine-cvs
mailing list