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 :

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.

CibleValeur de l'option
Aix 4.3Aix43
Cygwin 1.5CygWin15
Data General Unix 3.5Dg35
Digital Unix 4.0Dec40
HpUx 11HpUx11
Irix 6.4Irix64
Linux 2.4Linux24
MacOs XMacOs10
Ncr Dynix 4.0Dynix40
Os 390 r7Os390R7
Os 400 3.7Os400V37
Os 400 4.4Os400V44
Sco 3.2Sco32
Sequent Unix 4.4Sequent44
Sinix 4.0Sinix40
Solaris 2.7Sol27
Windows 95Win95
Windows 2000NtIntel2000
Windows MilleniumWinMe
Windows Nt 4.0 AlphaNtAlpha40
Windows Nt 4.0 IntelNtIntel40
Windows XpNtIntelXp

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

VariableSignification
RepertoireArchiveRépertoire où sont générées les classes Java et servant de base à l'archivage.
CibleCible de compilation pour un makefile.
ComposantComposant donnant un objet.
FichierEntreeFichier d'entrée à préprocesser.
FichierSortieFichier de sortie résultat du préprocessing.
IdlCorbaFichier contenant l'Idl des objets Corba générés.
IdlComFichier contenant l'Idl des ActiveX générés.
ListeDeComposantsListe des objets issus des composants constituant un module.
ListeDImportationsListe de répertoires dans lesquels sont recherchés les bibliothèques à lier.
ListeDInclusionsListe de répertoires dans lesquels sont recherchés les fichiers à inclure.
ListeDInclusionsJavaListe de répertoires dans lesquels sont recherchées les classes pour la compilation de fichiers sources Java.
ListeDInclusionsIdlCorbaListe de répertoires dans lesquels sont recherchés les fichiers à inclure pour la compilation d'Idl des objets Corba.
ListeDInclusionsIdlComListe de répertoires dans lesquels sont recherchés les fichiers à inclure pour la compilation d'Idl des ActiveX.
MakefileMakefile de compilation.
ModuleModule donnant une bibliothèque statique ou dynamique.
ModuleExecutableModule donnant un un exécutable ou une bibliothèque dynamique.
OptionsArchiveOptions d'archivage générées dynamiquement.
OptionsCcOptions de compilation générées dynamiquement.
OptionsLdOptions d'édition de liens générées dynamiquement.
OptionsPpOptions de preprocessing générées dynamiquement.
RepertoireArchiveRépertoire dans lequel doit être généré l'archive des classes Java.
RepertoireIdlsCorbaRépertoire dans lequel doit être généré l'Idl des objets Corba.
RepertoireIdlsComRépertoire dans lequel doit être généré l'Idl des ActiveX.
SuffixeSourceSuffixe du fichier source C ou C++ généré.

Revenir en haut de la page...
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 : 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...