View previous topic :: View next topic |
Author |
Message |
Andry77 Tux's lil' helper
Joined: 03 Mar 2006 Posts: 77
|
Posted: Wed Jul 25, 2012 10:36 am Post subject: [SOLVED] compilacja z palca przez make a flagi make.conf |
|
|
Witam
Czy ktoś mi możne powiedzieć jak się mają flagi z make.conf do kompilacji programów z palca przez make.
Czy zmienne są zaciągane jeśli nie kompiluje się przez emerge czy trzeba ustawić (przez export) zmienne typu CFLAGS i CXXFLAGS w celu optymalizacji?
EDIT:
Rozwiązanie zaproponowane przez Jacekalex jest bardzo dobre i mnie zadowala - więc [SOLVED]
Dziękuję
Last edited by Andry77 on Thu Jul 26, 2012 7:03 am; edited 4 times in total |
|
Back to top |
|
|
Garrappachc Guru
Joined: 26 Dec 2008 Posts: 362 Location: Kraków
|
Posted: Wed Jul 25, 2012 11:47 am Post subject: |
|
|
Make.conf działa tylko via emerge. Możesz ustawić sobie flagi przy konfiguracji.
Code: |
CXXFLAGS="-O2 -fomit-frame-pointer" ./configure
CXXFLAGS="-O2 -fomit-frame-pointer" cmake . |
A po co Ci kompilowanie z palca? Nie ma ebuilda do czegoś? Lepiej już szybko coś skrobnąć... _________________ De profundis clamavi ad Te, Domine
emerge --info | virtual aviation |
|
Back to top |
|
|
Andry77 Tux's lil' helper
Joined: 03 Mar 2006 Posts: 77
|
Posted: Wed Jul 25, 2012 1:11 pm Post subject: |
|
|
Garrappachc wrote: | Make.conf działa tylko via emerge. Możesz ustawić sobie flagi przy konfiguracji.
Code: |
CXXFLAGS="-O2 -fomit-frame-pointer" ./configure
CXXFLAGS="-O2 -fomit-frame-pointer" cmake . |
A po co Ci kompilowanie z palca? Nie ma ebuilda do czegoś? Lepiej już szybko coś skrobnąć... |
Mam sktypcie cos w stylu Quote: | export CXXFLAGS="....." |
Czyli jednak jest to wymagane?
A co z kompilacja kernela?
Przecież kompiluje się przez make.. |
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Wed Jul 25, 2012 3:33 pm Post subject: |
|
|
Configure (i cale te durne autotoolsy) sprawdzaja zmienne srodowiskowe i generuja Makefile z nimi, sam make nie pobiera sobie tych zmiennych, chyba, ze mu specjalnie wpiszesz w Makefile by to robil albo podasz je przez "make CFLAGS='-Os'". Zobacz sobie kernelowy Makefile i Kbuild. |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 553
|
Posted: Wed Jul 25, 2012 3:59 pm Post subject: |
|
|
Ja mam flagi kompilatora skopiowane z make.conf do /etc/bash/bashrc, i jak kompiluje z palca, to zazwyczaj zaskakuje od razu.
Code: | grep FLAGS /etc/bash/bashrc
CFLAGS="-march=core2 -O2 -pipe"
CPPFLAGS="-march=core2 -O2 -pipe"
CXXFLAGS="-march=core2 -O2 -pipe"
LDFLAGS="-Wl,-O1 -Wl,--as-needed" |
Pozdrawiam
|
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Wed Jul 25, 2012 6:23 pm Post subject: |
|
|
Nie wyglada bys je exportowal, w takim wypadku env['CFLAGS'] nic nie zwroci, te zmienne lokalne nie zostana przekazane do configure czy make. Nie wyglada na to, ze to w ogole dziala.
proof of concept
Code: | piotr@frontier ~ % foo=BAR
piotr@frontier ~ % sh -c 'echo $foo'
piotr@frontier ~ % export foo
piotr@frontier ~ % sh -c 'echo $foo'
BAR |
|
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 553
|
Posted: Wed Jul 25, 2012 6:30 pm Post subject: |
|
|
SlashBeast wrote: | Nie wyglada bys je exportowal, w takim wypadku env['CFLAGS'] nic nie zwroci, te zmienne lokalne nie zostana przekazane do configure czy make. Nie wyglada na to, ze to w ogole dziala.
proof of concept
Code: | piotr@frontier ~ % foo=BAR
piotr@frontier ~ % sh -c 'echo $foo'
piotr@frontier ~ % export foo
piotr@frontier ~ % sh -c 'echo $foo'
BAR |
|
Słuszna uwaga, poprawione:
Code: | grep FLAGS /etc/bash/bashrc
export CFLAGS="-march=core2 -O2 -pipe"
export CPPFLAGS="-march=core2 -O2 -pipe"
export CXXFLAGS="-march=core2 -O2 -pipe"
export LDFLAGS="-Wl,-O1 -Wl,--as-needed"
|
Code: | $ sh -c 'echo $CFLAGS'
-march=core2 -O2 -pipe
|
Dziękuję
|
|
Back to top |
|
|
|