Forest12章
仮定法終了。
Makefileが依存ファイルの更新をしない。
make_env.shでディレクトリを規則正しく配置した環境を作る。
これらのディレクトリを総舐めして、ディレクトリ名をファイル名にしたtxt_and_bmpデータを作る。
データには、元のtxtファイル名とbmpファイル名を書き込むという簡単な処理をした。
txtとbmpを更新しても新しく作り直してくれない。
なぜに。
# command .PHONY: clean cleanall all set_env conv SET_ENV = ./make_env.sh TARGET_DIR_LIST = $(wildcard dirs/*) RESULT_FILE = $(addsuffix .txt_and_bmp, $(TARGET_DIR_LIST)) all: mkdir -p output make conv conv: $(RESULT_FILE) %.txt_and_bmp: echo $(notdir $@) make -f $(shell pwd)/conv.mak -C $(shell pwd)/$* TARGET=$(shell pwd)/output/$(notdir $@) convert clean: rm output/* cleanall: rm -rf dirs make clean set_env: $(SET_ENV)
conv.mak
.PHONY: convert TXT_DATA = $(wildcard $(TARGET)/txt/*) BMP_DATA = $(wildcard $(TARGET)/bmp/*) convert: $(TARGET) echo $(TARGET) $(TARGET): $(TXT_DATA) $(BMP_DATA) echo $(TXT_DATA) echo $(BMP_DATA) $(shell echo $(shell pwd)/$(TXT_DATA) > $(TARGET)) $(shell echo $(shell pwd)/$(BMP_DATA) >> $(TARGET)) %.txt: %.bmp:
make_env.sh
#!/usr/bin/sh cnt=1 while [ ${cnt} -le 10 ]; do mkdir -p dirs/dir${cnt}/txt touch dirs/dir${cnt}/txt/dir${cnt}.txt echo dir${cnt}.txt > dirs/dir${cnt}/txt/dir${cnt}.txt mkdir -p dirs/dir${cnt}/bmp touch dirs/dir${cnt}/bmp/dir${cnt}.bmp echo dir${cnt}.bmp > dirs/dir${cnt}/bmp/dir${cnt}.bmp cnt=`expr ${cnt} + 1` done