=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: winemaker: Add command line option for compiling static libraries.

Alexandre Julliard julliard at winehq.org
Mon Jan 16 13:01:31 CST 2012


Module: wine
Branch: master
Commit: 3abe79d71a201f4c81754bdf48c9c97f4a4b4921
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3abe79d71a201f4c81754bdf48c9c97f4a4b4921

Author: André Hentschel <nerv at dawncrow.de>
Date:   Sun Jan 15 18:02:57 2012 +0100

winemaker: Add command line option for compiling static libraries.

---

 tools/winemaker           |   12 +++++++++++-
 tools/winemaker.de.man.in |    9 ++++++---
 tools/winemaker.man.in    |   13 +++++++++----
 3 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/tools/winemaker b/tools/winemaker
index 0e5ad18..aaf0d9c 100755
--- a/tools/winemaker
+++ b/tools/winemaker
@@ -1433,6 +1433,8 @@ sub source_scan_directory($$$$)
 	$name =~ s+(/|\.[^.]*)$++;
 	if ($opt_target_type == $TT_DLL) {
 	  $name = canonize($name).".dll";
+	} elsif ($opt_target_type == $TT_LIB) {
+	  $name = "lib".canonize($name).".a";
 	} else {
 	  $name = canonize($name).".exe";
 	}
@@ -1551,6 +1553,12 @@ sub source_scan_directory($$$$)
       push @local_depends,"$target_name";
       push @local_libs,$target_name;
       push @{@$target[$T_ARFLAGS]},("rc");
+    } elsif ($target_name =~ /\.a$/) {
+      @$target[$T_NAME]=$target_name;
+      @$target[$T_TYPE]=$TT_LIB;
+      push @local_depends,"$target_name";
+      push @local_libs,$target_name;
+      push @{@$target[$T_ARFLAGS]},("rc");
     } else {
       @$target[$T_TYPE]=$opt_target_type;
       push @exe_list,$target;
@@ -2630,7 +2638,7 @@ sub usage()
   print STDERR "Usage: winemaker [--nobanner] [--backup|--nobackup] [--nosource-fix]\n";
   print STDERR "                 [--lower-none|--lower-all|--lower-uppercase]\n";
   print STDERR "                 [--lower-include|--nolower-include] [--mfc|--nomfc]\n";
-  print STDERR "                 [--guiexe|--windows|--cuiexe|--console|--dll]\n";
+  print STDERR "                 [--guiexe|--windows|--cuiexe|--console|--dll|--lib]\n";
   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";
@@ -2690,6 +2698,8 @@ while (@ARGV>0) {
   # 'Source'-based method options
   } elsif ($arg eq "--dll") {
     $opt_target_type=$TT_DLL;
+  } elsif ($arg eq "--lib") {
+    $opt_target_type=$TT_LIB;
   } elsif ($arg eq "--guiexe" or $arg eq "--windows") {
     $opt_target_type=$TT_GUIEXE;
   } elsif ($arg eq "--cuiexe" or $arg eq "--console") {
diff --git a/tools/winemaker.de.man.in b/tools/winemaker.de.man.in
index 8cca9d9..e7f92b6 100644
--- a/tools/winemaker.de.man.in
+++ b/tools/winemaker.de.man.in
@@ -1,5 +1,5 @@
 .\" -*- nroff -*-
-.TH WINEMAKER 1 "April 2010" "@PACKAGE_STRING@" "Wine Developers Manual"
+.TH WINEMAKER 1 "Januar 2012" "@PACKAGE_STRING@" "Wine Developers Manual"
 .SH NAME
 winemaker \- Erzeugt eine Buildumgebung um Windows Programme unter Unix zu kompilieren
 .SH ÜBERSICHT
@@ -17,7 +17,7 @@ winemaker \- Erzeugt eine Buildumgebung um Windows Programme unter Unix zu kompi
 ]
 .br
   [
-.BR               "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll "
+.BR               "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll " "| " "--lib "
 ]
 .br
   [
@@ -118,7 +118,10 @@ Diese Option ist Standard.
 Gibt den Typ(Konsole) der zu erstellenden Anwendung an.
 .TP
 .B --dll
-winemaker wird im Zweifelsfall annehmen, dass es sich um eine Bibliothek handelt.
+winemaker wird im Zweifelsfall annehmen, dass es sich um eine DLL handelt.
+.TP
+.B --lib
+winemaker wird im Zweifelsfall annehmen, dass es sich um eine statische Bibliothek handelt.
 .TP
 .B --mfc
 Teilt winemaker mit, dass es sich um MFC-basierten Quellcode handelt.
diff --git a/tools/winemaker.man.in b/tools/winemaker.man.in
index 1f6bc3c..f0a17cf 100644
--- a/tools/winemaker.man.in
+++ b/tools/winemaker.man.in
@@ -1,5 +1,5 @@
 .\" -*- nroff -*-
-.TH WINEMAKER 1 "Sep 2009" "@PACKAGE_STRING@" "Wine Developers Manual"
+.TH WINEMAKER 1 "Jan 2012" "@PACKAGE_STRING@" "Wine Developers Manual"
 .SH NAME
 winemaker \- generate a build infrastructure for compiling Windows programs on Unix
 .SH SYNOPSIS
@@ -17,7 +17,7 @@ winemaker \- generate a build infrastructure for compiling Windows programs on U
 ]
 .br
   [
-.BR               "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll "
+.BR               "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll " "| " "--lib "
 ]
 .br
   [
@@ -120,8 +120,13 @@ unknown type, it should assume that it is a console application.
 .TP
 .B --dll
 This option tells winemaker that whenever it finds a target of unknown type,
-i.e. for which it does not know whether it is an executable or a library,
-it should assume it is a library.
+i.e. for which it does not know whether it is an executable, a dll, or a static library,
+it should assume it is a dll.
+.TP
+.B --lib
+This option tells winemaker that whenever it finds a target of unknown type,
+i.e. for which it does not know whether it is an executable, a dll, or a static library,
+it should assume it is a static library.
 .TP
 .B --mfc
 Specifies that the targets are MFC based. In such a case winemaker adapts




More information about the wine-cvs mailing list