Annotation of parser3/INSTALL, revision 1.46

1.33      paf         1: 0.Assuming your perform your builds in $HOME directory 
1.1       paf         2:   and suggested subdirectories.
                      3: 
1.33      paf         4: 1.What is the process to compile Parser3?
                      5: 
                      6:   First, you must have LIBGC installed (conservative garbage collector for C++).
1.41      paf         7:       libgc >= 6.6
1.33      paf         8:     
1.41      paf         9:     Installation sequence of this library:
1.33      paf        10: 
1.45      paf        11:     mkdir $HOME/parser3project
1.44      paf        12:     mkdir $HOME/parser3project/src
                     13:     cd $HOME/parser3project/src
                     14:     wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.6.tar.gz
                     15:     gunzip -c gc6.6.tar.gz | tar vxf -
1.41      paf        16:     cd gc6.6
1.44      paf        17:     ./configure --prefix=$HOME/parser3project/gc --disable-threads --disable-shared --silent
1.33      paf        18:     make install
                     19: 
1.44      paf        20:     Then you can use these Parser3 configure options to use that statically compiled gc:
1.43      paf        21:         --with-static-gc=$HOME/parser3project/gc/lib
1.44      paf        22:        In case you already have libgc.so and want to link parser against it, 
                     23:        you can this Parser3 configure option:
                     24:         --with-shared-gc=/path/to/gc/lib
1.1       paf        25: 
1.38      paf        26:     NOTE:
                     27:     On some platforms there is special version of libgc patched to support some
                     28:     local piece of subtlety.
                     29:     Official libgc does not work there, use special version instead.
                     30:     (OpenBSD reported to be one of those)
                     31: 
1.3       paf        32:   As most UNIX programs Parser3 follows the "standard":
1.1       paf        33: 
1.43      paf        34:   mkdir $HOME/parser3project
                     35:   cd $HOME/parser3project
1.3       paf        36:   gunzip -c parser3-x.x.tar.gz | tar xvf -
                     37:   mv parser3-x.x parser3
1.2       paf        38:   cd parser3
1.39      paf        39:   ./configure --prefix=$HOME/parser3install --silent
1.2       paf        40:   make
                     41:   
1.3       paf        42:   That renaming is needed for SQL drivers to be able to find 
                     43:   necessary include-file in Parser3 sources.
                     44: 
1.10      paf        45:   NOTE:
                     46:   On some system you should run 'gmake'.
1.7       paf        47: 
1.10      paf        48:   NOTE:
1.1       paf        49:   By default your would get 'parser3' binary without support of these features:
1.44      paf        50:     * xml(xdoc and xnode classes)
1.10      paf        51:   Read section (3) on getting xml-abled parser.
1.1       paf        52: 
1.17      paf        53: 
1.18      paf        54:   Read section (4) on configure options.
1.10      paf        55: 
1.2       paf        56: 2.What is the process to install Parser3?
                     57: 
                     58:   make install
                     59: 
1.1       paf        60:   Installation layout:
                     61:     $prefix/bin/
                     62:       parser3             -- CGI and command line Parser3 interpreter
1.22      paf        63:       auto.p.dist         -- configuration file sample, 
                     64:                              copy it to auto.p and adjust to your needs
1.1       paf        65:     $prefix/etc/
                     66:       parser3.charsets/   -- charset definition files
1.2       paf        67:         koi8-r.cfg        -- cyrillic charset [KOI8-R encoding]
1.33      paf        68:         windows-1250.cfg  -- central europian charset [windows-1250 encoding]
1.5       paf        69:         windows-1251.cfg  -- cyrillic charset [windows-1251 encoding]
                     70:         windows-1257.cfg  -- baltic charset [windows-1257 encoding]
1.2       paf        71: 
1.10      paf        72: 3.What other libraries are needed to compile/install parser? 
1.1       paf        73: 
1.33      paf        74: 3a. In case you wish XML(xdoc and xnode classes) support, you need libraries
1.41      paf        75:       libxml2 >= 2.6.22
                     76:       libxslt >= 1.1.15
                     77:       glib >= 1.2.10 
1.44      paf        78:       gdome2 => 0.8.1
1.1       paf        79:     on your system, and specify path to them to Parser3 configure script.
                     80: 
1.33      paf        81:     Sources of libgdome library must be patched prior to compile. [library author bug confirmation pending]
1.1       paf        82: 
1.43      paf        83:     Installation sequence of these libraries to $HOME/parser3project/gnome:
1.1       paf        84: 
1.31      paf        85:     libxml2:
1.1       paf        86: 
1.44      paf        87:     cd $HOME/parser3project/src
1.45      paf        88:     mkdir $HOME/parser3project
                     89:     wget --passive-ftp ftp://xmlsoft.org/libxml2-2.6.22.tar.gz
