xemacsweb / Makefile

# -*-Makefile-*- Begin of xemacsweb Makefile
#
# Adrian Aichner (APA), aichner@ecf.teradyne.com, Teradyne GmbH, 2000-07-29.
#
# xemacsweb makefile for UNIX and Windows NT,
# requiring GNU make, available on Windows NT via Cygwin
#
# Please adjust definitions of CONTENT_FILES and HTML_FILES for other
# versions of make.
#
# Supported targets:
# htdocs (default): creation of .html from .content files
# validate: validation of all .html files using XEmacs/PSGML
# all: creation and validation
#

.SUFFIXES:			# Delete the default suffixes
.SUFFIXES: .content .html .el .elc # Define our suffix list

# APA: This is what I use on my Windows 2000 machine:
XEMACS=xemacs
# XEMACS="//c/Program Files/XEmacs/XEmacs-21.1.14/i386-pc-win32/xemacs.exe"
# FLAGS=-batch -q -no-site-file
FLAGS=-batch -vanilla

# APA: Windows has its own, inadequate find, use Cygwin instead!
FIND=find
# FIND="//c/cygwin/bin/find.exe"

# APA: Where to find and how to run linklint.
LINKLINT=perl linklint-2.3.6.d-adrian
# LINKLINT=linklint
LINKLINT_OUTDIR=linklint

GENPAGE_CONF="genpage.conf"

ELCS=batch-psgml-validate.elc release-mail-to-html.elc

# APA: Use these definitions for GNU make
CONTENT_FILES=$(shell $(FIND) . -name "*.content" -print)
# APA: We may need GENERATED_HTML_FILES later.  This syntax should
# work with GNU- and Sun-make.
# GENERATED_HTML_FILES=$(CONTENT_FILES:.content=.html)
HTML_FILES=$(shell $(FIND) . -name "*.html" -print)

# APA: Use these definitions for SUN make
# CONTENT_FILES:sh=find . -name "*.content" -print
# HTML_FILES:sh=find . -name "*.html" -print

# Please add alternative definitions for CONTENT_FILES and HTML_FILES
# if neither of the above work on your system.

# PB: setup vars for namazu reindex
# location of namazu.cgi
# used for testing if this system has namazu installed
NAMAZU_CGI=~/cgi-bin/namazu.cgi
# mknmz command
# used to reindex the site for namazu
MKNMZ=mknmz
# location of namazu index files
NAMAZU_INDEX_DIR=~/var/namazu/index
# website directory
# need to make this more generic
# ${PWD} doesnt seem to get set on www.xemacs.org
XEMACS_WEB_DIR=~/xemacsweb

# APA: Default target (first to occur in file):
validate: htdocs validate-time-stamp

htdocs: $(ELCS) htdocs-time-stamp

# APA: Compile any lisp file for performance (a bit simple-minded, maybe).
%.elc: %.el
	$(XEMACS) $(FLAGS) -f batch-byte-compile $<

all: Download/win32 validate namazu-re-index

# APA: Run linklint on the local working directory tree, including
# remote link checking (-net).
linklint: FORCE
	$(LINKLINT) -case -docbase http://www.xemacs.org -net -limit 0 -db3 /@ -doc $(LINKLINT_OUTDIR)

# APA: To be run after initial checkout of module.
# Create directory for commit logs.
# Create compatibility link faq.
# configure and build Texi2html.
# APA: Build the genpage documentation.  Maintain a timestamp to avoid
# needless re-generation of genpage release documentation.
# APA: The genpage/content/index.content is not the only dependency,
# but any improvements should go into the genpage/Makefile itself and
# be integrated with a genpage release.
init:
	if test ! -d logs; then \
	      mkdir logs; \
	fi;
	if test ! -d $(LINKLINT_OUTDIR); then \
	      mkdir $(LINKLINT_OUTDIR); \
	fi;
	ln -s FAQ faq
	cd genpage; $(MAKE) gp
	cd Texi2html; bash configure; make
	cd FAQ; $(MAKE)

# APA: When contentdir and outputdir are the same then, and only then,
# genpage depends only on content files.  Copying of all other files
# (from contentdir to outputdir) is not necessary in this case.
# See $(GENPAGE_CONF).
htdocs-time-stamp: $(CONTENT_FILES) template.html template-de.html template-ja.html
	perl ./genpage/bin/genpage -p $(GENPAGE_CONF) -o "."
	touch htdocs-time-stamp

# APA: Validate only files younger than time-stamp file created by
# previous validation
# See batch-psgml-validate.el for details, in particular ...
# (defun batch-psgml-validate (&optional file-or-dir)
# (defun batch-psgml-validate-file (file &optional insert-result indent)
# (defun batch-psgml-validate-buffer (&optional insert-result indent)
validate-time-stamp: $(HTML_FILES)
	$(XEMACS) $(FLAGS) -l ./batch-psgml-validate.elc -f batch-psgml-validate $?
	touch validate-time-stamp

# PB: target for rebuilding the namazu index
# APA: Touch index.html for index template files to be re-generated.
# www.xemacs.org has a patched mknmz that will update index files,
# unless they are newer than the associated template.
namazu-re-index: FORCE
	touch index.html
	if test -f ${NAMAZU_CGI}; then \
		cd ${NAMAZU_INDEX_DIR}; \
		${MKNMZ} ${XEMACS_WEB_DIR}; \
	fi;

# APA: Remove all .html files (and backups) generated from .content
# files.  Need to remove timestamp files as well!
clean:
	$(FIND) . \( -name "*.content" -o -name "*~" \) -print | perl -ne "{ chomp; s/\.content/.html/; unlink; }"
	rm -f htdocs-time-stamp
	rm -f validate-time-stamp

Download/win32: FORCE
	cd $@ && $(MAKE)

FORCE:

# End of xemacsweb Makefile
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.