SHELL = /bin/sh

# V=0 quiet, V=1 verbose. other values don't work. V = 1 Q1 = $(V:1=) Q = $(Q1:0=@) ECHO1 = $(V:1=@:) ECHO = $(ECHO1:0=@echo)

#### Start of system configuration section. ####

srcdir = . topdir = /usr/include hdrdir = $(topdir) arch_hdrdir = /usr/include PATH_SEPARATOR = : VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby prefix = $(DESTDIR)/usr rubysitearchprefix = $(sitearchlibdir)/$(RUBY_BASE_NAME) rubyarchprefix = $(DESTDIR)/usr/lib64/ruby rubylibprefix = $(exec_prefix)/share/ruby exec_prefix = $(DESTDIR)/usr vendorarchhdrdir = $(vendorhdrdir)/$(arch) sitearchhdrdir = $(sitehdrdir)/$(arch) rubyarchhdrdir = $(DESTDIR)/usr/include vendorhdrdir = $(rubyhdrdir)/vendor_ruby sitehdrdir = $(rubyhdrdir)/site_ruby rubyhdrdir = $(DESTDIR)/usr/include rubygemsdir = $(DESTDIR)/usr/share/rubygems vendorarchdir = $(DESTDIR)/usr/lib64/ruby/vendor_ruby vendorlibdir = $(vendordir) vendordir = $(DESTDIR)/usr/share/ruby/vendor_ruby sitearchdir = $(DESTDIR)./.gem.20140827-23461-v5xq83 sitelibdir = $(DESTDIR)./.gem.20140827-23461-v5xq83 sitedir = $(DESTDIR)/usr/local/share/ruby/site_ruby rubyarchdir = $(rubyarchprefix) rubylibdir = $(rubylibprefix) sitearchincludedir = $(includedir)/$(sitearch) archincludedir = $(includedir)/$(arch) sitearchlibdir = $(libdir)/$(sitearch) archlibdir = $(DESTDIR)/usr/lib64 ridir = $(datarootdir)/$(RI_BASE_NAME) mandir = $(DESTDIR)/usr/share/man localedir = $(datarootdir)/locale libdir = $(exec_prefix)/lib64 psdir = $(docdir) pdfdir = $(docdir) dvidir = $(docdir) htmldir = $(docdir) infodir = $(DESTDIR)/usr/share/info docdir = $(datarootdir)/doc/$(PACKAGE) oldincludedir = $(DESTDIR)/usr/include includedir = $(DESTDIR)/usr/include localstatedir = $(DESTDIR)/var sharedstatedir = $(DESTDIR)/var/lib sysconfdir = $(DESTDIR)/etc datadir = $(DESTDIR)/usr/share datarootdir = $(prefix)/share libexecdir = $(DESTDIR)/usr/libexec sbindir = $(DESTDIR)/usr/sbin bindir = $(exec_prefix)/bin archdir = $(rubyarchdir)

CC = gcc CXX = g++ LIBRUBY = $(LIBRUBY_SO) LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME) LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static empty = OUTFLAG = -o $(empty) COUTFLAG = -o $(empty)

RUBY_EXTCONF_H = cflags = $(optflags) $(debugflags) $(warnflags) optflags = -O3 -fno-fast-math debugflags = -ggdb3 warnflags = -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration CCDLFLAGS = -fPIC CFLAGS = $(CCDLFLAGS) -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -Wall -D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 $(ARCH_FLAG) INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir) DEFS = CPPFLAGS = $(DEFS) $(cppflags) CXXFLAGS = $(CCDLFLAGS) -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches $(ARCH_FLAG) ldflags = -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic dldflags =

ARCH_FLAG = -m64 DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG) LDSHARED = $(CC) -shared LDSHAREDXX = $(CXX) -shared AR = ar EXEEXT =

RUBY_INSTALL_NAME = ruby RUBY_SO_NAME = ruby RUBYW_INSTALL_NAME = RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version) RUBYW_BASE_NAME = rubyw RUBY_BASE_NAME = ruby

