imake - En ligne dans le Cloud

Il s'agit de la commande imake qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


imake - interface du préprocesseur C vers l'utilitaire make

SYNOPSIS


je fais [ -DVous permet de définir ] [ -Idir ] [ -UVous permet de définir ] [ -Tmodèle ] [ -f nom de fichier ] [ -C nom de fichier ] [
-s nom de fichier ] [ -e ] [ -v ]

DESCRIPTION


Je fais est utilisé pour générer Fichiers Make à partir d'un modèle, un ensemble de cpp fonctions macro, et un
fichier d'entrée par répertoire appelé Imakefile. Cela permet des dépendances de machine (telles que
options du compilateur, noms de commandes alternatifs et a prendre une règles) à séparer
à partir des descriptions des différents éléments à construire.

OPTIONS


Les options de ligne de commande suivantes peuvent être transmises à je fais:

-DVous permet de définir
Cette option est transmise directement à cpp. Il est généralement utilisé pour définir le répertoire-
variables spécifiques. Par exemple, le système X Window a utilisé ce drapeau pour définir TOPDIR
au nom du répertoire contenant le début de la distribution principale et
CURDIR au nom du répertoire courant, par rapport au haut.

-Iannuaire
Cette option est transmise directement à cpp. Il est généralement utilisé pour indiquer le
répertoire dans lequel le je fais des fichiers de modèle et de configuration peuvent être trouvés.

-UVous permet de définir
Cette option est transmise directement à cpp. Il est généralement utilisé pour désarmer des variables
lors du débogage je fais fichiers de configuration.

-Tmodèle
Cette option spécifie le nom du fichier modèle principal (qui est généralement
situé dans le répertoire spécifié avec -I) utilisé par cpp. La valeur par défaut est
Imake.tmpl.

-f nom de fichier
Cette option spécifie le nom du fichier d'entrée par répertoire. La valeur par défaut est
Imakefile.

-C nom de fichier
Cette option spécifie le nom du fichier .c qui est construit dans le
annuaire. La valeur par défaut est Imakefile.c.

-s nom de fichier
Cette option spécifie le nom du a prendre une fichier de description à générer mais
a prendre une ne doit pas être invoqué. Si la nom de fichier est un tiret (-), la sortie est écrite
à Stdout. La valeur par défaut est de générer, mais pas d'exécuter, un Makefile.

-e Cette option indique le je fais devrait exécuter le généré MakefileL’
la valeur par défaut est de laisser cela à l'utilisateur.

-v Cette option indique que je fais devrait imprimer le cpp ligne de commande qu'il s'agit
utiliser pour générer le Makefile.

COMMENT IT TRAVAUX


Je fais invoque cpp avec tout -I or -D flags passés sur la ligne de commande et passe le nom
d'un fichier contenant les 3 lignes suivantes :

#define IMAKE_TEMPLATE "Imake.tmpl"
#define INCLUDE_IMAKEFILE
#include IMAKE_TEMPLATE

De Imake.tmpl et de Imakefile peut être annulé par le -T et de -f options de commande,
respectivement.

Le IMAKE_TEMPLATE lit généralement dans un fichier contenant des paramètres dépendant de la machine
(spécifié comme cpp symboles), un fichier de paramètres spécifiques au site, un fichier de définition de variables, un
fichier contenant cpp fonctions macro pour générer a prendre une règles, et enfin le Imakefile
(spécifié par INCLUDE_IMAKEFILE) dans le répertoire courant. Les Imakefile utilise la macro
des fonctions pour indiquer quelles cibles devraient être construites ; je fais s'occupe de générer le
règles appropriées.

Je fais les fichiers de configuration contiennent deux types de variables, les variables imake et make
variables. Les variables imake sont interprétées par cpp lorsque je fais est exécuté. Par convention
ce sont des cas mixtes. Les variables make sont écrites dans le Makefile pour plus tard
interprétation par faire. Par convention, les variables make sont en majuscules.

