Man Pages/winemaker.fr

From WineHQ Wiki
Jump to: navigation, search


NOM

winemaker - générer une infrastructure de construction pour la compilation de programmes Windows sur UNIX


SYNOPSIS

winemaker [ --nobanner ] [ --backup | --nobackup ] [ --nosource-fix ]

[ --lower-none | --lower-all | --lower-uppercase ]

[ --lower-include | --nolower-include ] [ --mfc | --nomfc ]

[ --guiexe | --windows | --cuiexe | --console | --dll | --lib ]

[ -Dmacro[=défn] ] [ -Irép ] [ -Prép ] [ -idll ] [ -Lrép ] [ -lbibliothèque ]

[ --nodlls ] [ --nomsvcrt ] [ --interactive ] [ --single-target nom ]

[ --generated-files ] [ --nogenerated-files ]

[ --wine32 ]

répertoire_de_travail | fichier_projet | fichier_espace_de_travail


DESCRIPTION

winemaker est un script perl conçu pour vous aider à entamer le processus de conversion de vos sources Windows en programmes Winelib.

À cet effet, il peut effectuer les opérations suivantes :

  • renommer vos fichiers sources et répertoires en minuscules s'ils ont été convertis en majuscules durant le transfert.
  • convertir les fins de ligne DOS en fins de ligne UNIX (CRLF vers LF).
  • parcourir les directives d'inclusion et les références aux fichiers de ressources pour y remplacer les backslashs par des slashs.
  • durant l'étape ci-dessus, winemaker va également effectuer une recherche insensible à la casse du fichier référencé dans le chemin d'inclusion, et réécrire la directive d'inclusion avec la casse correcte si nécessaire.
  • winemaker recherchera également d'autres problèmes plus exotiques comme l'emploi de #pragma pack, l'utilisation de afxres.h dans des projets non MFC, etc. Quand il trouve de tels points nébuleux, il émettra des avertissements.
  • winemaker peut également balayer un arbre de répertoires complet en une seule passe, deviner quels sont les exécutables et bibliothèques en cours de construction, les faire correspondre à des fichiers sources, et générer le Makefile correspondant.
  • finalement, winemaker générera un Makefile global pour une utilisation classique.
  • winemaker comprend les projets de type MFC, et génère des fichiers appropriés.
  • winemaker est capable de lire des fichiers projets existants (dsp, dsw, vcproj et sln).


OPTIONS

--nobanner

Désactiver l'affichage de la bannière.

--backup

Effectuer une sauvegarde préalable de tous les fichiers modifiés. Comportement par défaut.

--nobackup

Ne pas effectuer de sauvegarde des fichiers sources modifiés.

--nosource-fix

Ne pas essayer de corriger les fichiers sources (p.ex. la conversion DOS vers UNIX). Cela évite des messages d'erreur si des fichiers sont en lecture seule.

--lower-all

Renommer tous les fichiers et répertoires en minuscules.

--lower-uppercase

Ne renommer que les fichiers et répertoires qui ont un nom composé uniquement de majuscules. Ainsi, HELLO.C serait renommé, mais pas World.c.

--lower-none

Ne pas renommer de fichiers et répertoires en minuscules. Notez que cela n'empêche pas le renommage d'un fichier si son extension ne peut être traitée telle quelle, comme par exemple « .Cxx ». Comportement par défaut.

--lower-include

Convertir en minuscules les noms de fichiers associés à des directives d'inclusion (ou à d'autres formes de références de fichiers pour les fichiers ressources) que winemaker n'arrive pas à trouver. Comportement par défaut.

--nolower-include

Ne pas modifier la directive d'inclusion si le fichier référencé ne peut être trouvé.

--guiexe | --windows

Présumer une application graphique quand une cible exécutable ou une cible d'un type inconnu est rencontrée. Comportement par défaut.

--cuiexe | --console

Présumer une application en mode console quand une cible exécutable ou une cible d'un type inconnu est rencontrée.

--dll

Présumer une DLL quand une cible d'un type inconnu est rencontrée (c.-à-d. si winemaker ne peut déterminer s'il s'agit d'un exécutable, d'une DLL ou d'une bibliothèque statique).

--lib

Présumer une bibliothèque statique quand une cible d'un type inconnu est rencontrée (c.-à-d. si winemaker ne peut déterminer s'il s'agit d'un exécutable, d'une DLL ou d'une bibliothèque statique).

--mfc

