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

Riferimenti per Make:

  • info make

  • make(1)

  • Managing Projects with make, Seconda edizione (O'Reilly)

Semplici variabili automatiche:

Regole di sintassi:

     target: [ prerequisites ... ]
      [TAB]  command1
      [TAB]  -command2 # ignora gli errori
      [TAB]  @command3 # sopprime l'eco

Qui [TAB] � un codice TAB. Ogni riga viene interpretata dalla shell dopo la sostituzione della variabile da parte di make. Usate \ alla fine della riga per continuare a capo lo script. Usate $$ per $ per le variabili d'ambiente dello shell script.

Le regole implicite per target e prerequisites pu� essere scritta, per esempio come:

     %: %.c header.h

oppure,

     %.o: %.c header.h

Qui, target contiene il carattere % (esattamente uno di loro). Il % pu� corrispondere con qualsiasi sottostringa non vuota nei file target attuali. Similmente prerequisites usa % come i loro nomi si correlano al nome del target attuale.

Le regole di suffisso sono il vecchio modo di definire le regole implicite per make. Sono ancora supportate in GNU make per compatibilit�, ma usate quando possibile le regole equivalenti del modello:

     vecchia regola  --> nuova regola
     .c:             --> %  : %.c
     .c.o:           --> %.o: %.c

Variabili automatiche per le summenzionate regole:

     foo.o: new1.c new2.c old1.c new3.c
     $@ == foo.o                         (obiettivo)
     $< == new1.c                        (il primo)
     $? == new1.c new2.c new3.c          (i pi� recenti)
     $^ == new1.c new2.c.c old1.c new3.c (tutti)
     $* == `%' motivo corrispondente al motivo obiettivo.

Riferimenti delle variabili:

     foo1 := bar    # Espansione unica
     foo2  = bar    # Espansione ricorsiva
     foo3 += bar    # Appendi
     SRCS := $(wildcard *.c)
     OBJS := $(foo:c=o)
     OBJS := $(foo:%.c=%.o) 
     OBJS := $(patsubst %.c,%.o,$(foo)) 
     DIRS  = $(dir directory/filename.ext) # Estrae la "directory"
     $(notdir NAMES...), $(basename NAMES...), $(suffix NAMES...) ...

Per vedere le regole interne automatiche, lanciate make -p -f/dev/null.


Debian GNU/Linux Reference Guide
Prev Home Next

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