Le fichier de règles (généralement nommé Je fais.règles dans le répertoire de configuration) contient un
diverses cpp fonctions de macro qui sont configurées en fonction de la plate-forme actuelle.
Je fais remplace toute occurrence de la chaîne ``@@'' par une nouvelle ligne pour autoriser les macros qui
générer plus d'une ligne de a prendre une règles. Par exemple, la macro

#define program_target(programme, objlist) @@
programme : objlist @@
$(CC) -o $@ liste obj $(LDFLAGS)

lorsqu'il est appelé avec program_target(foo, foo1.o foo2.o) s'étendra à

foo : foo1.o foo2.o
$(CC) -o $@ foo1.o foo2.o $(LDFLAGS)

Je fais remplace également toute occurrence du mot ``XCOMM'' par le caractère ``#'' pour
permettre de placer des commentaires dans le Makefile sans provoquer d'erreurs de ``directive invalide'' de
le préprocesseur.

Certains complexes je fais les macros nécessitent généré a prendre une variables locales à chaque invocation du
macro, souvent parce que leur valeur dépend des paramètres passés à la macro. Tel
les variables peuvent être créées à l'aide d'un je fais variable de la forme XVARdefn, Où n est une
un seul chiffre. Un unique a prendre une variable sera substituée. Les occurrences ultérieures de la
variable XVAusen sera remplacé par la variable créée par le correspondant XVARdefn.

Sur les systèmes dont cpp réduit plusieurs tabulations et espaces à un seul espace, je fais essayer de
remettre les onglets nécessaires (a prendre une est très pointilleux sur la différence entre les onglets et
les espaces). Pour cette raison, les deux points (:) dans les lignes de commande doivent être précédés d'une barre oblique inverse
(\).

UTILISATION WITH LES X FENÊTRE SYSTÈME


Le système X Window utilisé je fais largement jusqu'à la version X11R6.9, à la fois pour
construit dans l'arborescence source et le logiciel externe. X a depuis migré vers GNU autoconf
et automake pour son système de construction dans X11R7.0 et versions ultérieures, mais maintient toujours imake
pour créer des logiciels externes existants qui n'ont pas encore été convertis.

Comme mentionné ci-dessus, deux variables spéciales, TOPDIR et de CURDIR, sont amenés à faire du référencement
fichiers utilisant des noms de chemin relatifs plus faciles. Par exemple, la commande suivante est générée
automatiquement pour construire le Makefile dans l'annuaire lib/X/ (par rapport au sommet du
sources):

% ../.././config/imake -I../.././config
-DTOPDIR=../../. -DCURDIR=./lib/X
Lors de la construction de programmes X en dehors de l'arborescence des sources, un symbole spécial UtiliserInstallé est défini
et de TOPDIR et de CURDIR sont omis. Si les fichiers de configuration ont été correctement
installé, le script xmkmf(1) peut être utilisé.

CONTRIBUTION DES DOSSIERS


Voici un résumé des fichiers lus par je fais tel qu'il est utilisé par X. L'indentation montre ce que
les fichiers incluent quels autres fichiers.
Variables génériques Imake.tmpl
site.def spécifique au site, BeforeVendorCF défini
*.cf spécifique à la machine
* règles de la bibliothèque partagée Lib.rules
site.def spécifique au site, AfterVendorCF défini
Imake.rules règles
Variables spécifiques à Project.tmpl X
* Variables de la bibliothèque partagée Lib.tmpl
Imakefile
Règles de la bibliothèque Library.tmpl
Règles de serveur Server.tmpl
Règles multi-threads Threads.tmpl

Notez que site.def est inclus deux fois, une fois avant le *.cf fichier et une fois après.
Bien que la plupart des personnalisations du site doivent être spécifiées après le *.cf fichier, certains, tels que
le choix du compilateur, doit être spécifié avant, car d'autres paramètres de variables peuvent
dépendent d'eux.

La première fois site.def est inclus, la variable BeforeVendorCF est définie et le
la deuxième fois, la variable AfterVendorCF est définie. Tout le code dans site.def devrait être à l'intérieur
un #ifdef pour l'un de ces symboles.

Utiliser imake en ligne en utilisant les services onworks.net



Derniers programmes en ligne Linux et Windows