2011-12-06 2 views
1

作業から数値を抽出、私は次のような問題といくつかの助けが欲しい:メイク:ディレクトリ名(Debianのパッケージング規則)

私はランチパッドのレシピ機能で毎日構築されたDebianパッケージを持っています。バージョン名(およびソースディレクトリの名前)は自動的に生成され、現在のリビジョン番号が含まれます。 debian/rulesファイルを修正してリビジョン番号を抽出し、それをCMakeに渡したいと思います。

これまでのところ動作しません - 空の文字列がCMakeに渡されたようです。問題が私のmakeコードや他のものにあるかどうかはわかりません。

ルールファイル:ビルドログの

#!/usr/bin/make -f 

# Uncomment this to turn on verbose mode. 
export DH_VERBOSE=1 

%: 
    dh [email protected] --parallel --list-missing 

# Try to detect the Bazaar revision number from the directory name 
ifneq ($(findstring bzr,$(PWD)),) 
COMPONENTS := $(PWD) 
COMPONENTSL := $(subst -,' ',COMPONENTS) 
COMPONENTSLL := $(subst ~,' ',COMPONENTSL) 
BZRVER := $(filter bzr%,COMPONENTSLL) 
BZRVERN := $(subst bzr,,$(BZRVER)) 
override_dh_auto_configure: 
    dh_auto_configure -- -DRELEASE_BUILD=0 -DBZR_REVISION=$(BZRVERN) 
endif 

関連セクション:

make[1]: Entering directory `/build/buildd/stellarium-0.11.2~bzr5066' 
dh_auto_configure -- -DRELEASE_BUILD=0 -DBZR_REVISION= 
    mkdir -p obj-i686-linux-gnu 
    cd obj-i686-linux-gnu 
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DRELEASE_BUILD=0 -DBZR_REVISION= 

完全なログはここにある: https://launchpadlibrarian.net/86783083/buildlog_ubuntu-natty-i386.stellarium_0.11.2~bzr5066-0ubuntu0~natty1_BUILDING.txt.gz

任意のアイデア?

答えて

1

あなたは、少なくともこれらの行でミスを犯しました:

COMPONENTSL := $(subst -,' ',COMPONENTS) 
COMPONENTSLL := $(subst ~,' ',COMPONENTSL) 
BZRVER := $(filter bzr%,COMPONENTSLL) 

あなたはCOMPONENTSXX変数の実際の値に変更を実行する必要があり、従って、それらの名前は$(...)に同封する必要があります。

あなたが必要とする唯一のものは、(あなたの例では5066)リビジョン番号である場合は、次のように抽出することができます

BZR_REVISION := $(lastword $(subst ~bzr, ,$(PWD))) 
+0

Insultingly明らかに、それはないですか? :) – Daggerstab

+0

それに加えて、スペースの周りに一重引用符を使用すると、それらとスペースの両方が結果文字列に挿入されます。 – Daggerstab

+0

はい、そうです;) –