タグ付けされた質問 「makefile」

makefileは、ビルドコントロール言語/ツールmakeの入力ファイルです。ターゲットと依存関係、およびターゲットを更新するために実行する関連コマンド(別名レシピ)を指定します。

15
makefileで変数を出力する方法
私のメイクファイルには、変数「NDK_PROJECT_PATH」があります。私の質問は、コンパイル時にそれを出力するにはどうすればよいですか? "$ PATH"文字列を表示するMake file echoを読んでみました: @echo $(NDK_PROJECT_PATH) @echo $(value NDK_PROJECT_PATH) どちらも私に与える "build-local.mk:102: *** missing separator. Stop." なぜそれが私にとってうまくいかないのか誰か知っていますか?
246 makefile  gnu-make 


7
コマンドの出力をMakefile変数に割り当てる方法
インストールされているPythonが特定のバージョン(2.5など)よりも新しい場合にのみ、条件付きでいくつかのmakeルールを実行する必要があります。 私は実行するような何かをすることができると思った: python -c 'import sys; print int(sys.version_info >= (2,5))' 次に、ifeqmakeステートメントで出力(問題がない場合は「1」、それ以外の場合は「0」)を使用します。 単純なbashシェルスクリプトでは、次のようになります。 MY_VAR=`python -c 'import sys; print int(sys.version_info >= (2,5))'` ただし、Makefileでは機能しません。 助言がありますか?他の賢明な回避策を使用してこれを達成することができます。
225 shell  makefile 

4
なぜターゲットは最新であると思わせるのですか?
これは私のメイクファイルです: REBAR=./rebar REBAR_COMPILE=$(REBAR) get-deps compile all: compile compile: $(REBAR_COMPILE) test: $(REBAR_COMPILE) skip_deps=true eunit clean: -rm -rf deps ebin priv doc/* docs: $(REBAR_COMPILE) doc ifeq ($(wildcard dialyzer/sqlite3.plt),) static: $(REBAR_COMPILE) build_plt analyze else static: $(REBAR_COMPILE) analyze endif make compile複数回実行して取得できます aromanov@alexey-desktop:~/workspace/gm-controller/lib/erlang-sqlite$ make compile ./rebar get-deps compile ==> erlang-sqlite (get-deps) ==> erlang-sqlite (compile) ただし、何らかの理由で実行するとmake …
224 makefile 

9
makeinfoとは何ですか。
GNU grepをビルドしようとしていますが、makeを実行すると次のようになります。 [snip] /bin/bash: line 9: makeinfo: command not found makeinfoとは何ですか。 (違いがある場合、これはUbuntuです)
224 ubuntu  gcc  makefile  grep 




6
MakefileターゲットでBash構文を使用するにはどうすればよいですか?
Bashの構文は非常に役立つことがよくあります。たとえば、のようなプロセス置換diff <(sort file1) <(sort file2)です。 MakefileでそのようなBashコマンドを使用することは可能ですか?私はこのようなことを考えています: file-differences: diff <(sort file1) <(sort file2) > $@ 私のGNU Make 3.80 shellではbash、コマンドを実行する代わりにを使用するため、エラーが発生します。
208 bash  shell  makefile 

4
ルール実行時に変数の作成を定義する
私のGNUmakefileで、一時ディレクトリーを使用するルールが欲しいのですが。例えば: out.tar: TMP := $(shell mktemp -d) echo hi $(TMP)/hi.txt tar -C $(TMP) cf $@ . rm -rf $(TMP) 前述のとおり、上記のルールは、ルールが解析されるときに一時ディレクトリを作成します。つまり、常にout.tarを作成しなくても、多くの一時ディレクトリが作成されます。/ tmpが未使用の一時ディレクトリで散らかされるのを避けたいのですが。 変数が定義されるたびにではなく、ルールが実行されたときにのみ変数が定義されるようにする方法はありますか? 私の主な考えは、mktempとtarをシェルスクリプトにダンプすることですが、それは少し見苦しいようです。
208 makefile  gnu-make 

12
Makefileの現在の相対ディレクトリを取得する方法?
次のようなアプリ固有のディレクトリにいくつかのMakefileがあります。 /project1/apps/app_typeA/Makefile /project1/apps/app_typeB/Makefile /project1/apps/app_typeC/Makefile 各Makefileには、このパスに1レベル上の.incファイルが含まれています。 /project1/apps/app_rules.inc app_rules.inc内で、ビルド時にバイナリを配置する場所の宛先を設定しています。すべてのバイナリをそれぞれのapp_typeパスに入れたい: /project1/bin/app_typeA/ 私は$(CURDIR)このように使ってみました: OUTPUT_PATH = /project1/bin/$(CURDIR) しかし、代わりに次のようにパス名全体にバイナリを埋め込んだ:(冗長性に注意) /project1/bin/projects/users/bob/project1/apps/app_typeA 実行の「現在のディレクトリ」を取得してapp_typeX、バイナリをそれぞれのタイプのフォルダに配置するためだけを知ることができるようにするにはどうすればよいですか?

17
makefileでターゲットのリストを取得するにはどうすればよいですか?
私は少しレーキ(Ruby makeプログラム)を使用しましたが、使用可能なすべてのターゲットのリストを取得するオプションがあります。 > rake --tasks rake db:charset # retrieve the charset for your data... rake db:collation # retrieve the collation for your da... rake db:create # Creates the databases defined in y... rake db:drop # Drops the database for your curren... ... しかし、GNU makeでこれを行うオプションはないようです。 どうやら、コードは2007年の時点ではほぼそろっています-http ://www.mail-archive.com/help-make@gnu.org/msg06434.html。 とにかく、メイクファイルからターゲットを抽出するための小さなハックを作成しました。メイクファイルに含めることができます。 list: @grep '^[^#[:space:]].*:' …

3
ターゲットが指定されていない場合、「make」アプリはビルドするデフォルトのターゲットをどのようにして知るのですか?
ほとんどのLinuxアプリは次のようにコンパイルされています。 make make install clean 私が理解しているように、makeは引数としてビルドターゲットの名前を取ります。そうinstallは、一部のファイルをコピーするターゲットであり、その後、clean一時ファイルを削除するターゲットです。 しかしmake、引数が指定されていない場合、どのターゲットがビルドされますか(例では、最初のコマンド)。
188 makefile 


15
makefileにターゲットを再構築させる方法
ビルドしてから別のメイクファイルを呼び出すメイクファイルがあります。このmakefileは、実際には変更されない作業を行うより多くのmakefileを呼び出すため、したがって、プロジェクトが構築され、最新のものであると常に考えています。 dnetdev11 ~ # make make: `release' is up to date. makefileでターゲットを再構築するにはどうすればよいですか? clean = $(MAKE) -f ~/xxx/xxx_compile.workspace.mak clean build = svn up ~/xxx \ $(clean) \ ~/cbp2mak/cbp2mak -C ~/xxx ~/xxx/xxx_compile.workspace \ $(MAKE) -f ~/xxx/xxx_compile.workspace.mak $(1) \ release: $(build ) debug: $(build DEBUG=1) clean: $(clean) install: cp ~/xxx/source/xxx_utility/release/xxx_util /usr/local/bin cp ~/xxx/source/xxx_utility/release/xxxcore.so …
184 linux  makefile 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.