arch = powerpc64-linux sitearch = $(arch) ruby_version = ruby = $(bindir)/ruby RUBY = $(ruby) ruby_headers = $(hdrdir)/ruby.h $(hdrdir)/ruby/ruby.h $(hdrdir)/ruby/defines.h $(hdrdir)/ruby/missing.h $(hdrdir)/ruby/intern.h $(hdrdir)/ruby/st.h $(hdrdir)/ruby/subst.h $(arch_hdrdir)/ruby/config.h

RM = rm -f RM_RF = $(RUBY) -run -e rm – -rf RMDIRS = rmdir –ignore-fail-on-non-empty -p MAKEDIRS = /usr/bin/mkdir -p INSTALL = /usr/bin/install -c INSTALL_PROG = $(INSTALL) -m 0755 INSTALL_DATA = $(INSTALL) -m 644 COPY = cp TOUCH = exit >

#### End of system configuration section. ####

preload =

libpath = . $(archlibdir) LIBPATH = -L. -L$(archlibdir) DEFFILE =

CLEANFILES = mkmf.log DISTCLEANFILES = DISTCLEANDIRS =

extout = extout_prefix = target_prefix = LOCAL_LIBS = LIBS = $(LIBRUBYARG_SHARED) -lpthread -ldl -lcrypt -lm -lc ORIG_SRCS = STEMMER_utilities.c STEMMER_stem_UTF_8_italian.c STEMMER_stem_UTF_8_hungarian.c array.c BZLIB_bzlib.c hashset.c STEMMER_api.c STEMMER_stem_UTF_8_turkish.c STEMMER_stem_ISO_8859_1_german.c STEMMER_stem_ISO_8859_1_english.c STEMMER_libstemmer.c q_const_score.c STEMMER_stem_ISO_8859_1_swedish.c compound_io.c posh.c analysis.c BZLIB_crctable.c STEMMER_stem_UTF_8_porter.c q_fuzzy.c STEMMER_stem_KOI8_R_russian.c priorityqueue.c STEMMER_stem_ISO_8859_1_norwegian.c field_index.c STEMMER_stem_ISO_8859_1_french.c scanner.c STEMMER_stem_UTF_8_swedish.c STEMMER_stem_ISO_8859_1_porter.c hash.c q_phrase.c STEMMER_stem_ISO_8859_1_dutch.c BZLIB_compress.c search.c STEMMER_stem_UTF_8_dutch.c q_prefix.c STEMMER_stem_UTF_8_danish.c STEMMER_stem_ISO_8859_1_italian.c q_parser.c STEMMER_stem_ISO_8859_2_romanian.c ram_store.c r_index.c multimapper.c r_store.c STEMMER_stem_UTF_8_portuguese.c index.c BZLIB_blocksort.c r_analysis.c q_term.c sort.c STEMMER_stem_ISO_8859_1_finnish.c STEMMER_stem_UTF_8_english.c r_search.c q_filtered_query.c r_qparser.c STEMMER_stem_UTF_8_french.c STEMMER_stem_UTF_8_german.c similarity.c BZLIB_huffman.c STEMMER_stem_ISO_8859_1_portuguese.c q_span.c filter.c q_match_all.c STEMMER_stem_UTF_8_romanian.c store.c STEMMER_stem_ISO_8859_1_hungarian.c STEMMER_stem_UTF_8_finnish.c BZLIB_randtable.c except.c q_range.c STEMMER_stem_UTF_8_norwegian.c stopwords.c q_multi_term.c STEMMER_stem_ISO_8859_1_danish.c helper.c BZLIB_decompress.c document.c symbol.c STEMMER_stem_ISO_8859_1_spanish.c bitvector.c lang.c fs_store.c term_vectors.c global.c scanner_utf8.c scanner_mb.c STEMMER_stem_UTF_8_spanish.c r_utils.c mempool.c q_wildcard.c ferret.c q_boolean.c STEMMER_stem_UTF_8_russian.c SRCS = $(ORIG_SRCS) OBJS = STEMMER_utilities.o STEMMER_stem_UTF_8_italian.o STEMMER_stem_UTF_8_hungarian.o array.o BZLIB_bzlib.o hashset.o STEMMER_api.o STEMMER_stem_UTF_8_turkish.o STEMMER_stem_ISO_8859_1_german.o STEMMER_stem_ISO_8859_1_english.o STEMMER_libstemmer.o q_const_score.o STEMMER_stem_ISO_8859_1_swedish.o compound_io.o posh.o analysis.o BZLIB_crctable.o STEMMER_stem_UTF_8_porter.o q_fuzzy.o STEMMER_stem_KOI8_R_russian.o priorityqueue.o STEMMER_stem_ISO_8859_1_norwegian.o field_index.o STEMMER_stem_ISO_8859_1_french.o scanner.o STEMMER_stem_UTF_8_swedish.o STEMMER_stem_ISO_8859_1_porter.o hash.o q_phrase.o STEMMER_stem_ISO_8859_1_dutch.o BZLIB_compress.o search.o STEMMER_stem_UTF_8_dutch.o q_prefix.o STEMMER_stem_UTF_8_danish.o STEMMER_stem_ISO_8859_1_italian.o q_parser.o STEMMER_stem_ISO_8859_2_romanian.o ram_store.o r_index.o multimapper.o r_store.o STEMMER_stem_UTF_8_portuguese.o index.o BZLIB_blocksort.o r_analysis.o q_term.o sort.o STEMMER_stem_ISO_8859_1_finnish.o STEMMER_stem_UTF_8_english.o r_search.o q_filtered_query.o r_qparser.o STEMMER_stem_UTF_8_french.o STEMMER_stem_UTF_8_german.o similarity.o BZLIB_huffman.o STEMMER_stem_ISO_8859_1_portuguese.o q_span.o filter.o q_match_all.o STEMMER_stem_UTF_8_romanian.o store.o STEMMER_stem_ISO_8859_1_hungarian.o STEMMER_stem_UTF_8_finnish.o BZLIB_randtable.o except.o q_range.o STEMMER_stem_UTF_8_norwegian.o stopwords.o q_multi_term.o STEMMER_stem_ISO_8859_1_danish.o helper.o BZLIB_decompress.o document.o symbol.o STEMMER_stem_ISO_8859_1_spanish.o bitvector.o lang.o fs_store.o term_vectors.o global.o scanner_utf8.o scanner_mb.o STEMMER_stem_UTF_8_spanish.o r_utils.o mempool.o q_wildcard.o ferret.o q_boolean.o STEMMER_stem_UTF_8_russian.o HDRS = $(srcdir)/stem_ISO_8859_1_german.h $(srcdir)/config.h $(srcdir)/api.h $(srcdir)/stem_UTF_8_turkish.h $(srcdir)/scanner.h $(srcdir)/stem_UTF_8_german.h $(srcdir)/stem_UTF_8_russian.h $(srcdir)/stem_ISO_8859_1_hungarian.h $(srcdir)/similarity.h $(srcdir)/search.h $(srcdir)/array.h $(srcdir)/stem_ISO_8859_1_portuguese.h $(srcdir)/helper.h $(srcdir)/stem_UTF_8_porter.h $(srcdir)/stem_ISO_8859_1_porter.h $(srcdir)/field_index.h $(srcdir)/win32.h $(srcdir)/mempool.h $(srcdir)/bzlib_private.h $(srcdir)/stem_UTF_8_english.h $(srcdir)/document.h $(srcdir)/except.h $(srcdir)/multimapper.h $(srcdir)/symbol.h $(srcdir)/priorityqueue.h $(srcdir)/stem_ISO_8859_1_finnish.h $(srcdir)/stem_UTF_8_dutch.h $(srcdir)/lang.h $(srcdir)/stem_ISO_8859_1_italian.h $(srcdir)/stem_ISO_8859_1_danish.h $(srcdir)/stem_UTF_8_romanian.h $(srcdir)/hash.h $(srcdir)/stem_ISO_8859_1_french.h $(srcdir)/store.h $(srcdir)/stem_ISO_8859_1_swedish.h $(srcdir)/stem_UTF_8_hungarian.h $(srcdir)/stem_ISO_8859_1_spanish.h $(srcdir)/stem_UTF_8_french.h $(srcdir)/stem_UTF_8_italian.h $(srcdir)/index.h $(srcdir)/posh.h $(srcdir)/libstemmer.h $(srcdir)/ferret.h $(srcdir)/internal.h $(srcdir)/hashset.h $(srcdir)/global.h $(srcdir)/bitvector.h $(srcdir)/threading.h $(srcdir)/header.h $(srcdir)/stem_ISO_8859_2_romanian.h $(srcdir)/stem_UTF_8_swedish.h $(srcdir)/bzlib.h $(srcdir)/stem_ISO_8859_1_english.h $(srcdir)/stem_ISO_8859_1_dutch.h $(srcdir)/stem_UTF_8_spanish.h $(srcdir)/stem_UTF_8_danish.h $(srcdir)/stem_UTF_8_finnish.h $(srcdir)/stem_UTF_8_portuguese.h $(srcdir)/stem_UTF_8_norwegian.h $(srcdir)/analysis.h $(srcdir)/stem_ISO_8859_1_norwegian.h $(srcdir)/stem_KOI8_R_russian.h $(srcdir)/modules.h TARGET = ferret_ext TARGET_NAME = ferret_ext TARGET_ENTRY = Init_$(TARGET_NAME) DLLIB = $(TARGET).so EXTSTATIC = STATIC_LIB =

