私はカスタムMakefileを持つCプロジェクトを持っています。最初の行は、プロジェクトディレクトリへのパスです。したがって、このプロジェクトで動作するすべてのマシンは、このパスを作業ディレクトリに変更する必要があります。特に、データをプッシュすると、当然これが新しい望ましくないコミットにつながります。また、パスを必要とするいくつかの外部SDKもあります。絶対パスとGitを持つMakefile
あなたのソリューションは何ですか?
私はカスタムMakefileを持つCプロジェクトを持っています。最初の行は、プロジェクトディレクトリへのパスです。したがって、このプロジェクトで動作するすべてのマシンは、このパスを作業ディレクトリに変更する必要があります。特に、データをプッシュすると、当然これが新しい望ましくないコミットにつながります。また、パスを必要とするいくつかの外部SDKもあります。絶対パスとGitを持つMakefile
あなたのソリューションは何ですか?
条件付きで、ローカルパスを設定する未追跡のメークファイル(例:-include config.mak
)が含まれています。
あなたは、コマンドラインを介して簡単な=
を経由して割り当てられている変数上書きすることができますまず第一に:
$ cat Makefile
AAA = 1
all:
echo $(AAA)
$ make
1
$ make AAA=2
2
第二に、あなたは?=
を使用することができ、その場合にはLinux環境でもMakefileのの変数を上書きします:
$ cat Makefile
AAA ?= 1
all:
echo $(AAA)
$ export AAA=3
$ make
3
を
次に、.bashrc
に変数を追加して忘れることができます。
作業ディレクトリに応じて相対パスを使用しないようにMakefileを変更しないでください。 – gzh
@gzh彼らは相対的な内部作業ディレクトリです。また、makeに '§(CURDIR)'コマンドがあることがわかりました。しかし、プロジェクトに接続しなければならない外部SDKはどうですか? –
[git submodule](https://git-scm.com/docs/git-submodule)や[git-repo](https://code.google.com/p/git-repo/)を使用してソースコードと外部SDKを別のリポジトリで管理し、指定したディレクトリレイアウトでチェックアウトします。 – gzh