I持ってプロジェクトにプロジェクトから移動するとき、私のワークフローを簡素化し、次の別名:ENV変数とメイクファイルを指定して
alias mk='make -f ${ACTIVE_MAKEFILE}'
いくつかの背景:メイクファイルはに関連する名前を持つ、すべて一緒に、別のディレクトリにあります彼らが参照するプロジェクト。彼らは私のプライベートのmakefileであり、私は私が実際に変更を追跡したい
- :ので、私はプロジェクトディレクトリに保管しないでくださいレポに入る。そのために私は
umbrella
プロジェクトを持っています。
これは問題なく動作していますが、完了を失う。 mk <TAB>
を実行すると、使用可能なMakefileターゲットが表示されないため、エイリアスを使用すると実際にワークフローが効率が悪くなります。私が代わりに-f
フラグを使用して、特定のメイクファイルを使用するように作る言って、私はちょうどそれを作る伝えるためのenv変数を設定することができると考え
、何かのように:その後、
export MAKEFILE=my-makefile
とコマンド:
make
自動的に私のmy-makefile
を使用します。コマンドは変更されていないので、オートコンプリートも機能し続けます。
しかし、どちらか、そのオプションが存在しない、または私は(もしあれば)私はmake
を伝えるためにENVどの変数を設定することができMakefile
を選択するために使用されていることを確認したenv変数の名前を見つけることができません特定のメイクファイルを使用しますか?元々のコメントで示唆
ディレクトリ外のディレクトリを指すディレクトリに、makefile(またはMakefile、GNUMakefile、または 'delavnog.mk'という名前のシンボリックリンクを使用してenv varを固定名に設定することもできます)関連するメイクファイルを作成し、VCSがローカルシンボリックリンクを無視して中央リポジトリにプッシュされないようにするだけです。 –
そして別の方法として、別名 'dlnmk'の代わりにシェルスクリプトを使用します。これは、あなたのためにmakefileを見つけるための規則を適用します。オーバーヘッドは非常に小さく、思考をスクリプトにカプセル化するので、これ以上考える必要はありません。 –
@JonathanLeffler:あなたの最初の提案は私のユースケースに合っています。ありがとう!それを回答として追加しますか?私は喜んで受け入れるでしょう。 – dangonfast