Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » autotools / CFLAGS

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.09.2007, 00:35 Uhr
0xdeadbeef
Gott
(Operator)


Moin,

Ich hab hier ein Projekt mit autotools-Buildsystem, und ich krieg eine Sache ums Verrecken nicht raus - wie kann ich AC_PROG_CC_STDC bzw. AC_PROG_CXX davon abhalten, mir Default-Werte für CFLAGS und CXXFLAGS zu setzen?

Es geht darum, dass ich configure ne Option --enable-debug definieren will, die ggf. die AM_CFLAGS und AM_CXXFLAGS um -g erweitert - ne Release-Version braucht nun nicht zwingend Debug-Symbole. Das ist nur ziemlich sinnlos, solange mir configure per default -g -O2 in die Makefiles reinschreibt (die Kombination ist sowieso etwas fragwürdig...). Ich hab die entsprechenden Handbücher rauf- und runtergewälzt, aber nichts dazu gefunden - hat einer von euch vielleicht mal das selbe Problem gehabt?

Im Einsatz sind autoconf 2.61, automake 1.10 und libtool 1.5.22.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.09.2007, 08:10 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
evtl die Umgebungsvariablen CFLAGS CXXFLAGS/CPPFLAGS existent? denn die nimmt er im normalfall als defaultwerte + das was man in configure.ac reinschreibt
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.09.2007, 16:36 Uhr
0xdeadbeef
Gott
(Operator)


Nö. Wenn ich die von Hand setze, nimmt er sie auch, aber wenn sie leer sind, setzt er -g -O2 als Defaultwert da rein. Und ich finde, autoconf hat meine Umgebungsvariablen nicht anzufassen...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 10.09.2007 um 16:36 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.09.2007, 19:48 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich hab z.b das so:


configure.ac:

# ...
builtin(include, m4/debug.m4)

# ...

CXXFLAGS="-Wall -Werror -pedantic"

# ...

AC_ENABLE_DEBUG

# ...



und solang man nicht --enable-debug beim configure übergibt ist das -g weg

Ansonsten: nimm doch cmake? das ist schneller und flexibler als die uralt autotools (und es ist sogar farbig wenn die konsole es unterstützt *g*)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.09.2007, 02:14 Uhr
0xdeadbeef
Gott
(Operator)


Wo krieg ich die debug.m4 her?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.09.2007, 09:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


selbst schreiben


debug.m4:

dnl
dnl AC_ENABLE_DEBUG
dnl
dnl enables argument --enable-debug
dnl
dnl also defines _DEBUG and DEBUG for use in sourcecode
dnl
AC_DEFUN([AC_ENABLE_DEBUG], [
  AH_TEMPLATE([_DEBUG], [Define to built with DEBUG-Code])
  AH_TEMPLATE([DEBUG], [Define to built with DEBUG-Code])
  AC_ARG_ENABLE(debug, [  --enable-debug          enable building of libraries with debugging code (default no)], [
      CPPFLAGS="$CPPFLAGS -g"
      AC_DEFINE([_DEBUG])
      AC_DEFINE([DEBUG])
  ],[])
])


--
class God : public ChuckNorris { };

Dieser Post wurde am 11.09.2007 um 09:25 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.09.2007, 18:50 Uhr
0xdeadbeef
Gott
(Operator)


Ja, wie ich da zusätzliche Flags reinbekomme, das ist mir schon klar - aber ich will ja, dass AC_PROG_* mir da per default nichts reinsetzt. Muss ich mir die jetzt ohne den Firlefanz neu schreiben, oder gibts da ne einfachere Möglichkeit, diese verdammten Makros davon abzuhalten, mit meinen Umgebungsvariablen rumzuspielen?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.09.2007, 10:07 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


indem du sie einmal in configure.ac am anfang irgendwo setzt (z.b auch auf "") dann sind keine "überbleibsel" da und deine umgebungsvar wird trotzdem noch ggf mit reingesetzt.

Oder benutz cmake, da hatte ich son problem auch noch nicht
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.09.2007, 18:25 Uhr
0xdeadbeef
Gott
(Operator)


Oookay, nach ein bisschen Rumgewühle im M4-Code (ich hasse diese Sprache) bin ich endlich dahinter gekommen, was der da eigentlich macht

Etwas zusammengekürzt siehts jetzt so aus:

Code:
AC_INIT(libcensored, trunk, none.of@your.biz)
AC_CONFIG_SRCDIR(censored/censored.cc)
AM_INIT_AUTOMAKE

AC_DEFUN([AC_ENABLE_DEBUG], [
  AH_TEMPLATE([_DEBUG], [Define to built with DEBUG-Code])
  AH_TEMPLATE([DEBUG], [Define to built with DEBUG-Code])
  AC_ARG_ENABLE(debug, [  --enable-debug          enable building of libraries with debugging code (default no)], [
      CFLAGS="-g $CFLAGS"
      CXXFLAGS="-g $CXXFLAGS"
      AC_DEFINE([_DEBUG])
      AC_DEFINE([DEBUG])
  ],[])
])

AC_ENABLE_DEBUG

test "x$CFLAGS"   = "x" && CFLAGS=-O2
test "x$CXXFLAGS" = "x" && CXXFLAGS=-O2

AC_PROG_CC_STDC
AC_PROG_CXX

AC_PROG_LIBTOOL

AC_OUTPUT(Makefile censored/Makefile tests/Makefile tests/censored_test/Makefile)


...und das scheint zu machen, was ich will. Danke für deine Hilfe, Flo
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: