#---------------------------------------------------------------------------- # build_libpcre.txt - how to build the libpcre binaries and create folder and packages # # Creation : 2012-10-08 holbru # Last update: $Id$ # # !!! this is not a script but an step-by-step howto !!! #---------------------------------------------------------------------------- exit 1 ### download the source code from the internet, e.g. # http:// libpcre # libpcre-8.31.tar.bz2 ### extract file in a temporary location tar -xjvf libpcre-8.31.tar.bz2 cd libpcre-8.31 # 2013-02-20 pcre-8.31 # build with RPM and SuSE # pcre-8.31-5.1.src.rpm # with spec-file # 2013-07-26 -> pcre-8.33 LibC-2.11.3 # 2013-08-07 -> pcre-8.33 rebuild with ld-2.22 # 2014-05-24 -> pcre-8.35 # build with rpm Suse factory # pcre-8.35-1.1.src.rpm # now with static packlage # 2014-11-30 -> pcre-8.36 # build with rpm Suse # pcre-8.36-1.1.src.rpm # 2015-03-216 -> pcre-8.36 # rebuild with rpm Suses # pcre-8.36-2.2.src.rpm # added wrapper for pcrgrep -> in.pcregrep # 2015-05-25 -> pcre-8.37 # build with rpm suse # pcre-8.37-1.1.src.rpm # 2016-02-13 -> pcre-8-38 # build with rpm Suse # pcre-8.38-1.2.src.rpm # hbfl # 2016-09-05 -> pcre-8.39 # build with rpm Suse # pcre-8.39-83.61.src.rpm # hbfl # 2017-01-22 -> pcre-8.40 # build with rpm # pcre-8.40-83.61.src.rpm # hbfl # 2017-10-02 -> pcre-8.41 # build with rpm Suse # pcre-8.41-92.48.src.rpm # hbfl # 2018-10-08 -> pcre-8.42 # build with rpm Suse # pcre-8.42-1.1.src.rpm # hbfl # 2018-12-01 -> pcre-8.42 # build with rpm Suse # pcre-8.42-2.1.src.rpm # hbfl # 2020-01-28 -> pcre-8.42 # build with rpm Suse # pcre-8.42-3.1.src.rpm # hbfl # 2020-04-07 -> pcre-8.42 # build with rpm Suse -> gcc-9.2.1 -> glibc-2.31 # pcre-8.42-3.2.src.rpm # hbfl # 2020-06-09 -> pcre-8.44 # build with rpm Suse # pcre-8.44-1.17.src.rpm # hbfl # 2021-05-23 -> pcre-8.44 # rebuild with rpm Suse > gcc-10 -> glibc-2.33 # pcre-8.44-3.2.src.rpm # hbfl # 2022-01-11 -> pcre-8.45 # rebuild with rpm Suse # pcre-8.45-1.4.src.rpm # hbfl # 2023-04-04 -> pcre-8.45 # rebuild with rpm Suse > gcc-12 -> glibc-2.37 # pcre-8.45-2.4.src.rpm # hbfl # 2025-03-15 -> pcre-8.45 # rebuild with rpm Suse > gcc-14 -> glibc-2.41 # pcre-8.45-3.3.src.rpm Buildcommand ../_ADMIN/mktarball.sh --setdate now --setstatus stable --setversion 2.6.5 --home libpcre{,16,cpp,posix} pcre{-tools,-dev{,-static}} ### build export CFLAGS='-O2 -march=i486' export CXXFLAGS="${CFLAGS}" ./configure \ --prefix=/usr \ --with-link-size=2 \ --with-match-limit=10000000 \ --enable-newline-is-lf \ --enable-utf8 \ --enable-unicode-properties \ --build=i486-pc-linux-gnu \ --host=i486-pc-linux-gnu #--enable-jit pcre-8.31 configuration summary: Install prefix .................. : /usr C preprocessor .................. : i486-pc-linux-gnu-gcc -E C compiler ...................... : i486-pc-linux-gnu-gcc C++ preprocessor ................ : i486-pc-linux-gnu-g++ -E C++ compiler .................... : i486-pc-linux-gnu-g++ Linker .......................... : /usr/bin/ld C preprocessor flags ............ : C compiler flags ................ : -O2 -march=i486 C++ compiler flags .............. : -O2 -march=i486 Linker flags .................... : Extra libraries ................. : Build 8 bit pcre library ........ : yes Build 16 bit pcre library ....... : no Build C++ library ............... : yes Enable JIT compiling support .... : no Enable UTF-8/16 support ......... : yes Unicode properties .............. : yes Newline char/sequence ........... : lf \R matches only ANYCRLF ......... : no EBCDIC coding ................... : no Rebuild char tables ............. : no Use stack recursion ............. : yes POSIX mem threshold ............. : 10 Internal link size .............. : 2 Match limit ..................... : 10000000 Match limit recursion ........... : MATCH_LIMIT Build shared libs ............... : yes Build static libs ............... : yes Use JIT in pcregrep ............. : no Buffer size for pcregrep ........ : 20480 Link pcregrep with libz ......... : no Link pcregrep with libbz2 ....... : no Link pcretest with libedit ...... : no Link pcretest with libreadline .. : no pcre-8.33 configuration summary: Install prefix .................. : /usr C preprocessor .................. : i486-pc-linux-gnu-gcc -E C compiler ...................... : i486-pc-linux-gnu-gcc C++ preprocessor ................ : i486-pc-linux-gnu-g++ -E C++ compiler .................... : i486-pc-linux-gnu-g++ Linker .......................... : /usr/bin/ld C preprocessor flags ............ : C compiler flags ................ : -O2 -march=i486 -fvisibility=hidden C++ compiler flags .............. : -O2 -march=i486 -fvisibility=hidden -fvisibility-inlines-hidden Linker flags .................... : Extra libraries ................. : Build 8 bit pcre library ........ : yes Build 16 bit pcre library ....... : no Build 32 bit pcre library ....... : no Build C++ library ............... : yes Enable JIT compiling support .... : no Enable UTF-8/16/32 support ...... : yes Unicode properties .............. : yes Newline char/sequence ........... : lf \R matches only ANYCRLF ......... : no EBCDIC coding ................... : no EBCDIC code for NL .............. : n/a Rebuild char tables ............. : no Use stack recursion ............. : yes POSIX mem threshold ............. : 10 Internal link size .............. : 2 Match limit ..................... : 10000000 Match limit recursion ........... : MATCH_LIMIT Build shared libs ............... : yes Build static libs ............... : yes Use JIT in pcregrep ............. : no Buffer size for pcregrep ........ : 20480 Link pcregrep with libz ......... : no Link pcregrep with libbz2 ....... : no Link pcretest with libedit ...... : no Link pcretest with libreadline .. : no Valgrind support ................ : no Code coverage ................... : no pcre-8.36-RC1 configuration summary: Install prefix .................. : /usr C preprocessor .................. : i486-pc-linux-gnu-gcc -std=gnu99 -E C compiler ...................... : i486-pc-linux-gnu-gcc -std=gnu99 C++ preprocessor ................ : i486-pc-linux-gnu-g++ -E C++ compiler .................... : i486-pc-linux-gnu-g++ Linker .......................... : /usr/bin/ld C preprocessor flags ............ : C compiler flags ................ : -pthread -O2 -g -march=i486 -fvisibility=hidden C++ compiler flags .............. : -O2 -g -march=i486 -fvisibility=hidden -fvisibility-inlines-hidden Linker flags .................... : Extra libraries ................. : Build 8 bit pcre library ........ : yes Build 16 bit pcre library ....... : yes Build 32 bit pcre library ....... : no Build C++ library ............... : yes Enable JIT compiling support .... : yes Enable UTF-8/16/32 support ...... : yes Unicode properties .............. : yes Newline char/sequence ........... : lf \R matches only ANYCRLF ......... : no EBCDIC coding ................... : no ECDIC code for NL .............. : n/a Rebuild char tables ............. : no Use stack recursion ............. : yes POSIX mem threshold ............. : 10 Internal link size .............. : 2 Nested parentheses limit ........ : 250 Match limit ..................... : 10000000 Match limit recursion ........... : MATCH_LIMIT Build shared libs ............... : yes Build static libs ............... : yes Use JIT in pcregrep ............. : yes Buffer size for pcregrep ........ : 20480 Link pcregrep with libz ......... : no Link pcregrep with libbz2 ....... : no Link pcretest with libedit ...... : no Link pcretest with libreadline .. : no Valgrind support ................ : no Code coverage ................... : no make make check make DESTDIR=/public/lib/pcre/8.33 install # strip files/binarys for filename in `find /public/lib/pcre/8.33/usr/{bin/*,lib/*.so.*} -type f` do echo $filename strip -R .note -R .comment "$filename" done # copy files cp *** /lib/libpcre/bin_**_libpcre_8_31/*** #---------------------------------------------------------------------------- create folder Um die Folder im Hauptverszeichnis zu erstellen gibt es das Script 'libpcre-folder.sh' unter libpcre/_ADMIN/ mit libpcre-folder.sh -v 8.31 -w create wird die folder Struktur fuer die lib Version 8.31 erstellt nun koennen die files aus dem compilat eingefuegt werden. mit libpcre-folder.sh -v 8.31 -w add wird ein svn add auf die erzeugten Folder durchgefuehrt. mit libpcre-folder.sh -v 8.31 -w list wird fuer jeden Folder die files-list.txt erzeugt, add muss zwingend vorher ausgefuehrt worden sein mit libpcre-folder.sh -v 8.31 -w ci erfolgt der commit der erzeugten Folder In den eis und eis_dev Foldern muessen keine Anpassungen vorgenommen werden. Diese Anpassungen erfolgen beim packen der packages durch mktarball.sh mit den _do_ Scripten unter _ADMIN automatisch. In den Pack-Scripten unter _ADMIN muss dann noch die Pfadangabe geaendert werden, auf den soeben erzeugten Pfad und ein commit ausgefuehrt werden. Nach dem checkout auf eisler koennen nun die packages erzeugt werden. die wichtigsten Parameter fuer mktarball.sh sind dann -setdate now -setversion ${version} mktarball.sh - home -setdate now -setversion [version angeben] libpcre libpcre-dev duch die Angabe von -home werden die packages in die Folder Struktur /home/user/public_html/packages/ kopiert und koennen von da direkt auf Pack-Eis geladen werden. wichtig ist noch, dass unbedingt die 'lib' Version zuerst gebaut werden muss, da fuer die 'dev' Version Informationen aus der 'lib' Info Datei gelesen werden.