• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Solved] Systemweite Compiler-Flags für make?

NMDG

Newbie
Hallo...
Ich bin kürzlich auf Opensuse 10.3 umgestiegen. Gibt es hier die Möglichkeit Compilerflags systemweit zu aktivieren/deaktivieren, ähnlich wie unter Gentoo mittels /etc/make.conf?
Oder muß ich diese Datei unter Suse speziell nachinstallieren?
Ein locate brachte diese leider nicht hervor.
Danke im Voraus
 
export CFLAGS="-fexplode"
in /etc/profile.d/neuedatei ... wäre aber deinen Usern gegenüber auch etwas fies, und potentiell sogar gegenläufig, weil vieler Programme Makefiles so schlecht geschrieben sind, dass man durch Override der CFLAGS (mittels Environmentvariable o.ä.) die wichtigen CFLAGS (die vielleicht eher INTERN_CFLAGS hätten heißen sollen) genukt werden. Bsp. jemand hat ne Makefile:
Code:
CFLAGS = -fstack-protector
prog: blafasel.c
Dann verlierst du mit Setzen von CFLAGS eigentlich -fstack-protector (was wie gesagt ein Bug im Makefile ist - manchmal auch Intention - je nach Fall).
 
OP
N

NMDG

Newbie
Hallo...
Danke für eure schnellen Antworten. :)
Sie haben mich schon ein Stück weit näher an mein Ziel gebracht.

Ein kompletter Override der CFLAGS ist sicherlich sehr kontraproduktiv, da gebe ich dir recht. Diesen Schritt müsste ich mir sehr genau überlegen, ob dann in diesem Falle wirklich eine Anpassung klug ist.
Gibt es denn keine Möglichkeit zum Beispiel bestimmt "agressive" Flags wie:
-ftracer, -funswitch-loops oder -mfpmath=sse
systemweit zu sperren, ohne die "INTERN_CFLAGS" auszuschalten? Oder zur besseren Unterstützung systembedingte Flags wie -O2 aktiv zu setzen. Sozusagen als Filter für die "INTERN_CFLAGS"?
 
Sie halt zu, dass alle Programme, die du je compilen wirst, INTERN_CFLAGS oder so verwenden (bei automake heißt es AM_CFLAGS), kurzum, dass CFLAGS für den User überbleiben. Dann kannst du auch mit ./configure CFLAGS="-mno-sse2" definitiv deine persönlich gewünschten Overrides einbringen.
Im Falle von ungeliebten Flags würde ich aber eher die Makefiles editieren (wenn es denn nicht automake-basiert ist), weil man nie weiß, wo noch mehr INTERN/nicht-INTERN - Verstöße versteckt sind.
Im Falle von MPlayer würde ich einfach --enable-runtime-cpudetection oder so nehmen statt manuell die gefundenen Flags wieder zurückzusetzen.
 
Oben