2011-04-16 55 views
2

我對autoconf和automake的工作方式有很基本的瞭解,可以從各種教程中收集。但是,因爲我希望我的庫在構建期間靈活,所以它們需要具有其他程序中常見的--with-FEATURE--without-FEATURE功能。我如何實現這一點?配置autoconf有 - 具有自定義構建選項

+0

可能重複[?你如何定義你的./configure --help查看選項](http://stackoverflow.com/questions/2655177/how-do-you-define-the-options-you-see-in-configure-help) – ptomato 2011-04-17 16:43:55

回答

6

您需要使用AC_ARG_WITH,例如:

AC_ARG_WITH(editres, 
[ --without-editres    do not use editres]) 
if test "x${with_editres}" != "xno"; then 
    AC_CHECK_LIB(Xmu, _XEditResCheckMessages, 
     EDITRES_LIBS="-lXmu" 
     AC_DEFINE(HAVE_EDITRES, 1), AC_DEFINE(HAVE_EDITRES, 0), 
     ${X_PRE_LIBS} ${XEXT_LIBS} ${XT_LIBS} ${XEXT_LIBS} ${X11_LIBS}) 
else 
    AC_DEFINE(HAVE_EDITRES, 0) 
fi 
+0

謝謝你。一個小問題;我總是看到作者在與「x」的比較中加前綴兩個操作數字符串。他們爲什麼這樣做呢? – 2011-04-16 06:37:44

+1

「x」是避免將shell與空的東西混淆的破解;如果'X'是一個空字符串,那麼'if test $ X!=「no」'看起來像'if test!=「no」'shell,並且shell不贊同這樣的事情。因此,將「x」添加爲前綴以將空字符串轉換爲非空字符串,從而防止外殼變得沮喪並引起不適感。 – 2011-04-16 06:44:52

+0

啊,我明白了。謝謝! – 2011-04-16 06:45:24

相關問題