#---------------------------------------------------------------------
# Copyright (C) GFD Dennou Club, 2005. All rights reserved.
#---------------------------------------------------------------------
#= Makefile for dcpam top directory
#
# * Developers: Yasuhiro MORIKAWA
# * Version: $Id: Makefile,v 1.3 2006/07/24 09:11:29 morikawa Exp $
# * Tag Name: $Name: dcpam3-20060725 $
# * Change History:
#
######################################################################
#
#== Settings
INCLUDEFILE = Config.mk
include $(INCLUDEFILE)
# End Settings
######################################################################
######################################################################
#== Commands for Guide files
#
RDFORM2HTM = $(RD2HTM_LIB) $(RD2_LIB_FLAG) $(RD2_CSSFLAG)
RDFORM2JA = $(RDFORM2HTM) $(RD2_JA_FLAG) \
--with-part=TOPLINK:rd --with-part=JAUPDATE:rd
RDFORM2EN = $(RDFORM2HTM) $(RD2_EN_FLAG) \
--with-part=TOPLINK:rd --with-part=ENUPDATE:rd
GuideFiles = INSTALL CREDITS HISTORY
GuideJA = $(GuideFiles:%=%.htm)
GuideEN = $(GuideFiles:%=%.htm.en)
######################################################################
#== Ruby liner script for replacing title in HTML
H1ToTitle = $(RUBY) -e 'body = open(ARGV[0]){|io| io.read}; \
if /\
(.*?)\<\/h1.*?\>/ =~ body then ;\
h1 = $$1 ;\
h1 = h1.chomp.gsub!(/\<.*?\>/){|s| s = ""} ;\
mod = body.gsub(/\.*<\/title\>/, \
"\" + h1 + "<\/title\>") ;\
else ;\
mod = body ;\
end ;\
out = open(ARGV[0], "w"); out.puts(mod) ;\
out.close'
######################################################################
#== Commands for TeX files
#
RDFORM2TEX = $(RD2) -r rd/rd2latex-lib.rb --documentclass="jreport"
RDFORM2TEXJA= $(RDFORM2TEX) --with-part=JA:rd --out-code=euc
TEX2BODY = $(RUBY) rd/latex2body.rb
TexSrcFiles = CREDITS
TexFiles = $(TexSrcFiles:%=doc/%.tex)
History = HISTORY
HistoryTex = $(History:%=doc/%.tex)
DverGen = $(RUBY) -e '$$stdin.each{|line| ; \
if /^\$$Name: (\S+)/ =~ line then ;\
$$tag = $$1 ;\
elsif /^\$$Date: (\S+) (\S+)/ =~ line then ;\
$$day = $$1 ; \
end } ;\
$$tag = $$day.gsub(/\//, "") unless $$tag ;\
y, m, d = $$day.split("/") ;\
if /dcpam2-(\S+)/i =~ $$tag then ;\
$$tag = $$1 ;\
end ;\
$$stdout.print "\\Dver{\#{$$tag}} " ;\
$$stdout.print "\\Dmodify{\#{y}}{\#{m}}{\#{d}}\n"'
######################################################################
#== Rules
#
all:
cd src; $(MAKE)
doc: guide tex
cd src; $(MAKE) $@
cd doc; $(MAKE)
install: all
cd src; $(MAKE) $@
install-doc:
cd doc ; $(MAKE) install
clean:
cd src; $(MAKE) $@
cd practice; $(MAKE) $@
-$(RMDIR) bin lib include
clean-doc: clean-guide clean-tex
cd doc; $(MAKE) clean
distclean: clean clean-configure
clean-configure:
-$(RM) -f config.status chkfort.cfg chkgmake.cfg config.cache config.log Config.mk
@echo ""
@echo " Removing Config.mk,"
@echo " you should rerun ./configure to build dcpam."
@echo ""
test-f: all
cd test; $(MAKE) $@
test: all
cd test; $(MAKE) $@
tags:
cd src; $(MAKE) $@
guide: $(GuideJA) $(GuideEN)
clean-guide:
-$(RM) $(GuideJA) $(GuideEN)
tex: $(TexFiles)
-$(RM) $(HistoryTex)
@echo -n "Generating" $(HistoryTex) "from" $(History) "... "
@echo "%" > $(HistoryTex)
@echo "% This file is generated from" $(History) \
"automatically." >> $(HistoryTex)
@echo "% So do not edit this file directly." >> $(HistoryTex)
@echo "%" >> $(HistoryTex)
@$(DverGen) < $(History) >> $(HistoryTex)
echo "done."
clean-tex:
-$(RM) $(TexFiles) $(HistoryTex)
cl:
@cvs2cl --help > /dev/null 2>&1 || \
echo -e \
"\n" \
" cvs2cl is not found.\n" \
" Please get from http://www.red-bean.com/cvs2cl/\n"
@cvs2cl --help > /dev/null 2>&1 && \
echo -e \
"This file is generated automatically by\n" \
"\n" \
" cvs2cl -r -b -t --fsf -w --header \n" \
"\n" \
`cvs2cl --version` "\n" \
"This script is available from " \
"http://www.red-bean.com/cvs2cl/\n\n" \
| cvs2cl -r -b -t --fsf -w --header -
rm ChangeLog.bak
@echo -e "\n" "ChangeLog is Updated." "\n"
%.htm: %
$(RDFORM2JA) $(@:.htm=) > $@ || $(RM) $@
@if [ -f $@ ]; then \
echo -n 'Copy to ..' ; $(H1ToTitle) $@ ; echo 'done' ;\
fi ;\
%.htm.en: %
$(RDFORM2EN) $(@:.htm.en=) > $@ || $(RM) $@
@if [ -f $@ ]; then \
echo -n 'Copy to ..' ; $(H1ToTitle) $@ ; echo 'done' ;\
fi ;\
doc/%.tex: %
-$(RM) $@
echo "%" > $@
echo "% This file is generated from" $< "automatically." >> $@
echo "% So do not edit this file directly." >> $@
echo "%" >> $@
$(RDFORM2TEXJA) $< > /dev/null || eval "$(RM) $@ ; exit 1"
$(RDFORM2TEXJA) $< | $(TEX2BODY) >> $@ || $(RM) $@
#== Rules for check commands
#
rd2_check:
@$(RD2) --help > /dev/null 2>&1 || \
echo -e \
"\n" \
" \"rd2\" is not found.\n" \
" Please get from http://www2.pos.to/~tosh/ruby/rdtool/\n"
@$(RD2) --help > /dev/null 2>&1 || exit 1
rd2htm_lib_check:
@$(RD2HTM_LIB) --help > /dev/null 2>&1 || \
echo -e \
"\n" \
" \"rd2html-lib.rb\" is not found.\n" \
" Please get from http://www2.pos.to/~tosh/ruby/rdtool/\n"
@$(RD2HTM_LIB) --help > /dev/null 2>&1 || exit 1
rd2htm_ext_lib_check:
@$(RD2HTM_EXT_LIB) --help > /dev/null 2>&1 || \
echo -e \
"\n" \
" \"rd2html-ext-lib.rb\" is not found.\n" \
" Please get from http://www.rubyist.net/~rubikitch/computer/rd2html-ext/\n"
@$(RD2HTM_EXT_LIB) --help > /dev/null 2>&1 || exit 1