Red Antigua Logo
Yet another piece of web.
Ads by Goooooogle
Search this site (by Google)
Tools    (top)
Your IP
Check a site for broken links
(W3C)

Perl modules    (top)
Tree::Numbered::Tools
(CPAN)
Perl tutorials    (top)
Perl modules
HTML::Template
CGI::Application
Mail::POP3Client
Mail::Send
MIME::Tools
Cookies with CGI::Application
Upload files with CGI::Application
Download files with CGI::Application
Redirect with CGI::Application
CPAN shell
Install DBD::mysql from the CPAN shell
Perl trim function
Validate an IP with Perl
Run suid Perl scripts under Apache
Perl taint mode
Perl date functions with Date::Calc

In Spanish
Curso de Perl

C tutorials    (top)
C - Introduction
C - Absolute beginner's Emacs
C - Examples for beginners
C - Makefile examples
C - Autotools examples
Server configurations    (top)
DNS
Apache
Apache Authentication and Access Control
mod_perl on FreeBSD
MySQL
MySQL add account
phpMyAdmin
Squid
DHCP

UNIX on Windows    (top)
Apache setup on Windows
MySQL setup on Windows
PHP setup on Windows
Perl setup on Windows
Emacs setup on Windows
UnxUtils
PuTTY
WinSCP
GIMP on Windows
MinGW - gcc on Windows
MSYS - UNIX-styled shell on Windows
msysDTK - autotools on Windows
GDB for MinGW on Windows

Misc. FreeBSD/UNIX    (top)
CD and DVD creation on FreeBSD using 'k3b' on FreeBSD
'portupgrade' on FreeBSD
'ipf' on FreeBSD
'pf' on FreeBSD
'su' on FreeBSD
Mount an ISO image under FreeBSD
Load the correct sound driver under FreeBSD without knowing what sound card you are using
Simultaneous sound channels on FreeBSD
FreeBSD network stuff
DOS-to-UNIX file conversion
favicon.ico on UNIX
Emacs tips
Sendmail tips
GKrellm
Command Line Calculator
Save multimedia streams with 'mplayer'
xargs - solution to 'Argument list too long'
Process multiple images from the command line using 'ImageMagick'
Turn the system bell off under X Windows
Process each line in an input file from the command line (or in a shell script)
How to keep a program running in the background using 'nohup'
How to remove symbolic links in the current directory using 'find' and 'rm'
How to remove Emacs backup files in the current directory and all subdirectories using 'find' and 'rm'
How to execute .profile without logging in
Configure X to handle non-English characters
How to move /var to /usr/var

Redirect a web page    (top)
Redirect to another web page
Apache redirect
C redirect
Perl redirect
PHP redirect
HTML redirect
JavaScript redirect

Javascript    (top)
Trim function
Login form
Register form
Popup window

Virus list    (top)
Latest 10 viruses - Sophos

Off topic    (top)
Personal home links

A DocBook Makefile example
A DocBook Makefile example, tested on MS Windows.
IndexPreviousNext

The Makefile creates both HTML (single and multi/chunk) and PDF files. The input files are available here.
DOC = smsgwNR
DOC_PATH = doc/
DOC_PATH_CSS = $(DOC_PATH)
DOC_PATH_HTML_SINGLE = $(DOC_PATH)single/
DOC_PATH_HTML_MULTI = $(DOC_PATH)multi/
DOC_PATH_PDF = $(DOC_PATH)pdf/
DOC_PATH_IMAGES = $(DOC_PATH)images/

DOC_PATHS = \
$(DOC_PATH_CSS) \
$(DOC_PATH_HTML_SINGLE) \
$(DOC_PATH_HTML_MULTI) \
$(DOC_PATH_PDF) \
$(DOC_PATH_IMAGES)

DIAGRAM_IMAGES = \
$(IMAGE_PATH)WidgetAltaWeb.png \
$(IMAGE_PATH)send_pin.png \
$(IMAGE_PATH)send_pin_movistar.png \
$(IMAGE_PATH)send_pin_vodafone.png \
$(IMAGE_PATH)send_pin_orange.png \
$(IMAGE_PATH)check_pin.png \
$(IMAGE_PATH)check_pin_movistar.png \
$(IMAGE_PATH)check_pin_vodafone.png \
$(IMAGE_PATH)check_pin_orange.png \
$(IMAGE_PATH)sendinitialweb-checkcdr.png \
$(IMAGE_PATH)send_pin_detailed.png \
$(IMAGE_PATH)check_pin_detailed.png

STATIC_IMAGES = \
kannel-external-interfaces.png \
smsgwNR-overview.png \
bearerbox-arch.png \
bearerbox-threads-queues.png

