r15712 - gnucash/trunk/packaging/win32 - Install.sh: Add support for generating guide and help CHM files.
Andreas Köhler
andi5 at cvs.gnucash.org
Tue Mar 13 20:42:01 EDT 2007
Author: andi5
Date: 2007-03-13 20:41:59 -0400 (Tue, 13 Mar 2007)
New Revision: 15712
Trac: http://svn.gnucash.org/trac/changeset/15712
Modified:
gnucash/trunk/packaging/win32/custom.sh
gnucash/trunk/packaging/win32/install.sh
Log:
Install.sh: Add support for generating guide and help CHM files.
* add html help workspace, make an import library for hhctrl.ocx
* add libxslt for xsltproc and htmlhelp xsl stylesheets
* run xsltproc on guide and help, C and de_DE; enrich the resulting hhp
files with anchor/map/alias information, compile them with hhc, save
to $INST_DIR/share/gnucash/$lang/gnucash-$type.chm
* create GKeyFiles *.hhmap that can be parsed to open specific topics
* also, obsolete pexports by mingw-utils
Modified: gnucash/trunk/packaging/win32/custom.sh
===================================================================
--- gnucash/trunk/packaging/win32/custom.sh 2007-03-13 21:00:37 UTC (rev 15711)
+++ gnucash/trunk/packaging/win32/custom.sh 2007-03-14 00:41:59 UTC (rev 15712)
@@ -88,13 +88,14 @@
OPENSSL_LIB_URL="$SF_MIRROR/gnuwin32/openssl-0.9.7c-lib.zip"
OPENSSL_DIR=$GLOBAL_DIR\\openssl
-PEXPORTS_URL="http://www.emmestech.com/software/cygwin/pexports-0.43/pexports-0.43.zip"
-PEXPORTS_DIR=$TOOLS_DIR
+MINGW_UTILS_URL="$SF_MIRROR/mingw/mingw-utils-0.3.tar.gz"
+MINGW_UTILS_DIR=$TOOLS_DIR
EXETYPE_SCRIPT=`pwd`/exetype.pl
EXETYPE_DIR=$TOOLS_DIR
LIBXML2_URL="http://www.zlatkovic.com/pub/libxml/libxml2-2.6.27.win32.zip"
+LIBXSLT_URL="http://www.zlatkovic.com/pub/libxml/libxslt-1.1.19.win32.zip"
LIBXML2_DIR=$GLOBAL_DIR\\gnome #avoid XML_FLAGS
GETTEXT_URL="$GNOME_WIN32_DEPS_URL/gettext-0.14.5.zip"
@@ -172,6 +173,9 @@
INNO_URL="http://files.jrsoftware.org/is/5/isetup-5.1.9.exe"
INNO_DIR=$GLOBAL_DIR\\inno
+HH_URL="http://download.microsoft.com/download/OfficeXPProf/Install/4.71.1015.0/W98NT42KMe/EN-US/HTMLHELP.EXE"
+HH_DIR=$GLOBAL_DIR\\hh
+
SVN_URL="http://subversion.tigris.org/files/documents/15/35379/svn-1.4.2-setup.exe"
SVN_DIR=$GLOBAL_DIR\\svn
@@ -193,6 +197,10 @@
AQBANKING_URL="$SF_MIRROR/aqbanking/aqbanking-2.2.9.tar.gz"
AQBANKING_DIR=$GLOBAL_DIR\\aqbanking
+
+DOCBOOK_XSL_URL="$SF_MIRROR/docbook/docbook-xsl-1.72.0.zip"
+DOCS_URL="http://svn.gnucash.org/repo/gnucash-docs/trunk"
+DOCS_DIR=$GLOBAL_DIR\\gnucash-docs
##
# There is no reason to ever need to comment these out!
@@ -213,7 +221,7 @@
if test x$cross_compile != xyes ; then
add_step inst_openssl
fi
-add_step inst_pexports
+add_step inst_mingwutils
add_step inst_exetype
add_step inst_libxml2
add_step inst_gnome
@@ -231,7 +239,9 @@
##
if test x$cross_compile != xyes ; then
add_step inst_inno
+ add_step inst_hh
fi
add_step inst_svn
add_step svn_up
add_step inst_gnucash
+add_step inst_docs
Modified: gnucash/trunk/packaging/win32/install.sh
===================================================================
--- gnucash/trunk/packaging/win32/install.sh 2007-03-13 21:00:37 UTC (rev 15711)
+++ gnucash/trunk/packaging/win32/install.sh 2007-03-14 00:41:59 UTC (rev 15712)
@@ -18,6 +18,8 @@
register_env_var GUILE_LOAD_PATH ";"
register_env_var GUILE_CPPFLAGS " "
register_env_var GUILE_LDFLAGS " "
+register_env_var HH_CPPFLAGS " "
+register_env_var HH_LDFLAGS " "
register_env_var INTLTOOL_PERL " "
register_env_var KTOBLZCHECK_CPPFLAGS " "
register_env_var KTOBLZCHECK_LDFLAGS " "
@@ -143,7 +145,7 @@
add_to_env -I$_REGEX_UDIR/include REGEX_CPPFLAGS
add_to_env -L$_REGEX_UDIR/lib REGEX_LDFLAGS
add_to_env $_REGEX_UDIR/bin PATH
- if quiet ${LD} $REGEX_LDFLAGS -lregex -o $TMP_UDIR/ofile
+ if quiet ${LD} $REGEX_LDFLAGS -o $TMP_UDIR/ofile
then
echo "regex already installed. skipping."
else
@@ -329,26 +331,17 @@
test -f ${_OPENSSL_UDIR}/lib/libssl.dll.a || die "openssl not installed correctly"
}
-function inst_pexports() {
- setup pexports
- _PEXPORTS_UDIR=`unix_path $PEXPORTS_DIR`
- add_to_env $_PEXPORTS_UDIR/bin PATH
- if quiet which pexports
+function inst_mingwutils() {
+ setup MinGW-Utils
+ _MINGW_UTILS_UDIR=`unix_path $MINGW_UTILS_DIR`
+ add_to_env $_MINGW_UTILS_UDIR/bin PATH
+ if quiet which pexports && quiet which reimp
then
- echo "pexports already installed. skipping."
+ echo "mingw-utils already installed. skipping."
else
- wget_unpacked $PEXPORTS_URL $DOWNLOAD_DIR $PEXPORTS_DIR
- qpushd $PEXPORTS_DIR
- mkdir -p $_PEXPORTS_UDIR/bin
- cp pexports-*/bin/* $_PEXPORTS_UDIR/bin
- if test x$cross_compile = xyes ; then
- cd pexports-*/src
- make
- cp pexports.exe ../../bin/pexports
- fi
- qpopd
+ wget_unpacked $MINGW_UTILS_URL $DOWNLOAD_DIR $MINGW_UTILS_DIR
fi
- quiet which pexports || die "pexports unavailable"
+ (quiet which pexports && quiet which reimp) || die "pexports unavailable"
}
function inst_exetype() {
@@ -373,8 +366,12 @@
then
echo "libxml2 already installed. skipping."
else
+ wget_unpacked $LIBXSLT_URL $DOWNLOAD_DIR $LIBXML2_DIR
wget_unpacked $LIBXML2_URL $DOWNLOAD_DIR $LIBXML2_DIR
qpushd $LIBXML2_DIR
+ mv libxslt-* mydir
+ cp -r mydir/* .
+ rm -rf mydir
mv libxml2-* mydir
cp -r mydir/* .
rm -rf mydir
@@ -639,6 +636,30 @@
quiet which iscc || die "iscc (Inno Setup Compiler) not installed correctly"
}
+function inst_hh() {
+ setup HTML Help Workshop
+ _HH_UDIR=`unix_path $HH_DIR`
+ add_to_env -I$_HH_UDIR/include HH_CPPFLAGS
+ add_to_env -L$_HH_UDIR/lib HH_LDFLAGS
+ add_to_env $_HH_UDIR PATH
+ if quiet ${LD} $HH_LDFLAGS -lhtmlhelp -o $TMP_UDIR/ofile
+ then
+ echo "html help workshop already installed. skipping."
+ else
+ smart_wget $HH_URL $DOWNLOAD_DIR
+ echo "!!! When asked for an installation path, specify $HH_DIR !!!"
+ $LAST_FILE
+ qpushd $HH_DIR/lib
+ _HHCTRL_OCX=$(which hhctrl.ocx || true)
+ [ "$_HHCTRL_OCX" ] || die "Did not find hhctrl.ocx"
+ pexports -h ../include/htmlhelp.h $_HHCTRL_OCX > htmlhelp.def
+ ${DLLTOOL} -k -d htmlhelp.def -l libhtmlhelp.a
+ mv htmlhelp.lib htmlhelp.lib.bak
+ qpopd
+ fi
+ quiet ${LD} $HH_LDFLAGS -lhtmlhelp -o $TMP_UDIR/ofile || die "html help workshop not installed correctly"
+}
+
function inst_opensp() {
setup Opensp
_OPENSP_UDIR=`unix_path ${OPENSP_DIR}`
@@ -884,8 +905,8 @@
${LIBOFX_OPTIONS} \
${AQBANKING_OPTIONS} \
--enable-binreloc \
- CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} ${KTOBLZCHECK_CPPFLAGS} -D_WIN32" \
- LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS} ${KTOBLZCHECK_LDFLAGS}" \
+ CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} ${KTOBLZCHECK_CPPFLAGS} ${HH_CPPFLAGS} -D_WIN32" \
+ LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS} ${KTOBLZCHECK_LDFLAGS} ${HH_LDFLAGS}" \
PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
# Windows DLLs don't need relinking
@@ -938,6 +959,62 @@
qpopd
}
+function make_chm() {
+ _CHM_TYPE=$1
+ _CHM_LANG=$2
+ echo "Processing $_CHM_TYPE ($_CHM_LANG) ..."
+ qpushd $_CHM_TYPE/$_CHM_LANG
+ xsltproc ../../../docbook-xsl/htmlhelp/htmlhelp.xsl gnucash-$_CHM_TYPE.xml
+ count=0
+ echo >> htmlhelp.hhp
+ echo "[ALIAS]" >> htmlhelp.hhp
+ echo "IDH_0=index.html" >> htmlhelp.hhp
+ echo "#define IDH_0 0" > mymaps
+ echo "[Map]" > htmlhelp.hhmap
+ echo "Searching for anchors ..."
+ for id in `cat *.xml | sed '/sect.*id=/!d;s,.*id=["'\'']\([^"'\'']*\)["'\''].*,\1,'` ; do
+ files=`grep -l "[\"']${id}[\"']" *.html` || continue
+ echo "IDH_$((++count))=${files}#${id}" >> htmlhelp.hhp
+ echo "#define IDH_${count} ${count}" >> mymaps
+ echo "${id}=${count}" >> htmlhelp.hhmap
+ done
+ echo >> htmlhelp.hhp
+ echo "[MAP]" >> htmlhelp.hhp
+ cat mymaps >> htmlhelp.hhp
+ rm mymaps
+ hhc htmlhelp.hhp || true
+ mv -fv htmlhelp.chm $_DOCS_INST_UDIR/$_CHM_LANG/gnucash-$_CHM_TYPE.chm
+ mv -fv htmlhelp.hhmap $_DOCS_INST_UDIR/$_CHM_LANG/gnucash-$_CHM_TYPE.hhmap
+ qpopd
+}
+
+function inst_docs() {
+ _DOCS_UDIR=`unix_path $DOCS_DIR`
+ if [ ! -d $_DOCS_UDIR/docbook-xsl ] ; then
+ wget_unpacked $DOCBOOK_XSL_URL $DOWNLOAD_DIR $DOCS_DIR
+ mv $_DOCS_UDIR/docbook-xsl-* $_DOCS_UDIR/docbook-xsl
+ fi
+ mkdir -p $_DOCS_UDIR/repos
+ qpushd $DOCS_DIR/repos
+ # latest revision that should compile, use HEAD or vwxyz
+ SVN_REV="HEAD"
+ if [ -x .svn ]; then
+ setup "SVN update of docs"
+ svn up -r ${SVN_REV}
+ else
+ setup "SVN checkout of docs"
+ svn co -r ${SVN_REV} $DOCS_URL .
+ fi
+ setup docs
+ _DOCS_INST_UDIR=`unix_path $INSTALL_DIR`/share/gnucash/help
+ mkdir -p $_DOCS_INST_UDIR/{C,de_DE}
+ make_chm guide C
+ make_chm guide de_DE
+ make_chm help C
+ make_chm help de_DE
+ qpopd
+}
+
function finish() {
setup Finish...
_NEW=x
More information about the gnucash-changes
mailing list