# This is a basic makefile that uses a flat directory structure. It could be # expanded to support multiple subdirectories and/or libraries # # Compilers to use CC=gcc CXX=g++ AR=ar RANLIB=ranlib ECHOEN=echo -en LEX=flex YACC=bison IWIDL=$(which iwidl) # Flags for the compilers # # Think about those as additionals : # -fvtable-gc # -ffunction-sections # -Wl,--gc-sections # -frepo # # FPIC=-fPIC # flags that are shared by all compiler/pic variations COMMONFLAGS=-pipe -Wall -D_REENTRANT # flags that should be specified if doing an optimized build OPTFLAGS=-O3 -ffast-math # flags that are specified when doing a debug build DEBUGFLAGS=-ggdb3 -D_GLIBCXX_DEBUG #-D_REENTRANT #-O3 -march=pentium4 -march=pentium4 -mfpmath=sse,387 -ffast-math -O3 #-fmudflapth #-march=pentium4 -mcpu=pentium4 # -fstack-check -fmudflap #-fmudflapth -fmudflapir #-ansi -pedantic #-W #CXXFLAGS= -pipe -Wall -g -ffast-math -O3 -march=pentium4 -mcpu=pentium4 #-mtune=pentium4 # flags for building non-pic objects (.ao) CSTATFLAGS=$(COMMONFLAGS) CXXSTATFLAGS=$(COMMONFLAGS) # flags for building pic objects (.o) CFLAGS=$(COMMONFLAGS) $(FPIC) CXXFLAGS=$(COMMONFLAGS) $(FPIC) # Flags for the linker CXXLDFLAGS=$(LIBLIBS) $(LIBFLAGS) ifneq ($(MAKECMDGOALS),conf) ifneq ($(MAKECMDGOALS),config) ifneq ($(MAKECMDGOALS),count) # include generated configuration -include $(TOPDIR)/makefile.conf endif endif endif # Those need the stuff from makefile.conf BINDIR=$(PREFIX)/bin/ SHAREDIR=$(PREFIX)/share/ DOCDIR=$(SHAREDIR)/doc/packages/$(DISTDIR) LIBDIR=$(PREFIX)/lib/ INCDIR=$(PREFIX)/include/ LIB=$(LIBNAME).$(DYN_SUFFIX).$(LIBVERSION) STATLIB=$(LIBNAME).a # Where do we search for libfiles ? LIBINCLUDE=-L$(LIBDIR) -L$(LIBSEARCH) # Where do we search for include files ? INCLUDE=-I . -I $(PREFIX)/include/ $(INCLUDES) -I ./idl DEPFLAG=-MM $(INCLUDE) -I ./include # For displaying purposes #ESC=`echo -en "\033"` ESC=`$(ECHOEN) "\033"` RED="$(ESC)[1;31m" GRN="$(ESC)[1;32m" YEL="$(ESC)[1;33m" BLU="$(ESC)[1;34m" VIO="$(ESC)[1;35m" TUK="$(ESC)[1;36m" WHT="$(ESC)[1;37m" NOR="$(ESC)[m" STERILFILES?=nix STERILDIR?=nix EXTRACLEANFILES?=nix SUBDIR=$(notdir $(PWD)) SUBLIBFILES=$(LIBFILES_$(SUBDIR)) SUBLIBNAME=lib-$(SUBDIR).a SUBLIBFILES=$(foreach subdir,$(SRCDIRS), $(foreach file,$(LIBFILES_$(notdir $(subdir))),$(subdir)/$(file))) SUBLIBBASE=$(basename $(SUBLIBFILES)) PREFILES=$(addsuffix .pp, $(SUBLIBBASE)) STATFILES=$(addsuffix .ao, $(SUBLIBBASE)) SUBLIBCXXS=$(addsuffix .cpp, $(SUBLIBBASE)) TRANSBASE=$(basename $(TRANSTEMPLATE)) TRANSMO=$(addsuffix .mo, $(TRANSBASE)) # be aware, those are all sourcefiles, not only those going into library. CXXSRCFILES=$(foreach subdir,$(SRCDIRS), $(wildcard $(subdir)/*.cpp $(subdir)/*.cc )) CSRCFILES=$(foreach subdir,$(SRCDIRS), $(wildcard $(subdir)/*.c)) TRANSFILES=$(foreach subdir,$(TRANSDIRS), $(wildcard $(subdir)/*.cpp $(subdir)/*.cc $(subdir)/*.c $(subdir)/*.h)) EXTRAINCLUDES=$(foreach subdir,$(SRCDIRS), -I $(subdir)) SUBLIBS=$(foreach subdir,$(SRCDIRS),$(subdir)/lib-$(notdir $(subdir)).a) FULLLIB=$(TOPDIR)/lib/$(LIB) ifeq ($(NOSTATLIB),true) FULLSTATLIB= else FULLSTATLIB=$(TOPDIR)/lib/$(STATLIB) endif CXXSTATFLAGS:=-MMD $(CXXSTATFLAGS) CSTATFLAGS:=-MMD $(CSTATFLAGS) CXXFLAGS:=-MMD $(CXXFLAGS) CFLAGS:=-MMD $(CFLAGS) DEPDIR=. #ifdef CSRCFILES #$(warning CSRCFILES IS DEFINED as \#$(CSRCFILES)\#) #else #$(warning CSRCFILES IS NOT DEFINED) #endif ifneq ($(strip $(CSRCFILES)),) #$(warning CSRCFILES IS DEFINED as \#$(CRCFILES)\#) -include $(CSRCFILES:%.c=$(DEPDIR)/%.P) endif ifneq ($(strip $(CXXSRCFILES)),) #$(warning CXXSRCFILES IS DEFINED as \#$(CXXSRCFILES)\#) -include $(patsubst %.cc,$(DEPDIR)/%.P,$(CXXSRCFILES:%.cpp=$(DEPDIR)/%.P)) #-include $(CXXSRCFILES:%.cc=$(DEPDIR)/%.P) endif # cp $*.d $*.P # sed -e 's/#.*//' -e 's/^[^:]*: *//'| tee -a $*.P | sed -e "s|\.o|.ao|" >> $*.P # # START TARGETS # ifneq ($(MAKECMDGOALS),steril) $(TOPDIR)/makefile.conf: $(TOPDIR)/configure $(TOPDIR)/conf/functions $(TOPDIR)/conf/Makefile.common @echo $(RED)You need to run $(TOPDIR)/configure before starting compilation$(NOR) @$(MAKE) config # @exit 1 endif conf config: $(TOPDIR)/configure $(TOPDIR)/conf/functions $(TOPDIR)/conf/Makefile.common @./configure ifeq ($(ROOTDIR),true) lib libs: $(FULLLIB) $(FULLSTATLIB) trans $(SUBLIBFILES): makefile.conf $(STATFILES): makefile.conf $(FULLLIB): $(SUBLIBFILES) @echo $(BLU)[LD]$(NOR) $(LIB) @$(CXX) $(LIBINCLUDE) $(CXXLDFLAGS)$(LIB) $(SUBLIBFILES) -o $(TOPDIR)/lib/$(LIB) $(FULLSTATLIB): $(STATFILES) @echo $(BLU)[AR]$(NOR) $(STATLIB) @$(AR) r $(TOPDIR)/lib/$(STATLIB) $(STATFILES) @$(RANLIB) $(TOPDIR)/lib/$(STATLIB) confcheck: @echo "This is the current makefile configuration:" @echo "CFLAGS=$(CFLAGS)" @echo "CXXFLAGS=$(CXXFLAGS)" @echo "CSTATFLAGS=$(CSTATFLAGS)" @echo "CXXSTATFLAGS=$(CXXSTATFLAGS)" @echo "SUBLIBFILES=$(SUBLIBFILES)" @echo "SUBLIBBASE=$(SUBLIBBASE)" @echo "STATFILES=$(STATFILES)" @echo "PREFILES=$(PREFILES)" trans: @make -C $(TRANSDIR) trans merge: @make -C $(TRANSDIR) merge pre: $(PREFILES) @echo Generated all Preprocessor files @ls -la $(PREFILES) extract: @echo $(YEL)[XGETTEXT]$(NOR) $(TRANSFILES) @xgettext --omit-header -C -n -kI18NTRANS -ktrans include/*.h $(TRANSFILES) -j -o $(TRANSDIR)/$(TRANSTEMPLATE) endif $(LIBDIR): @echo $(BLU)[MKDIR]$(NOR) $@ @mkdir -p $@ $(INCDIR): @echo $(BLU)[MKDIR]$(NOR) $@ @mkdir -p $@ clean:: @echo $(VIO)[CLEAN]$(NOR) $(PWD) @for dir in $(SRCDIRS); do \ (rm -f *.o .depend* $$dir/*.moc.cpp $$dir/*.o $$dir/.depend* $$dir/$(EXTRACLEANFILES)) \ done distclean: steril @echo $(VIO)[DISTCLEAN]$(NOR) $(PWD) @rm -f *.tar.bz2 @rm -f *.tar @rm -f *.tar.rk @rm -f config.cache mrproper steril: clean @echo $(VIO)[STERIL]$(NOR) $(PWD) @rm -rf $(STERILDIRS) @rm -f $(STERILFILES) @for dir in $(SRCDIRS); do \ (rm -f *.a *.s $$dir/*.a $$dir/*.s *.log *.tag) \ done .PHONY: doku docs doc conf config doku docs doc: @rm -f doxygen.log @echo $(BLU)[DOXYGEN]$(NOR) doxygen.conf \> doxygen.log @$(DOXYGEN) doxygen.conf &> doxygen.log # This adds dependencies for .o as well as .ao files and fake targets for the # files, in case we change the dependency of one. fixup_dependencies = rm -f $(1).P; \ cat $(1).d | tee -a $(1).P | sed -e "s|\.o|.ao|" >> $(1).P; \ sed -e "s/\#.*//" -e "s/^[^:]*: *//" -e "s/ *\\\\$$//" -e "/^$$/ d" -e "s/$$/ :/" -e "s/^[ ]*//"< $(1).d >> $(1).P # Generic targets for objects that go into shared object files %.ao:%.cpp @echo $(TUK)[CXX]$(NOR) $*.ao @$(CXX) $(CXXSTATFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -c $*.cpp -o $*.ao @$(call fixup_dependencies,$*) %.ao:%.cc @echo $(TUK)[CXX]$(NOR) $*.ao @$(CXX) $(CXXSTATFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -c $*.cc -o $*.ao @$(call fixup_dependencies,$*) %.ao:%.c @echo $(YEL)[CC]$(NOR) $*.ao @$(CC) $(CSTATFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -c $*.c -o $*.ao @$(call fixup_dependencies,$*) # Generic targets for objects that go into ar archives %.o:%.cpp @echo $(TUK)[CXX]$(NOR) $*.o @$(CXX) $(CXXFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -c $*.cpp -o $*.o @$(call fixup_dependencies,$*) %.o:%.cc @echo $(TUK)[CXX]$(NOR) $*.o @$(CXX) $(CXXFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -c $*.cc -o $*.o @$(call fixup_dependencies,$*) %.o:%.c @echo $(YEL)[CC]$(NOR) $*.o @$(CC) $(CFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -c $*.c -o $*.o @$(call fixup_dependencies,$*) # the following are the same targets for generating assembler and preprocessed files %.s:%.cpp @echo $(RED)[CXX -S]$(NOR) $*.s $(CXX) $(CXXFLAGS) -S $(INCLUDE) $(EXTRAINCLUDES) -c $*.cpp -o $*.s @$(call fixup_dependencies,$*) %.s:%.cc @echo $(RED)[CXX -S]$(NOR) $*.s $(CXX) $(CXXFLAGS) -S $(INCLUDE) $(EXTRAINCLUDES) -c $*.cc -o $*.s @$(call fixup_dependencies,$*) %.s:%.c @echo $(RED)[CC -S]$(NOR) $*.s @$(CC) $(CFLAGS) -S $(INCLUDE) $(EXTRAINCLUDES) -c $*.c -o $*.s @$(call fixup_dependencies,$*) %.as:%.cpp @echo $(RED)[CXX -S]$(NOR) $*.as $(CXX) $(CXXSTATFLAGS) -S $(INCLUDE) $(EXTRAINCLUDES) -c $*.cpp -o $*.as @$(call fixup_dependencies,$*) %.as:%.cc @echo $(RED)[CXX -S]$(NOR) $*.as $(CXX) $(CXXSTATFLAGS) -S $(INCLUDE) $(EXTRAINCLUDES) -c $*.cc -o $*.as @$(call fixup_dependencies,$*) %.as:%.c @echo $(RED)[CC -S]$(NOR) $*.as @$(CC) $(CSTATFLAGS) -S $(INCLUDE) $(EXTRAINCLUDES) -c $*.c -o $*.as @$(call fixup_dependencies,$*) %.pp:%.cpp @echo $(RED)[CXX -E]$(NOR) $*.pp $(CXX) $(CXXFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -E -dD -c $*.cpp -o $*.pp @$(call fixup_dependencies,$*) %.pp:%.cc @echo $(RED)[CXX -E]$(NOR) $*.pp $(CXX) $(CXXFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -E -dD -c $*.cpp -o $*.pp @$(call fixup_dependencies,$*) %.p:%.c @echo $(RED)[CC -E]$(NOR) $*.p $(CC) $(CFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -E -dD -c $*.cpp -o $*.p @$(call fixup_dependencies,$*) %.app:%.cpp @echo $(RED)[CXX -E]$(NOR) $*.app $(CXX) $(CXXSTATFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -E -dD -c $*.cpp -o $*.app @$(call fixup_dependencies,$*) %.app:%.cc @echo $(RED)[CXX -E]$(NOR) $*.app $(CXX) $(CXXSTATFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -E -dD -c $*.cpp -o $*.app @$(call fixup_dependencies,$*) %.ap:%.c @echo $(RED)[CC -E]$(NOR) $*.ap $(CC) $(CSTATFLAGS) $(INCLUDE) $(EXTRAINCLUDES) -E -dD -c $*.cpp -o $*.ap @$(call fixup_dependencies,$*) %.cc:%.lex $(LEX) -d -o$*.cc $*.lex %.yy.cc:%.y $(YACC) -g -t --verbose -o $*.yy.cc -b $* -d $*.y %.yy.hh:%.y $(YACC) -g -t --verbose -o $*.yy.cc -b $* -d $*.y %common.cpp:%.idl $(IWIDL) $(IWIDL) -o $* -l cpp $*.idl %common.h:%.idl $(IWIDL) $(IWIDL) -o $* -l cpp $*.idl %server.cpp:%.idl $(IWIDL) $(IWIDL) -o $* -l cpp $*.idl %server.h:%.idl $(IWIDL) $(IWIDL) -o $* -l cpp $*.idl %client.cpp:%.idl $(IWIDL) $(IWIDL) -o $* -l cpp $*.idl %client.h:%.idl $(IWIDL) $(IWIDL) -o $* -l cpp $*.idl .SECONDARY:$(wildcard */*.moc.cpp) define MOC_TEMPLATE $(1)/%.moc.cpp:include/%.h @echo $$(TUK)[MOC]$$(NOR) $$^ @$$(MOC) $$^ > $$@ endef $(foreach dir,$(SRCDIRS), $(eval $(call MOC_TEMPLATE,$(dir)))) ifneq ($(ROOTDIR),true) sublib: $(SUBLIBFILES) @echo $(BLU)[AR]$(NOR) $(SUBLIBNAME) @$(AR) r $(SUBLIBNAME) $(SUBLIBFILES) @$(AR) s $(SUBLIBNAME) #dep depend .depend: # @echo $(TUK)[CXX -M]$(NOR) \*.cpp # @test `(ls -1 *.cpp 2>/dev/null | head -n 1)` && $(CXX) $(DEPFLAG) *.cpp > .depend 2> .depend.err || touch .depend # @echo $(YEL)[CC -M]$(NOR) \*.c # @test `(ls -1 *.c 2>/dev/null | head -n 1)` && $(CC) $(DEPFLAG) *.c >> .depend 2>> .depend.err || touch .depend # @echo -n $(RED)[CHECK]$(NOR) .depend.err" " # @(test -s .depend.err && echo [$(RED)ERROR$(NOR)]) || echo [$(GRN)OK$(NOR)] else #depend dep .depend: # @echo $(VIO)[MAKE]$(NOR) $(SRCDIR) # @for dir in $(SRCDIRS); do \ # (cd $$dir; $(MAKE) depend) \ # done # @rm -f .depend .depend.err # @for dir in $(SRCDIRS); do \ # (echo $(TUK)[CXX -M]$(NOR) $$dir/\*.cpp; \ # test `(ls -1 $$dir/*.cpp 2>/dev/null | head -n 1)` && $(CXX) $(DEPFLAG) $$dir/*.cpp 2>> .depend.err | sed -e "s|^[a-zA-Z0-9].*\.o|$$dir/&|" | tee -a .depend | sed -e "s|\.o|.ao|" >> .depend || touch .depend; \ # echo $(YEL)[CC -M]$(NOR) $$dir/\*.c; \ # test `(ls -1 $$dir/*.c 2>/dev/null | head -n 1)` && $(CC) $(DEPFLAG) $$dir/*.c 2>> .depend.err | sed -e "s|^[a-zA-Z0-9].*\.o|$$dir/&|" | tee -a .depend | sed -e "s|\.o|.ao|" >> .depend || touch .depend; \ # echo -n $(RED)[CHECK]$(NOR) .depend.err" "; \ # (test -s .depend.err && echo [$(RED)ERROR$(NOR)]) || echo [$(GRN)OK$(NOR)] ) \ # done endif dep depend .depend: @echo "The generation of dependencies has been incorporated into the normal" @echo "build procedure. There is no seperate dependency step necessary anymore" .PHONY: help lib libs $(DISTDIR) help: @echo @echo $(WHT)Help for iwear $(DISTNAME)$(NOR) @echo @echo Possible Targets \($(GRN)green$(NOR) is default target\) @echo @echo -e $(GRN)lib$(NOR) "\t" Create ./lib/$(LIBNAME).so @echo -e $(TUK)test$(NOR) "\t" Create test program\(s\) in $(SRCDIR) @echo -e $(TUK)help$(NOR) "\t" Display this help screen @echo -e $(TUK)depend$(NOR) "\t" Generate dependencies @echo -e $(TUK)clean$(NOR) "\t" Remove compiler generated files @echo -e $(TUK)steril$(NOR) "\t" Remove all generated files too @echo -e $(RED)link$(NOR) "\t" Create links necessary for linking @echo -e $(RED)dist$(NOR) "\t" Create links necessary for linking @echo $(DISTDIR): distclean @echo $(BLU)[MKDIR]$(NOR) $(DISTDIR) @mkdir -p .$(DISTDIR) @cp -r * .$(DISTDIR) @mv .$(DISTDIR) $(DISTDIR)-$(LIBVERSION) tar dist: $(DISTDIR) @echo $(BLU)[TAR]$(NOR) $(DISTDIR)-$(LIBVERSION).tar.bz2 @tar cjf $(DISTDIR)-$(LIBVERSION).tar.bz2 $(DISTDIR)-$(LIBVERSION) @rm -rf $(DISTDIR)-$(LIBVERSION) @mv $(DISTDIR)-$(LIBVERSION).tar.bz2 $$(pwd | sed 's/\/[^/]*$$//') @echo "sed 's/%$(DISTNAME)_VERSION%/$(LIBVERSION)/" >> $$(pwd | sed 's/\/[^/]*$$//')/distseds rk rkdist: distclean @echo $(BLU)[TAR]$(NOR) $(DISTDIR)-$(LIBVERSION).tar @tar cf $(DISTDIR)-$(LIBVERSION).tar $(DISTDIR)-$(LIBVERSION) @echo $(BLU)[RK]$(NOR) $(DISTDIR)-$(LIBVERSION).tar.rk @rk -mx $(DISTDIR)-$(LIBVERSION).tar.rk $(DISTDIR)-$(LIBVERSION).tar @rm -f $(DISTDIR)-$(LIBVERSION).tar @rm -rf $(DISTDIR)-$(LIBVERSION) iwear/iwear.h: @echo $(YEL)Cannot find iwear/iwear.h did you forgot to $(RED)make link$(YEL) in iwear/$(SRCDIR) ?$(NOR) @exit 1 count cnt: @echo $(GRN)[WC]$(NOR) *.cpp *.h @find | egrep "\.cpp$$|\.h$$" | xargs wc scount scnt: @echo $(GRN)[SLOCCOUNT]$(NOR) *.cpp *.h @sloccount --addlangall . SRCHOME=$(PWD) ifdef DISTNAME ifdef LIBNAME .PHONY: lnk links link rechts install rechts lnk links link:: $(LIBDIR) $(INCDIR) @if [ "$(DISTNAME)" != "$$(echo $(DISTNAME) | sed 's/[\*\?\/]//g' )" ];\ then\ echo "ERROR: DISTNAME INVALID";\ exit 1; \ fi @echo $(GRN)[LN -s]$(NOR) $(LIB) @cd "$(LIBDIR)"; rm -f $(LIBNAME)* @cd "$(LIBDIR)";ln -sf "$(SRCHOME)/lib/$(LIB)" @cd "$(LIBDIR)";ln -sf "$(LIB)" "$(LIBNAME).$(DYN_SUFFIX)" @echo $(GRN)[LN -s]$(NOR) $(LIBNAME).a @cd $(LIBDIR) ;ln -sf "$(SRCHOME)/lib/$(STATLIB)" "$(LIBNAME).a" @echo $(GRN)[LN -s]$(NOR) $(DISTNAME) @cd $(INCDIR); rm -rf $(DISTNAME) @cd $(INCDIR); ln -sf "$(SRCHOME)/include/" "$(DISTNAME)" @mkdir -p $(SHAREDIR)/locale/de_DE/LC_MESSAGES/ @mkdir -p $(SHAREDIR)/locale/ru_RU/LC_MESSAGES/ @mkdir -p $(SHAREDIR)/locale/zh_CN/LC_MESSAGES/ @mkdir -p $(SHAREDIR)/locale/fr_FR/LC_MESSAGES/ @cd $(SHAREDIR)/locale/de_DE/LC_MESSAGES/; ln -sf "$(SRCHOME)/share/locale/de_DE/LC_MESSAGES/$(TRANSMO)" . @cd $(SHAREDIR)/locale/ru_RU/LC_MESSAGES/; ln -sf "$(SRCHOME)/share/locale/ru_RU/LC_MESSAGES/$(TRANSMO)" . @cd $(SHAREDIR)/locale/zh_CN/LC_MESSAGES/; ln -sf "$(SRCHOME)/share/locale/zh_CN/LC_MESSAGES/$(TRANSMO)" . @cd $(SHAREDIR)/locale/fr_FR/LC_MESSAGES/; ln -sf "$(SRCHOME)/share/locale/fr_FR/LC_MESSAGES/$(TRANSMO)" . install: lib @echo $(YEL)Removing old files and versions$(NOR) @cd $(DEST)$(LIBDIR); rm -f $(LIBNAME)* @cd $(DEST)$(INCDIR); rm -rf $(DISTNAME) @echo $(YEL)[CP]$(NOR) $(LIB) @mkdir -p $(DEST)$(LIBDIR) @cp $(TOPDIR)/lib/$(LIB) $(DEST)$(LIBDIR) @echo $(YEL)[CP]$(NOR) $(STATLIB) @cp $(TOPDIR)/lib/$(STATLIB) $(DEST)$(LIBDIR) @echo $(GRN)[LN -s]$(NOR) $(LIBNAME).$(DYN_SUFFIX) @cd $(DEST)$(LIBDIR); ln -s $(LIB) $(LIBNAME).$(DYN_SUFFIX) @mkdir -p $(DEST)$(INCDIR)/$(DISTNAME)/ @cp include/*.h* $(DEST)$(INCDIR)/$(DISTNAME)/ @mkdir -p $(DEST)$(SHAREDIR)/locale/de_DE/LC_MESSAGES @cd $(DEST)$(SHAREDIR)/locale/de_DE/LC_MESSAGES/; \ for mo in "$(SRCHOME)/share/locale/de_DE/LC_MESSAGES/*.mo"; do\ (rm -f $$(basename $$mo); cp $$mo .) \ done @mkdir -p $(DEST)$(SHAREDIR)/locale/ru_RU/LC_MESSAGES @cd $(DEST)$(SHAREDIR)/locale/ru_RU/LC_MESSAGES/; \ for mo in "$(SRCHOME)/share/locale/ru_RU/LC_MESSAGES/*.mo"; do\ (rm -f $$(basename $$mo); cp $$mo .) \ done @mkdir -p $(DEST)$(SHAREDIR)/locale/zh_CN/LC_MESSAGES @cd $(DEST)$(SHAREDIR)/locale/zh_CN/LC_MESSAGES/; \ for mo in "$(SRCHOME)/share/locale/zh_CN/LC_MESSAGES/*.mo"; do\ (rm -f $$(basename $$mo); cp $$mo .) \ done @mkdir -p $(DEST)$(SHAREDIR)/locale/fr_FR/LC_MESSAGES @cd $(DEST)$(SHAREDIR)/locale/fr_FR/LC_MESSAGES/; \ for mo in "$(SRCHOME)/share/locale/fr_FR/LC_MESSAGES/*.mo"; do\ (rm -f $$(basename $$mo); cp $$mo .) \ done doc-install: @echo $(YEL)Removing old files and versions$(NOR) @cd $(DEST)$(DOCDIR); cd ..; rm -rf $(DISTDIR) @mkdir -p $(DEST)$(DOCDIR) @echo $(YEL)[CP]$(NOR) doc @cd doc;cp -r html $(DEST)$(DOCDIR)/ @cp COPYING $(DEST)$(DOCDIR) update: svn up $(MAKE) steril ./configure $(MAKE) -C . dep $(MAKE) -C . lnk $(MAKE) -C . lib endif endif