3 Stimmen

Was macht dieses Makefile?

Ich bin neu in der Verwendung von makefiles und habe einige makefiles. Eine von ihnen hat diese Anweisungen, die ich versucht habe zu verstehen, aber ich kann nicht.

Was macht dieses Makefile?

# 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

6voto

Alan Punkte 44139

Im Wesentlichen führt das Makefile eine Reihe von Prüfungen durch und fügt Compiler-Flags hinzu, die auf dem Zustand bestimmter Variablen basieren. Zum Beispiel:

ifeq ($(DEBUG), true)

CFLAGS+=-DDEBUG -g

endif

Wenn die DEBUG-Variable $(DEBUG) auf true gesetzt ist, dann definieren Sie das Makro DEBUG und stellen den Compiler so ein, dass er Debug-Binärdateien ausgibt (-g).

Jede andere Aussage ist in etwa das gleiche Muster.

5voto

Geo Punkte 89102

Dieser prüft die Werte von Umgebungsvariablen und konfiguriert den Build-Prozess mit spezifischen Optionen für den Compiler (glaube ich).

2voto

Dave Costa Punkte 45801

CFLAGS ist eine Zeichenkette von Argumenten, die an den C-Compiler übergeben werden, wenn er aufgerufen wird.

Wenn Sie nicht wissen, was die Argumente bedeuten, müssen Sie in der Hilfe Ihres C-Compilers nachsehen. Zum Beispiel:

man cc
man gcc
cc --help
gcc --help

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X