1.44      paf        90:     gunzip -c libxml2-2.6.22.tar.gz | tar vxf -
1.41      paf        91:     cd libxml2-2.6.22
1.45      paf        92:     #sax1, output, tree, xinclude[in libxslt], html[in libxslt, mode=html?] xptr[xinclude]-- needed!
1.44      paf        93:     ./configure --prefix=$HOME/parser3project/gnome \
1.45      paf        94:       --without-iconv --without-threads --without-debug \
1.44      paf        95:       --without-iso8859x --without-legacy \
                     96:       --without-pattern --without-push --without-python \
                     97:       --without-reader --without-writer --without-readline --without-regexps \
                     98:       --without-schemas --without-schematron \
                     99:       --without-modules \
                    100:       --without-zlib \
                    101:       --disable-shared --silent
                    102:        echo "int main(){return 0;}">testapi.c
                    103:        echo "int main(){return 0;}">runtest.c
1.1       paf       104:     make install
                    105: 
1.31      paf       106:     libxslt:
1.1       paf       107: 
1.44      paf       108:     cd $HOME/parser3project/src
1.45      paf       109:     wget --passive-ftp ftp://xmlsoft.org/libxslt-1.1.15.tar.gz
1.44      paf       110:     gunzip -c libxslt-1.1.15.tar.gz | tar vxf -
1.41      paf       111:     cd libxslt-1.1.15
1.44      paf       112:     ./configure --with-libxml-prefix=$HOME/parser3project/gnome --prefix=$HOME/parser3project/gnome --without-debug --without-debugger --without-crypto --without-plugins --disable-shared  --silent
1.1       paf       113:     make install
                    114: 
1.31      paf       115:     glib:
1.1       paf       116: 
1.44      paf       117:     cd $HOME/parser3project/src
                    118:     #on freebsd5 this is reported to work: 
1.45      paf       119:     #wget --passive-ftp ftp://ftp.gtk.org/pub/gtk/v1.1/glib-1.1.16.tar.gz
                    120:     wget --passive-ftp ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz
1.44      paf       121:     gunzip -c glib-1.2.10.tar.gz | tar vxf -
1.41      paf       122:     cd glib-1.2.10
1.44      paf       123:     ./configure --prefix=$HOME/parser3project/gnome --disable-debug --disable-shared  --silent
1.1       paf       124:     make install
                    125: 
1.31      paf       126:     gdome2:
1.1       paf       127: 
1.44      paf       128:     cd $HOME/parser3project/src
1.41      paf       129:     wget http://gdome2.cs.unibo.it/tarball/gdome2-0.8.1.tar.gz
1.44      paf       130:     gunzip -c gdome2-0.8.1.tar.gz | tar vxf -
1.41      paf       131:     cd gdome2-0.8.1
1.43      paf       132:     patch -p0 < $HOME/parser3project/parser3/src/lib/patches/gdome2.patch
1.1       paf       133: 
1.44      paf       134:     #copy these additional headers into install includes directory
1.43      paf       135:     mkdir -p $HOME/parser3project/gnome/include/libgdome/gdomecore
                    136:     cp libgdome/gdomecore/gdome-xml-node.h $HOME/parser3project/gnome/include/libgdome/gdomecore
                    137:     cp libgdome/gdomecore/gdome-xml-document.h $HOME/parser3project/gnome/include/libgdome/gdomecore
1.1       paf       138:     
1.44      paf       139:     set path=($path $HOME/parser3project/gnome/bin)
                    140:     ./configure --enable-glib-1 --disable-glibtest \
                    141:       --prefix=$HOME/parser3project/gnome \
                    142:       --disable-shared  --silent
                    143:     make install
                    144: 
                    145:     
1.1       paf       146: 
1.9       paf       147:     Parser3 configure options, choose whether you need static or dynamic linkage with xml libs:
1.43      paf       148:         --with-static-xml=$HOME/parser3project/gnome
                    149:         --with-shared-xml=$HOME/parser3project/gnome
1.1       paf       150: 
1.5       paf       151:     NOTE:
                    152:     In case your glib as installed into some other prefix,
                    153:     specify it's configuration file with
                    154:         --with-glib-config=/path/to/your/glib-config
1.24      paf       155:     NOTE:
                    156:     In case you are using SHARED xml libraries, you may want to link in direct path to them,
                    157:     use this key to specify which linker key to use do do that:
                    158:         --with-pathlink=LKEY    put dynamic libraries paths to binary
                    159:                                 using linker key (-R, -rpath-link)
                    160: 
1.45      paf       161:     Sample:
                    162:     cd $HOME/parser3project/parser3
                    163:     ./configure --prefix=$HOME/parser3install \
                    164:         --with-static-gc=$HOME/parser3project/gc/lib \
                    165:         --with-static-xml=$HOME/parser3project/gnome \
                    166:         --with-sendmail="/usr/sbin/sendmail -i -t -f postmaster" \
                    167:         --silent
                    168:        make install
                    169: 
