EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

imake – Online in der Cloud

Führen Sie imake im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl imake, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


imake – C-Präprozessorschnittstelle zum Make-Dienstprogramm

ZUSAMMENFASSUNG


ich mache [ -Ddefinieren ] [ -Idir ] [ -Udefinieren ] [ -TVorlage ] [ -f Dateinamen ] [ -C Dateinamen ] [
-s Dateinamen ] [ -e ] [ -v ]

BESCHREIBUNG


Ich mache wird zum Generieren verwendet Makefiles aus einer Vorlage, einem Satz von cpp Makrofunktionen und a
Eine verzeichnisspezifische Eingabedatei namens an Imakefile. Dies ermöglicht Maschinenabhängigkeiten (z. B
Compileroptionen, alternative Befehlsnamen und Besonderheiten um Regeln) getrennt zu halten
aus den Beschreibungen der verschiedenen zu bauenden Gegenstände.

OPTIONAL


Die folgenden Befehlszeilenoptionen können an übergeben werden ich mache:

-Ddefinieren
Diese Option wird direkt an übergeben cpp. Es wird normalerweise verwendet, um Verzeichnisse festzulegen.
spezifische Variablen. Das X-Window-System hat dieses Flag beispielsweise zum Setzen verwendet TOPDIR
zum Namen des Verzeichnisses, das den Anfang der Kerndistribution enthält und
CURDIR auf den Namen des aktuellen Verzeichnisses, relativ zum Anfang.

-IVerzeichnis
Diese Option wird direkt an übergeben cpp. Es wird normalerweise verwendet, um anzuzeigen
Verzeichnis, in dem die ich mache Es können Vorlagen- und Konfigurationsdateien gefunden werden.

-Udefinieren
Diese Option wird direkt an übergeben cpp. Es wird normalerweise zum Deaktivieren von Variablen verwendet
beim Debuggen ich mache Konfigurationsdateien.

-TVorlage
Diese Option gibt den Namen der Master-Vorlagendatei an (normalerweise
befindet sich in dem mit angegebenen Verzeichnis -I) benutzt von cpp. Der Standardwert ist
Imake.tmpl.

-f Dateinamen
Diese Option gibt den Namen der verzeichnisspezifischen Eingabedatei an. Die Standardeinstellung ist
Imakefile.

-C Dateinamen
Diese Option gibt den Namen der .c-Datei an, die im aktuellen erstellt wird
Verzeichnis. Die Standardeinstellung ist Imakefile.c.

-s Dateinamen
Diese Option gibt den Namen des um Beschreibungsdatei, die generiert werden soll, aber
um sollte nicht aufgerufen werden. Wenn die Dateinamen ist ein Bindestrich (-), die Ausgabe wird geschrieben
zu stdout. Standardmäßig wird a generiert, aber nicht ausgeführt Make-Datei.

-e Diese Option zeigt an ich mache sollte das generierte ausführen Make-Dateidem „Vermischten Geschmack“. Seine
Standardmäßig wird dies dem Benutzer überlassen.

-v Diese Option zeigt an, dass ich mache sollte das ausdrucken cpp Befehlszeile, dass es ist
verwenden, um die zu generieren Make-Datei.

WIE IT Bestellt?


Ich mache ruft auf cpp mit jedem -I or -D Flags, die auf der Befehlszeile übergeben werden, und übergibt den Namen
einer Datei mit den folgenden 3 Zeilen:

#define IMAKE_TEMPLATE „Imake.tmpl“
#define INCLUDE_IMAKEFILE
#include IMAKE_TEMPLATE

woher Imake.tmpl und Imakefile kann von der überschrieben werden -T und -f Befehlsoptionen,
beziehungsweise.

Das IMAKE_TEMPLATE liest normalerweise eine Datei ein, die maschinenabhängige Parameter enthält
(angegeben als cpp Symbole), eine standortspezifische Parameterdatei, eine Datei, die Variablen definiert, a
Datei mit cpp Makrofunktionen zum Generieren um Regeln und schließlich die Imakefile
(angegeben durch INCLUDE_IMAKEFILE) im aktuellen Verzeichnis. Der Imakefile nutzt das Makro
Funktionen, die angeben, welche Ziele erstellt werden sollen; ich mache kümmert sich um die Generierung der
entsprechende Regeln.

Ich mache Konfigurationsdateien enthalten zwei Arten von Variablen: imake-Variablen und make
Variablen. Die Imake-Variablen werden von cpp interpretiert, wenn ich mache es läuft. Vereinbarungs
sie sind gemischte Groß- und Kleinschreibung. Die Make-Variablen werden in die geschrieben Make-Datei für später
Interpretation von machen. Konventionsgemäß werden Make-Variablen in Großbuchstaben geschrieben.

