summaryrefslogtreecommitdiff
path: root/snowball/dynamiclib.patch
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 +};

Generated by cgit