1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# Make file for PCRE (Perl-Compatible Regular Expression) library.
# If you are using a Unix system, see below.
##############################################################################
# If you want to compile PCRE for a non-Unix system, note that it consists
# entirely of code written in Standard C, and so should compile successfully
# using normal compiling commands to do the following:
#
# (1) Compile dftables.c as a stand-alone program, and then run it with
# output sent to chartables.c. This generates a set of standard character
# tables.
#
# (2) Compile maketables.c, get.c, study.c and pcre.c and link them all
# together. This is the pcre library (chartables.c gets included by means of
# an #include directive).
#
# (3) Compile pcreposix.c and link it as the pcreposix library.
#
# (4) Compile the test program pcretest.c. This needs the functions in the
# pcre and pcreposix libraries when linking.
#
# (5) Run pcretest on the testinput files, and check that the output matches
# the corresponding testoutput files. You must use the -i option with
# testinput2.
##############################################################################
# On a Unix system:
#
# Edit CC, CFLAGS, and RANLIB for your system.
#
# It is believed that RANLIB=ranlib is required for AIX, BSDI, FreeBSD, Linux,
# MIPS RISCOS, NetBSD, OpenBSD, Digital Unix, and Ultrix.
#
# Use CFLAGS = -DUSE_BCOPY on SunOS4 and any other system that lacks the
# memmove() function, but has bcopy().
#
# Use CFLAGS = -DSTRERROR_FROM_ERRLIST on SunOS4 and any other system that
# lacks the strerror() function, but can provide the equivalent by indexing
# into errlist.
AR = ar cq
CC = gcc -O2 -Wall
CFLAGS =
RANLIB = @true
# If you are going to obey "make install", edit these settings for your
# system. BINDIR is the directory in which the pgrep command is installed.
# INCDIR is the directory in which the public header file pcre.h is installed.
# LIBDIR is the directory in which the libraries are installed. MANDIR is the
# directory in which the man pages are installed. The pcretest program, as it
# is a test program, does not get installed anywhere.
BINDIR = /usr/local/bin
INCDIR = /usr/local/include
LIBDIR = /usr/local/lib
MANDIR = /usr/local/man
##############################################################################
OBJ = maketables.o get.o study.o pcre.o
all: libpcre.a libpcreposix.a pcretest pgrep
pgrep: libpcre.a pgrep.o
$(CC) $(CFLAGS) -o pgrep pgrep.o libpcre.a
pcretest: libpcre.a libpcreposix.a pcretest.o
$(PURIFY) $(CC) $(CFLAGS) -o pcretest pcretest.o libpcre.a libpcreposix.a
libpcre.a: $(OBJ)
-rm -f libpcre.a
$(AR) libpcre.a $(OBJ)
$(RANLIB) libpcre.a
libpcreposix.a: pcreposix.o
-rm -f libpcreposix.a
$(AR) libpcreposix.a pcreposix.o
$(RANLIB) libpcreposix.a
pcre.o: chartables.c pcre.c pcre.h internal.h Makefile
$(CC) -c $(CFLAGS) pcre.c
pcreposix.o: pcreposix.c pcreposix.h internal.h pcre.h Makefile
$(CC) -c $(CFLAGS) pcreposix.c
maketables.o: maketables.c pcre.h internal.h Makefile
$(CC) -c $(CFLAGS) maketables.c
get.o: get.c pcre.h internal.h Makefile
$(CC) -c $(CFLAGS) get.c
study.o: study.c pcre.h internal.h Makefile
$(CC) -c $(CFLAGS) study.c
pcretest.o: pcretest.c pcre.h Makefile
$(CC) -c $(CFLAGS) pcretest.c
pgrep.o: pgrep.c pcre.h Makefile
$(CC) -c $(CFLAGS) pgrep.c
# An auxiliary program makes the default character table source
chartables.c: dftables
./dftables >chartables.c
dftables: dftables.c maketables.c pcre.h internal.h Makefile
$(CC) -o dftables $(CFLAGS) dftables.c
install: all
cp libpcre.a libpcreposix.a $(LIBDIR)
cp pcre.h $(INCDIR)
cp pgrep $(BINDIR)
cp pcre.3 pcreposix.3 $(MANDIR)/man3
cp pgrep.1 $(MANDIR)/man1
# We deliberately omit dftables and chartables.c from 'make clean'; once made
# chartables.c shouldn't change, and if people have edited the tables by hand,
# you don't want to throw them away.
clean:; -rm -f *.o *.a pcretest pgrep
runtest: all
./RunTest
# End
|