/[pcre]/code/trunk/NON-UNIX-USE
ViewVC logotype

Diff of /code/trunk/NON-UNIX-USE

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 144 by ph10, Mon Apr 2 13:32:07 2007 UTC revision 197 by ph10, Tue Jul 31 10:50:18 2007 UTC
# Line 29  library consists entirely of code writte Line 29  library consists entirely of code writte
29  successfully on any system that has a Standard C compiler and library. The C++  successfully on any system that has a Standard C compiler and library. The C++
30  wrapper functions are a separate issue (see below).  wrapper functions are a separate issue (see below).
31    
32  The PCRE distribution contains some experimental support for "cmake", but this  The PCRE distribution contains some experimental support for "cmake", but this
33  is incomplete and not documented. However if you are a "cmake" user you might  is incomplete and not documented. However if you are a "cmake" user you might
34  like to try building with "cmake".  like to try building with "cmake".
35    
36    
# Line 38  GENERIC INSTRUCTIONS FOR THE PCRE C LIBR Line 38  GENERIC INSTRUCTIONS FOR THE PCRE C LIBR
38    
39  The following are generic comments about building the PCRE C library "by hand".  The following are generic comments about building the PCRE C library "by hand".
40    
41  (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
42      settings that it contains to whatever is appropriate for your environment.       settings that it contains to whatever is appropriate for your environment.
43      In particular, if you want to force a specific value for newline, you can       In particular, if you want to force a specific value for newline, you can
44      define the NEWLINE macro.       define the NEWLINE macro.
45    
46      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
47      compiler command line to make any changes that you need.       compiler command line to make any changes that you need.
48    
49  (2) Copy or rename the file pcre.h.generic as pcre.h.       NOTE: There have been occasions when the way in which certain parameters
50         in config.h are used has changed between releases. (In the configure/make
51  (3) EITHER:       world, this is handled automatically.) When upgrading to a new release,
52        Copy or rename file pcre_chartables.c.dist as pcre_chartables.c.       you are strongly advised to review config.h.generic before re-using what
53         you had previously.
54      OR:  
55        Compile dftables.c as a stand-alone program, and then run it with the   (2) Copy or rename the file pcre.h.generic as pcre.h.
56        single argument "pcre_chartables.c". This generates a set of standard  
57        character tables and writes them to that file. The tables are generated   (3) EITHER:
58        using the default C locale for your system. If you want to use a locale         Copy or rename file pcre_chartables.c.dist as pcre_chartables.c.
59        that is specified by LC_xxx environment variables, add the -L option to  
60        the dftables command. You must use this method if you are building on       OR:
61        a system that uses EBCDIC code.         Compile dftables.c as a stand-alone program, and then run it with the
62           single argument "pcre_chartables.c". This generates a set of standard
63      The tables in pcre_chartables.c are defaults. The caller of PCRE can         character tables and writes them to that file. The tables are generated
64      specify alternative tables at run time.         using the default C locale for your system. If you want to use a locale
65           that is specified by LC_xxx environment variables, add the -L option to
66  (4) Compile the following source files:         the dftables command. You must use this method if you are building on
67           a system that uses EBCDIC code.
68        pcre_chartables.c  
69        pcre_compile.c       The tables in pcre_chartables.c are defaults. The caller of PCRE can
70        pcre_config.c       specify alternative tables at run time.
71        pcre_dfa_exec.c  
72        pcre_exec.c   (4) Ensure that you have the following header files:
73        pcre_fullinfo.c  
74        pcre_get.c         pcre_internal.h
75        pcre_globals.c         ucp.h
76        pcre_info.c         ucpinternal.h
77        pcre_maketables.c         ucptable.h
78        pcre_newline.c  
79        pcre_ord2utf8.c   (5) Also ensure that you have the following file, which is #included as source
80        pcre_refcount.c       when building a debugging version of PCRE and is also used by pcretest.
81        pcre_study.c  
82        pcre_tables.c         pcre_printint.src
83        pcre_try_flipped.c  
84        pcre_ucp_searchfuncs.c   (6) Compile the following source files:
85        pcre_valid_utf8.c  
86        pcre_version.c         pcre_chartables.c
87        pcre_xclass.c         pcre_compile.c
88           pcre_config.c
89      Now link them all together into an object library in whichever form your         pcre_dfa_exec.c
90      system keeps such libraries. This is the basic PCRE C library. If your         pcre_exec.c
91      system has static and shared libraries, you may have to do this once for         pcre_fullinfo.c
92      each type.         pcre_get.c
93           pcre_globals.c
94  (5) Similarly, compile pcreposix.c and link it (on its own) as the pcreposix         pcre_info.c
95      library.         pcre_maketables.c
96           pcre_newline.c
97  (6) Compile the test program pcretest.c. This needs the functions in the         pcre_ord2utf8.c
98      pcre and pcreposix libraries when linking.         pcre_refcount.c
99           pcre_study.c
100  (7) Run pcretest on the testinput files in the testdata directory, and check         pcre_tables.c
101      that the output matches the corresponding testoutput files. Note that the         pcre_try_flipped.c
102      supplied files are in Unix format, with just LF characters as line         pcre_ucp_searchfuncs.c
103      terminators. You may need to edit them to change this if your system uses a         pcre_valid_utf8.c
104      different convention.         pcre_version.c
105           pcre_xclass.c
106    
107     (7) Now link all the compiled code into an object library in whichever form
108         your system keeps such libraries. This is the basic PCRE C library. If
109         your system has static and shared libraries, you may have to do this once
110         for each type.
111    
112     (8) Similarly, compile pcreposix.c and link the result (on its own) as the
113         pcreposix library.
114    
115     (9) Compile the test program pcretest.c. This needs the functions in the
116         pcre and pcreposix libraries when linking. It also needs the
117         pcre_printint.src source file, which it #includes.
118    
119    (10) Run pcretest on the testinput files in the testdata directory, and check
120         that the output matches the corresponding testoutput files. Note that the
121         supplied files are in Unix format, with just LF characters as line
122         terminators. You may need to edit them to change this if your system uses
123         a different convention.
124    
125  (8) If you want to use the pcregrep command, compile and link pcregrep.c; it  (11) If you want to use the pcregrep command, compile and link pcregrep.c; it
126      uses only the basic PCRE library (it does not need the pcreposix library).       uses only the basic PCRE library (it does not need the pcreposix library).
127    
128    
129  THE C++ WRAPPER FUNCTIONS  THE C++ WRAPPER FUNCTIONS
# Line 127  for use with VP/Borland: makevp_c.txt, m Line 146  for use with VP/Borland: makevp_c.txt, m
146    
147  COMMENTS ABOUT WIN32 BUILDS  COMMENTS ABOUT WIN32 BUILDS
148    
149  There are two ways of building PCRE using the "congifure, make, make install"  There are two ways of building PCRE using the "configure, make, make install"
150  paradigm on Windows systems: using MinGW or using Cygwin. These are not at all  paradigm on Windows systems: using MinGW or using Cygwin. These are not at all
151  the same thing; they are completely different from each other. There is also  the same thing; they are completely different from each other. There is also
152  some experimental, undocumented support for building using "cmake", which you  some experimental, undocumented support for building using "cmake", which you
153  might like to try if you are familiar with "cmake". However, at the present  might like to try if you are familiar with "cmake". However, at the present
154  time, the "cmake" process builds only a static library (not a dll), and the  time, the "cmake" process builds only a static library (not a dll), and the
155  tests are not automatically run.  tests are not automatically run.
156    
# Line 158  On both MinGW and Cygwin, PCRE should bu Line 177  On both MinGW and Cygwin, PCRE should bu
177    
178    ./configure && make && make install    ./configure && make && make install
179    
180  However, if you want to statically link your program against the .a file, you  This should create two libraries called libpcre and libpcreposix, and, if you
181  must define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc()  have enabled building the C++ wrapper, a third one called libpcrecpp. These are
182  and pcre_free() exported functions will be declared __declspec(dllimport), with  independent libraries: when you like with libpcreposix or libpcrecpp you must
183    also link with libpcre, which contains the basic functions. (Some earlier
184    releases of PCRE included the basic libpcre functions in libpcreposix. This no
185    longer happens.)
186    
187    If you want to statically link your program against a non-dll .a file, you must
188    define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc() and
189    pcre_free() exported functions will be declared __declspec(dllimport), with
190  unwanted results.  unwanted results.
191    
192  Using Cygwin's compiler generates libraries and executables that depend on  Using Cygwin's compiler generates libraries and executables that depend on
# Line 189  gcc and MinGW's gcc). So, a user can: Line 215  gcc and MinGW's gcc). So, a user can:
215    
216  The test files that are supplied with PCRE are in Unix format, with LF  The test files that are supplied with PCRE are in Unix format, with LF
217  characters as line terminators. It may be necessary to change the line  characters as line terminators. It may be necessary to change the line
218  terminators in order to get some of the tests to work. We hope to improves  terminators in order to get some of the tests to work. We hope to improve
219  things in this area in future.  things in this area in future.
220    
221    
# Line 271  $!   Locale could not be set to fr Line 297  $!   Locale could not be set to fr
297  $!  $!
298  =========================  =========================
299    
300  Last Updated: 26 March 2007  Last Updated: 05 July 2007
301  ****  ****

Legend:
Removed from v.144  
changed lines
  Added in v.197

  ViewVC Help
Powered by ViewVC 1.1.5