Diff for /embedaddon/pcre/NON-AUTOTOOLS-BUILD between versions 1.1.1.1 and 1.1.1.3

version 1.1.1.1, 2012/10/09 09:19:17 version 1.1.1.3, 2014/06/15 19:46:03
Line 9  This document contains the following sections: Line 9  This document contains the following sections:
   Building for virtual Pascal    Building for virtual Pascal
   Stack size in Windows environments    Stack size in Windows environments
   Linking programs in Windows environments    Linking programs in Windows environments
     Calling conventions in Windows environments
   Comments about Win32 builds    Comments about Win32 builds
   Building PCRE on Windows with CMake    Building PCRE on Windows with CMake
   Use of relative paths with CMake on Windows    Use of relative paths with CMake on Windows
   Testing with RunTest.bat    Testing with RunTest.bat
     Building under Windows CE with Visual Studio 200x
   Building under Windows with BCC5.5    Building under Windows with BCC5.5
     Building using Borland C++ Builder 2007 (CB2007) and higher
   Building PCRE on OpenVMS    Building PCRE on OpenVMS
   Building PCRE on Stratus OpenVOS    Building PCRE on Stratus OpenVOS
     Building PCRE on native z/OS and z/VM
   
   
 GENERAL  GENERAL
Line 50  the .generic versions are not used. Line 54  the .generic versions are not used.
 GENERIC INSTRUCTIONS FOR THE PCRE C LIBRARY  GENERIC INSTRUCTIONS FOR THE PCRE C LIBRARY
   
 The following are generic instructions for building the PCRE C library "by  The following are generic instructions for building the PCRE C library "by
hand":hand". If you are going to use CMake, this section does not apply to you; you
 can skip ahead to the CMake section.
   
  (1) Copy or rename the file config.h.generic as config.h, and edit the macro   (1) Copy or rename the file config.h.generic as config.h, and edit the macro
      settings that it contains to whatever is appropriate for your environment.       settings that it contains to whatever is appropriate for your environment.
      In particular, if you want to force a specific value for newline, you can  
      define the NEWLINE macro. When you compile any of the PCRE modules, you  
      must specify -DHAVE_CONFIG_H to your compiler so that config.h is included  
      in the sources.  
   
        In particular, you can alter the definition of the NEWLINE macro to
        specify what character(s) you want to be interpreted as line terminators.
        In an EBCDIC environment, you MUST change NEWLINE, because its default
        value is 10, an ASCII LF. The usual EBCDIC newline character is 21 (0x15,
        NL), though in some cases it may be 37 (0x25).
   
        When you compile any of the PCRE modules, you must specify -DHAVE_CONFIG_H
        to your compiler so that config.h is included in the sources.
   
      An alternative approach is not to edit config.h, but to use -D on the       An alternative approach is not to edit config.h, but to use -D on the
      compiler command line to make any changes that you need to the       compiler command line to make any changes that you need to the
      configuration options. In this case -DHAVE_CONFIG_H must not be set.       configuration options. In this case -DHAVE_CONFIG_H must not be set.
Line 106  hand": Line 116  hand":
        pcre_fullinfo.c         pcre_fullinfo.c
        pcre_get.c         pcre_get.c
        pcre_globals.c         pcre_globals.c
          pcre_jit_compile.c
        pcre_maketables.c         pcre_maketables.c
        pcre_newline.c         pcre_newline.c
        pcre_ord2utf8.c         pcre_ord2utf8.c
Line 123  hand": Line 134  hand":
      sought in the current directory. Otherwise you run the risk of picking up       sought in the current directory. Otherwise you run the risk of picking up
      a previously-installed file from somewhere else.       a previously-installed file from somewhere else.
   
 (6) If you have defined SUPPORT_JIT in config.h, you must also compile     Note that you must still compile pcre_jit_compile.c, even if you have not
      defined SUPPORT_JIT in config.h, because when JIT support is not
      configured, dummy functions are compiled. When JIT support IS configured,
      pcre_jit_compile.c #includes sources from the sljit subdirectory, where
      there should be 16 files, all of whose names begin with "sljit".
   
       pcre_jit_compile.c (6) Now link all the compiled code into an object library in whichever form
 
     This file #includes sources from the sljit subdirectory, where there 
     should be 16 files, all of whose names begin with "sljit". 
 
 (7) Now link all the compiled code into an object library in whichever form 
      your system keeps such libraries. This is the basic PCRE C 8-bit library.       your system keeps such libraries. This is the basic PCRE C 8-bit library.
      If your system has static and shared libraries, you may have to do this       If your system has static and shared libraries, you may have to do this
      once for each type.       once for each type.
   
 (8) If you want to build a 16-bit library (as well as, or instead of the 8-bit (7) If you want to build a 16-bit library (as well as, or instead of the 8-bit
     library) repeat steps 5-7 with the following files:     or 32-bit libraries) repeat steps 5-6 with the following files:
   
        pcre16_byte_order.c         pcre16_byte_order.c
        pcre16_chartables.c         pcre16_chartables.c