TIMESTAMP_DIR = . BINDIR = $(bindir) RUBYCOMMONDIR = $(sitedir)$(target_prefix) RUBYLIBDIR = $(sitelibdir)$(target_prefix) RUBYARCHDIR = $(sitearchdir)$(target_prefix) HDRDIR = $(rubyhdrdir)/ruby$(target_prefix) ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)

TARGET_SO = $(DLLIB) CLEANLIBS = $(TARGET).so CLEANOBJS = *.o *.bak

all: $(DLLIB) static: $(STATIC_LIB) .PHONY: all install static install-so install-rb .PHONY: clean clean-so clean-static clean-rb

clean-static
clean-rb-default
clean-rb
clean-so

clean: clean-so clean-static clean-rb-default clean-rb

-$(Q)$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time
distclean-rb-default
distclean-rb
distclean-so
distclean-static

distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb

-$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
-$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
-$(Q)$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true

realclean: distclean install: install-so install-rb

install-so: $(DLLIB) $(TIMESTAMP_DIR)/.RUBYARCHDIR.time

$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
clean-static

-$(Q)$(RM) $(STATIC_LIB)

install-rb: pre-install-rb install-rb-default install-rb-default: pre-install-rb-default pre-install-rb: Makefile pre-install-rb-default: Makefile pre-install-rb-default:

$(ECHO) installing default ferret_ext libraries

$(TIMESTAMP_DIR)/.RUBYARCHDIR.time:

$(Q) $(MAKEDIRS) $(@D) $(RUBYARCHDIR)
$(Q) $(TOUCH) $@

site-install: site-install-so site-install-rb site-install-so: install-so site-install-rb: install-rb

.SUFFIXES: .c .m .cc .mm .cxx .cpp .C .o

.cc.o:

$(ECHO) compiling $(<)
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.mm.o:

$(ECHO) compiling $(<)
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.cxx.o:

$(ECHO) compiling $(<)
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.cpp.o:

$(ECHO) compiling $(<)
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.C.o:

$(ECHO) compiling $(<)
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.c.o:

$(ECHO) compiling $(<)
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<

.m.o:

$(ECHO) compiling $(<)
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<

$(DLLIB): $(OBJS) Makefile

$(ECHO) linking shared-object $(DLLIB)
-$(Q)$(RM) $(@)
$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)

$(OBJS): $(HDRS) $(ruby_headers)