#!/bin/make -f 
#
#  L&L - Labyrinths & Legends
#        Copyright (C) 1993- 2003 YOSHIMURA Tomohiko
#        bowkenken@users.sourceforge.jp
#

SHELL = sh

TRGT = lnl

# Version

VER_MJR = 2
VER_MNR = 1
VER_PAT = 10

# Files & directories

NULL_FILE = /dev/null
#NULL_FILE = nul
ORG_DIR = $(TRGT)
TRGT_DIR = $(TRGT)-$(VER_MJR).$(VER_MNR).$(VER_PAT)
#TRGT_DIR = $(TRGT)
SRC_DIR = src
MAN_DIR = man
MAKE_FILE = Makefile
ARC_FILE = ../$(TRGT_DIR)/$(TRGT)-$(VER_MJR).$(VER_MNR).$(VER_PAT).tar.gz
#ARC_FILE = ../$(TRGT_DIR)/$(TRGT)$(VER_MJR)_$(VER_MNR)_$(VER_PAT).tgz
EXE_FILE = $(SRC_DIR)/$(TRGT)
REL_TRGT = ../$(TRGT_DIR)/$(SRC_DIR)/$(TRGT)

# Document

GPL = GPL

# FILES

FILES = FILES

SED_ARC_FLAGS = -e '/^$$/d' -e '/^\#/d' -e ':/$$:d'
LS_ARC_FLAGS = -dF

ECHO_SRC_FILE = '\# Source files'
LS_SRC_FILE = $(LS_ARC_FLAGS) \
	$(TRGT_DIR)/$(SRC_DIR)/*.h \
	$(TRGT_DIR)/$(SRC_DIR)/*.c \
	$(TRGT_DIR)/$(SRC_DIR)/*.xpm \
	$(TRGT_DIR)/$(SRC_DIR)/msg_def \

ECHO_MAKE_FILE = '\# Makefiles'
LS_MAKE_FILE = $(LS_ARC_FLAGS) \
	$(TRGT_DIR)/$(SRC_DIR)/$(MAKE_FILE) \
	$(TRGT_DIR)/$(MAN_DIR)/$(MAKE_FILE) \
	$(TRGT_DIR)/$(MAKE_FILE) \

ECHO_MAN_FILE = '\# Manual files'
LS_MAN_FILE = $(LS_ARC_FLAGS) \
	$(TRGT_DIR)/$(MAN_DIR)/$(TRGT).6.jpn \
	$(TRGT_DIR)/$(MAN_DIR)/$(TRGT)-faq.6.jpn \
#	$(TRGT_DIR)/$(MAN_DIR)/$(TRGT).6.eng \
#	$(TRGT_DIR)/$(MAN_DIR)/$(TRGT)-faq.6.eng \

ECHO_DOC_FILE = '\# Document files'
LS_DOC_FILE = $(LS_ARC_FLAGS) \
	$(TRGT_DIR)/$(GPL) \
	$(TRGT_DIR)/$(FILES) \
	$(TRGT_DIR)/Readme.txt \

# Misc

NEW_LINE = @echo
ECHO_OK = @ $(NEW_LINE) ; echo "- OK -"
TMP_FILE = /tmp/$(TRGT)-tmp$$$$

################################

all: $(EXE_FILE)
	$(ECHO_OK)

$(EXE_FILE): $(SRC_DIR)/*.c $(SRC_DIR)/*.h $(SRC_DIR)/*.xpm
	(cd $(SRC_DIR) ; $(MAKE))

install:
	(cd $(SRC_DIR) ; $(MAKE) install)
	(cd $(MAN_DIR) ; $(MAKE) install)

clean:
	(cd $(SRC_DIR) ; $(MAKE) clean)

clobber:
	(cd $(SRC_DIR) ; $(MAKE) clobber)
	(cd $(MAN_DIR) ; $(MAKE) clobber)

rel: release

release: $(REL_TRGT) $(FILES) $(ARC_FILE)

$(REL_TRGT): $(SRC_DIR)/$(TRGT)
	(cd $(SRC_DIR) ; make release)
	( \
		cd .. ;\
		rm -rf $(TRGT_DIR) ;\
		cp -rp $(ORG_DIR) $(TRGT_DIR) ;\
	)

$(FILES): $(SRC_DIR)/$(TRGT)
	( \
		cd .. ;\
		cp $(NULL_FILE)           $(TRGT_DIR)/$(FILES) ;\
		echo $(ECHO_SRC_FILE)  >> $(TRGT_DIR)/$(FILES) ;\
		ls $(LS_SRC_FILE)      >> $(TRGT_DIR)/$(FILES) ;\
		echo $(ECHO_MAKE_FILE) >> $(TRGT_DIR)/$(FILES) ;\
		ls $(LS_MAKE_FILE)     >> $(TRGT_DIR)/$(FILES) ;\
		echo $(ECHO_MAN_FILE)  >> $(TRGT_DIR)/$(FILES) ;\
		ls $(LS_MAN_FILE)      >> $(TRGT_DIR)/$(FILES) ;\
		echo $(ECHO_DOC_FILE)  >> $(TRGT_DIR)/$(FILES) ;\
		ls $(LS_DOC_FILE)      >> $(TRGT_DIR)/$(FILES) ;\
		cp $(TRGT_DIR)/$(FILES) $(ORG_DIR)/$(FILES) ;\
	)

$(ARC_FILE): $(SRC_DIR)/$(TRGT)
	( \
		cd .. ;\
		sed $(SED_ARC_FLAGS) $(TRGT_DIR)/$(FILES) > $(TMP_FILE) ;\
		tar zcvf $(TRGT_DIR)/$(ARC_FILE) `cat $(TMP_FILE)` ;\
		rm $(TMP_FILE) ;\
	)
	$(ECHO_OK)

ln:
	(cd .. ; ln -sf $(TRGT_DIR) $(TRGT))
