2012-06-17 20 views
6

मैं के साथ एक पैकेज मिला:डीपीकेजी-बिल्डफ्लैग CFLAGS को ओवरराइड कैसे करें?

$ apt-get source <pkg-name> 

और अब मैं के साथ इसे बनाने की कोशिश कर रहा हूँ:

$ dpkg-buildpackage -uc -us -j8 

उत्पादन की शुरुआत में, वहाँ कहा गया है:

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 

मैं इन CFLAGS (भी, एलडीएफएलजीएस) को ओवरराइड करना चाहता हूं। मैंने CFLAGS envvar को निर्यात करने का प्रयास किया है, वैसे ही हम सादे कॉन्फ़िगरेशन के साथ करते हैं, इसका कोई फायदा नहीं होता है। मैं इन मूल्यों को कैसे ओवरराइड कर सकता हूं?

उत्तर

16

वह पैकेज जिसे आप पुनर्निर्माण करने की कोशिश कर रहे हैं, सेट (पढ़ें: ओवरराइड) * dpkg-buildflags से पुनर्प्राप्त कठोर-विनिर्देशों के साथ फ़्लैग।

यदि आपको अपने स्वयं के उद्देश्यों के लिए उन झंडे को ओवरराइड करने की आवश्यकता है, तो आपको (सख्त) डिफ़ॉल्ट के बजाए इच्छित झंडे प्रदान करने के लिए dpkg-buildflags बताना चाहिए। man dpkg-buildflags पर देखकर, आपको पर्यावरण चर के बारे में अनुभाग मिल गया है, esp। DEB_flag_SET देख सकते हैं और DEB_flag_APPEND

तो यह चाल (अपनी खुद की * 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

क्या होगा अगर यह dpkg-buildflags तरह नहीं दिखता है किया जा रहा है चल सकता है? पैकेज में इसे जोड़ना कितना मुश्किल है? क्या कोई वैकल्पिक आदेश है? –

संबंधित मुद्दे