207 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# bsd.web.mk
 | 
						|
# $Id: web.mk,v 1.14 1998-07-23 10:59:00 wosch Exp $
 | 
						|
 | 
						|
#
 | 
						|
# Build and install a web site.
 | 
						|
#
 | 
						|
# Basic targets:
 | 
						|
#
 | 
						|
# all (default) -- performs batch mode processing necessary
 | 
						|
# install -- Installs everything
 | 
						|
# clean -- remove anything generated by processing
 | 
						|
#
 | 
						|
 | 
						|
.if exists(${.CURDIR}/../Makefile.inc)
 | 
						|
.include "${.CURDIR}/../Makefile.inc"
 | 
						|
.endif
 | 
						|
 | 
						|
WEBDIR?=	${.CURDIR:T}
 | 
						|
CGIDIR?=	${.CURDIR:T}
 | 
						|
DESTDIR?=	${HOME}/public_html
 | 
						|
 | 
						|
WEBOWN?=	${USER}
 | 
						|
WEBGRP?=	www
 | 
						|
WEBMODE?=	664
 | 
						|
 | 
						|
CGIOWN?=	${USER}
 | 
						|
CGIGRP?=	www
 | 
						|
CGIMODE?=	775
 | 
						|
 | 
						|
#
 | 
						|
# Install dirs derived from the above.
 | 
						|
#
 | 
						|
DOCINSTALLDIR=	${DESTDIR}${WEBBASE}/${WEBDIR}
 | 
						|
CGIINSTALLDIR=	${DESTDIR}${WEBBASE}/${CGIDIR}
 | 
						|
 | 
						|
#
 | 
						|
# The orphan list contains sources specified in DOCS that there
 | 
						|
# is no transform rule for.  We start out with all of them, and
 | 
						|
# each rule below removes the ones it knows about.  If any are
 | 
						|
# left over at the end, the user is warned about them.
 | 
						|
#
 | 
						|
ORPHANS:=	${DOCS}
 | 
						|
 | 
						|
COPY=	-C
 | 
						|
 | 
						|
##################################################################
 | 
						|
# Transformation rules
 | 
						|
 | 
						|
###
 | 
						|
# file.sgml --> file.html
 | 
						|
#
 | 
						|
# Runs file.sgml through spam to validate and expand some entity
 | 
						|
# references are expanded.  file.html is added to the list of
 | 
						|
# things to install.
 | 
						|
 | 
						|
.SUFFIXES:	.sgml .html
 | 
						|
SGMLNORM=	sgmlnorm
 | 
						|
CATALOG?=	/usr/local/share/sgml/html/catalog
 | 
						|
SGMLNORMFLAGS=	-d ${SGMLNORMOPTS} -c ${CATALOG}
 | 
						|
GENDOCS+=	${DOCS:M*.sgml:S/.sgml$/.html/g}
 | 
						|
ORPHANS:=	${ORPHANS:N*.sgml}
 | 
						|
 | 
						|
.sgml.html:
 | 
						|
	${SGMLNORM} ${SGMLNORMFLAGS} ${.IMPSRC} > ${.TARGET}
 | 
						|
 | 
						|
###
 | 
						|
# file.docb --> file.html
 | 
						|
#
 | 
						|
# Generate HTML from docbook
 | 
						|
 | 
						|
.SUFFIXES:	.docb
 | 
						|
GENDOCS+=	${DOCS:M*.docb:S/.docb$/.html/g}
 | 
						|
ORPHANS:=	${ORPHANS:N*.docb}
 | 
						|
 | 
						|
.docb.html:
 | 
						|
	sgmlfmt -d docbook -f html ${SGMLOPTS} ${.IMPSRC}
 | 
						|
 | 
						|
 | 
						|
##################################################################
 | 
						|
# Targets
 | 
						|
 | 
						|
#
 | 
						|
# If no target is specified, .MAIN is made
 | 
						|
#
 | 
						|
.MAIN: all
 | 
						|
 | 
						|
#
 | 
						|
# Build most everything
 | 
						|
#
 | 
						|
all: ${COOKIE} orphans ${GENDOCS} ${DATA} ${LOCAL} ${CGI} _PROGSUBDIR
 | 
						|
 | 
						|
#
 | 
						|
# Warn about anything in DOCS that has no translation
 | 
						|
#
 | 
						|
.if !empty(ORPHANS)
 | 
						|
orphans:
 | 
						|
	@echo Warning!  I don\'t know what to do with: ${ORPHANS}
 | 
						|
.else
 | 
						|
orphans:
 | 
						|
.endif
 | 
						|
 | 
						|
#
 | 
						|
# Clean things up
 | 
						|
#
 | 
						|
.if !target(clean)
 | 
						|
clean: _PROGSUBDIR
 | 
						|
	rm -f Errs errs mklog ${GENDOCS} ${LOCAL} ${CLEANFILES}
 | 
						|
.endif
 | 
						|
 | 
						|
#
 | 
						|
# Really clean things up
 | 
						|
#
 | 
						|
.if !target(cleandir)
 | 
						|
cleandir: clean _PROGSUBDIR
 | 
						|
	rm -f ${.CURDIR}/tags .depend
 | 
						|
	cd ${.CURDIR}; rm -rf obj;
 | 
						|
