Cos'è questo Makefile facendo?

voti
3

Sono nuovo utilizzando i makefile e ho alcuni makefile. Uno di loro ha queste affermazioni ho cercato di capire ma non ci riesco.

Cos'è questo makefile facendo?

# debugging support
ifeq ($(DEBUG), true)
CFLAGS+=-DDEBUG -g
endif 

ifeq ($(DEBUG), gdb)
CFLAGS+=-g
endif

ifeq ($(PROFILING), true)
CFLAGS+=-p
endif

# symbolic names debugging
ifeq ($(DEBUG_NAMES), true)
CFLAGS+=-DDEBUG_NAMES
endif 

# architecture TODO: add others
ifeq ($(ARCH), unix)
CFLAGS+=-DUNIX
endif

# TODO: GC settings
ifeq ($(HEAP), malloc)
CFLAGS+=-DHEAP_MALLOC
endif

ifeq ($(STACK), malloc)
CFLAGS+=-DSTACK_MALLOC
endif

# class loading method
ifeq ($(CLASS), external)
CFLAGS+=-DEXTERNAL_TUK
endif

# monitor allocation
ifeq ($(MONITORS), ondemand)
CFLAGS+=-DON_DEMAND_MONITORS
endif

Amri

È pubblicato 24/11/2008 alle 17:15
fonte dall'utente
In altre lingue...                            


3 risposte

voti
5

Questa verifica per i valori delle variabili ambientali e configura il processo di compilazione con le opzioni specifiche per il compilatore (credo).

Risposto il 24/11/2008 a 17:20
fonte dall'utente

voti
6

In sostanza il makefile sta facendo un sacco di controlli e l'aggiunta di flag di compilazione in base allo stato di alcune variabili. Per esempio:

ifeq ($(DEBUG), true)

CFLAGS+=-DDEBUG -g

endif

Se la variabile DEBUG $ (DEBUG) è impostata su true, quindi definire il DEBUG macro, e impostare il compilatore di file binari di uscita di debug (-g).

Ogni altra dichiarazione è più o meno lo stesso schema.

Risposto il 24/11/2008 a 17:21
fonte dall'utente

voti
2

CFLAGS è una stringa di argomenti che verranno passati al compilatore C quando viene chiamato.

Se non sai cosa significano gli argomenti, è necessario guardare al di aiuto per il compilatore C. Per esempio:

man cc
man gcc
cc --help
gcc --help
Risposto il 24/11/2008 a 19:36
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more