Line 147  hand": Line 157  hand":
        pcre16_fullinfo.c         pcre16_fullinfo.c
        pcre16_get.c         pcre16_get.c
        pcre16_globals.c         pcre16_globals.c
       pcre16_jit_compile.c (if SUPPORT_JIT is defined)       pcre16_jit_compile.c
        pcre16_maketables.c         pcre16_maketables.c
        pcre16_newline.c         pcre16_newline.c
        pcre16_ord2utf16.c         pcre16_ord2utf16.c
Line 161  hand": Line 171  hand":
        pcre16_version.c         pcre16_version.c
        pcre16_xclass.c         pcre16_xclass.c
   
    (8) If you want to build a 32-bit library (as well as, or instead of the 8-bit
        or 16-bit libraries) repeat steps 5-6 with the following files:
   
          pcre32_byte_order.c
          pcre32_chartables.c
          pcre32_compile.c
          pcre32_config.c
          pcre32_dfa_exec.c
          pcre32_exec.c
          pcre32_fullinfo.c
          pcre32_get.c
          pcre32_globals.c
          pcre32_jit_compile.c
          pcre32_maketables.c
          pcre32_newline.c
          pcre32_ord2utf32.c
          pcre32_refcount.c
          pcre32_string_utils.c
          pcre32_study.c
          pcre32_tables.c
          pcre32_ucd.c
          pcre32_utf32_utils.c
          pcre32_valid_utf32.c
          pcre32_version.c
          pcre32_xclass.c
   
  (9) If you want to build the POSIX wrapper functions (which apply only to the   (9) If you want to build the POSIX wrapper functions (which apply only to the
      8-bit library), ensure that you have the pcreposix.h file and then compile       8-bit library), ensure that you have the pcreposix.h file and then compile
      pcreposix.c (remembering -DHAVE_CONFIG_H if necessary). Link the result       pcreposix.c (remembering -DHAVE_CONFIG_H if necessary). Link the result
      (on its own) as the pcreposix library.       (on its own) as the pcreposix library.
   
(10) The pcretest program can be linked with either or both of the 8-bit and(10) The pcretest program can be linked with any combination of the 8-bit,
     16-bit libraries (depending on what you selected in config.h). Compile     16-bit and 32-bit libraries (depending on what you selected in config.h).
     pcretest.c and pcre_printint.c (again, don't forget -DHAVE_CONFIG_H) and     Compile pcretest.c and pcre_printint.c (again, don't forget
     link them together with the appropriate library/ies. If you compiled an     -DHAVE_CONFIG_H) and link them together with the appropriate library/ies.
     8-bit library, pcretest also needs the pcreposix wrapper library unless     If you compiled an 8-bit library, pcretest also needs the pcreposix
     you compiled it with -DNOPOSIX.     wrapper library unless you compiled it with -DNOPOSIX.
   
 (11) Run pcretest on the testinput files in the testdata directory, and check  (11) Run pcretest on the testinput files in the testdata directory, and check
      that the output matches the corresponding testoutput files. There are       that the output matches the corresponding testoutput files. There are
      comments about what each test does in the section entitled "Testing PCRE"       comments about what each test does in the section entitled "Testing PCRE"
     in the README file. If you compiled both an 8-bit and a 16-bit library,     in the README file. If you compiled more than one of the 8-bit, 16-bit and
     you need to run pcretest with the -16 option to do 16-bit tests.     32-bit libraries, you need to run pcretest with the -16 option to do
      16-bit tests and with the -32 option to do 32-bit tests.
   
      Some tests are relevant only when certain build-time options are selected.       Some tests are relevant only when certain build-time options are selected.
     For example, test 4 is for UTF-8 or UTF-16 support, and will not run if     For example, test 4 is for UTF-8/UTF-16/UTF-32 support, and will not run
     you have built PCRE without it. See the comments at the start of each     if you have built PCRE without it. See the comments at the start of each
      testinput file. If you have a suitable Unix-like shell, the RunTest script       testinput file. If you have a suitable Unix-like shell, the RunTest script
     will run the appropriate tests for you.     will run the appropriate tests for you. The command "RunTest list" will
      output a list of all the tests.
   
      Note that the supplied files are in Unix format, with just LF characters       Note that the supplied files are in Unix format, with just LF characters
      as line terminators. You may need to edit them to change this if your       as line terminators. You may need to edit them to change this if your
