#
#   Makefile
#
TIMESTAMP=date +%Y%m%d-%T
BUILD_SH=../build.sh
INSTALL_SH=../install.sh
TEST_SH=../test.sh

BUILD_TARGETS = php-build glibc-build perl-build \
	  postgresql-build ruby-build python-build  \
	  mysql-build libiconv-build nkf-build

INSTALL_TARGETS = php-install glibc-install perl-install \
	  postgresql-install ruby-install python-install  \
	  mysql-install libiconv-install nkf-install

TEST_TARGETS = php-test glibc-test perl-test \
	  postgresql-test ruby-test python-test  \
	  mysql-test libiconv-test nkf-test

TEST_CP932_TARGETS = php-test-cp932 glibc-test-cp932 perl-test-cp932 \
	  postgresql-test-cp932 ruby-test-cp932 python-test-cp932  \
	  mysql-test-cp932 libiconv-test-cp932 nkf-test-cp932

CLEAN_TARGETS = php-clean glibc-clean perl-clean \
		ruby-clean postgresql-clean python-clean \
		mysql-clean libiconv-clean nkf-clean

all: build install test

### build
libiconv-build:
	(cd libiconv; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")

glibc-build:
	(cd glibc; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")
	
perl-build:
	(cd perl; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")

ruby-build:
	(cd ruby; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")

postgresql-build:
	(cd postgresql; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")

python-build:
	(cd python; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")

mysql-build:
	(cd mysql; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")

php-build:
	(cd php; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")

nkf-build:
	(cd nkf; \
	 mkdir -p log; \
	 env SHELL=${BUILD_SH} script "log/`${TIMESTAMP}`-build.log")

build: ${BUILD_TARGETS}
	@echo "build done"

### install
libiconv-install:
	(cd libiconv; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")

glibc-install:
	(cd glibc; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")
	
perl-install:
	(cd perl; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")

ruby-install:
	(cd ruby; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")

postgresql-install:
	(cd postgresql; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")

python-install:
	(cd python; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")

mysql-install:
	(cd mysql; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")

php-install:
	(cd php; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")

nkf-install:
	(cd nkf; \
	 mkdir -p log; \
	 env SHELL=${INSTALL_SH} script "log/`${TIMESTAMP}`-install.log")

install: ${INSTALL_TARGETS}
	@echo "install done"


### test
libiconv-test:
	(cd libiconv; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")

glibc-test:
	(cd glibc; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")
	
perl-test:
	(cd perl; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")

ruby-test:
	(cd ruby; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")

postgresql-test:
	(cd postgresql; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")

python-test:
	(cd python; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")

mysql-test:
	(cd mysql; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")

php-test:
	(cd php; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")

nkf-test:
	(cd nkf; \
	 mkdir -p log; \
	 env SHELL=${TEST_SH} script "log/`${TIMESTAMP}`-test.log")

test: diff-clean raw-table-clean ${TEST_TARGETS}
	@echo "test done"

### test-cp932
libiconv-test-cp932:
	(cd libiconv; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")

glibc-test-cp932:
	(cd glibc; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")
	
perl-test-cp932:
	(cd perl; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")

ruby-test-cp932:
	(cd ruby; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")

postgresql-test-cp932:
	(cd postgresql; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")

python-test-cp932:
	(cd python; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")

mysql-test-cp932:
	(cd mysql; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")

php-test-cp932:
	(cd php; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")

nkf-test-cp932:
	(cd nkf; \
	 mkdir -p log; \
	 env TESTCODESET=cp932 SHELL=${TEST_SH} \
		script "log/`${TIMESTAMP}`-test-cp932.log")

test-cp932: diff-clean raw-table-clean ${TEST_CP932_TARGETS}
	@echo "test-cp932 done"

diff-clean:
	(cd ../tests; rm -f */diff/*.diff)

raw-table-clean:
	(cd ../tests; rm -f */raw-table/*{.err,.txt})

### clean
libiconv-clean:
	(cd libiconv; ./00clean)

glibc-clean:
	(cd glibc; ./00clean)

perl-clean:
	(cd perl; ./00clean)

ruby-clean:
	(cd ruby; ./00clean)

postgresql-clean:
	(cd postgresql; ./00clean)

python-clean:
	(cd python; ./00clean)

mysql-clean:
	(cd mysql; ./00clean)

php-clean:
	(cd php; ./00clean)

nkf-clean:
	(cd nkf; ./00clean)

clean: ${CLEAN_TARGETS}
	@echo "clean done"


# end of file
