[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

make on older systems (RHEL3)



I've made some revisions to docs-common/Makefile.common in an attempt to
resolve build failures on RHEL3.  I'd like this to undergo more testing
(particularly on older systems) before committing it.  In particular, I
would like Tommy to take a quick look at this to make sure it doesn't
break anything.  It is a syntax change that, to the best of my
knowledge, shouldn't change behavior, but I'm not overly experienced
with Makefiles.

The altered file is attached.

-- 
Patrick "The N-Man" Barnes
nman64 n-man com

www.n-man.com
-- 


#########################################################################
# Makefile.common
#
# This file, to be included from every document's local Makefile, provides
# the basic targets used by the Fedora Docs Project:
# all			-- Default target, builds HTML document only
# ${DOCNAME}/index.html	-- Builds HTML version of document
# html			-- See "${DOCNAME}/index.html"
# html-nochunks		-- See "${DOCNAME}.html"; single HTML file
# ${DOCNAME}.tar.gz	-- Packages HTML document into a tar archive
# tarball		-- See "${DOCNAME}.tar.gz"
# clean			-- Deletes all generated files and directories
# distclean		-- See "clean"
# ${DOCNAME}.pdf	-- Builds PDF version of document
# pdf			-- See "${DOCNAME}.pdf"
#########################################################################
# PDF generation is still fragile and probably won't work on your document.
# Yet.
#########################################################################
# Note: all targets within this Makefile.common must be defined as 
# double-colon (::) targets so that additional steps can be added by
# providing additional rules, also marked with double-colons, in the
# document Makefile.
#########################################################################
# Allow client document to provide "Make.paths" file to locate our files
# This is a "silent include", so if it's missing there is no problem.
# This file, if present, must be in the DOCUMENT directory, not here in
# docs-common.  Even if this file is present, defining FTPDIR via the
# command line will take precedence.
sinclude Make.paths
#########################################################################
# Supply default values for the boilerplate files _unless_ the user has
# provided their own values.
ifeq	(${FDPDIR},)
FDPDIR	       = ..
endif
ifeq	(${XSLPDF},)
XSLPDF		= ${FDPDIR}/docs-common/xsl/main-pdf.xsl
endif
ifeq	(${XSLHTML},)
XSLHTML        	= ${FDPDIR}/docs-common/xsl/main-html.xsl
endif
ifeq	(${XSHTMLNOCHUNKS},)
XSLHTMLNOCHUNKS	= ${FDPDIR}/docs-common/xsl/main-html-nochunks.xsl
endif
#########################################################################
# Define a macro to locate xmlto(1) so we can choose a specific version
# by "make XMLTO=/path/to/xmlto", if we so desire.
XMLTO	=xmlto
#########################################################################
# PUT NO TARGETS BEFORE THIS ONE, not even in your base Makefile
# In a properly-constructed Makefile, this will be the default target

TARGETS=all tarball pdf html html-nochunks clean distclean showvars
.PHONY:	${TARGETS}

all::	html html-nochunks tarball # pdf

${TARGETS}::

#########################################################################
# For each LANG in LANGUAGES, generate a target and rule similar to:
# mydoc-en/index.html:: mydoc-en.xml ${XMLEXTRAFILES}-en
#  LANG=en.UTF-8 ${XMLTO} html -x $(XSLHTML) -o mydoc-en mydoc-en.xml
#  mkdir -p mydoc-en/stylesheet-images
#  cp ${FDPDIR}/docs-common/stylesheet-images/*.png mydoc-en/stylesheet-images/
#  cp ${FDPDIR}/docs-common/css/fedora.css mydoc-en/
#  mkdir -p mydoc-en/figs
#  cp -p figs/*-${LANG}.* mydoc-en/figs
# but we do avoid copying EPS files since they are nonsense to the HTML world.
# Also, we create the figs directory only if the document dir has a "figs/".
# I don't think we need to do this for a nochunks output, though.
#
define	HTML_template
${DOCBASE}-$(1)/index.html:: ${DOCBASE}-$(1).xml $$(XMLEXTRAFILES-$(1))
	LANG=$(1).UTF-8 ${XMLTO} html -x $(XSLHTML) -o $(DOCBASE)-$(1) $(DOCBASE)-$(1).xml
	mkdir -p $(DOCBASE)-$(1)/stylesheet-images/
	cp ${FDPDIR}/docs-common/stylesheet-images/*.png $(DOCBASE)-$(1)/stylesheet-images
	cp ${FDPDIR}/docs-common/css/fedora.css $$(DOCBASE)-$(1)/
	[ ! -d figs ] || (						\
		mkdir -p ${DOCBASE}-$(1)/figs;				\
		find figs -type f -iname '*.*' -print		|	\
		egrep -vi '*.eps'				|	\
		egrep '(.*-$(1)..*)|([^-]*[.][^-]*)'		|	\
		while read x; do cp -f $$$${x} ${DOCBASE}-$(1)/figs; done \
	) && exit 0
endef
#
html::	$(DOCBASE)-$(LANGUAGES)/index.html

$(DOCBASE)-$(LANGUAGES)/index.html::

$(foreach LANG,${LANGUAGES},$(eval $(call HTML_template,${LANG})))
#
#########################################################################
# For each language in ${LANGUAGES}, generate a single HTML file
define	HTMLNOCHUNK_template
${DOCBASE}-$(1).html::	${DOCBASE}-$(1).xml $$(XMLEXTRAFILES-$(1))
	${XMLTO} html-nochunks -x $(XSLHTMLNOCHUNKS) $(DOCBASE)-$(1).xml
	mkdir -p stylesheet-images/
	cp ${FDPDIR}/docs-common/stylesheet-images/*.png stylesheet-images/
	cp ${FDPDIR}/docs-common/css/fedora.css .
endef
#
html-nochunks::	$(DOCBASE)-$(LANGUAGES).html

$(DOCBASE)-$(LANGUAGES).html::

$(foreach LANG,${LANGUAGES},$(eval $(call HTMLNOCHUNK_template,${LANG})))
#
#########################################################################
# For each language in ${LANGUAGES}, build a tarball of the HTML files.
#
define	TAR_template
${DOCBASE}-$(1).tar.gz:: ${DOCBASE}-$(1)/index.html
	tar -zc --exclude '*.eps' -f ${DOCBASE}-$(1).tar.gz ${DOCBASE}-$(1)
endef
#
tarball::	$(DOCBASE)-$(LANGUAGES).tar.gz

$(DOCBASE)-$(LANGUAGES).tar.gz::

$(foreach LANG,${LANGUAGES},$(eval $(call TAR_template,${LANG})))
#
#########################################################################
# For each language in ${LANGUAGES}, generate an Adobe Portable Document
# Format (PDF) file.
define	PDF_template
${DOCBASE}-$(1).pdf:: ${DOCBASE}-$(1).xml $$(XMLEXTRAFILES-$(1))
	${XMLTO} pdf -x $(XSLPDF) $(DOCBASE)-$(1).xml
endef
#
pdf::	$(DOCBASE)-$(LANGUAGES).pdf

$(DOCBASE)-$(LANGUAGES).pdf::

$(foreach LANG,${LANGUAGES},$(eval $(call PDF_template,${LANG})))
#
#########################################################################
# For each language in ${LANGUAGES}, clean up!
define	CLEAN_template
${DOCBASE}-$(1)-clean::
	${RM} -r ${DOCBASE}-$(1)
	${RM} -r ${DOCBASE}-$(1).html stylesheet-images fedora.css
	${RM} -r ${DOCBASE}-$(1).pdf
	${RM} -r ${DOCBASE}-$(1).tar.gz
endef
#
distclean clean:: ${DOCBASE}-${LANGUAGES}-clean

${DOCBASE}-${LANGUAGES}-clean::

$(foreach LANG,${LANGUAGES},$(eval $(call CLEAN_template,${LANG})))

showvars::
	@echo "DOCBASE=\"$(DOCBASE)\""
	@echo "LANGUAGES=\"$(LANGUAGES)\""
#
#########################################################################
# End of Makefile.common
#########################################################################

Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]