Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Debian GNU/Linux Reference Guide
Prev Home Next

13.6 Make

Referenzen f�r Make:

  • info make

  • make(1)

  • Managing Projects with make, 2. Ausgabe (O'Reilly)

Einfache automatische Variablen:

Regelsyntax:

     Ziel: [ Voraussetzungen ... ]
      [TAB]  Kommando1
      [TAB]  -Kommando2 # ignoriere Fehler
      [TAB]  @Kommando3 # unterdr�cke Kommandozeilenausgabe

Hier ist [TAB] ein Tabulator. Jede Zeile wird von der Shell nach einer Variablensubstitution interpretiert. Verwenden Sie \ am Ende einer Zeile zur Fortsetzung des Skripts. Statt $ ist $$ f�r Umgebungsvariablen zu schreiben.

Implizite Regeln f�r Ziel und Voraussetzungen k�nnen beispielsweise wie folgt geschrieben werden:

     %: %.c header.h

oder

     %.o: %.c header.h

Hier enth�lt Ziel das Zeichen % (exakt einmal). % passt auf jeden nicht leeren Teilstring in den aktuellen Zieldateinamen. Voraussetzungen verwendet % �hnlich um auszudr�cken, wie sich diese Namen zum aktuellen Ziel verhalten.

Suffixregeln sind der veraltete Weg zur Definition impliziter Regeln f�r make. Sie werden noch in GNU-make zur Kompatibilit�t unterst�tzt, aber man sollte �quivalente Musterregeln wann immer m�glich verwenden:

     alte Suffixregel --> neue Musterregel
     .c:              --> %  : %.c
     .c.o:            --> %.o: %.c

Automatische Variablen f�r diese Regel:

     foo.o: neu1.c neu2.c alt1.c neu3.c
     $@ == foo.o                         (Ziel)
     $< == neu1.c                        (erstes der neueren Objekte)
     $? == neu1.c neu2.c neu3.c          (alle neueren Objekte)
     $^ == neu1.c neu2.c alt1.c neu3.c   (alle)
     $* == `%' aktuelles Ziel ohne Suffix.

Variablenreferenzen:

     foo1 := bar    # einmalige Expandierung
     foo2  = bar    # rekursive Expandierung
     foo3 += bar    # anh�ngen
     SRCS := $(wildcard *.c)
     OBJS := $(foo:c=o)
     OBJS := $(foo:%.c=%.o)
     OBJS := $(patsubst %.c,%.o,$(foo))
     DIRS  = $(dir directory/filename.ext) # Extracts "directory"
      $(notdir NAMES...), $(basename NAMES...), $(suffix NAMES...) ...

Starten Sie make -p -f/dev/null, um alle internen automatischen Regeln zu sehen.


Debian GNU/Linux Reference Guide
Prev Home Next

 
 
  Published under the terms of the GNU General Public License Design by Interspire