6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MakeでIDEで言うところのプロジェクトのルートディレクトリを設定する

Last updated at Posted at 2014-06-22

Introduction

色々説明を省くが,MakeではIDEで言うところのプロジェクトのルートディレクトリを設定するにはコツが要る.

ここでは,その方法についてのメモを書いておく.

How to do it

    1. まず,プロジェクトのルートディレクトリにroot.mkというファイルを置く.
    1. このroot.mk内で, 次の様なROOT変数への代入文が,いかなるinclude指示子よりも先に実行される様に 書いておく:
ROOT := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
    1. そして,各makefileでは,include指示子によってroot.mkを読むようにする.

こうすると,ROOTにはroot.mkが置かれているディレクトリ,すなわちプロジェクトのルートディレクトが代入される.

各関数の意味や代入文の意味については略します.

References

  • [6.14 Other Special Variables, Special Variables - GNU make'](https://www.gnu.org/software/make/manual/html_node/Special-Variables.html#index-MAKEFILE_005fLIST-_0040r_007b_0028list-of-parsed-makefiles_0029_007d-550 "Special Variables - GNU make'")
  • [3.3 Including Other Makefiles, Include - GNU make'](https://www.gnu.org/software/make/manual/html_node/Include.html "Include - GNU make'")

Appendix

realpath関数はなぜ必要なのか?と,不思議に思うかもしれません.
ボヤけた言い方になりますが,私はrealpath関数を外して使っていた時にいくつかトラブルに遭ったことがあります.
しかし,そのシチュエーションを忘れてしまいました…

後でまた調べますが,どうやらMakeは相対パス指定やシンボリックリンクを使用するのが不得意のようです.

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?