.endif
 | 
						|
 | 
						|
#
 | 
						|
# Install targets: before, real, and after.
 | 
						|
#
 | 
						|
.if !target(install)
 | 
						|
.if !target(beforeinstall)
 | 
						|
beforeinstall:
 | 
						|
.endif
 | 
						|
.if !target(afterinstall)
 | 
						|
afterinstall:
 | 
						|
.endif
 | 
						|
 | 
						|
_ALLINSTALL+=	${GENDOCS} ${DATA} ${LOCAL}
 | 
						|
 | 
						|
realinstall: ${COOKIE} ${GENDOCS} ${DATA} ${LOCAL} ${CGI} _PROGSUBDIR
 | 
						|
.if !empty(_ALLINSTALL)
 | 
						|
	@mkdir -p ${DOCINSTALLDIR}
 | 
						|
	for entry in ${_ALLINSTALL}; do \
 | 
						|
		${INSTALL} ${COPY} -o ${WEBOWN} -g ${WEBGRP} -m ${WEBMODE} \
 | 
						|
			${INSTALLFLAGS} $${entry} ${DOCINSTALLDIR}; \
 | 
						|
	done
 | 
						|
.if defined(INDEXLINK) && !empty(INDEXLINK)
 | 
						|
	(cd ${DOCINSTALLDIR}; ln -s -f ${INDEXLINK} index.html)
 | 
						|
.endif
 | 
						|
.endif
 | 
						|
.if defined(CGI) && !empty(CGI)
 | 
						|
	@mkdir -p ${CGIINSTALLDIR}
 | 
						|
	for entry in ${CGI}; do \
 | 
						|
		${INSTALL} ${COPY} -o ${CGIOWN} -g ${CGIGRP} -m ${CGIMODE} \
 | 
						|
			${INSTALLFLAGS} $${entry} ${CGIINSTALLDIR}; \
 | 
						|
	done
 | 
						|
.endif
 | 
						|
.if defined(DOCSUBDIR) && !empty(DOCSUBDIR)
 | 
						|
	for entry in ${DOCSUBDIR}; do \
 | 
						|
		mkdir -p ${DOCINSTALLDIR}/$$entry; \
 | 
						|
	done
 | 
						|
.endif
 | 
						|
 | 
						|
realinstall2:
 | 
						|
.if defined(DOCSUBDIR) && !empty(DOCSUBDIR)
 | 
						|
	for entry in ${DOCSUBDIR}; do \
 | 
						|
		(cd ${DOCINSTALLDIR}/$$entry; \
 | 
						|
		tar czf $$entry-html.tar.gz *.html; \
 | 
						|
		ln -fs $${entry}.html index.html ) \
 | 
						|
	done
 | 
						|
.endif
 | 
						|
 | 
						|
# Set up install dependencies so they happen in the correct order.
 | 
						|
install: afterinstall
 | 
						|
afterinstall: realinstall2
 | 
						|
realinstall: beforeinstall
 | 
						|
realinstall2: realinstall
 | 
						|
.endif 
 | 
						|
 | 
						|
#
 | 
						|
# This recursively calls make in subdirectories.
 | 
						|
#
 | 
						|
#SUBDIR+=${DOCSUBDIR}
 | 
						|
_PROGSUBDIR: .USE
 | 
						|
.if defined(SUBDIR) && !empty(SUBDIR)
 | 
						|
	@for entry in ${SUBDIR}; do \
 | 
						|
		(${ECHODIR} "===> ${DIRPRFX}$$entry"; \
 | 
						|
		cd ${.CURDIR}/$${entry}; \
 | 
						|
		${MAKE} ${.TARGET:S/realinstall/install/:S/.depend/depend/} DIRPRFX=${DIRPRFX}$$entry/); \
 | 
						|
	done
 | 
						|
.endif
 | 
						|
.if defined(DOCSUBDIR) && !empty(DOCSUBDIR)
 | 
						|
	@for entry in ${DOCSUBDIR}; do \
 | 
						|
		(${ECHODIR} "===> ${DIRPRFX}$$entry"; \
 | 
						|
		cd ${.CURDIR}/$${entry}; \
 | 
						|
		${MAKE} ${.TARGET:S/realinstall/install/:S/.depend/depend/} DIRPRFX=${DIRPRFX}$$entry/ ${PARAMS}); \
 | 
						|
	done
 | 
						|
.endif
 | 
						|
 | 
						|
 | 
						|
#
 | 
						|
# cruft for generating linuxdoc stuff
 | 
						|
#
 | 
						|
 | 
						|
.if defined (DOCSUBDIR) && !empty(DOCSUBDIR)
 | 
						|
 | 
						|
FORMATS?=	"html ps latin1 ascii"
 | 
						|
PARAMS=		DESTDIR=${DESTDIR} DOCDIR=${WEBBASE}/${WEBDIR}
 | 
						|
PARAMS+=	DOCOWN=${WEBOWN} DOCGRP=${WEBGRP}
 | 
						|
PARAMS+=	FORMATS=${FORMATS} COPY="${COPY}"
 | 
						|
PARAMS+=	SGMLOPTS="${SGMLOPTS}"
 | 
						|
 | 
						|
.endif
 | 
						|
 | 
						|
# THE END
 |