IMAGE_PATH_NAVIG_SRC = /c/docbook/docbook-xsl/images/colorsvg/
IMAGE_PATH_NAVIG_DST = $(IMAGE_PATH)
NAVIG_IMAGES_SUFFIX = .svg
NAVIG_IMAGES = \
$(IMAGE_PATH_NAVIG_DST)prev$(NAVIG_IMAGES_SUFFIX) \
$(IMAGE_PATH_NAVIG_DST)next$(NAVIG_IMAGES_SUFFIX) \
$(IMAGE_PATH_NAVIG_DST)up$(NAVIG_IMAGES_SUFFIX) \
$(IMAGE_PATH_NAVIG_DST)home$(NAVIG_IMAGES_SUFFIX)

XSLTPROC_PROG = /c/docbook/xsltproc.exe
XSLTPROC_PARAMS = \
--stringparam section.autolabel 1 \
--stringparam appendix.autolabel 0 \
--stringparam section.label.includes.component.label 0 \
--stringparam navig.showtitles 0 \
--stringparam navig.graphics 0 \
--stringparam navig.graphics.extension $(NAVIG_IMAGES_SUFFIX) \
--stringparam toc.section.depth 5 \
--stringparam chunk.section.depth 5 \
--stringparam chunk.first.sections 1

### --stringparam chapter.autolabel 1
### --stringparam section.autolabel.max.depth 8 

XSLTPROC = $(XSLTPROC_PROG) $(XSLTPROC_PARAMS)

TIDY     = echo && echo "Cleaning up HTML with tidy..."  && /c/docbook/tidy.exe -modify -indent -quiet -config tidy.conf
FOP      = cmd //c /c/docbook/fop/fop.bat
### SAXON    = cmd //c /c/docbook/saxon/saxon.bat
XMLLINT  = /c/docbook/xmllint.exe
DIA      = /c/Archivos\ de\ programa/Dia/bin/dia.exe --nosplash

HTML_STYLESHEET = style-html.xsl
HTML_CHUNK_STYLESHEET = style-html-chunk.xsl
HTML_CHUNK_FAST_STYLESHEET = style-html-chunk-fast.xsl
FO_STYLESHEET = style-fo.xsl
CSS_STYLESHEET = style.css
CATALOG = catalog-win32.xml

HTML_STYLESHEET_PUBLIC = http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
FO_STYLESHEET_PUBLIC = http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl

HTML_STYLESHEET_SYSTEM = file:///C/docbook/docbook-xsl/html/docbook.xsl
HTML_MAKETOC_STYLESHEET_SYSTEM = file:///C:/docbook/docbook-xsl/html/maketoc.xsl
HTML_CHUNKTOC_STYLESHEET_SYSTEM = file:///C:/docbook/docbook-xsl/html/chunktoc.xsl
FO_STYLESHEET_SYSTEM = file:///C/docbook/docbook-xsl/fo/docbook.xsl

all: Makefile img css single multi pdf

pathdoc:
        mkdir -p $(DOC_PATH)
pathcss:
        mkdir -p $(DOC_PATH_CSS)
pathhtmlsingle:
        mkdir -p $(DOC_PATH_HTML_SINGLE)
pathhtmlmulti:
        mkdir -p $(DOC_PATH_HTML_MULTI)
pathpdf:
        mkdir -p $(DOC_PATH_PDF)
pathimg:
        mkdir -p $(DOC_PATH_IMAGES)

img: pathimg imgstatic
###img: imgdir dia navig imgstatic

dia: $(DIAGRAM_IMAGES)
$(IMAGE_PATH)%.png: %.dia
        @$(DIA) --export=$@ $<

navig: img $(NAVIG_IMAGES)
$(IMAGE_PATH_NAVIG_DST)%$(NAVIG_IMAGES_SUFFIX): $(IMAGE_PATH_NAVIG_SRC)%$(NAVIG_IMAGES_SUFFIX)
        cp $< $@

imgstatic: $(STATIC_IMAGES)
        cp $(STATIC_IMAGES) $(DOC_PATH_IMAGES) 

css: pathcss $(CSS_STYLESHEET)
        cp $(CSS_STYLESHEET) $(DOC_PATH_CSS) 

single: html
html: pathhtmlsingle img $(DOC).xml
        XML_CATALOG_FILES="$(CATALOG)" XML_DEBUG_CATALOG=1 $(XSLTPROC) --output $(DOC_PATH_HTML_SINGLE)$(DOC).html --stringparam use.extensions 0 $(HTML_STYLESHEET) $(DOC).xml  
        @make --ignore-errors tidysingle

