blob: a71142535c9de11fae5c0d803cc491920a609461 (
plain)
1 --- a/GNUmakefile
2 +++ b/GNUmakefile
3 @@ -8,6 +8,8 @@
4 EXEEXT = .exe
5 endif
6
7 +MAJOR_VERSION := $(shell echo $(SNOWBALL_VERSION) | cut -d. -f1)
8 +
9 c_src_dir = src_c
10
11 JAVAC ?= javac
12 @@ -170,12 +172,12 @@
13 JAVA_CLASSES = $(JAVA_SOURCES:.java=.class)
14 JAVA_RUNTIME_CLASSES=$(JAVARUNTIME_SOURCES:.java=.class)
15
16 -CFLAGS=-O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
17 +CFLAGS=-fPIC -O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
18 CPPFLAGS=
19
20 INCLUDES=-Iinclude
21
22 -all: snowball$(EXEEXT) libstemmer.a stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
23 +all: snowball$(EXEEXT) libstemmer.a libstemmer.so stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
24
25 algorithms.mk: libstemmer/mkalgorithms.pl libstemmer/modules.txt
26 libstemmer/mkalgorithms.pl algorithms.mk libstemmer/modules.txt
27 @@ -224,6 +226,11 @@
28
29 libstemmer.a: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
30 $(AR) -cru $@ $^
31 +
32 +libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
33 + $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,$@.$(MAJOR_VERSION),-version-script,libstemmer/symbol.map -o $@.$(SNOWBALL_VERSION) $^
34 + ln -s $@.$(SNOWBALL_VERSION) $@.$(MAJOR_VERSION)
35 + ln -s $@.$(SNOWBALL_VERSION) $@
36
37 examples/%.o: examples/%.c
38 $(CC) $(CFLAGS) $(INCLUDES) $(CPPFLAGS) -c -o $@ $<
39 --- /dev/null
40 +++ b/libstemmer/symbol.map
41 @@ -0,0 +1,6 @@
42 +SB_STEMMER_0 {
43 + global:
44 + sb_stemmer_*;
45 + local:
46 + *;
47 +};
|