xemacsweb / Makefile

# -*-Makefile-*- Begin of xemacsweb Makefile
# Adrian Aichner (APA),, 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="//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="//c/cygwin/bin/find.exe"

# APA: Where to find and how to run linklint.
# LINKLINT=perl linklint-2.3.3


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.
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.

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

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

validate: htdocs validate-time-stamp

all: validate

# APA: Run linklint on the local working directory tree, including
# remote link checking (-net).
linklint: FORCE
	$(LINKLINT) -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.
	if test ! -d logs; then \
	      mkdir logs; \
	if test ! -d $(LINKLINT_OUTDIR); then \
	      mkdir $(LINKLINT_OUTDIR); \
	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.
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

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

# 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
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.