# Bestimmte CFLAGS / LDFLAGS für Programm XY setzten?

## ConiKost

Hallo!

Kann ich für Programm XY andere CFLAGS und LDFlags festlegen?

Also wie die USE Flags in package.use z.B.

----------

## blu3bird

Ja kannst du.

Mach dir ne Datei namens /etc/portage/bashrc die z.b. sowas enthält

```
if [ -r /etc/portage/package.icc ]; then

  while read target; do

    if [ "${target}" = "${CATEGORY}/${PN}" ]; then

      source /etc/make.conf

      export CFLAGS="$ICCFLAGS"

      export CXXFLAGS="$ICCXXFLAGS"

      export CC="icc"

      export CXX="icpc"

      export LDFLAGS="-lguide"

      break

    fi

  done < /etc/portage/package.icc

fi
```

musst du natürlich noch anpassen, diese variante setzt nur für die aufgelisteten packete icc als compiler.

Ist aber ne normale bash-datei, sollte also ganz einfach sein.

----------

## slick

Sehr schicke Sache @blu3bird... Daumen hoch!

----------

## think4urs11

ihr Ricer ...   :Wink: 

aber der Vollständigkeit wegen:

http://gentoo-wiki.com/TIP_The_/etc/portage/bashrc_file

http://gentoo-wiki.com/TIP_Portage_utilities_not_in_portage#USE_.26_CFLAGS_Related_Utilities

----------

## ConiKost

 *blu3bird wrote:*   

> Ja kannst du.
> 
> Mach dir ne Datei namens /etc/portage/bashrc die z.b. sowas enthält
> 
> ```
> ...

 

Moin! Tut mir leid, wenn ich diesen alten Thread raushole. Aber ich hab da noch mal ne Frage. Wie  trage ich dann die Einstellungen für die Pakete ein? Das krieg ich irgendwie nicht mehr hin.

----------

## sirro

Die von dir zitierte Lösung basiert nur auf einer Datei mit einem "pkg/name" pro Zeile und ist auch nicht fuer CFLAGS gedacht, daher kann man da auch recht wenig einstellen. Die verdeutlicht eher das Prinzip.

Guck dir mal die Lösung im Gentoo-Wiki an, die sind etwas komplexer können aber dann wirklich per-package-Flags machen wie z.B.:

```
media-libs/faac -O9 -fomg-optimized -mrice
```

Natürlich kann man sich das auch selber in der bashrc basteln (im Prinzip reicht IIRC ein switch auf "${CATEGORY}/${PN}" und das exportieren der Werte), aber die fertige Lösung ist was einfacher. Ich hab mal ne Zeit lang "Solar's example bashrc" von der o.g. Seite benutzt.

----------

## UTgamer

So ganz bin ich hier beim Durchlesen noch nicht dahinter gestiegen wie soetwas funktionieren soll, aber bisher bin ich auch einen umständlichen Weg gegangen:

```
2) Nutzung des eigenen Portage Zweiges

Das zu bearbeitende ebuild hereinkopieren:

cp /usr/portage/x11-base/xorg-x11/xorg-x11-6.8.2-r3.ebuild /usr/local/portage/x11-base/xorg-x11

Nun kann das ebuild editiert werden.

Das ebuild muß nun nur noch mit neuer MD5 Checksumme versehen werden:

ebuild /usr/local/portage/x11-base/xorg-x11/xorg-x11-6.8.2-r3.ebuild digest

emerge  xorg-x11
```

Ob es sich um die Mozilla Browser, OpenOffice oder ... handelte, oft habe ich meine CFLAGS auf -ffast-math angepaßt, und sie funktionieren auch wunderbar.

Nun denn, wenn es einen einfacheren Weg gibt der auch nachvollziehbar ist folge ich diesem liebend gern.

Hat jemand mal ein Beispiel um die CFLAGS Geschichte zu vereinfachen?

 *Think4UrS11 wrote:*   

> ihr Ricer ...  
> 
> aber der Vollständigkeit wegen:
> 
> http://gentoo-wiki.com/TIP_The_/etc/portage/bashrc_file
> ...

 

Im 2. Link von 2004 wird ein Tool erwähnt "portage toys" nur kann ich das nicht mehr finden, aber bashrc klingt vielversprechend.

Beispiele für z.B. Seamonkey/Firefox oder andere parat?

----------