Line 195  hand": Line 233  hand":
   
 (12) If you have built PCRE with SUPPORT_JIT, the JIT features will be tested  (12) If you have built PCRE with SUPPORT_JIT, the JIT features will be tested
      by the testdata files. However, you might also like to build and run       by the testdata files. However, you might also like to build and run
     the JIT test program, pcre_jit_test.c.     the freestanding JIT test program, pcre_jit_test.c.
   
 (13) If you want to use the pcregrep command, compile and link pcregrep.c; it  (13) If you want to use the pcregrep command, compile and link pcregrep.c; it
      uses only the basic 8-bit PCRE library (it does not need the pcreposix       uses only the basic 8-bit PCRE library (it does not need the pcreposix
Line 336  BUILDING PCRE ON WINDOWS WITH CMAKE Line 374  BUILDING PCRE ON WINDOWS WITH CMAKE
 CMake is an alternative configuration facility that can be used instead of  CMake is an alternative configuration facility that can be used instead of
 "configure". CMake creates project files (make files, solution files, etc.)  "configure". CMake creates project files (make files, solution files, etc.)
 tailored to numerous development environments, including Visual Studio,  tailored to numerous development environments, including Visual Studio,
Borland, Msys, MinGW, NMake, and Unix.  If possible, use short paths with noBorland, Msys, MinGW, NMake, and Unix. If possible, use short paths with no
 spaces in the names for your CMake installation and your PCRE source and build  spaces in the names for your CMake installation and your PCRE source and build
 directories.  directories.
   
The following instructions were contributed by a PCRE user.The following instructions were contributed by a PCRE user. If they are not
 followed exactly, errors may occur. In the event that errors do occur, it is
 recommended that you delete the CMake cache before attempting to repeat the
 CMake build process. In the CMake GUI, the cache can be deleted by selecting
 "File > Delete Cache".
   
 1.  Install the latest CMake version available from http://www.cmake.org/, and  1.  Install the latest CMake version available from http://www.cmake.org/, and
     ensure that cmake\bin is on your path.      ensure that cmake\bin is on your path.
Line 354  The following instructions were contributed by a PCRE  Line 396  The following instructions were contributed by a PCRE 
     source dir. For example, C:\pcre\pcre-xx\build.      source dir. For example, C:\pcre\pcre-xx\build.
   
 4.  Run cmake-gui from the Shell envirornment of your build tool, for example,  4.  Run cmake-gui from the Shell envirornment of your build tool, for example,
    Msys for Msys/MinGW or Visual Studio Command Prompt for VC/VC++.    Msys for Msys/MinGW or Visual Studio Command Prompt for VC/VC++. Do not try
     to start Cmake from the Windows Start menu, as this can lead to errors.
   
 5.  Enter C:\pcre\pcre-xx and C:\pcre\pcre-xx\build for the source and build  5.  Enter C:\pcre\pcre-xx and C:\pcre\pcre-xx\build for the source and build
     directories, respectively.      directories, respectively.
Line 389  The following instructions were contributed by a PCRE  Line 432  The following instructions were contributed by a PCRE 
   
 USE OF RELATIVE PATHS WITH CMAKE ON WINDOWS  USE OF RELATIVE PATHS WITH CMAKE ON WINDOWS
   
A PCRE user comments as follows:A PCRE user comments as follows: I thought that others may want to know the
 current state of CMAKE_USE_RELATIVE_PATHS support on Windows. Here it is:
   
 I thought that others may want to know the current state of  
 CMAKE_USE_RELATIVE_PATHS support on Windows.  
   
 Here it is:  
 -- AdditionalIncludeDirectories is only partially modified (only the  -- AdditionalIncludeDirectories is only partially modified (only the
first path - see below)   first path - see below)
 -- Only some of the contained file paths are modified - shown below for  -- Only some of the contained file paths are modified - shown below for
pcre.vcproj   pcre.vcproj
 -- It properly modifies  -- It properly modifies
   
 I am sure CMake people can fix that if they want to. Until then one will  I am sure CMake people can fix that if they want to. Until then one will
Line 410  deal. Line 450  deal.
 AdditionalIncludeDirectories="E:\builds\pcre\build;E:\builds\pcre\pcre-7.5;"  AdditionalIncludeDirectories="E:\builds\pcre\build;E:\builds\pcre\pcre-7.5;"
 AdditionalIncludeDirectories=".;E:\builds\pcre\pcre-7.5;"  AdditionalIncludeDirectories=".;E:\builds\pcre\pcre-7.5;"
   
RelativePath="pcre.h">RelativePath="pcre.h"
RelativePath="pcre_chartables.c">RelativePath="pcre_chartables.c"
RelativePath="pcre_chartables.c.rule">RelativePath="pcre_chartables.c.rule"
   
   
 TESTING WITH RUNTEST.BAT  TESTING WITH RUNTEST.BAT
Line 450  To test pcrecpp, run pcrecpp_unittest.exe, pcre_string Line 490  To test pcrecpp, run pcrecpp_unittest.exe, pcre_string
 pcre_scanner_unittest.exe.  pcre_scanner_unittest.exe.
   
   
   BUILDING UNDER WINDOWS CE WITH VISUAL STUDIO 200x
   
   Vincent Richomme sent a zip archive of files to help with this process. They
   can be found in the file "pcre-vsbuild.zip" in the Contrib directory of the FTP
   site.
   
   
 BUILDING UNDER WINDOWS WITH BCC5.5  BUILDING UNDER WINDOWS WITH BCC5.5
   
 Michael Roy sent these comments about building PCRE under Windows with BCC5.5:  Michael Roy sent these comments about building PCRE under Windows with BCC5.5:
   
  Some of the core BCC libraries have a version of PCRE from 1998 built in,Some of the core BCC libraries have a version of PCRE from 1998 built in, which
  which can lead to pcre_exec() giving an erroneous PCRE_ERROR_NULL from acan lead to pcre_exec() giving an erroneous PCRE_ERROR_NULL from a version
  version mismatch. I'm including an easy workaround below, if you'd like tomismatch. I'm including an easy workaround below, if you'd like to include it
  include it in the non-unix instructions:in the non-unix instructions:
   
  When linking a project with BCC5.5, pcre.lib must be included before any ofWhen linking a project with BCC5.5, pcre.lib must be included before any of the
  the libraries cw32.lib, cw32i.lib, cw32mt.lib, and cw32mti.lib on the commandlibraries cw32.lib, cw32i.lib, cw32mt.lib, and cw32mti.lib on the command line.
  line. 
   
   
BUILDING UNDER WINDOWS CE WITH VISUAL STUDIO 200xBUILDING USING BORLAND C++ BUILDER 2007 (CB2007) AND HIGHER
   
Vincent Richomme sent a zip archive of files to help with this process. TheyA PCRE user sent these comments about this environment (see also the comment
can be found in the file "pcre-vsbuild.zip" in the Contrib directory of the FTPfrom another user that follows them):
site. 
   
   The XE versions of C++ Builder come with a RegularExpressionsCore class which
   contain a version of TPerlRegEx. However, direct use of the C PCRE library may
   be desirable.
   
   The default makevp.bat, however, supplied with PCRE builds a version of PCRE
   that is not usable with any version of C++ Builder because the compiler ships
   with an embedded version of PCRE, version 2.01 from 1998! [See also the note
   about BCC5.5 above.] If you want to use PCRE you'll need to rename the
   functions (pcre_compile to pcre_compile_bcc, etc) or do as I have done and just
   use the 16 bit versions. I'm using std::wstring everywhere anyway. Since the
   embedded version of PCRE does not have the 16 bit function names, there is no
   conflict.
   
   Building PCRE using a C++ Builder static library project file (recommended):
   
   1. Rename or remove pcre.h, pcreposi.h, and pcreposix.h from your C++ Builder
   original include path.
   
   2. Download PCRE from pcre.org and extract to a directory.
   
   3. Rename pcre_chartables.c.dist to pcre_chartables.c, pcre.h.generic to
   pcre.h, and config.h.generic to config.h.
   
   4. Edit pcre.h and pcre_config.c so that they include config.h.
   
   5. Edit config.h like so:
   
   Comment out the following lines:
   #define PACKAGE "pcre"
   #define PACKAGE_BUGREPORT ""
   #define PACKAGE_NAME "PCRE"
   #define PACKAGE_STRING "PCRE 8.32"
   #define PACKAGE_TARNAME "pcre"
   #define PACKAGE_URL ""
   #define PACKAGE_VERSION "8.32"
   
   Add the following lines:
   #ifndef SUPPORT_UTF
   #define SUPPORT_UTF 100 // any value is fine
   #endif
   
   #ifndef SUPPORT_UCP
   #define SUPPORT_UCP 101 // any value is fine
   #endif
   
   #ifndef SUPPORT_UCP
   #define SUPPORT_PCRE16 102 // any value is fine
   #endif
   
   #ifndef SUPPORT_UTF8
   #define SUPPORT_UTF8 103 // any value is fine
   #endif
   
   6. Build a C++ Builder project using the IDE. Go to File / New / Other and
   choose Static Library. You can name it pcre.cbproj or whatever. Now set your
   paths by going to Project / Options. Set the Include path. Do this from the
   "Base" option to apply to both Release and Debug builds. Now add the following
   files to the project:
   
   pcre.h
   pcre16_byte_order.c
   pcre16_chartables.c
   pcre16_compile.c
   pcre16_config.c
   pcre16_dfa_exec.c
   pcre16_exec.c
   pcre16_fullinfo.c
   pcre16_get.c
   pcre16_globals.c
   pcre16_maketables.c
   pcre16_newline.c
   pcre16_ord2utf16.c
   pcre16_printint.c
   pcre16_refcount.c
   pcre16_string_utils.c
   pcre16_study.c
   pcre16_tables.c
   pcre16_ucd.c
   pcre16_utf16_utils.c
   pcre16_valid_utf16.c
   pcre16_version.c
   pcre16_xclass.c
   
   //Optional
   pcre_version.c
   
   7. After compiling the .lib file, copy the .lib and header files to a project
   you want to use PCRE with. Enjoy.
   
   Optional ... Building PCRE using the makevp.bat file:
   
   1. Edit makevp_c.txt and makevp_l.txt and change all the names to the 16 bit
   versions.
   
   2. Edit makevp.bat and set the path to C++ Builder. Run makevp.bat.
   
   Another PCRE user added this comment:
   
   Another approach I successfully used for some years with BCB 5 and 6 was to
   make sure that include and library paths of PCRE are configured before the
   default paths of the IDE in the dialogs where one can manage those paths.
   Afterwards one can open the project files using a text editor and manually add
   the self created library for pcre itself, pcrecpp doesn't ship with the IDE, in
   the library nodes where the IDE manages its own libraries to link against in
   front of the IDE-own libraries. This way one can use the default PCRE function
   names without getting access violations on runtime.
   
     <ALLLIB value="libpcre.lib $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
   
   
 BUILDING PCRE ON OPENVMS  BUILDING PCRE ON OPENVMS
   
Dan Mooney sent the following comments about building PCRE on OpenVMS. TheyStephen Hoffman sent the following, in December 2012:
relate to an older version of PCRE that used fewer source files, so the exact 
commands will need changing. See the current list of source files above. 
   
   "Here <http://labs.hoffmanlabs.com/node/1847> is a very short write-up on the
   OpenVMS port and here
   
   <http://labs.hoffmanlabs.com/labsnotes/pcre-vms-8_32.zip>
   
   is a zip with the OpenVMS files, and with one modified testing-related PCRE
   file." This is a port of PCRE 8.32.
   
   Earlier, Dan Mooney sent the following comments about building PCRE on OpenVMS.
   They relate to an older version of PCRE that used fewer source files, so the
   exact commands will need changing. See the current list of source files above.
   
 "It was quite easy to compile and link the library. I don't have a formal  "It was quite easy to compile and link the library. I don't have a formal
 make file but the attached file [reproduced below] contains the OpenVMS DCL  make file but the attached file [reproduced below] contains the OpenVMS DCL
 commands I used to build the library. I had to add #define  commands I used to build the library. I had to add #define
Line 581  appear to be related to the port itself, please let me Line 745  appear to be related to the port itself, please let me
 build.log file in the root of the package also.  build.log file in the root of the package also.
   
   
   BUILDING PCRE ON NATIVE Z/OS AND Z/VM
   
   z/OS and z/VM are operating systems for mainframe computers, produced by IBM.
   The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and
   applications can be supported through UNIX System Services, and in such an
   environment PCRE can be built in the same way as in other systems. However, in
   native z/OS (without UNIX System Services) and in z/VM, special ports are
   required. For details, please see this web site:
   
     http://www.zaconsultants.net
   
   There is also a mirror here:
   
     http://www.vsoft-software.com/downloads.html
   
 ==========================  ==========================
Last Updated: 18 June 2012Last Updated: 14 May 2013

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>