Die Regeldatei (normalerweise mit dem Namen Imake.rules im Konfigurationsverzeichnis) enthält a
Vielzahl cpp Makrofunktionen, die entsprechend der aktuellen Plattform konfiguriert sind.
Ich mache ersetzt alle Vorkommen der Zeichenfolge „@@“ durch eine neue Zeile, um Makros dies zu ermöglichen
Generieren Sie mehr als eine Zeile von um Regeln. Zum Beispiel das Makro

#define program_target(program, objlist) @@\
Programm: objlist @@\
$(CC) -o $@ objlist $(LDFLAGS)

wenn mit angerufen program_target(foo, foo1.o foo2.o) wird erweitert auf

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

Ich mache ersetzt außerdem alle Vorkommen des Wortes „XCOMM“ durch das Zeichen „#“.
Erlauben Sie das Platzieren von Kommentaren im Makefile, ohne Fehler durch „ungültige Direktive“ zu verursachen
der Präprozessor.

Teilweise komplex ich mache Makros müssen generiert werden um Variablen, die für jeden Aufruf lokal sind
Makro, oft weil ihr Wert von Parametern abhängt, die an das Makro übergeben werden. Solch
Variablen können mithilfe von erstellt werden ich mache Variable des Formulars XVARdefn, Wobei n ist eine
einzelne Ziffer. Ein Unikat um Variable wird ersetzt. Spätere Vorkommen der
Variable XVARusen wird durch die vom entsprechenden erstellte Variable ersetzt XVARdefn.

Auf Systemen, deren cpp reduziert mehrere Tabulatoren und Leerzeichen auf ein einziges Leerzeichen, ich mache versucht zu
Setzen Sie alle erforderlichen Registerkarten zurück (um ist sehr wählerisch, was den Unterschied zwischen Tabs und angeht
Leerzeichen). Aus diesem Grund muss Doppelpunkten (:) in Befehlszeilen ein Backslash vorangestellt werden
(\).

VERWENDUNG MIT X FENSTER SYSTEM


Das verwendete X-Window-System ich mache Ausführlich bis zur X11R6.9-Version, für beide vollständig
Builds innerhalb des Quellbaums und externer Software. X ist inzwischen auf GNU Autoconf umgestiegen
und Automake für sein Build-System in X11R7.0 und späteren Versionen, behält aber immer noch imake bei
zum Erstellen vorhandener externer Softwareprogramme, die noch nicht konvertiert wurden.

Wie oben erwähnt, zwei spezielle Variablen, TOPDIR und CURDIR, sind zur Referenzierung eingestellt
Dateien mit relativen Pfadnamen einfacher zu erstellen. Beispielsweise wird der folgende Befehl generiert
automatisch zu erstellen Make-Datei im Verzeichnis lib/X/ (bezogen auf die Oberseite des
Quellen):

% ../.././config/imake -I../.././config \
-DTOPDIR=../../. -DCURDIR=./lib/X
Beim Erstellen von X-Programmen außerhalb des Quellbaums ein spezielles Symbol VerwendenInstalliert ist definiert
und TOPDIR und CURDIR werden weggelassen. Wenn die Konfigurationsdateien korrekt sind
installiert, das Skript xmkmf(1) verwendet werden.

SPEISUNG DATEIEN


Hier finden Sie eine Zusammenfassung der gelesenen Dateien ich mache wie von X verwendet. Die Einrückung zeigt was
Dateien enthalten welche anderen Dateien.
Generische Imake.tmpl-Variablen
site.def standortspezifisch, BeforeVendorCF definiert
*.cf maschinenspezifisch
*Lib.rules Regeln für gemeinsam genutzte Bibliotheken
site.def standortspezifisch, AfterVendorCF definiert
Imake.rules-Regeln
Project.tmpl X-spezifische Variablen
*Lib.tmpl-Variablen der gemeinsam genutzten Bibliothek
Imakefile
Library.tmpl-Bibliotheksregeln
Server.tmpl-Serverregeln
Threads.tmpl Multithread-Regeln

Beachten Sie, dass site.def wird zweimal eingefügt, einmal vor dem *.cf Datei und einmal danach.
Obwohl die meisten Site-Anpassungen nach dem angegeben werden sollten *.cf Datei, einige, wie z
Die Wahl des Compilers muss vorher angegeben werden, da andere Variableneinstellungen möglich sind
Verlassen Sie sich auf sie.

Das erste Mal site.def enthalten ist, die Variable BeforeVendorCF definiert ist und die
Beim zweiten Mal wird die Variable AfterVendorCF definiert. Der gesamte Code ist enthalten site.def sollte drin sein
ein #ifdef für eines dieser Symbole.

Verwenden Sie imake online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad