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...