# isaweb makefile # $Id$ # force shell SHELL=bash # some global variables CONF=conf/localconf.mak # configuration switch ifeq ($(phase), init) # allocate configuration init: mkdir -p conf case $$HOSTNAME in sunbroy*) ARCH=sun;; *) ARCH=at;; esac; \ sed 's/# $$Id.*//g' build/localconf.$$ARCH.template.mak > $(CONF) $$EDITOR $(CONF) @false .PHONY: init else # default target default: site # check configuration include $(CONF) $(CONF): @if [ ! -e $(CONF) ]; \ then \ echo 'Framework not configured yet; set EDITOR environment variable'; \ echo 'to your favorite editor and type'; \ echo; \ echo ' make phase=init'; \ echo; \ echo 'to configure it'; \ false; \ else \ :; \ fi # tidy handling ifeq ($(DISABLE_TIDY),) TIDYCMD=$(TIDY) -q -i -asxhtml --output-xhtml true \ --doctype auto \ --literal-attributes true \ --wrap 0 \ --indent auto --indent-spaces 2 \ --input-encoding utf8 --output-encoding latin1 \ --logical-emphasis yes --gnu-emacs yes --write-back yes else TIDYCMD=: endif # dependencies DEP_FILE=conf/depends.mak site: $(DEP_FILE) allsite .PHONY: site # import dependencies include $(DEP_FILE) endif # pypager iso-8859-1 hack ifneq ($(FORCE_ISO_8859_1),) FORCE_ENC_CMD=--encodinghtml "iso-8859-1" else FORCE_ENC_CMD= endif # import project-specific dependencies include build/project.mak # build dependencies $(DEP_FILE): $(CONF) rm -f $(DEP_FILE); \ touch $(DEP_FILE); \ echo '# This is a generated file; do not edit' >> $(DEP_FILE); \ echo >> $(DEP_FILE); \ allstatic=''; \ for dir in $(STATICDIRS); \ do \ for file in `$(FIND) $$dir -type f -a ! -path "*/CVS/*"`; \ do \ outputfile=$(OUTPUTROOT)/$$file; \ outputdir=`dirname $$outputfile`; \ echo "$$outputfile: $$file" >> $(DEP_FILE); \ echo " mkdir -p $$outputdir" >> $(DEP_FILE); \ echo ' cp $$< $$@' >> $(DEP_FILE); \ allstatic="$$allstatic$$outputfile "; \ echo >> $(DEP_FILE); \ done; \ done; \ echo "DEP_ALLSTATIC=$$allstatic" >> $(DEP_FILE); \ echo >> $(DEP_FILE); \ echo 'DEP_HTML=$$(DEP_ALLSTATIC) $$(DEP_SYMLINKS) include/documentationdist.include.html $(DEP_FILE) $(CONF)' >> $(DEP_FILE); \ echo >> $(DEP_FILE); \ allhtml=''; \ for html in `$(FIND) . -name "*.html" -a ! -name "*.include.html"`; \ do \ outputfile=$(OUTPUTROOT)/$$html; \ outputdir=`dirname $$outputfile`; \ echo "$$outputfile: $$html"' $$(DEP_HTML)' >> $(DEP_FILE); \ echo " mkdir -p $$outputdir" >> $(DEP_FILE); \ echo ' $(PYTHON) build/pypager.py --dtd="dtd/" $(FORCE_ENC_CMD) --srcroot="." --dstroot="$(OUTPUTROOT)" distname="$(DISTNAME)" $$< $$@' >> $(DEP_FILE); \ echo ' -$(TIDYCMD) $$@' >> $(DEP_FILE); \ allhtml="$$allhtml$$outputfile "; \ echo >> $(DEP_FILE); \ done; \ echo "DEP_ALLHTML=$$allhtml" >> $(DEP_FILE); \ echo >> $(DEP_FILE); \ echo 'allsite: $$(DEP_ALLHTML) $$(DEP_ALLSTATIC)' >> $(DEP_FILE); \ echo ".PHONY: allsite" >> $(DEP_FILE) # build dependencies explicitly depends: rm -f $(DEP_FILE) $(MAKE) $(DEP_FILE) .PHONY: depends # clean build files clean: rm -f $(DEP_FILE) .PHONY: clean