2015-07-01 121 views
0

我在系統中有一個腳本,可能要安裝到我的安裝目錄中,但是我只想在發佈模式下執行此操作。所以我有一個配置標誌--enable-release來控制這一點:有條件地從系統複製腳本到安裝目錄

AC_ARG_ENABLE(release, 
       AC_HELP_STRING([--enable-release], 
          [enable release build, default: no]), 
       [case "${enableval}" in 
        yes) release=yes ;; 
        no) release=no ;; 
        *) AC_MSG_ERROR([bad value ${enableval} for --enable-release]) ;; 
       esac], 
       [release=no]) 
if test "x$release" != xno; then 
    AC_DEFINE([PRODUCT_RELEASE], [1], 
       [Define if we are preparing a release build.]) 
fi 
AM_CONDITIONAL([RELEASE], [test "x$release != xno"]) 

然後,我有另一種配置標誌,以便用戶可以指示將帶有腳本路徑:

AC_ARG_WITH(script-path, 
    AS_HELP_STRING(--with-script-path,[Path of script binaries]), 
    AC_SUBST(SCRIPTPATH,[$withval])) 
AC_PATH_PROG([SMTSCRIPT], [cvc4], [no], [$SCRIPTPATH:$PATH]) 

if test "x$ac_cv_path_SMTSCRIPT" != xno; then 
    AC_DEFINE([HAVE_SCRIPT], [1], 
          [Define if we could find SMT script in path.]) 
    if test "x$release" != xno; then 
     SMTSCRIPT_CPPFLAGS="-DSOLVERBIN=\"\\\"$ac_cv_path_SMTSCRIPT\\\"\"" 
    else 
     SMTSCRIPT_CPPFLAGS="-DSCRIPTBIN=\"\\\"$bindir/cvc4\\\"\"" 
    fi 
    AC_SUBST([SMTSCRIPT_CPPFLAGS]) 
fi 

在Makefile.am我嘗試:

dist_bin_SCRIPTS = $(top_srcdir)/scripts/asmWrapper.py $(top_srcdir)/scripts/live_bar.py 
if RELEASE 
    dist_bin_SCRIPTS += $(SCRIPTPATH)/cvc4 
endif 

不幸的automake似乎忽略我,如果和dist_bin_SCRIPT永遠不會與路徑cvc4追加。

+0

隨口說說它看起來合理,但我不認爲你想爲一個腳本,顯然不是你的項目的一部分「dist_」。我首先查看Makefile以查看RELEASE是如何定義的。 –

回答

0

問題是有條件附加到dist_bin_SCRIPTS的選項卡。這工作:

dist_bin_SCRIPTS = $(top_srcdir)/scripts/asmWrapper.py $(top_srcdir)/scripts/live_bar.py 
if RELEASE 
dist_bin_SCRIPTS += $(SCRIPTPATH)/cvc4 
endif 
相關問題