Spécifier que les cibles utilisent les MFC. Dans ce cas, winemaker adapte les chemins d'inclusion et des bibliothèques en conséquence, et lie la cible avec la bibliothèque MFC.

--nomfc

Spécifier que les cibles n'utilisent pas les MFC. Cette option empêche l'utilisation des bibliothèques MFC même si winemaker rencontre des fichiers stdafx.cpp ou stdafx.h qui activeraient les MFC automatiquement en temps normal si ni --nomfc ni --mfc n'était spécifiée.

-Dmacro[=défn]

Ajouter la définition de macro spécifiée à la liste globale des définitions de macros.

-Irépertoire

Ajouter le répertoire spécifié au chemin global d'inclusion.

-Prépertoire

Ajouter le répertoire spécifié au chemin global des DLL.

-idll

Ajouter la bibliothèque Winelib à la liste global de bibliothèques Winelib à importer.

-Lrépertoire

Ajouter le répertoire spécifié au chemin global des bibliothèques.

-lbibliothèque

Ajouter la bibliothèque spécifiée à la liste globale de bibliothèques à utiliser lors de l'édition des liens.

--nodlls

Ne pas utiliser l'ensemble standard de bibliothèques Winelib pour les imports, c.-à-d. que toute DLL utilisée par votre code doit être explicitement spécifiée à l'aide d'options -i. L'ensemble standard de bibliothèques est : odbc32.dll, odbccp32.dll, ole32.dll, oleaut32.dll et winspool.drv.

--nomsvcrt

Définir certaines options afin que winegcc n'utilise pas msvcrt durant la compilation. Utilisez cette option si certains fichiers cpp incluent <string>.

--interactive

Utiliser le mode interactif. Dans ce mode, winemaker demandera de confirmer la liste de cibles pour chaque répertoire, et ensuite de fournir des options spécifiques de répertoire et/ou de cible.

--single-target nom

Spécifier qu'il n'y a qu'une seule cible, appelée nom.

--generated-files

Générer le Makefile. Comportement par défaut.

--nogenerated-files

Ne pas générer le Makefile.

--wine32

Générer une cible 32 bits. Utile sur les systèmes wow64. Sans cette option, l'architecture par défaut est utilisée.


EXEMPLES

Voici quelques exemples typiques d'utilisation de winemaker :

$ winemaker --lower-uppercase -DSTRICT .

Recherche des fichiers sources dans le répertoire courant et ses sous-répertoires. Quand un fichier ou répertoire a un nom composé uniquement de majuscules, le renomme en minuscules. Ensuite, adapte tous ces fichiers sources pour une compilation avec Winelib, et génère des Makefiles. -DSTRICT spécifie que la macro STRICT doit être définie lors de la compilation des sources. Finalement, un Makefile est créé.

L'étape suivante serait :

$ make

Si vous obtenez des erreurs de compilation à ce moment (ce qui est plus que probable pour un projet d'une taille raisonnable), vous devriez consulter le guide de l'utilisateur de Winelib pour trouver des moyens de les résoudre.

Pour un projet utilisant les MFC, vous devriez plutôt exécuter les commandes suivantes :

$ winemaker --lower-uppercase --mfc .
$ make

Pour un fichier projet existant, vous devriez exécuter les commandes suivantes :

$ winemaker monprojet.dsp
$ make


LIMITATIONS / PROBLÈMES

Dans certains cas, vous devrez éditer manuellement le Makefile ou les fichiers sources.

En supposant que l'exécutable ou la bibliothèque windows est disponible, on peut utiliser winedump pour en déterminer le type (graphique ou en mode console) et les bibliothèques auxquelles il est lié (pour les exécutables), ou quelles fonctions elle exporte (pour les bibliothèques). On pourrait ensuite restituer tous ces réglages pour la cible Winelib correspondante.

De plus, winemaker n'est pas très apte à trouver la bibliothèque contenant l'exécutable : elle doit être soit dans le répertoire courant, soit dans un des répertoires de LD_LIBRARY_PATH.

winemaker ne prend pas encore en charge les fichiers de messages, ni le compilateur de messages.

Les bugs peuvent être signalés (en anglais) sur le système de suivi des problèmes de Wine


AUTEURS

François Gouget pour CodeWeavers

Dimitrie O. Paun

André Hentschel


DISPONIBILITÉ

winemaker fait partie de la distribution de Wine, qui est disponible sur WineHQ, le quartier général du développement de Wine


VOIR AUSSI

wine(1),

Documentation et support de Wine