makefile変数から最上位ディレクトリを取得する

makefile変数から最上位ディレクトリを取得する

makefile変数の最上位ディレクトリ部分を取得する最も簡単なコードは何ですか?例:

BUILD_DIR = dir/subdir/.../sub-a-dub-dir
distclean:
        rm -rf <some code which evaluates to "dir" from $(BUILD_DIR)>

PS:私の言葉ではありませんが、$(dir $(dir $(BUILD_DIR)))最初のディレクトリ部分からエントリを取得します。どの変わりやすい。

ベストアンサー1

ディレクトリの最初のコンポーネントを意味しますか?その場合は、パスをコンポーネントのリストに変換し、最初のコンポーネントを抽出します。私はあなたがGNU makeを使用していて、空白を含むファイル名が無事に抜け出すのを期待しているような狂気をしていないと仮定します。絶対パスを使用しないでください。

override BUILD_DIR = dir/subdir/.../sub-a-dub-dir
distclean:
        rm -rf $(firstword $(subst /, ,$(BUILD_DIR)))

BUILD_DIR誰かが誤って転送し、誤って何かを削除するのを防ぐために、ユーザーがコマンドラインから渡すことができるすべての内容を上書きします。

おすすめ記事