2 # Makefile.in for PCRE (Perl-Compatible Regular Expression) library.
4 #---------------------------------------------------------------------------#
5 # To build mingw32 DLL uncomment the next two lines. This addition for #
6 # mingw32 was contributed by <Paul.Sokolovsky@technologist.com>. I (Philip #
7 # Hazel) don't know anything about it! There are some additional targets at #
8 # the bottom of this Makefile. #
9 #---------------------------------------------------------------------------#
15 #############################################################################
17 # PCRE is developed on a Unix system. I do not use Windows or Macs, and know
18 # nothing about building software on them. Although the code of PCRE should
19 # be very portable, the building system in this Makefile is designed for Unix
20 # systems, with the exception of the mingw32 stuff just mentioned.
22 # This setting enables Unix-style directory scanning in pcregrep, triggered
23 # by the -f option. Maybe one day someone will add code for other systems.
25 PCREGREP_OSTYPE=-DIS_UNIX
27 #############################################################################
30 #---------------------------------------------------------------------------#
31 # The following lines are modified by "configure" to insert data that it is #
32 # given in its arguments, or which it finds out for itself. #
33 #---------------------------------------------------------------------------#
37 exec_prefix = @exec_prefix@
38 top_srcdir = @top_srcdir@
40 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
42 # NB: top_builddir is not referred to directly below, but it is used in the
43 # setting of $(LIBTOOL), so don't remove it!
47 # BINDIR is the directory in which the pcregrep, pcretest, and pcre-config
48 # commands are installed.
49 # INCDIR is the directory in which the public header files pcre.h and
50 # pcreposix.h are installed.
51 # LIBDIR is the directory in which the libraries are installed.
52 # MANDIR is the directory in which the man pages are installed.
66 INSTALL_DATA = @INSTALL_DATA@
68 # LIBTOOL enables the building of shared and static libraries. It is set up
69 # to do one or the other or both by ./configure.
72 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) -I. $(NEWLINE)
73 LINK = $(LIBTOOL) --mode=link $(CC)
75 # These are the version numbers for the shared libraries
77 PCRELIBVERSION = @PCRE_LIB_VERSION@
78 PCREPOSIXLIBVERSION = @PCRE_POSIXLIB_VERSION@
80 ##############################################################################
83 OBJ = maketables.o get.o study.o pcre.o
84 LOBJ = maketables.lo get.lo study.lo pcre.lo
86 all: libpcre.la libpcreposix.la pcretest pcregrep
88 pcregrep: libpcre.la pcregrep.o
89 $(LINK) $(CFLAGS) -o pcregrep pcregrep.o libpcre.la
91 pcretest: libpcre.la libpcreposix.la pcretest.o
92 $(LINK) $(PURIFY) $(CFLAGS) -o pcretest pcretest.o \
93 libpcre.la libpcreposix.la
97 $(LINK) -rpath $(LIBDIR) -version-info \
98 '$(PCRELIBVERSION)' -o libpcre.la $(LOBJ)
100 libpcreposix.la: pcreposix.o
101 -rm -f libpcreposix.la
102 $(LINK) -rpath $(LIBDIR) -version-info \
103 '$(PCREPOSIXLIBVERSION)' -o libpcreposix.la pcreposix.lo
105 pcre.o: $(top_srcdir)/chartables.c $(top_srcdir)/pcre.c \
106 $(top_srcdir)/internal.h pcre.h config.h Makefile
107 $(LTCOMPILE) $(UTF8) $(top_srcdir)/pcre.c
109 pcreposix.o: $(top_srcdir)/pcreposix.c $(top_srcdir)/pcreposix.h \
110 $(top_srcdir)/internal.h pcre.h config.h Makefile
111 $(LTCOMPILE) $(top_srcdir)/pcreposix.c
113 maketables.o: $(top_srcdir)/maketables.c $(top_srcdir)/internal.h \
114 pcre.h config.h Makefile
115 $(LTCOMPILE) $(top_srcdir)/maketables.c
117 get.o: $(top_srcdir)/get.c $(top_srcdir)/internal.h \
118 pcre.h config.h Makefile
119 $(LTCOMPILE) $(top_srcdir)/get.c
121 study.o: $(top_srcdir)/study.c $(top_srcdir)/internal.h \
122 pcre.h config.h Makefile
123 $(LTCOMPILE) $(UTF8) $(top_srcdir)/study.c
125 pcretest.o: $(top_srcdir)/pcretest.c $(top_srcdir)/internal.h pcre.h config.h Makefile
126 $(CC) -c $(CFLAGS) -I. $(UTF8) $(top_srcdir)/pcretest.c
128 pcregrep.o: $(top_srcdir)/pcregrep.c pcre.h Makefile config.h
129 $(CC) -c $(CFLAGS) -I. $(UTF8) $(PCREGREP_OSTYPE) $(top_srcdir)/pcregrep.c
131 # An auxiliary program makes the default character table source
133 $(top_srcdir)/chartables.c: dftables
134 ./dftables >$(top_srcdir)/chartables.c
136 dftables: $(top_srcdir)/dftables.c $(top_srcdir)/maketables.c \
137 $(top_srcdir)/internal.h pcre.h config.h Makefile
138 $(LINK) -o dftables $(CFLAGS) $(top_srcdir)/dftables.c
141 $(mkinstalldirs) $(DESTDIR)/$(LIBDIR)
142 echo "$(LIBTOOL) --mode=install $(INSTALL) libpcre.la $(DESTDIR)/$(LIBDIR)/libpcre.la"
143 $(LIBTOOL) --mode=install $(INSTALL) libpcre.la $(DESTDIR)/$(LIBDIR)/libpcre.la
144 echo "$(LIBTOOL) --mode=install $(INSTALL) libpcreposix.la $(DESTDIR)/$(LIBDIR)/libpcreposix.la"
145 $(LIBTOOL) --mode=install $(INSTALL) libpcreposix.la $(DESTDIR)/$(LIBDIR)/libpcreposix.la
146 $(LIBTOOL) --finish $(DESTDIR)/$(LIBDIR)
147 $(mkinstalldirs) $(DESTDIR)/$(INCDIR)
148 $(INSTALL_DATA) pcre.h $(DESTDIR)/$(INCDIR)/pcre.h
149 $(INSTALL_DATA) $(top_srcdir)/pcreposix.h $(DESTDIR)/$(INCDIR)/pcreposix.h
150 $(mkinstalldirs) $(DESTDIR)/$(MANDIR)/man3
151 $(INSTALL_DATA) $(top_srcdir)/doc/pcre.3 $(DESTDIR)/$(MANDIR)/man3/pcre.3
152 $(INSTALL_DATA) $(top_srcdir)/doc/pcreposix.3 $(DESTDIR)/$(MANDIR)/man3/pcreposix.3
153 $(mkinstalldirs) $(DESTDIR)/$(MANDIR)/man1
154 $(INSTALL_DATA) $(top_srcdir)/doc/pcregrep.1 $(DESTDIR)/$(MANDIR)/man1/pcregrep.1
155 $(INSTALL_DATA) $(top_srcdir)/doc/pcretest.1 $(DESTDIR)/$(MANDIR)/man1/pcretest.1
156 $(mkinstalldirs) $(DESTDIR)/$(BINDIR)
157 $(LIBTOOL) --mode=install $(INSTALL) pcregrep $(DESTDIR)/$(BINDIR)/pcregrep
158 $(LIBTOOL) --mode=install $(INSTALL) pcretest $(DESTDIR)/$(BINDIR)/pcretest
159 $(INSTALL) pcre-config $(DESTDIR)/$(BINDIR)/pcre-config
161 # We deliberately omit dftables and chartables.c from 'make clean'; once made
162 # chartables.c shouldn't change, and if people have edited the tables by hand,
163 # you don't want to throw them away.
165 clean:; -rm -rf *.o *.lo *.a *.la .libs pcretest pcregrep testtry
167 # But "make distclean" should get back to a virgin distribution
170 -rm -f chartables.c libtool pcre-config pcre.h \
171 Makefile config.h config.status config.log config.cache
180 ######## MINGW32 ############### MINGW32 ############### MINGW32 #############
182 # This addition for mingw32 was contributed by Paul Sokolovsky
183 # <Paul.Sokolovsky@technologist.com>. I (PH) don't know anything about it!
185 dll: _dll libpcre.dll.a pcregrep_d pcretest_d
188 $(MAKE) CFLAGS=-DSTATIC pcre.dll
190 pcre.dll: $(OBJ) pcreposix.o pcre.def
191 libpcre.dll.a: pcre.def
193 pcregrep_d: libpcre.dll.a pcregrep.o
194 $(CC) $(CFLAGS) -L. -o pcregrep pcregrep.o -lpcre.dll
196 pcretest_d: libpcre.dll.a pcretest.o
197 $(PURIFY) $(CC) $(CFLAGS) -L. -o pcretest pcretest.o -lpcre.dll