2012-06-17 19 views
6

ho avuto un pacchetto con:Come sovrascrivere dflkg-buildflags CFLAGS?

$ apt-get source <pkg-name> 

e ora sto cercando di costruire con:

$ dpkg-buildpackage -uc -us -j8 

All'inizio della produzione, non vi si afferma:

dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security 
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2 
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security 
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2 
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro 

Vorrei scavalcare questi CFLAGS (anche i LDFLAGS). Ho provato ad esportare CFLAGS envvar, nello stesso modo in cui lo facciamo con la semplice configurazione, senza alcun risultato. Come posso ignorare questi valori?

risposta

16

il pacchetto che si sta tentando di ricostruire, imposta (leggi: sostituisce) i * FLAG con i flag specifici dell'indurimento recuperati da dpkg-buildflags.

se è necessario sostituire tali flag per i propri scopi, è necessario specificare dpkg-buildflags per fornire i flag desiderati, anziché i valori di default (di indurimento). guardando man dpkg-buildflags, trovi la sezione sulle variabili d'ambiente, esp. vedere DEB_flag_SET e DEB_flag_APPEND

quindi questo dovrebbe fare il trucco (inserire la tua FLAGS *):

$ DEB_CPPFLAGS_SET="-I/foo/bar/baz" DEB_CFLAGS_SET="-g -O6" DEB_LDFLAGS_SET="-L/fruzzel/frazzel/" dpkg-buildpackage -uc -us -j8 -rfakeroot 
+2

E se non sembra dpkg-buildflags viene eseguito? Quanto è difficile aggiungerlo a un pacchetto? C'è un comando alternativo? –