|
|
| version 1.36, 2021/01/28 16:24:43 | version 1.46, 2026/10/07 22:03:35 |
|---|---|
| Line 9 cd .. | Line 9 cd .. |
| project_dir=`pwd` | project_dir=`pwd` |
| build_xml="yes" | build_xml="yes" |
| build_pcre2="yes" | |
| build_gmime="" | build_gmime="" |
| build_apache="" | build_apache="" |
| build_stripped="" | build_stripped="" |
| direct_download="" | direct_download="" |
| options="--with-included-ltdl" | options="--with-included-ltdl" |
| options="$options --with-gc=$project_dir/gc/lib" | options="$options --with-gc=$project_dir/lib/gc/lib" |
| options="$options --with-pcre=$project_dir/pcre" | |
| #options="$options --disable-stringstream" | #options="$options --disable-stringstream" |
| printf "Building statically linked parser3" | printf "Building statically linked parser3" |
| Line 26 for PARAM in "$@"; do | Line 26 for PARAM in "$@"; do |
| printf ", without xml" | printf ", without xml" |
| build_xml="" | build_xml="" |
| ;; | ;; |
| "--without-pcre2") | |
| printf ", without pcre2 library" | |
| build_pcre2="" | |
| ;; | |
| "--with-apache") | "--with-apache") |
| printf ", with apache module" | printf ", with apache module" |
| options="$options --with-apache" | options="$options --with-apache" |
| Line 33 for PARAM in "$@"; do | Line 37 for PARAM in "$@"; do |
| ;; | ;; |
| "--with-mailreceive") | "--with-mailreceive") |
| printf ", with mail receiving" | printf ", with mail receiving" |
| options="$options --with-mailreceive=$project_dir/gnome" | options="$options --with-mailreceive=$project_dir/gmime" |
| build_gmime="yes" | build_gmime="yes" |
| ;; | ;; |
| "--with-system-mailreceive") | "--with-system-mailreceive") |
| printf ", with mail receiving" | printf ", with mail receiving" |
| options="$options --with-mailreceive" | options="$options --with-mailreceive" |
| ;; | ;; |
| "--with-amqp") | |
| printf ", with amqp" | |
| options="$options --with-amqp=$project_dir/lib/amqp" | |
| build_amqp="yes" | |
| ;; | |
| "--with-system-amqp") | |
| printf ", with amqp" | |
| options="$options --with-amqp" | |
| ;; | |
| "--with-redis") | |
| printf ", with redis" | |
| options="$options --with-redis=$project_dir/lib/redis" | |
| build_redis="yes" | |
| ;; | |
| "--with-system-redis") | |
| printf ", with redis" | |
| options="$options --with-redis" | |
| ;; | |
| "--strip") | "--strip") |
| printf ", without debug information" | printf ", without debug information" |
| build_stripped="yes" | build_stripped="yes" |
| Line 50 for PARAM in "$@"; do | Line 72 for PARAM in "$@"; do |
| ;; | ;; |
| "--help") | "--help") |
| echo | echo |
| echo "Usage: buildall [--without-xml] [--with-apache] [--with-mailreceive] [--with-system-mailreceive] [--strip] [--direct-download] [--disable-safe-mode] [other configure options ...]" | echo "Usage: buildall [--without-xml] [--without-pcre2] [--with-apache] [--with-mailreceive] [--with-system-mailreceive] [--strip] [--direct-download] [--disable-safe-mode] [other configure options ...]" |
| exit 1 | exit 1 |
| ;; | ;; |
| *) | *) |
| Line 63 if test "$build_xml" = "yes"; then | Line 85 if test "$build_xml" = "yes"; then |
| options="$options --with-xml=$project_dir/gnome" | options="$options --with-xml=$project_dir/gnome" |
| fi | fi |
| bits=`getconf LONG_BIT` | cflags="$cflags --with-pic" |
| if test "$bits" = "64" -o "$build_apache" = "yes"; then | |
| cflags="$cflags --with-pic" | |
| else | |
| cflags="$cflags --without-pic" | |
| fi | |
| if test ! "$build_apache" = "yes"; then | if test ! "$build_apache" = "yes"; then |
| cflags="$cflags --disable-shared" | cflags="$cflags --disable-shared" # .so is needed only for parser3 Apache module, not bundled libs |
| fi | fi |
| download=`which fetch 2>/dev/null` | download=`which fetch 2>/dev/null` |
| Line 89 prepare () { | Line 106 prepare () { |
| if test ! -f "$1"; then | if test ! -f "$1"; then |
| if test "$direct_download" = "yes"; then | if test "$direct_download" = "yes"; then |
| echo "Downloading $lib from $2..." | echo "Downloading $lib from $2..." |
| $download $2$1 | $download $2$3 |
| if test "$3" != "$1"; then | |
| mv "$3" "$1" | |
| fi | |
| else | else |
| echo "Downloading $lib (master at $2)..." | echo "Downloading $lib (master at $2)..." |
| $download https://www.parser.ru/off-line/download/libs/$1 | $download https://www.parser.ru/off-line/download/libs/$1 |
| Line 101 prepare () { | Line 121 prepare () { |
| } | } |
| prepare_gz () { | prepare_gz () { |
| prepare $1 $2 | prepare $1 $2 ${3:-$1} |
| gunzip -c $1 | tar xf - >/dev/null | gunzip -c $1 | tar xf - >/dev/null |
| cd $lib | cd $lib |
| } | } |
| prepare_xz () { | prepare_xz () { |
| prepare $1 $2 | prepare $1 $2 ${3:-$1} |
| xzcat $1 | tar xf - >/dev/null | xzcat $1 | tar xf - >/dev/null |
| cd $lib | cd $lib |
| } | } |
| Line 122 cleanup () { | Line 142 cleanup () { |
| echo | echo |
| mkdir src >/dev/null 2>&1 | mkdir src >/dev/null 2>&1 |
| if test ! -f "$project_dir/gc/lib/libgc.a"; then | if test ! -f "$project_dir/lib/gc/lib/libgc.a"; then |
| lib="libatomic_ops-7.6.2" | lib="libatomic_ops-7.10.0" |
| prepare_gz ${lib}.tar.gz http://www.hboehm.info/gc/gc_source/ | prepare_gz ${lib}.tar.gz https://github.com/bdwgc/libatomic_ops/releases/download/v7.10.0/ |
| lib="gc-8.0.4" | lib="gc-8.2.12" |
| prepare_gz ${lib}.tar.gz http://www.hboehm.info/gc/gc_source/ | prepare_gz ${lib}.tar.gz https://github.com/bdwgc/bdwgc/releases/download/v8.2.12/ |
| mv ../libatomic_ops-7.6.2 libatomic_ops | mv ../libatomic_ops-7.10.0 libatomic_ops |
| echo "Configuring $lib..." | echo "Configuring $lib..." |
| CPPFLAGS="-DUSE_MMAP -DDONT_ADD_BYTE_AT_END" \ | CPPFLAGS="-DUSE_MMAP -DDONT_ADD_BYTE_AT_END" \ |
| ./configure --prefix=$project_dir/gc \ | ./configure --prefix=$project_dir/lib/gc \ |
| --disable-shared \ | --disable-shared \ |
| --disable-parallel-mark \ | --disable-parallel-mark \ |
| --silent $cflags | --silent $cflags |
| Line 142 if test ! -f "$project_dir/gc/lib/libgc. | Line 162 if test ! -f "$project_dir/gc/lib/libgc. |
| cleanup | cleanup |
| fi | fi |
| if test ! -f "$project_dir/pcre/lib/libpcre.a"; then | if test "$build_pcre2" = "yes"; then |
| lib="pcre-8.43" | |
| prepare_gz $lib.tar.gz https://ftp.pcre.org/pub/pcre/ | options="$options --with-pcre=$project_dir/lib/pcre2" |
| if test ! -f "$project_dir/lib/pcre2/lib/libpcre2-8.a"; then | |
| lib="pcre2-10.49" | |
| prepare_gz $lib.tar.gz https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.49/ | |
| echo "Configuring $lib..." | |
| ./configure --prefix="$project_dir/lib/pcre2" \ | |
| --enable-jit \ | |
| --with-match-limit-depth=10000 \ | |
| --disable-shared \ | |
| --silent $cflags | |
| echo "Building $lib..." | |
| make install | |
| cleanup | |
| fi | |
| else | |
| options="$options --with-pcre=$project_dir/lib/pcre" | |
| if test ! -f "$project_dir/lib/pcre/lib/libpcre.a"; then | |
| lib="pcre-8.45" | |
| prepare_gz $lib.tar.gz https://sourceforge.net/projects/pcre/files/pcre/8.45/ | |
| echo "Configuring $lib..." | echo "Configuring $lib..." |
| ./configure --prefix="$project_dir/pcre" \ | ./configure --prefix="$project_dir/lib/pcre" \ |
| --with-match-limit-recursion=10000 \ | --with-match-limit-recursion=10000 \ |
| --enable-utf8 \ | --enable-utf8 \ |
| --enable-unicode-properties \ | --enable-unicode-properties \ |
| Line 160 if test ! -f "$project_dir/pcre/lib/libp | Line 202 if test ! -f "$project_dir/pcre/lib/libp |
| cleanup | cleanup |
| fi | fi |
| fi | |
| if test "$build_xml" = "yes" -a ! -f "$project_dir/gnome/lib/libxml2.a"; then | if test "$build_xml" = "yes" -a ! -f "$project_dir/gnome/lib/libxml2.a"; then |
| lib="libxml2-2.9.9" | lib="libxml2-2.9.9" |
| prepare_gz $lib.tar.gz ftp://xmlsoft.org/libxml2/ | prepare_gz $lib.tar.gz http://xmlsoft.org/download/ |
| #sax1, output, tree, xinclude[in libxslt], html[in libxslt, mode=html?], xptr[xinclude], pattern -- needed! | #sax1, output, tree, xinclude[in libxslt], html[in libxslt, mode=html?], xptr[xinclude], pattern -- needed! |
| echo "Configuring $lib..." | echo "Configuring $lib..." |
| ./configure --prefix=$project_dir/gnome \ | ./configure --prefix=$project_dir/gnome \ |
| Line 193 fi | Line 237 fi |
| if test "$build_xml" = "yes" -a ! -f "$project_dir/gnome/lib/libxslt.a"; then | if test "$build_xml" = "yes" -a ! -f "$project_dir/gnome/lib/libxslt.a"; then |
| lib="libxslt-1.1.34" | lib="libxslt-1.1.34" |
| prepare_gz $lib.tar.gz ftp://xmlsoft.org/libxslt/ | prepare_gz $lib.tar.gz http://xmlsoft.org/download/ |
| echo "Configuring $lib..." | echo "Configuring $lib..." |
| CFLAGS="$CFLAGS -D__stub_clock_gettime -Dclock_gettime=choke_me" \ | CFLAGS="$CFLAGS -D__stub_clock_gettime -Dclock_gettime=choke_me" \ |
| ./configure --prefix=$project_dir/gnome \ | ./configure --prefix=$project_dir/gnome \ |
| Line 213 if test "$build_gmime" = "yes"; then | Line 257 if test "$build_gmime" = "yes"; then |
| glib_ldflags="" | glib_ldflags="" |
| gmime_cflags="" | gmime_cflags="" |
| gmime_ldflags="-L$project_dir/gnome/lib/" | gmime_ldflags="-L$project_dir/gmime/lib/" |
| os=`uname` | if test "$(uname)" = "FreeBSD"; then |
| if test "$os" = "FreeBSD"; then | |
| gmime_cflags="CFLAGS=-I/usr/local/include CXXFLAGS=-I/usr/local/include" | gmime_cflags="CFLAGS=-I/usr/local/include CXXFLAGS=-I/usr/local/include" |
| glib_ldflags="LDFLAGS=-L/usr/local/lib" | glib_ldflags="LDFLAGS=-L/usr/local/lib" |
| gmime_ldflags="$gmime_ldflags -L/usr/local/lib" | gmime_ldflags="$gmime_ldflags -L/usr/local/lib" |
| fi | fi |
| if test ! -f "$project_dir/gnome/lib/libglib-2.0.a"; then | if test ! -f "$project_dir/gmime/lib/libglib-2.0.a"; then |
| lib="glib-2.28.8" | lib="glib-2.28.8" |
| prepare_xz $lib.tar.xz ftp://ftp.gnome.org/pub/GNOME/sources/glib/2.28/ | prepare_xz $lib.tar.xz ftp://ftp.gnome.org/pub/GNOME/sources/glib/2.28/ |
| echo "Configuring $lib..." | echo "Configuring $lib..." |
| ./configure --prefix=$project_dir/gnome \ | ./configure --prefix=$project_dir/gmime \ |
| --enable-dtrace=no \ | --enable-dtrace=no \ |
| --enable-debug=no \ | --enable-debug=no \ |
| --enable-iconv-cache=no \ | --enable-iconv-cache=no \ |
| Line 241 if test ! -f "$project_dir/gnome/lib/lib | Line 284 if test ! -f "$project_dir/gnome/lib/lib |
| cleanup | cleanup |
| fi | fi |
| if test ! -f "$project_dir/gnome/lib/libgmime-2.4.a"; then | if test ! -f "$project_dir/gmime/lib/libgmime-2.4.a"; then |
| lib="gmime-2.4.32" | lib="gmime-2.4.32" |
| prepare_xz $lib.tar.xz ftp://ftp.gnome.org/pub/GNOME/sources/gmime/2.4/ | prepare_xz $lib.tar.xz ftp://ftp.gnome.org/pub/GNOME/sources/gmime/2.4/ |
| echo "Configuring $lib..." | echo "Configuring $lib..." |
| ./configure --prefix=$project_dir/gnome \ | ./configure --prefix=$project_dir/gmime \ |
| --disable-glibtest \ | --disable-glibtest \ |
| --disable-mono \ | --disable-mono \ |
| --disable-shared \ | --disable-shared \ |
| --enable-static \ | --enable-static \ |
| --silent $cflags $gmime_cflags LDFLAGS="$gmime_ldflags" PKG_CONFIG_PATH="$project_dir/gnome/lib/pkgconfig" | --silent $cflags $gmime_cflags LDFLAGS="$gmime_ldflags" PKG_CONFIG_PATH="$project_dir/gmime/lib/pkgconfig" |
| echo "Building $lib..." | echo "Building $lib..." |
| make install | make install |
| cleanup | cleanup |
| Line 258 fi | Line 301 fi |
| fi | fi |
| if test "$build_amqp" = "yes" -a ! -f "$project_dir/lib/amqp/lib/librabbitmq.a"; then | |
| lib="rabbitmq-c-0.17.0" | |
| prepare_gz $lib.tar.gz https://github.com/alanxz/rabbitmq-c/archive/refs/tags/ v0.17.0.tar.gz | |
| echo "Configuring $lib..." | |
| cmake -S . -B build \ | |
| -DCMAKE_INSTALL_PREFIX="$project_dir/lib/amqp" \ | |
| -DCMAKE_INSTALL_LIBDIR=lib \ | |
| -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ | |
| -DBUILD_SHARED_LIBS=OFF \ | |
| -DBUILD_TESTING=OFF \ | |
| -DENABLE_SSL_SUPPORT=OFF | |
| echo "Building $lib..." | |
| cmake --build build --target install | |
| cleanup | |
| fi | |
| if test "$build_redis" = "yes" -a ! -f "$project_dir/lib/redis/lib/libhiredis.a"; then | |
| lib="hiredis-1.4.1" | |
| prepare_gz $lib.tar.gz https://github.com/redis/hiredis/archive/refs/tags/ v1.4.1.tar.gz | |
| echo "Building $lib..." | |
| gnu_make=make | |
| test "$(uname)" = "FreeBSD" && gnu_make="gmake CC=cc" | |
| $gnu_make PREFIX="$project_dir/lib/redis" install | |
| cleanup | |
| fi | |
| cd $parser3_dir | cd $parser3_dir |
| if test ! -f "Makefile"; then | if test ! -f "Makefile"; then |
| echo "Configuring parser3..." | echo "Configuring parser3..." |
| Line 283 echo | Line 353 echo |
| echo "********************************************************************************************************" | echo "********************************************************************************************************" |
| echo "Now you can copy $install_directory/bin to your cgi-bin directory" | echo "Now you can copy $install_directory/bin to your cgi-bin directory" |
| echo "Read more about installing Parser here:" | echo "Read more about installing Parser here:" |
| echo " http://www.parser.ru/en/docs/lang/install4apachecgi.htm in English" | echo " https://www.parser.ru/en/docs/lang/install4apachecgi.htm in English" |
| echo " http://www.parser.ru/docs/lang/install4apachecgi.htm in Russian" | echo " https://www.parser.ru/docs/lang/install4apachecgi.htm in Russian" |
| echo "********************************************************************************************************" | echo "********************************************************************************************************" |