#---------------------------------------------------------------------
#     Copyright (C) GFD Dennou Club, 2005. All rights reserved.
#---------------------------------------------------------------------
#= Generate HTML from RD
#
# * Yasuhiro Morikawa, Masaki Ishiwatari
#   * 2005/07/07 (Yasuhiro Morikawa) "SUBDIRS" is deleted
#   * 2005/07/07 (Yasuhiro Morikawa) "chmod" and "chgrp" are added
#   * 2005/06/23 (Yasuhiro Morikawa) Suffix of JA file is change from "htm.ja" to "htm"
#   * 2005/06/23 (Yasuhiro Morikawa) Japanese commends are added
#   * 2005/06/12 (Yasuhiro Morikawa) Create
#
######################################################################
#
#== Settings
#
# [JAPANESE] 各種設定項目

INCLUDEFILE = 
include $(INCLUDEFILE) # Include file              (optional)
                       # [JA] インクルードファイル (任意)

JA      = 1        # 1: Create "htm",    0: Not Create     (selective)
EN      = 1        # 1: Create "htm.en", 0: Not Create     (selective)
                   # [JA] 1 ならば作成, 0 ならば作成しない (選択必須)

CSS     = /library/dcmodel/htmltools/dcmodel.css
		   # Cascade Style Sheet           (necessary)
		   # [JA] カスケードスタイルシート (必須)

CHMOD   = 664      # Set mode          (optional)
                   # [JA] chmod する値 (任意)

CHGRP   = dcpam    # Set group         (optional)
		   # [JA] chgrp する値 (任意)

RUBY    = ruby1.8  # Path to Ruby       (necessary)
                   # [JA] Ruby へのパス (必須)

RD      = rd2      # Path to rdtool       (necessary)
                   # [JA] rdtool へのパス (必須)

RUBYLIB =          # Set "RUBYLIB"         (optional)
                   # [JA] "RUBYLIB" の設定 (任意)

RDOPTS  =          # Additional rd2 options          (optional)
                   # [JA] rd2 コマンドへのオプション (任意)

OUTCODE = euc      # character encoding of output [jis|euc|sjis] (necessary)
                   # [JA] rd 出力時の文字コード  [jis|euc|sjis]  (必須)

JACODE  = EUC-JP   # indicate CHARSET as charset [char encoding]            (necessary)
                   # [JA] rd2 コマンドで CHARSET としてセットする文字コード (必須)

# End Settings  [JA] 設定項目ここまで
######################################################################
#== Commands
# General command
RD2HTM = rd2 -r rd/rd2html-lib --with-css=$(CSS) --with-part=HTML:html \
		--out-code=$(OUTCODE) $(RDOPTS)
# For Japanese
RD2JA  = $(RD2HTM) --html-charset=$(JACODE) --with-part=JA:rd
# For English
RD2EN  = $(RD2HTM) --html-charset=US-ASCII --with-part=EN:rd


######################################################################
#== Ruby liner script for replacing title in HTML
H1ToTitle  = $(RUBY) -e 'body = open(ARGV[0]){|io| io.read}; \
			 if /\<h1.*?\>(.*?)\<\/h1.*?\>/ =~ body then      ;\
			   h1 = $$1 ;\
			   h1 = h1.chomp.gsub!(/\<.*?\>/){|s| s = ""} ;\
			   mod = body.gsub(/\<title\>.*<\/title\>/,         \
			         "\<title\>" + h1 + "<\/title\>") ;\
			 else ;\
			   mod = body ;\
			 end ;\
			 out = open(ARGV[0], "w"); out.puts(mod)         ;\
			 out.close'

######################################################################
#== Search "rd" files
__AllRDFiles__ = $(wildcard *.rd)
RDFiles = $(__AllRDFiles__:%.v.rd=)
GenerateFiles = $(HtmByJA) $(HtmByEN)
HtmByJA = $(RDFiles:.rd=.htm)
HtmByEN = $(RDFiles:.rd=.htm.en)

##########################################################################
#== Rules
#
all: $(GenerateFiles)

help:
	@echo ""
	@echo "  This Makefile needs following programs."
	@echo ""
	@echo "      Ruby   <URL:http://www.ruby-lang.org>"
	@echo "      rdtool <URL:http://www2.pos.to/~tosh/ruby/rdtool/>"
	@echo ""
	@echo ""
	@echo "  make [all] :"
	@echo "             Create HTML files from RD "
	@echo ""


%.htm: %.rd
	@if [ $(JA) != "0" ] ; then \
	    echo "$(RD2JA) $< > $@ || rm -f $@" ;\
	    $(RD2JA) $< > $@ || rm -f $@ ;\
	    if [ -f $@ ]; then \
		echo -n 'Copy <h1> to <title> ..' ; $(H1ToTitle) $@  ; echo 'done' ;\
	    fi ;\
	    if [ ! X$(CHMOD) = X"" ]; then \
		echo -n chmod $(CHMOD) $@ .. ; chmod $(CHMOD) $@  ; echo 'done' ;\
	    fi ;\
	    if [ ! X$(CHGRP) = X"" ]; then \
		echo -n chgrp $(CHGRP) $@ .. ; chgrp $(CHGRP) $@  ; echo 'done' ;\
	    fi ;\
	fi


%.htm.en: %.rd
	@if [ $(EN) != "0" ] ; then \
	    echo "$(RD2EN) $< > $@ || rm -f $@" ;\
	    $(RD2EN) $< > $@ || rm -f $@ ;\
	    if [ -f $@ ]; then \
		echo -n 'Copy <h1> to <title> ..' ; $(H1ToTitle) $@  ; echo 'done' ;\
	    fi ;\
	    if [ ! X$(CHMOD) = X"" ]; then \
		echo -n chmod $(CHMOD) $@ .. ; chmod $(CHMOD) $@  ; echo 'done' ;\
	    fi ;\
	    if [ ! X$(CHGRP) = X"" ]; then \
		echo -n chgrp $(CHGRP) $@ .. ; chgrp $(CHGRP) $@  ; echo 'done' ;\
	    fi ;\
	fi

clean:
	-rm *~ *.bak

clean.all: clean
	-rm $(GenerateFiles)
