---------- Weitergeleitete Nachricht ----------
Subject: Re: Makefile
Date: Tue, 4 Mar 2003 11:04:12 +0100
From: Rolf Lindenbring
Am Die, 2003-03-04 um 10.28 schrieb Rolf Lindenbring:
Hallo Liste, ich möchte gerne mein Programm debuggen über stdout. Dazu habe ich folgende Zeilen in meinem Programm.
---------- snip -------------------- static int debug_level=4; #define RT_DEBUG
#if RT_DEBUG #define DBG(lvl, f) {if ((lvl) <= debug_level) rtl_printf f;} #else #define DBG(lvl, f) #endif
--------- snap -------------------
Über die Variable debug_level kann ich also die Menge des Output bestimmen.
Soweit funktioniert das ganz gut. Ich würde das ganze aber gerne über einen Makefile als Parameter mit übergeben,
Was möchtest Du übergeben? Den Default-Wert für debug_level, RT_DEBUG oder vielleicht DBG?
So wie der Code momentan geschrieben ist, geht nichts davon.
weiß aber leider nicht richtig wie ich das anstellen muß. Kann mir da mal jemand ein bißchen Hilfestellung geben ?
Ralf
Hallo Ralf, hallo Christian danke für die Antworten. Das mir der -D Option habe ich gerade mal ausprobiert. Funktioniert super. Jetzt würde ich auch gerne noch den debug_level übergeben beim neu kompilieren ?? Rolf -------------------------------------------------------
Am Die, 2003-03-04 um 11.04 schrieb Rolf Lindenbring:
Hallo Ralf, hallo Christian danke für die Antworten.
Das mir der -D Option habe ich gerade mal ausprobiert. Funktioniert super. Jetzt würde ich auch gerne noch den debug_level übergeben beim neu kompilieren ??
Eine Möglichkeit: #ifndef DEBUG_LEVEL #define DEBUG_LEVEL 4 #endif int debug_level = DEBUG_LEVEL # gcc -DDEBUG_LEVEL=7 ... Oder von innerhalb eines Makefiles CPPFLAGS = -DDEBUG_LEVEL=7 Ralf
* Am Die, 04 Mär 2003 schrieb Rolf Lindenbring:
Am Dienstag, 4. März 2003 10:48 schrieb Ralf Corsepius:
Am Die, 2003-03-04 um 10.28 schrieb Rolf Lindenbring:
Hallo Liste, ich möchte gerne mein Programm debuggen über stdout. Dazu habe ich folgende Zeilen in meinem Programm.
---------- snip -------------------- static int debug_level=4; #define RT_DEBUG
#if RT_DEBUG #define DBG(lvl, f) {if ((lvl) <= debug_level) rtl_printf f;} #else #define DBG(lvl, f) #endif
--------- snap -------------------
Über die Variable debug_level kann ich also die Menge des Output bestimmen.
Soweit funktioniert das ganz gut. Ich würde das ganze aber gerne über einen Makefile als Parameter mit übergeben,
Was möchtest Du übergeben? Den Default-Wert für debug_level, RT_DEBUG oder vielleicht DBG?
So wie der Code momentan geschrieben ist, geht nichts davon.
weiß aber leider nicht richtig wie ich das anstellen muß. Kann mir da mal jemand ein bißchen Hilfestellung geben ?
Das mir der -D Option habe ich gerade mal ausprobiert. Funktioniert super. Jetzt würde ich auch gerne noch den debug_level übergeben beim neu kompilieren ??
Warum übergibst Du den nicht als Kommandozeilenparameter oder über eine Steuerdatei? Erscheint mir einfacher, da man flexibler bleibt. Ansonsten kannst Du auch Makros der Art -Ddebug_level=4 definieren, die dann nicht mit 1 initialisiert werden, sondern entsprechend dem, was Du rechts des Gleichheitszeichens schreibst. Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Rolf Lindenbring schrieb:
Am Dienstag, 4. März 2003 10:48 schrieb Ralf Corsepius:
Am Die, 2003-03-04 um 10.28 schrieb Rolf Lindenbring:
ich möchte gerne mein Programm debuggen über stdout. Dazu habe ich folgende Zeilen in meinem Programm.
---------- snip -------------------- static int debug_level=4; #define RT_DEBUG
#if RT_DEBUG #define DBG(lvl, f) {if ((lvl) <= debug_level) rtl_printf f;} #else #define DBG(lvl, f) #endif
--------- snap -------------------
Über die Variable debug_level kann ich also die Menge des Output bestimmen.
Soweit funktioniert das ganz gut. Ich würde das ganze aber gerne über einen Makefile als Parameter mit übergeben,
[...]
Das mir der -D Option habe ich gerade mal ausprobiert. Funktioniert super. Jetzt würde ich auch gerne noch den debug_level übergeben beim neu kompilieren ??
---------- snip -------------------- #if !defined(RT_DEBUG_LEVEL) #define RT_DEBUG_LEVEL 4 #endif static int debug_level = RT_DEBUG_LEVEL; ------------ snap ------------------- make -DRT_DEBUG_LEVEL=5 ... Gruß Raimund
Am Die, 2003-03-04 um 11.56 schrieb Raimund Hölle:
make -DRT_DEBUG_LEVEL=5 ...
Definitiv nicht. Wenn schon, dann make VAR=WERT oder VAR=WERT make also z.B. make CPPFLAGS="-DRT_DEBUG_LEVEL=5" oder make RT_DEBUG_LEVEL=5 Was genau richtig wäre, hängt von den Details des Makefiles ab. Ralf
Ralf Corsepius schrieb:
Am Die, 2003-03-04 um 11.56 schrieb Raimund Hölle:
make -DRT_DEBUG_LEVEL=5 ...
Definitiv nicht.
Wenn schon, dann make VAR=WERT oder VAR=WERT make
also z.B. make CPPFLAGS="-DRT_DEBUG_LEVEL=5" oder make RT_DEBUG_LEVEL=5
Was genau richtig wäre, hängt von den Details des Makefiles ab.
Stimmt, ich meinte "cc -DRT_DEBUG_LEVEL=5", eine Übergabe des Defines an make ist natürlich nutzlos. Raimund
participants (4)
-
Christoph Maurer
-
Raimund Hölle
-
Ralf Corsepius
-
Rolf Lindenbring