1.33      paf       170: 3b. In case you wish $mail:receive support you need libraries
1.41      paf       171:       glib >= 1.2.10
1.39      paf       172:       gmime >= 1.0.1 [http://spruce.sourceforge.net/gmime/sources/v1.0/gmime-1.0.8.tar.gz]
1.24      paf       173:     on your system, and specify path to them to Parser3 configure script.
                    174: 
                    175:     You may have already installed glib at 3b step.
                    176: 
1.31      paf       177:     glib:
1.24      paf       178: 
1.44      paf       179:     cd $HOME/parser3project/src
1.41      paf       180:     #on freebsd5 this is reported to work: ftp://ftp.gtk.org/pub/gtk/v1.1/glib-1.1.16.tar.gz
1.45      paf       181:     wget --passive-ftp ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz
1.44      paf       182:     gunzip -c glib-1.2.10.tar.gz | tar vxf -
1.41      paf       183:     cd glib-1.2.10
1.43      paf       184:     ./configure --prefix=$HOME/parser3project/gnome --silent
1.24      paf       185:     make install
                    186: 
1.31      paf       187:     gmime:
1.24      paf       188: 
                    189:     cd gmime-x.x.x
1.43      paf       190:     ./configure --prefix=$HOME/parser3project/gnome
1.24      paf       191:     make install
                    192: 
                    193:     Parser3 configure options, choose whether you need static or dynamic linkage with xml libs:
1.43      paf       194:         --with-static-mailreceive=$HOME/parser3project/gnome
                    195:         --with-shared-mailreceive=$HOME/parser3project/gnome
1.24      paf       196: 
                    197:     NOTE:
                    198:     In case your glib as installed into some other prefix,
                    199:     specify it's configuration file with
                    200:         --with-glib-config=/path/to/your/glib-config
                    201:     NOTE:
                    202:     In case you are using SHARED mime library, you may want to link in direct path to it,
1.33      paf       203:     use this key to specify which linker key to use do do that:
1.9       paf       204:         --with-pathlink=LKEY    put dynamic libraries paths to binary
                    205:                                 using linker key (-R, -rpath-link)
                    206: 
1.18      paf       207: 4.
                    208: 
                    209:   In case you're not root on machine you're installing Parser,
                    210:   we recommend you to do:
1.43      paf       211:   ./configure --prefix=$HOME/parser3install
                    212:   and afterwards copy $HOME/parser3install/bin/parser3 to your CGI directory
1.18      paf       213:   or make a symlink [if your web server configured to follow symlinks].
                    214: 
                    215:   You can disable any exec operations by setting
                    216:   --disable-execs
                    217:   option to configure.
                    218:   file::exec, file::cgi and mail:send (unix version) methods would be disabled.
                    219: 
1.29      paf       220:   You can enable reading and executing files, not belonging to group+user 
                    221:   other then effective by setting
                    222:   --disable-safe-mode
1.18      paf       223:   option to configure.
                    224:   
                    225:   You can disable user-configured sendmail commands by forcing it, setting
1.41      paf       226:   --with=sendmail="COMMAND"
                    227:   option to configure, for example:
                    228:   --with-sendmail="/usr/sbin/sendmail -i -t -f postmaster"
1.26      paf       229: 
                    230:   In case you are experiencing problem with gcc runtime exception handling,
                    231:   try to configure with
                    232:   --with-sjlj-exceptions
                    233:   option.  
1.18      paf       234: 
1.33      paf       235:   By default libstdc++ is linked statically, you can re-enable dynamic libstdc++ linkage by specifying
                    236:   --with-dynamic-stdcpp
                    237:   option to configure.  
                    238: 
                    239: 
1.18      paf       240:   Some root config options can be specified at configure time, and would override autodetects.
                    241: 
                    242:   List of enabled charsets:
                    243:   --with-charsets=CHARSET[,CHARSET,...]  Enables charsets in root config (windows-1251,
                    244:                           windows-1250 windows-1257 koi8-r; Default is windows-1251)
                    245:   SQL clients:
1.21      paf       246:   --with-mysql-client=mysqlclientlib?params
                    247:   --with-pgsql-client=pgsqlclientlib?params
                    248:   --with-oracle-client=oracleclientlib?params
1.18      paf       249:   
1.37      paf       250: 5.
                    251:   If you need to build apache 1.3 parser module, get source distribution of apache 1.3,
                    252:   run configure there, then run parser configure with one more option:
                    253:   --with-apache13=Apache13 source distribution directory
                    254:   after 'make' go to that directory and run
                    255: 
                    256:   ./p3runConfigure <any additional options to apache configure to pass>
                    257:   
                    258:   example:
1.46    ! paf       259:   ./p3runConfigure --prefix=$HOME/apache13install --enable-module=rewrite
1.37      paf       260: 
                    261:   WARNING: if you want to use apache configure option --enable-shared=max, do this:
                    262:   ./p3runConfigure --enable-shared=max --disable-shared=mod_parser3.c
                    263:   
1.4       paf       264: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.1       paf       265: 
1.46    ! paf       266: $Id: INSTALL,v 1.45 2005/12/09 07:18:07 paf Exp $

E-mail: