2017-10-12 13 views
0

ターゲットファイル名=フォルダ名でMakefileを作成しようとしています。代わりに、それをハードコーディングの は私が機能Makefileでの可変操作の使用

FILE=$(PWD##*/) 

私も FILE=$(echo PWD##*/)FILE=$(echo $(PWD##*/))を試してみましたを使用していました。 しかし、エラーが発生しました。 私は、Makefileでそのような可変操作を行うのは難しいことを知っています。回避策はありますか?このようなファイルが動作するはず設定

おかげ

+0

以下アンドリュー・ギリスの答えを明確にするために、メイクファイル:

FILE = $(notdir $(PWD)) 

代替は、同じことをシェルにコールアウトすることですシェルスクリプトではなく、makefile変数を割り当てるときにシェルスクリプト構文を直接使用することはできません。 '## * /'構文は_shell_の中で_shell_script_の中で動作します。 Makefile内でmake変数では動作しません。 – MadScientist

答えて

1

FILE = $(shell basename \${PWD}) 
+0

初めて動作しましたが、再実行しようとしました:循環参照、依存関係が落ちました。 – Learner27

+0

一般的には、ターゲットに依存関係があり、その依存関係がターゲットに依存することを意味します。 – gammazero

+0

言い換えれば、このエラーはこの問題とは無関係で、診断に役立つメークファイルの部分は表示していません。あなた自身でそれを理解しようとするべきです。そうでない場合は、makeのエラーメッセージで参照されている行に関連するmakefileの詳細について新しい質問を開きます。 – MadScientist

関連する問題