multi: chunk
chunk: pathhtmlmulti img $(DOC).xml
        @echo
        @echo Creating HTML documentation, multiple files...
###     XML_CATALOG_FILES="$(CATALOG)" XML_DEBUG_CATALOG=1 xsltproc --output $(DOC).html --stringparam use.extensions 0 $(HTML_CHUNK_STYLESHEET) $(DOC).xml
###     XML_CATALOG_FILES="$(CATALOG)" XML_DEBUG_CATALOG=1 $(XSLTPROC) --output $(DOC).html $(HTML_CHUNK_FAST_STYLESHEET) $(DOC).xml
        $(XSLTPROC) --output $(DOC_PATH_HTML_MULTI)index.html $(HTML_CHUNK_FAST_STYLESHEET) $(DOC).xml
        @make --ignore-errors tidymulti

fo: pathpdf img $(DOC).xml
        @$(XSLTPROC) --output $(DOC_PATH_PDF)$(DOC).fo --stringparam use.extensions 0 $(FO_STYLESHEET) $(DOC).xml  

pdf: fo
        $(FOP) -fo $(DOC_PATH_PDF)$(DOC).fo -pdf $(DOC_PATH_PDF)$(DOC).pdf

valid:
        $(XMLLINT) --valid --noout --loaddtd http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd $(DOC).xml

tidy: tidysingle tidymulti

tidysingle:
        @$(TIDY) $(DOC_PATH_HTML_SINGLE)$(DOC).html

tidymulti:
        @$(TIDY) $(DOC_PATH_HTML_MULTI)*.html

$(CSS_PATH):
        mkdir -p $(CSS_PATH)

$(IMAGE_PATH):
        mkdir -p $(IMAGE_PATH)

clean:
### rm -f $(DOC_PATH)*.html $(DOC_PATH)*.fo $(DOC_PATH)*.pdf $(DOC_PATH)*.hhc $(DIAGRAM_IMAGES) $(NAVIG_IMAGES) $(IMAGE_PATH)
        rm -rf $(DOC_PATHS)

# ---------------------------- PRUEBAS ----------------------------------------------------
tutbook:
###     @$(XSLTPROC) --output simple.html --nonet C:/docbook/docbook-xsl/html/docbook.xsl simple.xml
        @$(XSLTPROC) --output tutbook1.html --nonet $(HTML_STYLESHEET) tutbook1.xml
        @make --ignore-errors tidytutbook

simple:
###     @$(XSLTPROC) --output simple.html --nonet C:/docbook/docbook-xsl/html/docbook.xsl simple.xml
        @$(XSLTPROC) --output simple.html --nonet simple.xsl simple.xml
        @make --ignore-errors tidysimple

abi:
        @$(XSLTPROC) --output abidocbook1.html style.xsl abidocbook1.xml

oo:
        @$(XSLTPROC) --output oo1.html simple.xsl oo1.xml

ms:
        @$(XSLTPROC) --output msword1.html simple.xsl msword1.xml

simplepdf:
        $(XSLTPROC) --output simple.fo --nonet C:/docbook/docbook-xsl/fo/docbook.xsl simple.xml
        $(FOP) -fo simple.fo -pdf simple.pdf

sidebar:
        @$(XSLTPROC) --output sidebar.html --nonet $(HTML_STYLESHEET) sidebar.xml

tidytutbook:
        @$(TIDY) tutbook*.html

tidysimple:
        @$(TIDY) simple.html

###valid2:
###     $(SAXON)
###     $(SAXON) $(DOC).xml

maketoc: $(DOC).xml
        @$(XSLTPROC) -o mytoc.xml $(HTML_MAKETOC_STYLESHEET_SYSTEM)  $(DOC).xml
        @echo Edit the generated file 
        @echo 
        @echo mytoc.xml file 
        @echo 
        @echo Remove any tocentry elements that you do not want chunked, or add entries that you do want chunked.
        @echo Then run the command:
        @echo 
        @echo make chunktoc
        @echo 
        @echo or
        @echo 
        @echo $(XSLTPROC) --stringparam chunk.toc $(DOC).xml
        @echo 
        @echo See http://www.sagehill.net/docbookxsl/Chunking.html#ControllingChunks for more details.

chunktoc: mytoc.xml
        /c/docbook/xsltproc.exe --stringparam chunk.toc mytoc.xml --stringparam manual.toc mytoc.xml $(HTML_CHUNKTOC_STYLESHEET_SYSTEM) $(DOC).xml


IndexPreviousNext
Last modified: Fri Jun 19 20:00:11 CEST 2009