Up ! C/C++ Generator
Options de génération...
Variables employables dans les modèles de commande...
Bibliothèques natives spécifiques à la plate-forme...
Up ! C/C++ Generator est le générateur multi plates-formes permettant de transformer un ensemble de sources Up ! 5GL en des programmes exécutables natifs C / C++.
Ce générateur s'appuie sur des compilateurs et des éditeurs de liens tels cc ou ld. Ces derniers ne sont pas fournis avec Up ! Compiler.
Certaines options font référence à des fichiers ou à des chemins d'accès. En ce cas, il est possible d'employer des variables environnement dans l'expression des chemins d'accès. Exemple :
Tmp=${UPS_HOME}/demo/tmp/${UPS_USER}
D'autre part, les séparateurs de répertoire peuvent être indifféremment division /
ou division inversée \
.
Les options sont lues successivement dans :
- Les variables environnement.
- Le fichier d'initialisation ${UPS_HOME}/ini/upsgnc.ini en mode mono-utilisateur ou ${UPS_HOME}/ini/${UPS_USER}/upsgnc.ini en mode multi-utilisateur.
La section est le nom de la cible.
- Le fichier de paramètres s'il existe.
- La ligne de commande.
Les valeurs des options comportant des caractères espace doivent être mise entre caractères guillemet "
ou entre caractères apostrophe '
.
Les paramètres peuvent être préfixés par le nom de la cible.
ArchiveDynamique permet de spécifier un modèle d'archivage d'un objet dans un bibliothèque dynamique. Il n'y a pas de valeur par défaut.
ArchiveDynamique=ar -rc lib${Module}.a ${Composant}.o
ArchiveJava permet de spécifier un modèle d'archivage d'une classe Java dans une archive. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut utiliser Java.
ArchiveJava=jar ${OptionsArchive) ${Module}.jar ${RepertoireClasses}
arcsta permet de spécifier un modèle d'archivage d'un objet dans un bibliothèque statique. Il n'y a pas de valeur par défaut.
ArchiveStatique=ar -rc lib${Module}.a ${Composant}.o
Cible permet de spécifier la cible de génération. Il n'y a pas de valeur par défaut.
Cible | Valeur de l'option |
Aix 4.3 | Aix43 |
Cygwin 1.5 | CygWin15 |
Data General Unix 3.5 | Dg35 |
Digital Unix 4.0 | Dec40 |
HpUx 11 | HpUx11 |
Irix 6.4 | Irix64 |
Linux 2.4 | Linux24 |
MacOs X | MacOs10 |
Ncr Dynix 4.0 | Dynix40 |
Os 390 r7 | Os390R7 |
Os 400 3.7 | Os400V37 |
Os 400 4.4 | Os400V44 |
Sco 3.2 | Sco32 |
Sequent Unix 4.4 | Sequent44 |
Sinix 4.0 | Sinix40 |
Solaris 2.7 | Sol27 |
Windows 95 | Win95 |
Windows 2000 | NtIntel2000 |
Windows Millenium | WinMe |
Windows Nt 4.0 Alpha | NtAlpha40 |
Windows Nt 4.0 Intel | NtIntel40 |
Windows Xp | NtIntelXp |
CompilationDynamique permet de spécifier un modèle de compilation dynamique. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut créer un module dynamique.
CompilationDynamique=cc -g ${ListeDInclusions} -c ${Composant}.c ${Composant}.o
CompilationIdlCom permet de spécifier un modèle de compilation de fichier Interface Definition Language d'un ActiveX en des interfaces C++. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut utiliser Com.
CompilationIdlCom=midl.exe /nologo /client none /server none /win32 /Zp4 ${ListeDInclusionsIdlCom} /out ${RepertoireIdlsCom} /header ${IdlCom}.h ${IdlCom}.idl
CompilationIdlCorba permet de spécifier un modèle de compilation de fichier Interface Definition Language de Corba en des interfaces C++. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut utiliser Corba.
CompilationIdlCorba=idl.exe --codegen-c++ --c++-suffix=cpp --hh-suffix=hh --poa --no-boa -DModule${Module} ${ListeDInclusionsIdlCorba} ${IdlCorba}.idl
CompilationJavaC permet de spécifier un modèle de compilation d'un fichier source d'une classe Java en un fichier class. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut créer un module dynamique.
CompilationJavaC=javac.exe -classpath ${ListeDInclusionsJava} -d ${RepertoireArchive} ${Composant}.java
CompilationJavaH permet de spécifier un modèle de compilation d'un fichier source d'une classe Java en un fichier h en langage C. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut utiliser Java.
CompilationJavaH=javah.exe -classpath ${ListeDInclusionsJava} -d ${RepertoireArchive} ${Composant}
CompilationStatique permet de spécifier un modèle de compilation statique. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut créer un module statique.
CompilationStatique=cc -g ${ListeDInclusions} -c ${Composant}.c ${Composant}.o
CompilationTlbCom permet de spécifier un modèle de compilation de fichier Interface Definition Language d'un ActiveX en une Type Library. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut créer un module dynamique.
CompilationTlbCom=midl.exe /nologo /client none /server none /win32 /Zp4 /D Module${Module} ${ListeDInclusionsIdlCom} /out ${RepertoireIdlsCom} ${IdlCom}.idl
strip permet de spécifier un modèle de compression d'exécutables. Par défaut, les fichiers ne sont vidés des symboles de mise au point.
Compression ${Module}
EditionDeLiensDynamique permet de spécifier un modèle d'éditions de liens pour un module dynamique. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut créer un module dynamique.
EditionDeLiensDynamique=cc ${ListeDImportations} -o ${Module} ${ListeDeComposants} ${ListeDeModules}
EditionDeLiensExecutable permet de spécifier un modèle d'éditions de liens pour un exécutable. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut créer un exécutable.
EditionDeLiensExecutable=cc ${ListeDImportations} -o ${Module} ${ListeDeComposants} ${ListeDeModules}
EditionDeLiensStatique permet de spécifier un modèle d'éditions de liens pour un module statique. Il n'y a pas de valeur par défaut et cette option est obligatoire si on veut créer un module statique.
EditionDeLiensStatique=cc ${ListeDImportations} -o ${Module} ${ListeDeComposants} ${ListeDeModules}
LancementCompilation permet de spécifier un modèle de lancement de compilation. Il n'y a pas de valeur par défaut et cette option est obligatoire.
LancementCompilation=make -f ${Makefile} ${Cible}
LiaisonRessources permet de spécifier un modèle de liaison des ressources à un module. Il n'y a pas de valeur par défaut.
LiaisonRessources=${MSVC_HOME}\bin\rc /k ${UPS_HOME}\lib\upscmp.res $(Module).exe
Preprocessing permet de spécifier un modèle de préprocessing de fichier. Il n'y a pas de valeur par défaut et cette option est obligatoire.
Preprocessing=cl.exe /nologo /EP $(FichierEntree) > $(FichierSortie)
Revenir en haut de la page...
Variables employables dans les modèles de commande
Les modèles de commandes font référence à des variables permettant de les paramétrées. Sur les plates-formes Windows Millenium, Windows 2000 et Windows XP, les variables doivent être entourées de $(
et )
. Sur les autres plates-formes, elles doivent être entourées de ${
et }
. Voici la liste des variables définies :
Variable | Signification |
RepertoireArchive | Répertoire où sont générées les classes Java et servant de base à l'archivage. |
Cible | Cible de compilation pour un makefile. |
Composant | Composant donnant un objet. |
FichierEntree | Fichier d'entrée à préprocesser. |
FichierSortie | Fichier de sortie résultat du préprocessing. |
IdlCorba | Fichier contenant l'Idl des objets Corba générés. |
IdlCom | Fichier contenant l'Idl des ActiveX générés. |
ListeDeComposants | Liste des objets issus des composants constituant un module. |
ListeDImportations | Liste de répertoires dans lesquels sont recherchés les bibliothèques à lier. |
ListeDInclusions | Liste de répertoires dans lesquels sont recherchés les fichiers à inclure. |
ListeDInclusionsJava | Liste de répertoires dans lesquels sont recherchées les classes pour la compilation de fichiers sources Java. |
ListeDInclusionsIdlCorba | Liste de répertoires dans lesquels sont recherchés les fichiers à inclure pour la compilation d'Idl des objets Corba. |
ListeDInclusionsIdlCom | Liste de répertoires dans lesquels sont recherchés les fichiers à inclure pour la compilation d'Idl des ActiveX. |
Makefile | Makefile de compilation. |
Module | Module donnant une bibliothèque statique ou dynamique. |
ModuleExecutable | Module donnant un un exécutable ou une bibliothèque dynamique. |
OptionsArchive | Options d'archivage générées dynamiquement. |
OptionsCc | Options de compilation générées dynamiquement. |
OptionsLd | Options d'édition de liens générées dynamiquement. |
OptionsPp | Options de preprocessing générées dynamiquement. |
RepertoireArchive | Répertoire dans lequel doit être généré l'archive des classes Java. |
RepertoireIdlsCorba | Répertoire dans lequel doit être généré l'Idl des objets Corba. |
RepertoireIdlsCom | Répertoire dans lequel doit être généré l'Idl des ActiveX. |
SuffixeSource | Suffixe du fichier source C ou C++ généré. |
Revenir en haut de la page...
Bibliothèques natives spécifiques à la plate-forme
Lors de l'édition de liens d'un module ou d'un programme généré, Up ! C/C++ Generator lie des bibliothèques natives aux fichiers objets compilés. Ces bibliothèques natives varient en fonction :
- De la plate-forme.
Il existe donc une liste de bibliothèques à lier par plate-forme. Cette liste, portant le nom de la plate-forme cible, est conservée dans le répertoire ${UPS_HOME}/upscmp/lib.
- Des options de génération du module.
Cette liste diffère s'il s'agit du corps du module généré en langage C / C++, de l'adaptateur Corba généré en langage C++, de l'adaptateur Com généré en langage C++ ou de l'adaptateur Java généré en langage C++. Cette liste comporte donc des sections :
- La section Standard regroupe les bibliothèques pour tous les types de génération.
- La section ExecutableModule regroupe les bibliothèques quand seul un exécutable est généré.
- La section StaticModule regroupe les bibliothèques additionnelles pour un module statique est généré.
- La section DynamicModule regroupe les bibliothèques additionnelles pour un module dynamique est généré.
- La section UpsCrb regroupe les bibliothèques additionnelles pour un adaptateur Corba.
- La section UpsCom regroupe les bibliothèques additionnelles pour un adaptateur Com.
- La section UpsJav regroupe les bibliothèques additionnelles pour un adaptateur Java.
Dans une section, les bibliothèques natives doivent être listées une à une par ligne. Voici en exemple le contenu du fichier windows95.lib :
[Standard]
[ExecutableModule]
kernel32.lib
user32.lib
advapi32.lib
msvcrt.lib
[StaticModule]
[DynamicModule]
kernel32.lib
msvcrt.lib
[UpsCom]
kernel32.lib
user32.lib
advapi32.lib
ole32.lib
oleaut32.lib
uuid.lib
msvcrt.lib
[UpsCrb]
kernel32.lib
user32.lib
advapi32.lib
mico2311.lib
msvcrt.lib
msvcprt.lib
[UpsJav]
kernel32.lib
user32.lib
advapi32.lib
jvm.lib
msvcrt.lib
Revenir en haut de la page...