2012-06-17 35 views
6

tôi nhận được một gói với:Làm thế nào để ghi đè lên dpkg-buildflags CFLAGS?

$ apt-get source <pkg-name> 

và bây giờ tôi đang cố gắng để xây dựng nó với:

$ dpkg-buildpackage -uc -us -j8 

Vào đầu đầu ra, có nêu rõ:

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 

Tôi muốn ghi đè các CFLAGS này (cũng là LDFLAGS). Tôi đã thử xuất khẩu CFLAGS envvar, giống như cách chúng tôi làm với cấu hình đơn giản, không có kết quả. Làm thế nào tôi có thể ghi đè lên các giá trị này?

Trả lời

16

gói bạn đang cố gắng xây dựng lại, bộ (đọc: ghi đè) * CỜ với cờ cứng cụ thể được truy xuất từ ​​dpkg-buildflags.

nếu bạn cần ghi đè những cờ đó cho mục đích của riêng mình, bạn nên thông báo cho dpkg-buildflags để cung cấp cờ bạn muốn, thay vì mặc định (cứng). xem man dpkg-buildflags, bạn tìm thấy phần về biến môi trường, đặc biệt. thấy DEB_flag_SETDEB_flag_APPEND

vì thế này nên làm các trick (điền vào FLAGS * của riêng bạn):

$ 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

gì nếu nó không giống như dpkg-buildflags đang được chạy? Làm thế nào cứng là nó thêm vào một gói? Có lệnh thay thế nào không? –

Các vấn đề liên quan