################################################################### # IMPORTANT NOTE # ################################################################### # Before you try to run the Makefile, make sure you have set # # the following environment variables properly. # # # # export BUILDROOT= # ################################################################### #all these setting come from the arguments passed in to runConfigure. CC = @cc@ CXX = @cxx@ PREFIX = @prefix@ EPREFIX = @exec_prefix@ BUILDROOT = @top_srcdir@ CXXFLAGS += @enable_debug@ PCRE_INCLUDEDIR = @pcre_includes@ PCRE_LIBDIR = @pcre_libs@ LEM_DATADIR = @lem_datadir@ ifeq ($(strip $(LEM_DATADIR)),) LEM_DATADIR = $(PREFIX)/Dicts endif #MACROS defining commands MKDIR=mkdir CP=cp CD=cd RM=rm CHMODE=chmod INSTALL=install include Makefile.incl AGRAMTABLIB_DIR = Source/AgramtabLib COMMON_DIR = Source/common GRAPHANLIB_DIR = Source/GraphanLib LEMMATIZERLIB_DIR = Source/LemmatizerLib MORPHWIZARDLIB_DIR = Source/MorphWizardLib STRUCTDICTLIB_DIR = Source/StructDictLib MORPHGEN_DIR = Source/MorphGen PCRE_DIR = Source/PCRE TESTLEM_DIR = Source/TestLem LEMCLIENTLIB_DIR = Source/LemClient TESTLEMCLIENT_DIR = Source/TestLemClient all:: lib TestLem MorphGen TestLemClient lib:: compile compile:: AgramtabLib GraphanLib LemmatizerLib MorphWizardLib StructDictLib common pcre LemClient AgramtabLib:: @echo ------------------------ Building AgramtabLib -------------- $(MAKE) -C $(AGRAMTABLIB_DIR) $(MAKE_FLAGS) $(MAKE_SHARED) -o $(LIB_DIR)/libAgramtab.so $(AGRAMTABLIB_DIR)/*.o $(MAKE_ARCH) -cr $(LIB_DIR)/libAgramtab.a $(AGRAMTABLIB_DIR)/*.o GraphanLib:: @echo ------------------------ Building GraphanLib --------------- $(MAKE) -C $(GRAPHANLIB_DIR) $(MAKE_FLAGS) $(MAKE_SHARED) -o $(LIB_DIR)/libGraphan.so $(GRAPHANLIB_DIR)/*.o $(MAKE_ARCH) -cr $(LIB_DIR)/libGraphan.a $(GRAPHANLIB_DIR)/*.o LemmatizerLib:: @echo ------------------------ Building LemmatizerLib ------------ $(MAKE) -C $(LEMMATIZERLIB_DIR) $(MAKE_FLAGS) $(MAKE_SHARED) -o $(LIB_DIR)/libLemmatizer.so $(LEMMATIZERLIB_DIR)/*.o $(MAKE_ARCH) -cr $(LIB_DIR)/libLemmatizer.a $(LEMMATIZERLIB_DIR)/*.o MorphWizardLib:: @echo ------------------------ Building MorphWizardLib ----------- $(MAKE) -C $(MORPHWIZARDLIB_DIR) $(MAKE_FLAGS) $(MAKE_SHARED) -o $(LIB_DIR)/libMorphWizard.so $(MORPHWIZARDLIB_DIR)/*.o $(MAKE_ARCH) -cr $(LIB_DIR)/libMorphWizard.a $(MORPHWIZARDLIB_DIR)/*.o StructDictLib:: @echo ------------------------ Building StructDictLib ------------ $(MAKE) -C $(STRUCTDICTLIB_DIR) $(MAKE_FLAGS) $(MAKE_SHARED) -o $(LIB_DIR)/libStructDict.so $(STRUCTDICTLIB_DIR)/*.o $(MAKE_ARCH) -cr $(LIB_DIR)/libStructDict.a $(STRUCTDICTLIB_DIR)/*.o common:: @echo ------------------------ Building common ------------------- $(MAKE) -C $(COMMON_DIR) $(MAKE_FLAGS) $(MAKE_SHARED) -o $(LIB_DIR)/libLemCommon.so $(COMMON_DIR)/*.o $(MAKE_ARCH) -cr $(LIB_DIR)/libLemCommon.a $(COMMON_DIR)/*.o pcre:: @echo ------------------------ Building PCRE --------------------- $(MAKE) -C $(PCRE_DIR) $(MAKE_FLAGS) $(MAKE_SHARED) -o $(LIB_DIR)/libLemPCRE.so $(PCRE_DIR)/*.o $(MAKE_ARCH) -cr $(LIB_DIR)/libLemPCRE.a $(PCRE_DIR)/*.o MorphGen:: AgramtabLib GraphanLib LemmatizerLib MorphWizardLib StructDictLib common pcre @echo ------------------------ Building MorphGen ----------------- $(MAKE) -C $(MORPHGEN_DIR) $(MAKE_FLAGS) $(MAKE_BIN) -o Bin/MorphGen $(MORPHGEN_DIR)/*.o $(LIB_DIR)/libLemmatizer.a $(LIB_DIR)/libMorphWizard.a $(LIB_DIR)/libAgramtab.a $(LIB_DIR)/libGraphan.a $(LIB_DIR)/libStructDict.a $(LIB_DIR)/libLemCommon.a $(LIB_DIR)/libLemPCRE.a -L$(PCRE_LIBDIR) -lpcre TestLem:: AgramtabLib GraphanLib LemmatizerLib MorphWizardLib StructDictLib common pcre @echo ------------------------ Building TestLem ------------------ $(MAKE) -C $(TESTLEM_DIR) $(MAKE_FLAGS) $(MAKE_BIN) -o Bin/TestLem $(TESTLEM_DIR)/*.o $(LIB_DIR)/libAgramtab.a $(LIB_DIR)/libLemmatizer.a $(LIB_DIR)/libMorphWizard.a $(LIB_DIR)/libGraphan.a $(LIB_DIR)/libStructDict.a $(LIB_DIR)/libLemCommon.a $(LIB_DIR)/libLemPCRE.a -L$(PCRE_LIBDIR) -lpcre LemClient:: AgramtabLib GraphanLib LemmatizerLib MorphWizardLib StructDictLib common pcre @echo ------------------------ Building LemClient ---------------- $(MAKE) -C $(LEMCLIENTLIB_DIR) $(MAKE_FLAGS) $(MAKE_SHARED) -o $(LIB_DIR)/libLemClient.so $(LEMCLIENTLIB_DIR)/*.o $(AGRAMTABLIB_DIR)/*.o $(GRAPHANLIB_DIR)/*.o $(LEMMATIZERLIB_DIR)/*.o $(MORPHWIZARDLIB_DIR)/*.o $(STRUCTDICTLIB_DIR)/*.o $(COMMON_DIR)/*.o $(PCRE_DIR)/*.o $(MAKE_ARCH) -cr $(LIB_DIR)/libLemClient.a $(LEMCLIENTLIB_DIR)/*.o $(AGRAMTABLIB_DIR)/*.o $(GRAPHANLIB_DIR)/*.o $(LEMMATIZERLIB_DIR)/*.o $(MORPHWIZARDLIB_DIR)/*.o $(STRUCTDICTLIB_DIR)/*.o $(COMMON_DIR)/*.o $(PCRE_DIR)/*.o TestLemClient:: TestLem @echo ------------------------ Building TestLemClient ------------ $(MAKE) -C $(TESTLEMCLIENT_DIR) $(MAKE_FLAGS) $(MAKE_BIN) -o Bin/TestLemClient $(TESTLEMCLIENT_DIR)/*.o $(LIB_DIR)/libLemClient.a -L$(PCRE_LIBDIR) -lpcre install:: all @echo ------------------------ Installing Lemmatizer ------------- if test ! -d "$(PREFIX)/lib"; then \ $(INSTALL) -d -m 0755 $(PREFIX)/lib; \ fi; \ $(INSTALL) -m 0755 $(BUILDROOT)/libexec/*.so $(PREFIX)/lib $(INSTALL) -m 0644 $(BUILDROOT)/libexec/*.a $(PREFIX)/lib @echo ------------------------ Installing headers ---------------- ELEM_LIST=`ls -R -1 $(BUILDROOT)/Source | sed 's!:$$!!';` ; \ CURR_DIR=''; \ INST_PATH=''; \ for ELEMENT in $$ELEM_LIST; do \ if test -d "$$ELEMENT"; then \ EXCL_PATH=`echo $(BUILDROOT)/Source | sed 's!\.!\\\\.!g'`; \ INST_PATH=`eval "echo $$ELEMENT | sed 's!^$$EXCL_PATH!!g'"`; \ CURR_DIR=$$ELEMENT; \ else \ TEST_FILE=`echo $$ELEMENT | grep '\.h'`; \ if test x$$TEST_FILE = x$$ELEMENT; then \ if test -f "$$CURR_DIR/$$ELEMENT"; then \ if ! test -d "$(PREFIX)/include/lemmatizer/$$INST_PATH"; then \ $(INSTALL) -d -m 0755 $(PREFIX)/include/lemmatizer/$$INST_PATH; \ fi; \ $(INSTALL) -m 0644 $$CURR_DIR/$$ELEMENT $(PREFIX)/include/lemmatizer/$$INST_PATH/$$ELEMENT; \ fi; \ fi; \ fi; \ done; @echo ------------------------ Installing binaries --------------- if test ! -d "$(PREFIX)/bin"; then \ $(INSTALL) -d -m 0755 $(PREFIX)/bin; \ fi; \ $(INSTALL) -m 0755 $(BUILDROOT)/Bin/MorphGen $(PREFIX)/bin $(INSTALL) -m 0755 $(BUILDROOT)/Bin/TestLem $(PREFIX)/bin $(INSTALL) -m 0755 $(BUILDROOT)/Bin/TestLemClient $(PREFIX)/bin @echo ------------------------ Installing configuration ---------- if test ! -d "$(LEM_DATADIR)"; then \ $(INSTALL) -d -m 0755 $(LEM_DATADIR); \ fi; \ $(INSTALL) -m 0644 $(BUILDROOT)/Dicts/rml.ini $(LEM_DATADIR) @echo @echo '------------------------ All done --------------------------' @echo '-- --' @echo '-- Now you should download dictionaries from --' @echo '-- http://www.aot.ru/ --' @echo '-- or from --' @echo '-- http://reki.ru/products/lemmatizer/ --' @echo '-- --' @echo '-- and generate and install morph database. --' @echo '-- This is done with following commands: --' @echo '-- --' @echo '-- make generatemorph --' @echo '-- make installmorph --' @echo '-- --' @echo '------------------------------------------------------------' @echo generatemorph:: @echo ------------------------ Creating dictionaries ------------- if test -z $$RML ; then \ RML=$(BUILDROOT); export RML; \ fi; \ if test ! -x $$RML/Bin/MorphGen ; then \ echo Error: Executable file Bin/MorphGen not found.; \ exit 1; \ fi; \ for Language in Rus Eng Ger; do \ echo "Try to generate $$Language database"; \ if [ ! -e $$RML/Dicts/SrcMorph/$$Language.mwz ] ; then \ echo 'Warning: Dictionary not found. You should first download and install the morphological dictionary (http://sf.net/projects/morph-lexicon/)'; \ else \ $$RML/Bin/MorphGen $$RML/Dicts/SrcMorph/$$Language.mwz $$RML/Dicts/Morph/$$Language 5 3; \ if [ "$$?" -ne "0" ]; then \ echo "Error: Cannot generate morphological dictionaries."; \ halt; \ fi; \ fi; \ done; installmorph:: @echo ------------------------ Installing dictionaries ----------- if test ! -d "$(PREFIX)/Dicts"; then \ $(INSTALL) -d -m 0755 $(LEM_DATADIR); \ fi; \ ELEM_LIST=`ls -R -1 $(BUILDROOT)/Dicts | sed 's!:$$!!';` ; \ CURR_DIR=''; \ for ELEMENT in $$ELEM_LIST; do \ if test -d "$$ELEMENT"; then \ EXCL_PATH=`echo $(BUILDROOT)/Dicts | sed 's!\.!\\\\.!g'`; \ INST_PATH=`eval "echo $$ELEMENT | sed 's!^$$EXCL_PATH!!g'"`; \ CURR_DIR=$$ELEMENT; \ $(INSTALL) -d -m 0755 $(LEM_DATADIR)/$$INST_PATH; \ else \ if test -f "$$CURR_DIR/$$ELEMENT"; then \ $(INSTALL) -m 0644 $$CURR_DIR/$$ELEMENT $(LEM_DATADIR)/$$INST_PATH/$$ELEMENT; \ fi; \ fi; \ done; clean:: rm -f $(LIB_DIR)/*.a rm -f $(LIB_DIR)/*.so rm -f Bin/MorphGen rm -f Bin/TestLem rm -f Bin/TestLemClient rm -rf Dicts/SrcMorph rm -rf Dicts/Morph/Rus rm -rf Dicts/Morph/Eng rm -rf Dicts/Morph/Ger $(MAKE) -C $(AGRAMTABLIB_DIR) $@ $(MAKE) -C $(COMMON_DIR) $@ $(MAKE) -C $(GRAPHANLIB_DIR) $@ $(MAKE) -C $(LEMMATIZERLIB_DIR) $@ $(MAKE) -C $(MORPHWIZARDLIB_DIR) $@ $(MAKE) -C $(STRUCTDICTLIB_DIR) $@ $(MAKE) -C $(MORPHGEN_DIR) $@ $(MAKE) -C $(PCRE_DIR) $@ $(MAKE) -C $(TESTLEM_DIR) $@ $(MAKE) -C $(LEMCLIENTLIB_DIR) $@ $(MAKE) -C $(TESTLEMCLIENT_DIR) $@ distclean:: clean rm -f Makefile config.cache config.log config.status rm -rf autom4te.cache find . -name Makefile -print -exec rm -f {} \; find . -name depends -print -exec rm -f {} \; rm -f *~ core dist:: distclean cd $(BUILDROOT)/;tar zcvf $(BUILDROOT)/$(COMPILEABLE_NAME)_dist.tgz *