2006/06/25(日)多段make

ソースファイルとプラグインを一括コンパイルするために,多段makeに挑戦.

とりあえずのメモです.きちんと出来るようになったら,詳細を書きます.

ディレクトリ構造

album3.1/
  src/
    plugin/
      plugin1/
      plugin2/
      plugin3/
  plugin/

ターゲットとなるMakefileは,{album3.1,src,plugin,plugin{1,2,3}}/Makefile

makeファイル

album3.1/Makefile

CC = gcc

all:
	$(MAKE) -C src

album3.1/src/Makefile

INCLUDE += -I .

all: here plugins
here: 
	# このフォルダでコンパイルする内容

plugins:
	$(MAKE) -C plugin

album3.1/src/plugin/Makefile

INCLUDE += -I ../..
 SUBDIRS = $(shell find * -type d)

all:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	$(MAKE) -C $$subdir || exit 1;\
	done

clean:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	$(MAKE) clean -C $$subdir;\
	done

album3.1/src/plugin/plugin1/Makefile

# 各プラグインにおまかせ
# ただし,INCLUDEを上書きしないように注意

all:
	# 適当にコンパイル

album3.1/src/plugin/MakefileにおいてENTRIES = $(shell find * -type d)をしてるけど,現在のフォルダにあるディレクトリ一覧を取り出す手段は無いのでしょうか?

誰か分かるかた教えてください.