bate's blog

調べたこと実装したことなどを取りとめもなく書きます。

Forest12章

仮定法終了。

Makefileが依存ファイルの更新をしない。

make_env.shでディレクトリを規則正しく配置した環境を作る。
これらのディレクトリを総舐めして、ディレクトリ名をファイル名にしたtxt_and_bmpデータを作る。
データには、元のtxtファイル名とbmpファイル名を書き込むという簡単な処理をした。
txtとbmpを更新しても新しく作り直してくれない。
なぜに。

Makefile

# 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