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
#

# Use a Local.rules file to specify what you wish to have installed
XEMACS_WEBSITE_BASE:= $(shell pwd)

all: validate

include Local.rules.mk
-include Local.rules

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

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

htdocs: $(ELCS) $(GENERATED_HTML_FILES)

$(GENERATED_HTML_FILES): 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).
# Use -output_index site so that all files are reachable in directory
# and not hidden by index.html, which does not reference url*.html
# files.
linklint: FORCE
	$(LINKLINT) $(LINKLINT_CASE) -docbase http://www.xemacs.org -net -limit 0 -db3 /@ -doc $(LINKLINT_OUTDIR) $(LINKLINT_INGORESET) -output_index site

# 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;
	if test ! -e faq; then \
	      ln -s FAQ faq; \
	fi;
	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 -n "${NAMAZU_CGI}" -a -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.