Import dependencies
							parent
							
								
									847ebdba43
								
							
						
					
					
						commit
						fc564f19b2
					
				| @ -0,0 +1,19 @@ | ||||
| // Copyright (c) 2011 Google, Inc. | ||||
| // | ||||
| // Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| // of this software and associated documentation files (the "Software"), to deal | ||||
| // in the Software without restriction, including without limitation the rights | ||||
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| // copies of the Software, and to permit persons to whom the Software is | ||||
| // furnished to do so, subject to the following conditions: | ||||
| // | ||||
| // The above copyright notice and this permission notice shall be included in | ||||
| // all copies or substantial portions of the Software. | ||||
| // | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
| // THE SOFTWARE. | ||||
| @ -0,0 +1,4 @@ | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
| SUBDIRS = src | ||||
| 
 | ||||
| dist_doc_DATA = README NEWS COPYING | ||||
| @ -0,0 +1,799 @@ | ||||
| # Makefile.in generated by automake 1.11.3 from Makefile.am.
 | ||||
| # @configure_input@
 | ||||
| 
 | ||||
| # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 | ||||
| # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
 | ||||
| # Foundation, Inc.
 | ||||
| # This Makefile.in is free software; the Free Software Foundation
 | ||||
| # gives unlimited permission to copy and/or distribute it,
 | ||||
| # with or without modifications, as long as this notice is preserved.
 | ||||
| 
 | ||||
| # This program is distributed in the hope that it will be useful,
 | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 | ||||
| # PARTICULAR PURPOSE.
 | ||||
| 
 | ||||
| @SET_MAKE@ | ||||
| 
 | ||||
| VPATH = @srcdir@ | ||||
| pkgdatadir = $(datadir)/@PACKAGE@ | ||||
| pkgincludedir = $(includedir)/@PACKAGE@ | ||||
| pkglibdir = $(libdir)/@PACKAGE@ | ||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| build_triplet = @build@ | ||||
| host_triplet = @host@ | ||||
| subdir = . | ||||
| DIST_COMMON = README $(am__configure_deps) $(dist_doc_DATA) \
 | ||||
| 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 | ||||
| 	$(srcdir)/config.h.in $(top_srcdir)/configure COPYING NEWS \
 | ||||
| 	config.guess config.sub depcomp install-sh ltmain.sh missing | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 | ||||
| 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
 | ||||
| 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
 | ||||
| 	$(top_srcdir)/configure.ac | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 | ||||
| 	$(ACLOCAL_M4) | ||||
| am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 | ||||
|  configure.lineno config.status.lineno | ||||
| mkinstalldirs = $(install_sh) -d | ||||
| CONFIG_HEADER = config.h | ||||
| CONFIG_CLEAN_FILES = | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| SOURCES = | ||||
| DIST_SOURCES = | ||||
| RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 | ||||
| 	html-recursive info-recursive install-data-recursive \
 | ||||
| 	install-dvi-recursive install-exec-recursive \
 | ||||
| 	install-html-recursive install-info-recursive \
 | ||||
| 	install-pdf-recursive install-ps-recursive install-recursive \
 | ||||
| 	installcheck-recursive installdirs-recursive pdf-recursive \
 | ||||
| 	ps-recursive uninstall-recursive | ||||
| am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||||
| am__vpath_adj = case $$p in \
 | ||||
|     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
 | ||||
|     *) f=$$p;; \
 | ||||
|   esac; | ||||
| am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||||
| am__install_max = 40 | ||||
| am__nobase_strip_setup = \
 | ||||
|   srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||||
| am__nobase_strip = \
 | ||||
|   for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||||
| am__nobase_list = $(am__nobase_strip_setup); \
 | ||||
|   for p in $$list; do echo "$$p $$p"; done | \
 | ||||
|   sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
 | ||||
|   $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
 | ||||
|     if (++n[$$2] == $(am__install_max)) \
 | ||||
|       { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
 | ||||
|     END { for (dir in files) print dir, files[dir] }' | ||||
| am__base_list = \
 | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
 | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||||
| am__uninstall_files_from_dir = { \
 | ||||
|   test -z "$$files" \
 | ||||
|     || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
 | ||||
|     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
 | ||||
|          $(am__cd) "$$dir" && rm -f $$files; }; \
 | ||||
|   } | ||||
| am__installdirs = "$(DESTDIR)$(docdir)" | ||||
| DATA = $(dist_doc_DATA) | ||||
| RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
 | ||||
|   distclean-recursive maintainer-clean-recursive | ||||
| AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
 | ||||
| 	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
 | ||||
| 	distdir dist dist-all distcheck | ||||
| ETAGS = etags | ||||
| CTAGS = ctags | ||||
| DIST_SUBDIRS = $(SUBDIRS) | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| distdir = $(PACKAGE)-$(VERSION) | ||||
| top_distdir = $(distdir) | ||||
| am__remove_distdir = \
 | ||||
|   if test -d "$(distdir)"; then \
 | ||||
|     find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
 | ||||
|       && rm -rf "$(distdir)" \
 | ||||
|       || { sleep 5 && rm -rf "$(distdir)"; }; \
 | ||||
|   else :; fi | ||||
| am__relativize = \
 | ||||
|   dir0=`pwd`; \
 | ||||
|   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
 | ||||
|   sed_rest='s,^[^/]*/*,,'; \
 | ||||
|   sed_last='s,^.*/\([^/]*\)$$,\1,'; \
 | ||||
|   sed_butlast='s,/*[^/]*$$,,'; \
 | ||||
|   while test -n "$$dir1"; do \
 | ||||
|     first=`echo "$$dir1" | sed -e "$$sed_first"`; \
 | ||||
|     if test "$$first" != "."; then \
 | ||||
|       if test "$$first" = ".."; then \
 | ||||
|         dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
 | ||||
|         dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
 | ||||
|       else \
 | ||||
|         first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
 | ||||
|         if test "$$first2" = "$$first"; then \
 | ||||
|           dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
 | ||||
|         else \
 | ||||
|           dir2="../$$dir2"; \
 | ||||
|         fi; \
 | ||||
|         dir0="$$dir0"/"$$first"; \
 | ||||
|       fi; \
 | ||||
|     fi; \
 | ||||
|     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
 | ||||
|   done; \
 | ||||
|   reldir="$$dir2" | ||||
| DIST_ARCHIVES = $(distdir).tar.gz | ||||
| GZIP_ENV = --best | ||||
| distuninstallcheck_listfiles = find . -type f -print | ||||
| am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
 | ||||
|   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' | ||||
| distcleancheck_listfiles = find . -type f -print | ||||
| ACLOCAL = @ACLOCAL@ | ||||
| AMTAR = @AMTAR@ | ||||
| AR = @AR@ | ||||
| AUTOCONF = @AUTOCONF@ | ||||
| AUTOHEADER = @AUTOHEADER@ | ||||
| AUTOMAKE = @AUTOMAKE@ | ||||
| AWK = @AWK@ | ||||
| CC = @CC@ | ||||
| CCDEPMODE = @CCDEPMODE@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CPP = @CPP@ | ||||
| CPPFLAGS = @CPPFLAGS@ | ||||
| CXX = @CXX@ | ||||
| CXXCPP = @CXXCPP@ | ||||
| CXXDEPMODE = @CXXDEPMODE@ | ||||
| CXXFLAGS = @CXXFLAGS@ | ||||
| CYGPATH_W = @CYGPATH_W@ | ||||
| DEFS = @DEFS@ | ||||
| DEPDIR = @DEPDIR@ | ||||
| DLLTOOL = @DLLTOOL@ | ||||
| DSYMUTIL = @DSYMUTIL@ | ||||
| DUMPBIN = @DUMPBIN@ | ||||
| ECHO_C = @ECHO_C@ | ||||
| ECHO_N = @ECHO_N@ | ||||
| ECHO_T = @ECHO_T@ | ||||
| EGREP = @EGREP@ | ||||
| EXEEXT = @EXEEXT@ | ||||
| FGREP = @FGREP@ | ||||
| GREP = @GREP@ | ||||
| INSTALL = @INSTALL@ | ||||
| INSTALL_DATA = @INSTALL_DATA@ | ||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||||
| LD = @LD@ | ||||
| LDFLAGS = @LDFLAGS@ | ||||
| LIBOBJS = @LIBOBJS@ | ||||
| LIBS = @LIBS@ | ||||
| LIBTOOL = @LIBTOOL@ | ||||
| LIPO = @LIPO@ | ||||
| LN_S = @LN_S@ | ||||
| LTLIBOBJS = @LTLIBOBJS@ | ||||
| MAKEINFO = @MAKEINFO@ | ||||
| MANIFEST_TOOL = @MANIFEST_TOOL@ | ||||
| MKDIR_P = @MKDIR_P@ | ||||
| NM = @NM@ | ||||
| NMEDIT = @NMEDIT@ | ||||
| OBJDUMP = @OBJDUMP@ | ||||
| OBJEXT = @OBJEXT@ | ||||
| OTOOL = @OTOOL@ | ||||
| OTOOL64 = @OTOOL64@ | ||||
| PACKAGE = @PACKAGE@ | ||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||||
| PACKAGE_NAME = @PACKAGE_NAME@ | ||||
| PACKAGE_STRING = @PACKAGE_STRING@ | ||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||||
| PACKAGE_URL = @PACKAGE_URL@ | ||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ | ||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ | ||||
| RANLIB = @RANLIB@ | ||||
| SED = @SED@ | ||||
| SET_MAKE = @SET_MAKE@ | ||||
| SHELL = @SHELL@ | ||||
| STRIP = @STRIP@ | ||||
| VERSION = @VERSION@ | ||||
| abs_builddir = @abs_builddir@ | ||||
| abs_srcdir = @abs_srcdir@ | ||||
| abs_top_builddir = @abs_top_builddir@ | ||||
| abs_top_srcdir = @abs_top_srcdir@ | ||||
| ac_ct_AR = @ac_ct_AR@ | ||||
| ac_ct_CC = @ac_ct_CC@ | ||||
| ac_ct_CXX = @ac_ct_CXX@ | ||||
| ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||||
| am__include = @am__include@ | ||||
| am__leading_dot = @am__leading_dot@ | ||||
| am__quote = @am__quote@ | ||||
| am__tar = @am__tar@ | ||||
| am__untar = @am__untar@ | ||||
| bindir = @bindir@ | ||||
| build = @build@ | ||||
| build_alias = @build_alias@ | ||||
| build_cpu = @build_cpu@ | ||||
| build_os = @build_os@ | ||||
| build_vendor = @build_vendor@ | ||||
| builddir = @builddir@ | ||||
| datadir = @datadir@ | ||||
| datarootdir = @datarootdir@ | ||||
| docdir = @docdir@ | ||||
| dvidir = @dvidir@ | ||||
| exec_prefix = @exec_prefix@ | ||||
| host = @host@ | ||||
| host_alias = @host_alias@ | ||||
| host_cpu = @host_cpu@ | ||||
| host_os = @host_os@ | ||||
| host_vendor = @host_vendor@ | ||||
| htmldir = @htmldir@ | ||||
| includedir = @includedir@ | ||||
| infodir = @infodir@ | ||||
| install_sh = @install_sh@ | ||||
| libdir = @libdir@ | ||||
| libexecdir = @libexecdir@ | ||||
| localedir = @localedir@ | ||||
| localstatedir = @localstatedir@ | ||||
| mandir = @mandir@ | ||||
| mkdir_p = @mkdir_p@ | ||||
| oldincludedir = @oldincludedir@ | ||||
| pdfdir = @pdfdir@ | ||||
| prefix = @prefix@ | ||||
| program_transform_name = @program_transform_name@ | ||||
| psdir = @psdir@ | ||||
| sbindir = @sbindir@ | ||||
| sharedstatedir = @sharedstatedir@ | ||||
| srcdir = @srcdir@ | ||||
| sysconfdir = @sysconfdir@ | ||||
| target_alias = @target_alias@ | ||||
| top_build_prefix = @top_build_prefix@ | ||||
| top_builddir = @top_builddir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
| SUBDIRS = src | ||||
| dist_doc_DATA = README NEWS COPYING | ||||
| all: config.h | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) all-recursive | ||||
| 
 | ||||
| .SUFFIXES: | ||||
| am--refresh: Makefile | ||||
| 	@: | ||||
| $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \
 | ||||
| 	  case '$(am__configure_deps)' in \
 | ||||
| 	    *$$dep*) \
 | ||||
| 	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
 | ||||
| 	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
 | ||||
| 		&& exit 0; \
 | ||||
| 	      exit 1;; \
 | ||||
| 	  esac; \
 | ||||
| 	done; \
 | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
 | ||||
| 	$(am__cd) $(top_srcdir) && \
 | ||||
| 	  $(AUTOMAKE) --foreign Makefile | ||||
| .PRECIOUS: Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \
 | ||||
| 	  *config.status*) \
 | ||||
| 	    echo ' $(SHELL) ./config.status'; \
 | ||||
| 	    $(SHELL) ./config.status;; \
 | ||||
| 	  *) \
 | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
 | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
 | ||||
| 	esac; | ||||
| 
 | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	$(SHELL) ./config.status --recheck | ||||
| 
 | ||||
| $(top_srcdir)/configure:  $(am__configure_deps) | ||||
| 	$(am__cd) $(srcdir) && $(AUTOCONF) | ||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) | ||||
| 	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) | ||||
| $(am__aclocal_m4_deps): | ||||
| 
 | ||||
| config.h: stamp-h1 | ||||
| 	@if test ! -f $@; then rm -f stamp-h1; else :; fi | ||||
| 	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi | ||||
| 
 | ||||
| stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status | ||||
| 	@rm -f stamp-h1 | ||||
| 	cd $(top_builddir) && $(SHELL) ./config.status config.h | ||||
| $(srcdir)/config.h.in:  $(am__configure_deps)  | ||||
| 	($(am__cd) $(top_srcdir) && $(AUTOHEADER)) | ||||
| 	rm -f stamp-h1 | ||||
| 	touch $@ | ||||
| 
 | ||||
| distclean-hdr: | ||||
| 	-rm -f config.h stamp-h1 | ||||
| 
 | ||||
| mostlyclean-libtool: | ||||
| 	-rm -f *.lo | ||||
| 
 | ||||
| clean-libtool: | ||||
| 	-rm -rf .libs _libs | ||||
| 
 | ||||
| distclean-libtool: | ||||
| 	-rm -f libtool config.lt | ||||
| install-dist_docDATA: $(dist_doc_DATA) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" | ||||
| 	@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
 | ||||
| 	for p in $$list; do \
 | ||||
| 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 | ||||
| 	  echo "$$d$$p"; \
 | ||||
| 	done | $(am__base_list) | \
 | ||||
| 	while read files; do \
 | ||||
| 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
 | ||||
| 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
 | ||||
| 	done | ||||
| 
 | ||||
| uninstall-dist_docDATA: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
 | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 | ||||
| 	dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) | ||||
| 
 | ||||
| # This directory's subdirectories are mostly independent; you can cd
 | ||||
| # into them and run `make' without going through this Makefile.
 | ||||
| # To change the values of `make' variables: instead of editing Makefiles,
 | ||||
| # (1) if the variable is set in `config.status', edit `config.status'
 | ||||
| #     (which will cause the Makefiles to be regenerated when you run `make');
 | ||||
| # (2) otherwise, pass the desired values on the `make' command line.
 | ||||
| $(RECURSIVE_TARGETS): | ||||
| 	@fail= failcom='exit 1'; \
 | ||||
| 	for f in x $$MAKEFLAGS; do \
 | ||||
| 	  case $$f in \
 | ||||
| 	    *=* | --[!k]*);; \
 | ||||
| 	    *k*) failcom='fail=yes';; \
 | ||||
| 	  esac; \
 | ||||
| 	done; \
 | ||||
| 	dot_seen=no; \
 | ||||
| 	target=`echo $@ | sed s/-recursive//`; \
 | ||||
| 	list='$(SUBDIRS)'; for subdir in $$list; do \
 | ||||
| 	  echo "Making $$target in $$subdir"; \
 | ||||
| 	  if test "$$subdir" = "."; then \
 | ||||
| 	    dot_seen=yes; \
 | ||||
| 	    local_target="$$target-am"; \
 | ||||
| 	  else \
 | ||||
| 	    local_target="$$target"; \
 | ||||
| 	  fi; \
 | ||||
| 	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 | ||||
| 	  || eval $$failcom; \
 | ||||
| 	done; \
 | ||||
| 	if test "$$dot_seen" = "no"; then \
 | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 | ||||
| 	fi; test -z "$$fail" | ||||
| 
 | ||||
| $(RECURSIVE_CLEAN_TARGETS): | ||||
| 	@fail= failcom='exit 1'; \
 | ||||
| 	for f in x $$MAKEFLAGS; do \
 | ||||
| 	  case $$f in \
 | ||||
| 	    *=* | --[!k]*);; \
 | ||||
| 	    *k*) failcom='fail=yes';; \
 | ||||
| 	  esac; \
 | ||||
| 	done; \
 | ||||
| 	dot_seen=no; \
 | ||||
| 	case "$@" in \
 | ||||
| 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
 | ||||
| 	  *) list='$(SUBDIRS)' ;; \
 | ||||
| 	esac; \
 | ||||
| 	rev=''; for subdir in $$list; do \
 | ||||
| 	  if test "$$subdir" = "."; then :; else \
 | ||||
| 	    rev="$$subdir $$rev"; \
 | ||||
| 	  fi; \
 | ||||
| 	done; \
 | ||||
| 	rev="$$rev ."; \
 | ||||
| 	target=`echo $@ | sed s/-recursive//`; \
 | ||||
| 	for subdir in $$rev; do \
 | ||||
| 	  echo "Making $$target in $$subdir"; \
 | ||||
| 	  if test "$$subdir" = "."; then \
 | ||||
| 	    local_target="$$target-am"; \
 | ||||
| 	  else \
 | ||||
| 	    local_target="$$target"; \
 | ||||
| 	  fi; \
 | ||||
| 	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 | ||||
| 	  || eval $$failcom; \
 | ||||
| 	done && test -z "$$fail" | ||||
| tags-recursive: | ||||
| 	list='$(SUBDIRS)'; for subdir in $$list; do \
 | ||||
| 	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 | ||||
| 	done | ||||
| ctags-recursive: | ||||
| 	list='$(SUBDIRS)'; for subdir in $$list; do \
 | ||||
| 	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 | ||||
| 	done | ||||
| 
 | ||||
| ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||||
| 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 | ||||
| 	unique=`for i in $$list; do \
 | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 | ||||
| 	  done | \
 | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 | ||||
| 	mkid -fID $$unique | ||||
| tags: TAGS | ||||
| 
 | ||||
| TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ | ||||
| 		$(TAGS_FILES) $(LISP) | ||||
| 	set x; \
 | ||||
| 	here=`pwd`; \
 | ||||
| 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 | ||||
| 	  include_option=--etags-include; \
 | ||||
| 	  empty_fix=.; \
 | ||||
| 	else \
 | ||||
| 	  include_option=--include; \
 | ||||
| 	  empty_fix=; \
 | ||||
| 	fi; \
 | ||||
| 	list='$(SUBDIRS)'; for subdir in $$list; do \
 | ||||
| 	  if test "$$subdir" = .; then :; else \
 | ||||
| 	    test ! -f $$subdir/TAGS || \
 | ||||
| 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 | ||||
| 	  fi; \
 | ||||
| 	done; \
 | ||||
| 	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
 | ||||
| 	unique=`for i in $$list; do \
 | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 | ||||
| 	  done | \
 | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 | ||||
| 	shift; \
 | ||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 | ||||
| 	  test -n "$$unique" || unique=$$empty_fix; \
 | ||||
| 	  if test $$# -gt 0; then \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
 | ||||
| 	      "$$@" $$unique; \
 | ||||
| 	  else \
 | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
 | ||||
| 	      $$unique; \
 | ||||
| 	  fi; \
 | ||||
| 	fi | ||||
| ctags: CTAGS | ||||
| CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ | ||||
| 		$(TAGS_FILES) $(LISP) | ||||
| 	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
 | ||||
| 	unique=`for i in $$list; do \
 | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 | ||||
| 	  done | \
 | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 | ||||
| 	test -z "$(CTAGS_ARGS)$$unique" \
 | ||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 | ||||
| 	     $$unique | ||||
| 
 | ||||
| GTAGS: | ||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \
 | ||||
| 	  && $(am__cd) $(top_srcdir) \
 | ||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" | ||||
| 
 | ||||
| distclean-tags: | ||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||||
| 
 | ||||
| distdir: $(DISTFILES) | ||||
| 	$(am__remove_distdir) | ||||
| 	test -d "$(distdir)" || mkdir "$(distdir)" | ||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 | ||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 | ||||
| 	list='$(DISTFILES)'; \
 | ||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \
 | ||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \
 | ||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
 | ||||
| 	case $$dist_files in \
 | ||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
 | ||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
 | ||||
| 			   sort -u` ;; \
 | ||||
| 	esac; \
 | ||||
| 	for file in $$dist_files; do \
 | ||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 | ||||
| 	  if test -d $$d/$$file; then \
 | ||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
 | ||||
| 	    if test -d "$(distdir)/$$file"; then \
 | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 | ||||
| 	    fi; \
 | ||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
 | ||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
 | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 | ||||
| 	    fi; \
 | ||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 | ||||
| 	  else \
 | ||||
| 	    test -f "$(distdir)/$$file" \
 | ||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \
 | ||||
| 	    || exit 1; \
 | ||||
| 	  fi; \
 | ||||
| 	done | ||||
| 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 | ||||
| 	  if test "$$subdir" = .; then :; else \
 | ||||
| 	    test -d "$(distdir)/$$subdir" \
 | ||||
| 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 | ||||
| 	    || exit 1; \
 | ||||
| 	  fi; \
 | ||||
| 	done | ||||
| 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 | ||||
| 	  if test "$$subdir" = .; then :; else \
 | ||||
| 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 | ||||
| 	    $(am__relativize); \
 | ||||
| 	    new_distdir=$$reldir; \
 | ||||
| 	    dir1=$$subdir; dir2="$(top_distdir)"; \
 | ||||
| 	    $(am__relativize); \
 | ||||
| 	    new_top_distdir=$$reldir; \
 | ||||
| 	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
 | ||||
| 	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
 | ||||
| 	    ($(am__cd) $$subdir && \
 | ||||
| 	      $(MAKE) $(AM_MAKEFLAGS) \
 | ||||
| 	        top_distdir="$$new_top_distdir" \
 | ||||
| 	        distdir="$$new_distdir" \
 | ||||
| 		am__remove_distdir=: \
 | ||||
| 		am__skip_length_check=: \
 | ||||
| 		am__skip_mode_fix=: \
 | ||||
| 	        distdir) \
 | ||||
| 	      || exit 1; \
 | ||||
| 	  fi; \
 | ||||
| 	done | ||||
| 	-test -n "$(am__skip_mode_fix)" \
 | ||||
| 	|| find "$(distdir)" -type d ! -perm -755 \
 | ||||
| 		-exec chmod u+rwx,go+rx {} \; -o \
 | ||||
| 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 | ||||
| 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
 | ||||
| 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
 | ||||
| 	|| chmod -R a+r "$(distdir)" | ||||
| dist-gzip: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-bzip2: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-lzip: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-lzma: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-xz: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-tarZ: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-shar: distdir | ||||
| 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-zip: distdir | ||||
| 	-rm -f $(distdir).zip | ||||
| 	zip -rq $(distdir).zip $(distdir) | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist dist-all: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| # This target untars the dist file and tries a VPATH configuration.  Then
 | ||||
| # it guarantees that the distribution is self-contained by making another
 | ||||
| # tarfile.
 | ||||
| distcheck: dist | ||||
| 	case '$(DIST_ARCHIVES)' in \
 | ||||
| 	*.tar.gz*) \
 | ||||
| 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 | ||||
| 	*.tar.bz2*) \
 | ||||
| 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 | ||||
| 	*.tar.lzma*) \
 | ||||
| 	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
 | ||||
| 	*.tar.lz*) \
 | ||||
| 	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
 | ||||
| 	*.tar.xz*) \
 | ||||
| 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 | ||||
| 	*.tar.Z*) \
 | ||||
| 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 | ||||
| 	*.shar.gz*) \
 | ||||
| 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
 | ||||
| 	*.zip*) \
 | ||||
| 	  unzip $(distdir).zip ;;\
 | ||||
| 	esac | ||||
| 	chmod -R a-w $(distdir); chmod a+w $(distdir) | ||||
| 	mkdir $(distdir)/_build | ||||
| 	mkdir $(distdir)/_inst | ||||
| 	chmod a-w $(distdir) | ||||
| 	test -d $(distdir)/_build || exit 0; \
 | ||||
| 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
 | ||||
| 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
 | ||||
| 	  && am__cwd=`pwd` \
 | ||||
| 	  && $(am__cd) $(distdir)/_build \
 | ||||
| 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
 | ||||
| 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 | ||||
| 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) check \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) install \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
 | ||||
| 	        distuninstallcheck \
 | ||||
| 	  && chmod -R a-w "$$dc_install_base" \
 | ||||
| 	  && ({ \
 | ||||
| 	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
 | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
 | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
 | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
 | ||||
| 	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
 | ||||
| 	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
 | ||||
| 	  && rm -rf "$$dc_destdir" \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) dist \
 | ||||
| 	  && rm -rf $(DIST_ARCHIVES) \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
 | ||||
| 	  && cd "$$am__cwd" \
 | ||||
| 	  || exit 1 | ||||
| 	$(am__remove_distdir) | ||||
| 	@(echo "$(distdir) archives ready for distribution: "; \
 | ||||
| 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 | ||||
| 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' | ||||
| distuninstallcheck: | ||||
| 	@test -n '$(distuninstallcheck_dir)' || { \
 | ||||
| 	  echo 'ERROR: trying to run $@ with an empty' \
 | ||||
| 	       '$$(distuninstallcheck_dir)' >&2; \
 | ||||
| 	  exit 1; \
 | ||||
| 	}; \
 | ||||
| 	$(am__cd) '$(distuninstallcheck_dir)' || { \
 | ||||
| 	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
 | ||||
| 	  exit 1; \
 | ||||
| 	}; \
 | ||||
| 	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
 | ||||
| 	   || { echo "ERROR: files left after uninstall:" ; \
 | ||||
| 	        if test -n "$(DESTDIR)"; then \
 | ||||
| 	          echo "  (check DESTDIR support)"; \
 | ||||
| 	        fi ; \
 | ||||
| 	        $(distuninstallcheck_listfiles) ; \
 | ||||
| 	        exit 1; } >&2 | ||||
| distcleancheck: distclean | ||||
| 	@if test '$(srcdir)' = . ; then \
 | ||||
| 	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
 | ||||
| 	  exit 1 ; \
 | ||||
| 	fi | ||||
| 	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
 | ||||
| 	  || { echo "ERROR: files left in build directory after distclean:" ; \
 | ||||
| 	       $(distcleancheck_listfiles) ; \
 | ||||
| 	       exit 1; } >&2 | ||||
| check-am: all-am | ||||
| check: check-recursive | ||||
| all-am: Makefile $(DATA) config.h | ||||
| installdirs: installdirs-recursive | ||||
| installdirs-am: | ||||
| 	for dir in "$(DESTDIR)$(docdir)"; do \
 | ||||
| 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 | ||||
| 	done | ||||
| install: install-recursive | ||||
| install-exec: install-exec-recursive | ||||
| install-data: install-data-recursive | ||||
| uninstall: uninstall-recursive | ||||
| 
 | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
| 
 | ||||
| installcheck: installcheck-recursive | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \
 | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 | ||||
| 	      install; \
 | ||||
| 	else \
 | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
| 
 | ||||
| clean-generic: | ||||
| 
 | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
| 
 | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| clean: clean-recursive | ||||
| 
 | ||||
| clean-am: clean-generic clean-libtool mostlyclean-am | ||||
| 
 | ||||
| distclean: distclean-recursive | ||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-generic distclean-hdr \ | ||||
| 	distclean-libtool distclean-tags | ||||
| 
 | ||||
| dvi: dvi-recursive | ||||
| 
 | ||||
| dvi-am: | ||||
| 
 | ||||
| html: html-recursive | ||||
| 
 | ||||
| html-am: | ||||
| 
 | ||||
| info: info-recursive | ||||
| 
 | ||||
| info-am: | ||||
| 
 | ||||
| install-data-am: install-dist_docDATA | ||||
| 
 | ||||
| install-dvi: install-dvi-recursive | ||||
| 
 | ||||
| install-dvi-am: | ||||
| 
 | ||||
| install-exec-am: | ||||
| 
 | ||||
| install-html: install-html-recursive | ||||
| 
 | ||||
| install-html-am: | ||||
| 
 | ||||
| install-info: install-info-recursive | ||||
| 
 | ||||
| install-info-am: | ||||
| 
 | ||||
| install-man: | ||||
| 
 | ||||
| install-pdf: install-pdf-recursive | ||||
| 
 | ||||
| install-pdf-am: | ||||
| 
 | ||||
| install-ps: install-ps-recursive | ||||
| 
 | ||||
| install-ps-am: | ||||
| 
 | ||||
| installcheck-am: | ||||
| 
 | ||||
| maintainer-clean: maintainer-clean-recursive | ||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||||
| 	-rm -rf $(top_srcdir)/autom4te.cache | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
| 
 | ||||
| mostlyclean: mostlyclean-recursive | ||||
| 
 | ||||
| mostlyclean-am: mostlyclean-generic mostlyclean-libtool | ||||
| 
 | ||||
| pdf: pdf-recursive | ||||
| 
 | ||||
| pdf-am: | ||||
| 
 | ||||
| ps: ps-recursive | ||||
| 
 | ||||
| ps-am: | ||||
| 
 | ||||
| uninstall-am: uninstall-dist_docDATA | ||||
| 
 | ||||
| .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ | ||||
| 	ctags-recursive install-am install-strip tags-recursive | ||||
| 
 | ||||
| .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | ||||
| 	all all-am am--refresh check check-am clean clean-generic \
 | ||||
| 	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
 | ||||
| 	dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \
 | ||||
| 	dist-zip distcheck distclean distclean-generic distclean-hdr \
 | ||||
| 	distclean-libtool distclean-tags distcleancheck distdir \
 | ||||
| 	distuninstallcheck dvi dvi-am html html-am info info-am \
 | ||||
| 	install install-am install-data install-data-am \
 | ||||
| 	install-dist_docDATA install-dvi install-dvi-am install-exec \
 | ||||
| 	install-exec-am install-html install-html-am install-info \
 | ||||
| 	install-info-am install-man install-pdf install-pdf-am \
 | ||||
| 	install-ps install-ps-am install-strip installcheck \
 | ||||
| 	installcheck-am installdirs installdirs-am maintainer-clean \
 | ||||
| 	maintainer-clean-generic mostlyclean mostlyclean-generic \
 | ||||
| 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 | ||||
| 	uninstall uninstall-am uninstall-dist_docDATA | ||||
| 
 | ||||
| 
 | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded.
 | ||||
| .NOEXPORT: | ||||
| @ -0,0 +1,62 @@ | ||||
| CityHash v1.1.1, June 17, 2013 | ||||
| 
 | ||||
|   * Fix CityHash32() so platforms that disagree about whether 'char' is signed | ||||
|     use the same mathematical function.  For most people this changes nothing | ||||
|     as most popular platforms agree with x86 about whether 'char' is signed. | ||||
|   * No changes to any of the functions, unless you had been using CityHash32() | ||||
|     despite "make check" reporting a failure on your platform. | ||||
|   * Slightly modernize and improve configuration and portability. | ||||
| 
 | ||||
| CityHash v1.1, October 22, 2012 | ||||
| 
 | ||||
|   * Add CityHash32(), intended for 32-bit platforms. | ||||
|   * Change existing functions to improve their hash quality and/or speed.  Most | ||||
|     of the changes were minor, but CityHashCrc* was substantially reworked | ||||
|     (and made perhaps 10% slower, unfortunately). | ||||
|   * Improve README. | ||||
| 
 | ||||
| CityHash v1.0.3, October 6, 2011 | ||||
| 
 | ||||
|   * Change all the functions to improve their hash quality.  Most of the | ||||
|     changes were minor.  Special thanks to Bob Jenkins for reporting some | ||||
|     issues that he'd found.  The speed of the functions after these changes is | ||||
|     roughly unchanged, except that CityHash128() and CityHash128WithSeed() are | ||||
|     slower. | ||||
|   * To improve portability, replace the one use of ssize_t with signed long. | ||||
|   * Improve README. | ||||
| 
 | ||||
| CityHash v1.0.2, May 8, 2011 | ||||
| 
 | ||||
|   * Correct a problem in CityHashCrc256(); for inputs under 240 bytes the | ||||
|     scheme of padding to 240 bytes was causing the empty string and an input | ||||
|     of exactly 240 NULs to have the same hash code.  That is now fixed. | ||||
|     Most strings less than 240 bytes long will have a different hash than | ||||
|     they did in v1.0.1. | ||||
|   * Other hash functions are unchanged. | ||||
|   * Minor corrections and improvements to README. | ||||
| 
 | ||||
| CityHash v1.0.1, April 28, 2011 | ||||
| 
 | ||||
|   * Added README, NEWS, and COPYING.  The README contains installation and | ||||
|     usage instructions, information on "hash quality," and other goodies. | ||||
|   * Improved how CityHash128() and CityHash128WithSeed() handle very short | ||||
|     input strings. | ||||
|   * Added new functions that are faster on long strings on 64-bit CPUs with | ||||
|     a CRC32 instruction: CityHashCrc128(), CityHashCrc128WithSeed(), and | ||||
|     CityHashCrc256(). | ||||
|   * Removed our assumption that "*(const uint64*)p" and such is safe.  Now we | ||||
|     memcpy() instead. It has no speed penalty and makes our intent explicit | ||||
|     to the compiler. | ||||
|   * Changed #include "city.h" to #include <city.h>, suggested by Robert Escriva. | ||||
|   * Added build system, a modified version of one contributed by Robert Escriva. | ||||
|   * We now use __builtin_expect if the configure script can make it work, rather | ||||
|     than just on gcc. | ||||
|   * Added a test: use "make check" to run it.  If you compile CityHash in a way | ||||
|     that causes it to return unexpected results, the test should fail. | ||||
|   * Added untested big-endian support. Please let us know if you try it! | ||||
|   * Other than CityHash128() and CityHash128WithSeed(), the hash functions in | ||||
|     the previous release are unchanged. | ||||
| 
 | ||||
| CityHash v1, April 11, 2011 | ||||
| 
 | ||||
|   * Initial release | ||||
| @ -0,0 +1,196 @@ | ||||
| CityHash, a family of hash functions for strings. | ||||
| 
 | ||||
| 
 | ||||
| Introduction | ||||
| ============ | ||||
| 
 | ||||
| CityHash provides hash functions for strings.  The functions mix the | ||||
| input bits thoroughly but are not suitable for cryptography.  See | ||||
| "Hash Quality," below, for details on how CityHash was tested and so on. | ||||
| 
 | ||||
| We provide reference implementations in C++, with a friendly MIT license. | ||||
| 
 | ||||
| CityHash32() returns a 32-bit hash. | ||||
| 
 | ||||
| CityHash64() and similar return a 64-bit hash. | ||||
| 
 | ||||
| CityHash128() and similar return a 128-bit hash and are tuned for | ||||
| strings of at least a few hundred bytes.  Depending on your compiler | ||||
| and hardware, it's likely faster than CityHash64() on sufficiently long | ||||
| strings.  It's slower than necessary on shorter strings, but we expect | ||||
| that case to be relatively unimportant. | ||||
| 
 | ||||
| CityHashCrc128() and similar are variants of CityHash128() that depend | ||||
| on _mm_crc32_u64(), an intrinsic that compiles to a CRC32 instruction | ||||
| on some CPUs.  However, none of the functions we provide are CRCs. | ||||
| 
 | ||||
| CityHashCrc256() is a variant of CityHashCrc128() that also depends | ||||
| on _mm_crc32_u64().  It returns a 256-bit hash. | ||||
| 
 | ||||
| All members of the CityHash family were designed with heavy reliance | ||||
| on previous work by Austin Appleby, Bob Jenkins, and others. | ||||
| For example, CityHash32 has many similarities with Murmur3a. | ||||
| 
 | ||||
| Performance on long strings: 64-bit CPUs | ||||
| ======================================== | ||||
|   | ||||
| We are most excited by the performance of CityHash64() and its variants on | ||||
| short strings, but long strings are interesting as well. | ||||
| 
 | ||||
| CityHash is intended to be fast, under the constraint that it hash very | ||||
| well.  For CPUs with the CRC32 instruction, CRC is speedy, but CRC wasn't | ||||
| designed as a hash function and shouldn't be used as one.  CityHashCrc128() | ||||
| is not a CRC, but it uses the CRC32 machinery. | ||||
| 
 | ||||
| On a single core of a 2.67GHz Intel Xeon X5550, CityHashCrc256 peaks at about | ||||
| 5 to 5.5 bytes/cycle.  The other CityHashCrc functions are wrappers around | ||||
| CityHashCrc256 and should have similar performance on long strings. | ||||
| (CityHashCrc256 in v1.0.3 was even faster, but we decided it wasn't as thorough | ||||
| as it should be.)  CityHash128 peaks at about 4.3 bytes/cycle.  The fastest | ||||
| Murmur variant on that hardware, Murmur3F, peaks at about 2.4 bytes/cycle. | ||||
| We expect the peak speed of CityHash128 to dominate CityHash64, which is | ||||
| aimed more toward short strings or use in hash tables. | ||||
| 
 | ||||
| For long strings, a new function by Bob Jenkins, SpookyHash, is just | ||||
| slightly slower than CityHash128 on Intel x86-64 CPUs, but noticeably | ||||
| faster on AMD x86-64 CPUs.  For hashing long strings on AMD CPUs | ||||
| and/or CPUs without the CRC instruction, SpookyHash may be just as | ||||
| good or better than any of the CityHash variants. | ||||
| 
 | ||||
| Performance on short strings: 64-bit CPUs | ||||
| ========================================= | ||||
| 
 | ||||
| For short strings, e.g., most hash table keys, CityHash64 is faster than | ||||
| CityHash128, and probably faster than all the aforementioned functions, | ||||
| depending on the mix of string lengths.  Here are a few results from that | ||||
| same hardware, where we (unrealistically) tested a single string length over | ||||
| and over again: | ||||
| 
 | ||||
| Hash              Results | ||||
| ------------------------------------------------------------------------------ | ||||
| CityHash64 v1.0.3 7ns for 1 byte, or 6ns for 8 bytes, or 9ns for 64 bytes | ||||
| Murmur2 (64-bit)  6ns for 1 byte, or 6ns for 8 bytes, or 15ns for 64 bytes | ||||
| Murmur3F          14ns for 1 byte, or 15ns for 8 bytes, or 23ns for 64 bytes | ||||
| 
 | ||||
| We don't have CityHash64 benchmarks results for v1.1, but we expect the | ||||
| numbers to be similar. | ||||
| 
 | ||||
| Performance: 32-bit CPUs | ||||
| ======================== | ||||
| 
 | ||||
| CityHash32 is the newest variant of CityHash.  It is intended for | ||||
| 32-bit hardware in general but has been mostly tested on x86.  Our benchmarks | ||||
| suggest that Murmur3 is the nearest competitor to CityHash32 on x86. | ||||
| We don't know of anything faster that has comparable quality.  The speed rankings | ||||
| in our testing: CityHash32 > Murmur3f > Murmur3a (for long strings), and | ||||
| CityHash32 > Murmur3a > Murmur3f (for short strings). | ||||
| 
 | ||||
| Installation | ||||
| ============ | ||||
| 
 | ||||
| We provide reference implementations of several CityHash functions, written | ||||
| in C++.  The build system is based on autoconf.  It defaults the C++ | ||||
| compiler flags to "-g -O2", which is probably slower than -O3 if you are | ||||
| using gcc.  YMMV. | ||||
| 
 | ||||
| On systems with gcc, we generally recommend: | ||||
| 
 | ||||
| ./configure | ||||
| make all check CXXFLAGS="-g -O3" | ||||
| sudo make install | ||||
| 
 | ||||
| Or, if your system has the CRC32 instruction, and you want to build everything: | ||||
| 
 | ||||
| ./configure --enable-sse4.2 | ||||
| make all check CXXFLAGS="-g -O3 -msse4.2" | ||||
| sudo make install | ||||
| 
 | ||||
| Note that our build system doesn't try to determine the appropriate compiler | ||||
| flag for enabling SSE4.2.  For gcc it is "-msse4.2".  The --enable-sse4.2 | ||||
| flag to the configure script controls whether citycrc.h is installed when | ||||
| you "make install."  In general, picking the right compiler flags can be | ||||
| tricky, and may depend on your compiler, your hardware, and even how you | ||||
| plan to use the library. | ||||
| 
 | ||||
| For generic information about how to configure this software, please try: | ||||
| 
 | ||||
| ./configure --help | ||||
| 
 | ||||
| Failing that, please work from city.cc and city*.h, as they contain all the | ||||
| necessary code. | ||||
| 
 | ||||
| 
 | ||||
| Usage | ||||
| ===== | ||||
| 
 | ||||
| The above installation instructions will produce a single library.  It will | ||||
| contain CityHash32(), CityHash64(), and CityHash128(), and their variants, | ||||
| and possibly CityHashCrc128(), CityHashCrc128WithSeed(), and | ||||
| CityHashCrc256().  The functions with Crc in the name are declared in | ||||
| citycrc.h; the rest are declared in city.h. | ||||
| 
 | ||||
| 
 | ||||
| Limitations | ||||
| =========== | ||||
| 
 | ||||
| 1) CityHash32 is intended for little-endian 32-bit code, and everything else in | ||||
| the current version of CityHash is intended for little-endian 64-bit CPUs. | ||||
| 
 | ||||
| All functions that don't use the CRC32 instruction should work in | ||||
| little-endian 32-bit or 64-bit code.  CityHash should work on big-endian CPUs | ||||
| as well, but we haven't tested that very thoroughly yet. | ||||
| 
 | ||||
| 2) CityHash is fairly complex.  As a result of its complexity, it may not | ||||
| perform as expected on some compilers.  For example, preliminary reports | ||||
| suggest that some Microsoft compilers compile CityHash to assembly that's | ||||
| 10-20% slower than it could be. | ||||
| 
 | ||||
| 
 | ||||
| Hash Quality | ||||
| ============ | ||||
| 
 | ||||
| We like to test hash functions with SMHasher, among other things. | ||||
| SMHasher isn't perfect, but it seems to find almost any significant flaw. | ||||
| SMHasher is available at http://code.google.com/p/smhasher/ | ||||
| 
 | ||||
| SMHasher is designed to pass a 32-bit seed to the hash functions it tests. | ||||
| No CityHash function is designed to work that way, so we adapt as follows: | ||||
| For our functions that accept a seed, we use the given seed directly (padded | ||||
| with zeroes); for our functions that don't accept a seed, we hash the | ||||
| concatenation of the given seed and the input string. | ||||
| 
 | ||||
| The CityHash functions have the following flaws according to SMHasher: | ||||
| 
 | ||||
| (1) CityHash64: none | ||||
| 
 | ||||
| (2) CityHash64WithSeed: none | ||||
| 
 | ||||
| (3) CityHash64WithSeeds: did not test | ||||
| 
 | ||||
| (4) CityHash128: none | ||||
| 
 | ||||
| (5) CityHash128WithSeed: none | ||||
| 
 | ||||
| (6) CityHashCrc128: none | ||||
| 
 | ||||
| (7) CityHashCrc128WithSeed: none | ||||
| 
 | ||||
| (8) CityHashCrc256: none | ||||
| 
 | ||||
| (9) CityHash32: none | ||||
| 
 | ||||
| Some minor flaws in 32-bit and 64-bit functions are harmless, as we | ||||
| expect the primary use of these functions will be in hash tables.  We | ||||
| may have gone slightly overboard in trying to please SMHasher and other | ||||
| similar tests, but we don't want anyone to choose a different hash function | ||||
| because of some minor issue reported by a quality test. | ||||
| 
 | ||||
| 
 | ||||
| For more information | ||||
| ==================== | ||||
| 
 | ||||
| http://code.google.com/p/cityhash/ | ||||
| 
 | ||||
| cityhash-discuss@googlegroups.com | ||||
| 
 | ||||
| Please feel free to send us comments, questions, bug reports, or patches. | ||||
| @ -0,0 +1,976 @@ | ||||
| # generated automatically by aclocal 1.11.3 -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | ||||
| # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, | ||||
| # Inc. | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
| 
 | ||||
| m4_ifndef([AC_AUTOCONF_VERSION], | ||||
|   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl | ||||
| m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, | ||||
| [m4_warning([this file was generated for autoconf 2.69. | ||||
| You have another version of autoconf.  It may work, but is not guaranteed to. | ||||
| If you have problems, you may need to regenerate the build system entirely. | ||||
| To do so, use the procedure documented by the package, typically `autoreconf'.])]) | ||||
| 
 | ||||
| # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software | ||||
| # Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 1 | ||||
| 
 | ||||
| # AM_AUTOMAKE_VERSION(VERSION) | ||||
| # ---------------------------- | ||||
| # Automake X.Y traces this macro to ensure aclocal.m4 has been | ||||
| # generated from the m4 files accompanying Automake X.Y. | ||||
| # (This private macro should not be called outside this file.) | ||||
| AC_DEFUN([AM_AUTOMAKE_VERSION], | ||||
| [am__api_version='1.11' | ||||
| dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to | ||||
| dnl require some minimum version.  Point them to the right macro. | ||||
| m4_if([$1], [1.11.3], [], | ||||
|       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl | ||||
| ]) | ||||
| 
 | ||||
| # _AM_AUTOCONF_VERSION(VERSION) | ||||
| # ----------------------------- | ||||
| # aclocal traces this macro to find the Autoconf version. | ||||
| # This is a private macro too.  Using m4_define simplifies | ||||
| # the logic in aclocal, which can simply ignore this definition. | ||||
| m4_define([_AM_AUTOCONF_VERSION], []) | ||||
| 
 | ||||
| # AM_SET_CURRENT_AUTOMAKE_VERSION | ||||
| # ------------------------------- | ||||
| # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. | ||||
| # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. | ||||
| AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], | ||||
| [AM_AUTOMAKE_VERSION([1.11.3])dnl | ||||
| m4_ifndef([AC_AUTOCONF_VERSION], | ||||
|   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl | ||||
| _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) | ||||
| 
 | ||||
| # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 1 | ||||
| 
 | ||||
| # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets | ||||
| # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to | ||||
| # `$srcdir', `$srcdir/..', or `$srcdir/../..'. | ||||
| # | ||||
| # Of course, Automake must honor this variable whenever it calls a | ||||
| # tool from the auxiliary directory.  The problem is that $srcdir (and | ||||
| # therefore $ac_aux_dir as well) can be either absolute or relative, | ||||
| # depending on how configure is run.  This is pretty annoying, since | ||||
| # it makes $ac_aux_dir quite unusable in subdirectories: in the top | ||||
| # source directory, any form will work fine, but in subdirectories a | ||||
| # relative path needs to be adjusted first. | ||||
| # | ||||
| # $ac_aux_dir/missing | ||||
| #    fails when called from a subdirectory if $ac_aux_dir is relative | ||||
| # $top_srcdir/$ac_aux_dir/missing | ||||
| #    fails if $ac_aux_dir is absolute, | ||||
| #    fails when called from a subdirectory in a VPATH build with | ||||
| #          a relative $ac_aux_dir | ||||
| # | ||||
| # The reason of the latter failure is that $top_srcdir and $ac_aux_dir | ||||
| # are both prefixed by $srcdir.  In an in-source build this is usually | ||||
| # harmless because $srcdir is `.', but things will broke when you | ||||
| # start a VPATH build or use an absolute $srcdir. | ||||
| # | ||||
| # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, | ||||
| # iff we strip the leading $srcdir from $ac_aux_dir.  That would be: | ||||
| #   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` | ||||
| # and then we would define $MISSING as | ||||
| #   MISSING="\${SHELL} $am_aux_dir/missing" | ||||
| # This will work as long as MISSING is not called from configure, because | ||||
| # unfortunately $(top_srcdir) has no meaning in configure. | ||||
| # However there are other variables, like CC, which are often used in | ||||
| # configure, and could therefore not use this "fixed" $ac_aux_dir. | ||||
| # | ||||
| # Another solution, used here, is to always expand $ac_aux_dir to an | ||||
| # absolute PATH.  The drawback is that using absolute paths prevent a | ||||
| # configured tree to be moved without reconfiguration. | ||||
| 
 | ||||
| AC_DEFUN([AM_AUX_DIR_EXPAND], | ||||
| [dnl Rely on autoconf to set up CDPATH properly. | ||||
| AC_PREREQ([2.50])dnl | ||||
| # expand $ac_aux_dir to an absolute path | ||||
| am_aux_dir=`cd $ac_aux_dir && pwd` | ||||
| ]) | ||||
| 
 | ||||
| # AM_CONDITIONAL                                            -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 | ||||
| # Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 9 | ||||
| 
 | ||||
| # AM_CONDITIONAL(NAME, SHELL-CONDITION) | ||||
| # ------------------------------------- | ||||
| # Define a conditional. | ||||
| AC_DEFUN([AM_CONDITIONAL], | ||||
| [AC_PREREQ(2.52)dnl | ||||
|  ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])], | ||||
| 	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl | ||||
| AC_SUBST([$1_TRUE])dnl | ||||
| AC_SUBST([$1_FALSE])dnl | ||||
| _AM_SUBST_NOTMAKE([$1_TRUE])dnl | ||||
| _AM_SUBST_NOTMAKE([$1_FALSE])dnl | ||||
| m4_define([_AM_COND_VALUE_$1], [$2])dnl | ||||
| if $2; then | ||||
|   $1_TRUE= | ||||
|   $1_FALSE='#' | ||||
| else | ||||
|   $1_TRUE='#' | ||||
|   $1_FALSE= | ||||
| fi | ||||
| AC_CONFIG_COMMANDS_PRE( | ||||
| [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then | ||||
|   AC_MSG_ERROR([[conditional "$1" was never defined. | ||||
| Usually this means the macro was only invoked conditionally.]]) | ||||
| fi])]) | ||||
| 
 | ||||
| # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, | ||||
| # 2010, 2011 Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 12 | ||||
| 
 | ||||
| # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be | ||||
| # written in clear, in which case automake, when reading aclocal.m4, | ||||
| # will think it sees a *use*, and therefore will trigger all it's | ||||
| # C support machinery.  Also note that it means that autoscan, seeing | ||||
| # CC etc. in the Makefile, will ask for an AC_PROG_CC use... | ||||
| 
 | ||||
| 
 | ||||
| # _AM_DEPENDENCIES(NAME) | ||||
| # ---------------------- | ||||
| # See how the compiler implements dependency checking. | ||||
| # NAME is "CC", "CXX", "GCJ", or "OBJC". | ||||
| # We try a few techniques and use that to set a single cache variable. | ||||
| # | ||||
| # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was | ||||
| # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular | ||||
| # dependency, and given that the user is not expected to run this macro, | ||||
| # just rely on AC_PROG_CC. | ||||
| AC_DEFUN([_AM_DEPENDENCIES], | ||||
| [AC_REQUIRE([AM_SET_DEPDIR])dnl | ||||
| AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl | ||||
| AC_REQUIRE([AM_MAKE_INCLUDE])dnl | ||||
| AC_REQUIRE([AM_DEP_TRACK])dnl | ||||
| 
 | ||||
| ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=], | ||||
|        [$1], CXX,  [depcc="$CXX"  am_compiler_list=], | ||||
|        [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], | ||||
|        [$1], UPC,  [depcc="$UPC"  am_compiler_list=], | ||||
|        [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'], | ||||
|                    [depcc="$$1"   am_compiler_list=]) | ||||
| 
 | ||||
| AC_CACHE_CHECK([dependency style of $depcc], | ||||
|                [am_cv_$1_dependencies_compiler_type], | ||||
| [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then | ||||
|   # We make a subdir and do the tests there.  Otherwise we can end up | ||||
|   # making bogus files that we don't know about and never remove.  For | ||||
|   # instance it was reported that on HP-UX the gcc test will end up | ||||
|   # making a dummy file named `D' -- because `-MD' means `put the output | ||||
|   # in D'. | ||||
|   rm -rf conftest.dir | ||||
|   mkdir conftest.dir | ||||
|   # Copy depcomp to subdir because otherwise we won't find it if we're | ||||
|   # using a relative directory. | ||||
|   cp "$am_depcomp" conftest.dir | ||||
|   cd conftest.dir | ||||
|   # We will build objects and dependencies in a subdirectory because | ||||
|   # it helps to detect inapplicable dependency modes.  For instance | ||||
|   # both Tru64's cc and ICC support -MD to output dependencies as a | ||||
|   # side effect of compilation, but ICC will put the dependencies in | ||||
|   # the current directory while Tru64 will put them in the object | ||||
|   # directory. | ||||
|   mkdir sub | ||||
| 
 | ||||
|   am_cv_$1_dependencies_compiler_type=none | ||||
|   if test "$am_compiler_list" = ""; then | ||||
|      am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` | ||||
|   fi | ||||
|   am__universal=false | ||||
|   m4_case([$1], [CC], | ||||
|     [case " $depcc " in #( | ||||
|      *\ -arch\ *\ -arch\ *) am__universal=true ;; | ||||
|      esac], | ||||
|     [CXX], | ||||
|     [case " $depcc " in #( | ||||
|      *\ -arch\ *\ -arch\ *) am__universal=true ;; | ||||
|      esac]) | ||||
| 
 | ||||
|   for depmode in $am_compiler_list; do | ||||
|     # Setup a source with many dependencies, because some compilers | ||||
|     # like to wrap large dependency lists on column 80 (with \), and | ||||
|     # we should not choose a depcomp mode which is confused by this. | ||||
|     # | ||||
|     # We need to recreate these files for each test, as the compiler may | ||||
|     # overwrite some of them when testing with obscure command lines. | ||||
|     # This happens at least with the AIX C compiler. | ||||
|     : > sub/conftest.c | ||||
|     for i in 1 2 3 4 5 6; do | ||||
|       echo '#include "conftst'$i'.h"' >> sub/conftest.c | ||||
|       # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with | ||||
|       # Solaris 8's {/usr,}/bin/sh. | ||||
|       touch sub/conftst$i.h | ||||
|     done | ||||
|     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf | ||||
| 
 | ||||
|     # We check with `-c' and `-o' for the sake of the "dashmstdout" | ||||
|     # mode.  It turns out that the SunPro C++ compiler does not properly | ||||
|     # handle `-M -o', and we need to detect this.  Also, some Intel | ||||
|     # versions had trouble with output in subdirs | ||||
|     am__obj=sub/conftest.${OBJEXT-o} | ||||
|     am__minus_obj="-o $am__obj" | ||||
|     case $depmode in | ||||
|     gcc) | ||||
|       # This depmode causes a compiler race in universal mode. | ||||
|       test "$am__universal" = false || continue | ||||
|       ;; | ||||
|     nosideeffect) | ||||
|       # after this tag, mechanisms are not by side-effect, so they'll | ||||
|       # only be used when explicitly requested | ||||
|       if test "x$enable_dependency_tracking" = xyes; then | ||||
| 	continue | ||||
|       else | ||||
| 	break | ||||
|       fi | ||||
|       ;; | ||||
|     msvc7 | msvc7msys | msvisualcpp | msvcmsys) | ||||
|       # This compiler won't grok `-c -o', but also, the minuso test has | ||||
|       # not run yet.  These depmodes are late enough in the game, and | ||||
|       # so weak that their functioning should not be impacted. | ||||
|       am__obj=conftest.${OBJEXT-o} | ||||
|       am__minus_obj= | ||||
|       ;; | ||||
|     none) break ;; | ||||
|     esac | ||||
|     if depmode=$depmode \ | ||||
|        source=sub/conftest.c object=$am__obj \ | ||||
|        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ | ||||
|        $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ | ||||
|          >/dev/null 2>conftest.err && | ||||
|        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && | ||||
|        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && | ||||
|        grep $am__obj sub/conftest.Po > /dev/null 2>&1 && | ||||
|        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then | ||||
|       # icc doesn't choke on unknown options, it will just issue warnings | ||||
|       # or remarks (even with -Werror).  So we grep stderr for any message | ||||
|       # that says an option was ignored or not supported. | ||||
|       # When given -MP, icc 7.0 and 7.1 complain thusly: | ||||
|       #   icc: Command line warning: ignoring option '-M'; no argument required | ||||
|       # The diagnosis changed in icc 8.0: | ||||
|       #   icc: Command line remark: option '-MP' not supported | ||||
|       if (grep 'ignoring option' conftest.err || | ||||
|           grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else | ||||
|         am_cv_$1_dependencies_compiler_type=$depmode | ||||
|         break | ||||
|       fi | ||||
|     fi | ||||
|   done | ||||
| 
 | ||||
|   cd .. | ||||
|   rm -rf conftest.dir | ||||
| else | ||||
|   am_cv_$1_dependencies_compiler_type=none | ||||
| fi | ||||
| ]) | ||||
| AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) | ||||
| AM_CONDITIONAL([am__fastdep$1], [ | ||||
|   test "x$enable_dependency_tracking" != xno \ | ||||
|   && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) | ||||
| ]) | ||||
| 
 | ||||
| 
 | ||||
| # AM_SET_DEPDIR | ||||
| # ------------- | ||||
| # Choose a directory name for dependency files. | ||||
| # This macro is AC_REQUIREd in _AM_DEPENDENCIES | ||||
| AC_DEFUN([AM_SET_DEPDIR], | ||||
| [AC_REQUIRE([AM_SET_LEADING_DOT])dnl | ||||
| AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl | ||||
| ]) | ||||
| 
 | ||||
| 
 | ||||
| # AM_DEP_TRACK | ||||
| # ------------ | ||||
| AC_DEFUN([AM_DEP_TRACK], | ||||
| [AC_ARG_ENABLE(dependency-tracking, | ||||
| [  --disable-dependency-tracking  speeds up one-time build | ||||
|   --enable-dependency-tracking   do not reject slow dependency extractors]) | ||||
| if test "x$enable_dependency_tracking" != xno; then | ||||
|   am_depcomp="$ac_aux_dir/depcomp" | ||||
|   AMDEPBACKSLASH='\' | ||||
|   am__nodep='_no' | ||||
| fi | ||||
| AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) | ||||
| AC_SUBST([AMDEPBACKSLASH])dnl | ||||
| _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl | ||||
| AC_SUBST([am__nodep])dnl | ||||
| _AM_SUBST_NOTMAKE([am__nodep])dnl | ||||
| ]) | ||||
| 
 | ||||
| # Generate code to set up dependency tracking.              -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 | ||||
| # Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| #serial 5 | ||||
| 
 | ||||
| # _AM_OUTPUT_DEPENDENCY_COMMANDS | ||||
| # ------------------------------ | ||||
| AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], | ||||
| [{ | ||||
|   # Autoconf 2.62 quotes --file arguments for eval, but not when files | ||||
|   # are listed without --file.  Let's play safe and only enable the eval | ||||
|   # if we detect the quoting. | ||||
|   case $CONFIG_FILES in | ||||
|   *\'*) eval set x "$CONFIG_FILES" ;; | ||||
|   *)   set x $CONFIG_FILES ;; | ||||
|   esac | ||||
|   shift | ||||
|   for mf | ||||
|   do | ||||
|     # Strip MF so we end up with the name of the file. | ||||
|     mf=`echo "$mf" | sed -e 's/:.*$//'` | ||||
|     # Check whether this is an Automake generated Makefile or not. | ||||
|     # We used to match only the files named `Makefile.in', but | ||||
|     # some people rename them; so instead we look at the file content. | ||||
|     # Grep'ing the first line is not enough: some people post-process | ||||
|     # each Makefile.in and add a new line on top of each file to say so. | ||||
|     # Grep'ing the whole file is not good either: AIX grep has a line | ||||
|     # limit of 2048, but all sed's we know have understand at least 4000. | ||||
|     if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then | ||||
|       dirpart=`AS_DIRNAME("$mf")` | ||||
|     else | ||||
|       continue | ||||
|     fi | ||||
|     # Extract the definition of DEPDIR, am__include, and am__quote | ||||
|     # from the Makefile without running `make'. | ||||
|     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` | ||||
|     test -z "$DEPDIR" && continue | ||||
|     am__include=`sed -n 's/^am__include = //p' < "$mf"` | ||||
|     test -z "am__include" && continue | ||||
|     am__quote=`sed -n 's/^am__quote = //p' < "$mf"` | ||||
|     # When using ansi2knr, U may be empty or an underscore; expand it | ||||
|     U=`sed -n 's/^U = //p' < "$mf"` | ||||
|     # Find all dependency output files, they are included files with | ||||
|     # $(DEPDIR) in their names.  We invoke sed twice because it is the | ||||
|     # simplest approach to changing $(DEPDIR) to its actual value in the | ||||
|     # expansion. | ||||
|     for file in `sed -n " | ||||
|       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ | ||||
| 	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do | ||||
|       # Make sure the directory exists. | ||||
|       test -f "$dirpart/$file" && continue | ||||
|       fdir=`AS_DIRNAME(["$file"])` | ||||
|       AS_MKDIR_P([$dirpart/$fdir]) | ||||
|       # echo "creating $dirpart/$file" | ||||
|       echo '# dummy' > "$dirpart/$file" | ||||
|     done | ||||
|   done | ||||
| } | ||||
| ])# _AM_OUTPUT_DEPENDENCY_COMMANDS | ||||
| 
 | ||||
| 
 | ||||
| # AM_OUTPUT_DEPENDENCY_COMMANDS | ||||
| # ----------------------------- | ||||
| # This macro should only be invoked once -- use via AC_REQUIRE. | ||||
| # | ||||
| # This code is only required when automatic dependency tracking | ||||
| # is enabled.  FIXME.  This creates each `.P' file that we will | ||||
| # need in order to bootstrap the dependency handling code. | ||||
| AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], | ||||
| [AC_CONFIG_COMMANDS([depfiles], | ||||
|      [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], | ||||
|      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) | ||||
| ]) | ||||
| 
 | ||||
| # Do all the work for Automake.                             -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | ||||
| # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 16 | ||||
| 
 | ||||
| # This macro actually does too much.  Some checks are only needed if | ||||
| # your package does certain things.  But this isn't really a big deal. | ||||
| 
 | ||||
| # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) | ||||
| # AM_INIT_AUTOMAKE([OPTIONS]) | ||||
| # ----------------------------------------------- | ||||
| # The call with PACKAGE and VERSION arguments is the old style | ||||
| # call (pre autoconf-2.50), which is being phased out.  PACKAGE | ||||
| # and VERSION should now be passed to AC_INIT and removed from | ||||
| # the call to AM_INIT_AUTOMAKE. | ||||
| # We support both call styles for the transition.  After | ||||
| # the next Automake release, Autoconf can make the AC_INIT | ||||
| # arguments mandatory, and then we can depend on a new Autoconf | ||||
| # release and drop the old call support. | ||||
| AC_DEFUN([AM_INIT_AUTOMAKE], | ||||
| [AC_PREREQ([2.62])dnl | ||||
| dnl Autoconf wants to disallow AM_ names.  We explicitly allow | ||||
| dnl the ones we care about. | ||||
| m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl | ||||
| AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl | ||||
| AC_REQUIRE([AC_PROG_INSTALL])dnl | ||||
| if test "`cd $srcdir && pwd`" != "`pwd`"; then | ||||
|   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output | ||||
|   # is not polluted with repeated "-I." | ||||
|   AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl | ||||
|   # test to see if srcdir already configured | ||||
|   if test -f $srcdir/config.status; then | ||||
|     AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) | ||||
|   fi | ||||
| fi | ||||
| 
 | ||||
| # test whether we have cygpath | ||||
| if test -z "$CYGPATH_W"; then | ||||
|   if (cygpath --version) >/dev/null 2>/dev/null; then | ||||
|     CYGPATH_W='cygpath -w' | ||||
|   else | ||||
|     CYGPATH_W=echo | ||||
|   fi | ||||
| fi | ||||
| AC_SUBST([CYGPATH_W]) | ||||
| 
 | ||||
| # Define the identity of the package. | ||||
| dnl Distinguish between old-style and new-style calls. | ||||
| m4_ifval([$2], | ||||
| [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl | ||||
|  AC_SUBST([PACKAGE], [$1])dnl | ||||
|  AC_SUBST([VERSION], [$2])], | ||||
| [_AM_SET_OPTIONS([$1])dnl | ||||
| dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. | ||||
| m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, | ||||
|   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl | ||||
|  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl | ||||
|  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl | ||||
| 
 | ||||
| _AM_IF_OPTION([no-define],, | ||||
| [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) | ||||
|  AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl | ||||
| 
 | ||||
| # Some tools Automake needs. | ||||
| AC_REQUIRE([AM_SANITY_CHECK])dnl | ||||
| AC_REQUIRE([AC_ARG_PROGRAM])dnl | ||||
| AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) | ||||
| AM_MISSING_PROG(AUTOCONF, autoconf) | ||||
| AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) | ||||
| AM_MISSING_PROG(AUTOHEADER, autoheader) | ||||
| AM_MISSING_PROG(MAKEINFO, makeinfo) | ||||
| AC_REQUIRE([AM_PROG_INSTALL_SH])dnl | ||||
| AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl | ||||
| AC_REQUIRE([AM_PROG_MKDIR_P])dnl | ||||
| # We need awk for the "check" target.  The system "awk" is bad on | ||||
| # some platforms. | ||||
| AC_REQUIRE([AC_PROG_AWK])dnl | ||||
| AC_REQUIRE([AC_PROG_MAKE_SET])dnl | ||||
| AC_REQUIRE([AM_SET_LEADING_DOT])dnl | ||||
| _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], | ||||
| 	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], | ||||
| 			     [_AM_PROG_TAR([v7])])]) | ||||
| _AM_IF_OPTION([no-dependencies],, | ||||
| [AC_PROVIDE_IFELSE([AC_PROG_CC], | ||||
| 		  [_AM_DEPENDENCIES(CC)], | ||||
| 		  [define([AC_PROG_CC], | ||||
| 			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl | ||||
| AC_PROVIDE_IFELSE([AC_PROG_CXX], | ||||
| 		  [_AM_DEPENDENCIES(CXX)], | ||||
| 		  [define([AC_PROG_CXX], | ||||
| 			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl | ||||
| AC_PROVIDE_IFELSE([AC_PROG_OBJC], | ||||
| 		  [_AM_DEPENDENCIES(OBJC)], | ||||
| 		  [define([AC_PROG_OBJC], | ||||
| 			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl | ||||
| ]) | ||||
| _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl | ||||
| dnl The `parallel-tests' driver may need to know about EXEEXT, so add the | ||||
| dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro | ||||
| dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. | ||||
| AC_CONFIG_COMMANDS_PRE(dnl | ||||
| [m4_provide_if([_AM_COMPILER_EXEEXT], | ||||
|   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl | ||||
| ]) | ||||
| 
 | ||||
| dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not | ||||
| dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further | ||||
| dnl mangled by Autoconf and run in a shell conditional statement. | ||||
| m4_define([_AC_COMPILER_EXEEXT], | ||||
| m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) | ||||
| 
 | ||||
| 
 | ||||
| # When config.status generates a header, we must update the stamp-h file. | ||||
| # This file resides in the same directory as the config header | ||||
| # that is generated.  The stamp files are numbered to have different names. | ||||
| 
 | ||||
| # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the | ||||
| # loop where config.status creates the headers, so we can generate | ||||
| # our stamp files there. | ||||
| AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], | ||||
| [# Compute $1's index in $config_headers. | ||||
| _am_arg=$1 | ||||
| _am_stamp_count=1 | ||||
| for _am_header in $config_headers :; do | ||||
|   case $_am_header in | ||||
|     $_am_arg | $_am_arg:* ) | ||||
|       break ;; | ||||
|     * ) | ||||
|       _am_stamp_count=`expr $_am_stamp_count + 1` ;; | ||||
|   esac | ||||
| done | ||||
| echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) | ||||
| 
 | ||||
| # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, | ||||
| # Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 1 | ||||
| 
 | ||||
| # AM_PROG_INSTALL_SH | ||||
| # ------------------ | ||||
| # Define $install_sh. | ||||
| AC_DEFUN([AM_PROG_INSTALL_SH], | ||||
| [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl | ||||
| if test x"${install_sh}" != xset; then | ||||
|   case $am_aux_dir in | ||||
|   *\ * | *\	*) | ||||
|     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; | ||||
|   *) | ||||
|     install_sh="\${SHELL} $am_aux_dir/install-sh" | ||||
|   esac | ||||
| fi | ||||
| AC_SUBST(install_sh)]) | ||||
| 
 | ||||
| # Copyright (C) 2003, 2005  Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 2 | ||||
| 
 | ||||
| # Check whether the underlying file-system supports filenames | ||||
| # with a leading dot.  For instance MS-DOS doesn't. | ||||
| AC_DEFUN([AM_SET_LEADING_DOT], | ||||
| [rm -rf .tst 2>/dev/null | ||||
| mkdir .tst 2>/dev/null | ||||
| if test -d .tst; then | ||||
|   am__leading_dot=. | ||||
| else | ||||
|   am__leading_dot=_ | ||||
| fi | ||||
| rmdir .tst 2>/dev/null | ||||
| AC_SUBST([am__leading_dot])]) | ||||
| 
 | ||||
| # Check to see how 'make' treats includes.	            -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 4 | ||||
| 
 | ||||
| # AM_MAKE_INCLUDE() | ||||
| # ----------------- | ||||
| # Check to see how make treats includes. | ||||
| AC_DEFUN([AM_MAKE_INCLUDE], | ||||
| [am_make=${MAKE-make} | ||||
| cat > confinc << 'END' | ||||
| am__doit: | ||||
| 	@echo this is the am__doit target | ||||
| .PHONY: am__doit | ||||
| END | ||||
| # If we don't find an include directive, just comment out the code. | ||||
| AC_MSG_CHECKING([for style of include used by $am_make]) | ||||
| am__include="#" | ||||
| am__quote= | ||||
| _am_result=none | ||||
| # First try GNU make style include. | ||||
| echo "include confinc" > confmf | ||||
| # Ignore all kinds of additional output from `make'. | ||||
| case `$am_make -s -f confmf 2> /dev/null` in #( | ||||
| *the\ am__doit\ target*) | ||||
|   am__include=include | ||||
|   am__quote= | ||||
|   _am_result=GNU | ||||
|   ;; | ||||
| esac | ||||
| # Now try BSD make style include. | ||||
| if test "$am__include" = "#"; then | ||||
|    echo '.include "confinc"' > confmf | ||||
|    case `$am_make -s -f confmf 2> /dev/null` in #( | ||||
|    *the\ am__doit\ target*) | ||||
|      am__include=.include | ||||
|      am__quote="\"" | ||||
|      _am_result=BSD | ||||
|      ;; | ||||
|    esac | ||||
| fi | ||||
| AC_SUBST([am__include]) | ||||
| AC_SUBST([am__quote]) | ||||
| AC_MSG_RESULT([$_am_result]) | ||||
| rm -f confinc confmf | ||||
| ]) | ||||
| 
 | ||||
| # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 | ||||
| # Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 6 | ||||
| 
 | ||||
| # AM_MISSING_PROG(NAME, PROGRAM) | ||||
| # ------------------------------ | ||||
| AC_DEFUN([AM_MISSING_PROG], | ||||
| [AC_REQUIRE([AM_MISSING_HAS_RUN]) | ||||
| $1=${$1-"${am_missing_run}$2"} | ||||
| AC_SUBST($1)]) | ||||
| 
 | ||||
| 
 | ||||
| # AM_MISSING_HAS_RUN | ||||
| # ------------------ | ||||
| # Define MISSING if not defined so far and test if it supports --run. | ||||
| # If it does, set am_missing_run to use it, otherwise, to nothing. | ||||
| AC_DEFUN([AM_MISSING_HAS_RUN], | ||||
| [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl | ||||
| AC_REQUIRE_AUX_FILE([missing])dnl | ||||
| if test x"${MISSING+set}" != xset; then | ||||
|   case $am_aux_dir in | ||||
|   *\ * | *\	*) | ||||
|     MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; | ||||
|   *) | ||||
|     MISSING="\${SHELL} $am_aux_dir/missing" ;; | ||||
|   esac | ||||
| fi | ||||
| # Use eval to expand $SHELL | ||||
| if eval "$MISSING --run true"; then | ||||
|   am_missing_run="$MISSING --run " | ||||
| else | ||||
|   am_missing_run= | ||||
|   AC_MSG_WARN([`missing' script is too old or missing]) | ||||
| fi | ||||
| ]) | ||||
| 
 | ||||
| # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, | ||||
| # Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 1 | ||||
| 
 | ||||
| # AM_PROG_MKDIR_P | ||||
| # --------------- | ||||
| # Check for `mkdir -p'. | ||||
| AC_DEFUN([AM_PROG_MKDIR_P], | ||||
| [AC_PREREQ([2.60])dnl | ||||
| AC_REQUIRE([AC_PROG_MKDIR_P])dnl | ||||
| dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P, | ||||
| dnl while keeping a definition of mkdir_p for backward compatibility. | ||||
| dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. | ||||
| dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of | ||||
| dnl Makefile.ins that do not define MKDIR_P, so we do our own | ||||
| dnl adjustment using top_builddir (which is defined more often than | ||||
| dnl MKDIR_P). | ||||
| AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl | ||||
| case $mkdir_p in | ||||
|   [[\\/$]]* | ?:[[\\/]]*) ;; | ||||
|   */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; | ||||
| esac | ||||
| ]) | ||||
| 
 | ||||
| # Helper functions for option handling.                     -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software | ||||
| # Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 5 | ||||
| 
 | ||||
| # _AM_MANGLE_OPTION(NAME) | ||||
| # ----------------------- | ||||
| AC_DEFUN([_AM_MANGLE_OPTION], | ||||
| [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) | ||||
| 
 | ||||
| # _AM_SET_OPTION(NAME) | ||||
| # -------------------- | ||||
| # Set option NAME.  Presently that only means defining a flag for this option. | ||||
| AC_DEFUN([_AM_SET_OPTION], | ||||
| [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) | ||||
| 
 | ||||
| # _AM_SET_OPTIONS(OPTIONS) | ||||
| # ------------------------ | ||||
| # OPTIONS is a space-separated list of Automake options. | ||||
| AC_DEFUN([_AM_SET_OPTIONS], | ||||
| [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) | ||||
| 
 | ||||
| # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) | ||||
| # ------------------------------------------- | ||||
| # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. | ||||
| AC_DEFUN([_AM_IF_OPTION], | ||||
| [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) | ||||
| 
 | ||||
| # Check to make sure that the build environment is sane.    -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 | ||||
| # Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 5 | ||||
| 
 | ||||
| # AM_SANITY_CHECK | ||||
| # --------------- | ||||
| AC_DEFUN([AM_SANITY_CHECK], | ||||
| [AC_MSG_CHECKING([whether build environment is sane]) | ||||
| # Just in case | ||||
| sleep 1 | ||||
| echo timestamp > conftest.file | ||||
| # Reject unsafe characters in $srcdir or the absolute working directory | ||||
| # name.  Accept space and tab only in the latter. | ||||
| am_lf=' | ||||
| ' | ||||
| case `pwd` in | ||||
|   *[[\\\"\#\$\&\'\`$am_lf]]*) | ||||
|     AC_MSG_ERROR([unsafe absolute working directory name]);; | ||||
| esac | ||||
| case $srcdir in | ||||
|   *[[\\\"\#\$\&\'\`$am_lf\ \	]]*) | ||||
|     AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; | ||||
| esac | ||||
| 
 | ||||
| # Do `set' in a subshell so we don't clobber the current shell's | ||||
| # arguments.  Must try -L first in case configure is actually a | ||||
| # symlink; some systems play weird games with the mod time of symlinks | ||||
| # (eg FreeBSD returns the mod time of the symlink's containing | ||||
| # directory). | ||||
| if ( | ||||
|    set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` | ||||
|    if test "$[*]" = "X"; then | ||||
|       # -L didn't work. | ||||
|       set X `ls -t "$srcdir/configure" conftest.file` | ||||
|    fi | ||||
|    rm -f conftest.file | ||||
|    if test "$[*]" != "X $srcdir/configure conftest.file" \ | ||||
|       && test "$[*]" != "X conftest.file $srcdir/configure"; then | ||||
| 
 | ||||
|       # If neither matched, then we have a broken ls.  This can happen | ||||
|       # if, for instance, CONFIG_SHELL is bash and it inherits a | ||||
|       # broken ls alias from the environment.  This has actually | ||||
|       # happened.  Such a system could not be considered "sane". | ||||
|       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken | ||||
| alias in your environment]) | ||||
|    fi | ||||
| 
 | ||||
|    test "$[2]" = conftest.file | ||||
|    ) | ||||
| then | ||||
|    # Ok. | ||||
|    : | ||||
| else | ||||
|    AC_MSG_ERROR([newly created file is older than distributed files! | ||||
| Check your system clock]) | ||||
| fi | ||||
| AC_MSG_RESULT(yes)]) | ||||
| 
 | ||||
| # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 1 | ||||
| 
 | ||||
| # AM_PROG_INSTALL_STRIP | ||||
| # --------------------- | ||||
| # One issue with vendor `install' (even GNU) is that you can't | ||||
| # specify the program used to strip binaries.  This is especially | ||||
| # annoying in cross-compiling environments, where the build's strip | ||||
| # is unlikely to handle the host's binaries. | ||||
| # Fortunately install-sh will honor a STRIPPROG variable, so we | ||||
| # always use install-sh in `make install-strip', and initialize | ||||
| # STRIPPROG with the value of the STRIP variable (set by the user). | ||||
| AC_DEFUN([AM_PROG_INSTALL_STRIP], | ||||
| [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl | ||||
| # Installed binaries are usually stripped using `strip' when the user | ||||
| # run `make install-strip'.  However `strip' might not be the right | ||||
| # tool to use in cross-compilation environments, therefore Automake | ||||
| # will honor the `STRIP' environment variable to overrule this program. | ||||
| dnl Don't test for $cross_compiling = yes, because it might be `maybe'. | ||||
| if test "$cross_compiling" != no; then | ||||
|   AC_CHECK_TOOL([STRIP], [strip], :) | ||||
| fi | ||||
| INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" | ||||
| AC_SUBST([INSTALL_STRIP_PROGRAM])]) | ||||
| 
 | ||||
| # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 3 | ||||
| 
 | ||||
| # _AM_SUBST_NOTMAKE(VARIABLE) | ||||
| # --------------------------- | ||||
| # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. | ||||
| # This macro is traced by Automake. | ||||
| AC_DEFUN([_AM_SUBST_NOTMAKE]) | ||||
| 
 | ||||
| # AM_SUBST_NOTMAKE(VARIABLE) | ||||
| # -------------------------- | ||||
| # Public sister of _AM_SUBST_NOTMAKE. | ||||
| AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) | ||||
| 
 | ||||
| # Check how to create a tarball.                            -*- Autoconf -*- | ||||
| 
 | ||||
| # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 2 | ||||
| 
 | ||||
| # _AM_PROG_TAR(FORMAT) | ||||
| # -------------------- | ||||
| # Check how to create a tarball in format FORMAT. | ||||
| # FORMAT should be one of `v7', `ustar', or `pax'. | ||||
| # | ||||
| # Substitute a variable $(am__tar) that is a command | ||||
| # writing to stdout a FORMAT-tarball containing the directory | ||||
| # $tardir. | ||||
| #     tardir=directory && $(am__tar) > result.tar | ||||
| # | ||||
| # Substitute a variable $(am__untar) that extract such | ||||
| # a tarball read from stdin. | ||||
| #     $(am__untar) < result.tar | ||||
| AC_DEFUN([_AM_PROG_TAR], | ||||
| [# Always define AMTAR for backward compatibility.  Yes, it's still used | ||||
| # in the wild :-(  We should find a proper way to deprecate it ... | ||||
| AC_SUBST([AMTAR], ['$${TAR-tar}']) | ||||
| m4_if([$1], [v7], | ||||
|      [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], | ||||
|      [m4_case([$1], [ustar],, [pax],, | ||||
|               [m4_fatal([Unknown tar format])]) | ||||
| AC_MSG_CHECKING([how to create a $1 tar archive]) | ||||
| # Loop over all known methods to create a tar archive until one works. | ||||
| _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' | ||||
| _am_tools=${am_cv_prog_tar_$1-$_am_tools} | ||||
| # Do not fold the above two line into one, because Tru64 sh and | ||||
| # Solaris sh will not grok spaces in the rhs of `-'. | ||||
| for _am_tool in $_am_tools | ||||
| do | ||||
|   case $_am_tool in | ||||
|   gnutar) | ||||
|     for _am_tar in tar gnutar gtar; | ||||
|     do | ||||
|       AM_RUN_LOG([$_am_tar --version]) && break | ||||
|     done | ||||
|     am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' | ||||
|     am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' | ||||
|     am__untar="$_am_tar -xf -" | ||||
|     ;; | ||||
|   plaintar) | ||||
|     # Must skip GNU tar: if it does not support --format= it doesn't create | ||||
|     # ustar tarball either. | ||||
|     (tar --version) >/dev/null 2>&1 && continue | ||||
|     am__tar='tar chf - "$$tardir"' | ||||
|     am__tar_='tar chf - "$tardir"' | ||||
|     am__untar='tar xf -' | ||||
|     ;; | ||||
|   pax) | ||||
|     am__tar='pax -L -x $1 -w "$$tardir"' | ||||
|     am__tar_='pax -L -x $1 -w "$tardir"' | ||||
|     am__untar='pax -r' | ||||
|     ;; | ||||
|   cpio) | ||||
|     am__tar='find "$$tardir" -print | cpio -o -H $1 -L' | ||||
|     am__tar_='find "$tardir" -print | cpio -o -H $1 -L' | ||||
|     am__untar='cpio -i -H $1 -d' | ||||
|     ;; | ||||
|   none) | ||||
|     am__tar=false | ||||
|     am__tar_=false | ||||
|     am__untar=false | ||||
|     ;; | ||||
|   esac | ||||
| 
 | ||||
|   # If the value was cached, stop now.  We just wanted to have am__tar | ||||
|   # and am__untar set. | ||||
|   test -n "${am_cv_prog_tar_$1}" && break | ||||
| 
 | ||||
|   # tar/untar a dummy directory, and stop if the command works | ||||
|   rm -rf conftest.dir | ||||
|   mkdir conftest.dir | ||||
|   echo GrepMe > conftest.dir/file | ||||
|   AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) | ||||
|   rm -rf conftest.dir | ||||
|   if test -s conftest.tar; then | ||||
|     AM_RUN_LOG([$am__untar <conftest.tar]) | ||||
|     grep GrepMe conftest.dir/file >/dev/null 2>&1 && break | ||||
|   fi | ||||
| done | ||||
| rm -rf conftest.dir | ||||
| 
 | ||||
| AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) | ||||
| AC_MSG_RESULT([$am_cv_prog_tar_$1])]) | ||||
| AC_SUBST([am__tar]) | ||||
| AC_SUBST([am__untar]) | ||||
| ]) # _AM_PROG_TAR | ||||
| 
 | ||||
| m4_include([m4/libtool.m4]) | ||||
| m4_include([m4/ltoptions.m4]) | ||||
| m4_include([m4/ltsugar.m4]) | ||||
| m4_include([m4/ltversion.m4]) | ||||
| m4_include([m4/lt~obsolete.m4]) | ||||
											
												Binary file not shown.
											
										
									
								| @ -0,0 +1,4 @@ | ||||
| # ninja log v5 | ||||
| 0	3734	0	build.ninja	59aebd2f581b44c5 | ||||
| 0	874	0	cityhash@sha/src_city.cc.o	bfd9bcb65a42ae9d | ||||
| 878	1102	0	libcityhash.so	b223c3adac31d6ac | ||||
| @ -0,0 +1,139 @@ | ||||
| # This is the build file for project "cityhash" | ||||
| # It is autogenerated by the Meson build system. | ||||
| # Do not edit by hand. | ||||
| 
 | ||||
| ninja_required_version = 1.5.1 | ||||
| 
 | ||||
| # Rules for compiling. | ||||
| 
 | ||||
| rule llvm_ir_COMPILER | ||||
|  command = sc++ $ARGS  -o $out -c $in | ||||
|  description = Compiling LLVM IR object $in. | ||||
| 
 | ||||
| rule cpp_COMPILER | ||||
|  command = sc++ $ARGS  -MD -MQ $out -MF '$DEPFILE' -o $out -c $in | ||||
|  deps = gcc | ||||
|  depfile = $DEPFILE | ||||
|  description = Compiling C++ object $out. | ||||
| 
 | ||||
| rule cpp_PCH | ||||
|  command = sc++ $ARGS  -MD -MQ $out -MF '$DEPFILE' -o $out -c $in | ||||
|  deps = gcc | ||||
|  depfile = $DEPFILE | ||||
|  description = Precompiling header $in. | ||||
| 
 | ||||
| 
 | ||||
| # Rules for linking. | ||||
| 
 | ||||
| rule STATIC_LINKER | ||||
|  command =  rm -f $out && ar $LINK_ARGS $out $in | ||||
|  description = Linking static target $out. | ||||
| 
 | ||||
| rule cpp_LINKER | ||||
|  command = sc++ $ARGS -o $out $in $LINK_ARGS  $aliasing | ||||
|  description = Linking target $out. | ||||
| 
 | ||||
| 
 | ||||
| rule SHSYM | ||||
|  command = /usr/bin/python3.6 /usr/local/bin/meson --internal symbolextractor $in $out $CROSS | ||||
|  restat = 1 | ||||
|  description = Generating symbol file $out. | ||||
| 
 | ||||
| # Other rules | ||||
| 
 | ||||
| rule CUSTOM_COMMAND | ||||
|  command = $COMMAND | ||||
|  description = $DESC | ||||
|  restat = 1 | ||||
| 
 | ||||
| rule CUSTOM_COMMAND_DEP | ||||
|  command = $COMMAND | ||||
|  description = $DESC | ||||
|  deps = gcc | ||||
|  depfile = $DEPFILE | ||||
|  restat = 1 | ||||
| 
 | ||||
| rule REGENERATE_BUILD | ||||
|  command = /usr/bin/python3.6 /usr/local/bin/meson --internal regenerate /mnt/c/Users/Mahmoud/git/cityhash /mnt/c/Users/Mahmoud/git/cityhash/build --backend ninja | ||||
|  description = Regenerating build files. | ||||
|  generator = 1 | ||||
| 
 | ||||
| 
 | ||||
| # Phony build target, always out of date | ||||
| build PHONY: phony | ||||
| 
 | ||||
| # Build rules for targets | ||||
| 
 | ||||
| build cityhash@sha/src_city.cc.o: cpp_COMPILER ../src/city.cc | ||||
|  DEPFILE = cityhash@sha/src_city.cc.o.d | ||||
|  ARGS = -Icityhash@sha -I. -I.. -I../src/ -Iinternal -I../internal -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -O0 -g -march=native -msse4a -mfma -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -fPIC | ||||
| 
 | ||||
| build cityhash@sha/libcityhash.so.symbols: SHSYM libcityhash.so | ||||
| 
 | ||||
| build libcityhash.so: cpp_LINKER cityhash@sha/src_city.cc.o | ||||
|  LINK_ARGS = -Wl,--no-undefined -Wl,--as-needed -shared -fPIC -Wl,--start-group -Wl,-soname,libcityhash.so -Wl,--end-group -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI | ||||
| 
 | ||||
| # Test rules | ||||
| 
 | ||||
| build meson-test: CUSTOM_COMMAND all PHONY | ||||
|  COMMAND = /usr/bin/python3.6 -u /usr/local/bin/meson test --no-rebuild --print-errorlogs | ||||
|  DESC = Running$ all$ tests. | ||||
|  pool = console | ||||
| 
 | ||||
| build test: phony meson-test | ||||
| 
 | ||||
| build meson-benchmark: CUSTOM_COMMAND all PHONY | ||||
|  COMMAND = /usr/bin/python3.6 -u /usr/local/bin/meson test --benchmark --logbase benchmarklog --num-processes=1 --no-rebuild | ||||
|  DESC = Running$ benchmark$ suite. | ||||
|  pool = console | ||||
| 
 | ||||
| build benchmark: phony meson-benchmark | ||||
| 
 | ||||
| # Install rules | ||||
| 
 | ||||
| build meson-install: CUSTOM_COMMAND PHONY | all | ||||
|  DESC = Installing$ files. | ||||
|  COMMAND = /usr/bin/python3.6 /usr/local/bin/meson --internal install /mnt/c/Users/Mahmoud/git/cityhash/build/meson-private/install.dat | ||||
|  pool = console | ||||
| 
 | ||||
| build install: phony meson-install | ||||
| 
 | ||||
| build meson-dist: CUSTOM_COMMAND PHONY | ||||
|  DESC = Creating$ source$ packages | ||||
|  COMMAND = /usr/bin/python3.6 /usr/local/bin/meson --internal dist /mnt/c/Users/Mahmoud/git/cityhash /mnt/c/Users/Mahmoud/git/cityhash/build /usr/bin/python3.6 /usr/local/bin/meson | ||||
|  pool = console | ||||
| 
 | ||||
| build dist: phony meson-dist | ||||
| 
 | ||||
| # Suffix | ||||
| 
 | ||||
| build meson-scan-build: CUSTOM_COMMAND PHONY | ||||
|  COMMAND = /usr/bin/python3.6 /usr/local/bin/meson --internal scanbuild /mnt/c/Users/Mahmoud/git/cityhash /mnt/c/Users/Mahmoud/git/cityhash/build /usr/bin/python3.6 /usr/local/bin/meson | ||||
|  pool = console | ||||
| 
 | ||||
| build scan-build: phony meson-scan-build | ||||
| 
 | ||||
| build meson-uninstall: CUSTOM_COMMAND PHONY | ||||
|  COMMAND = /usr/bin/python3.6 /usr/local/bin/meson --internal uninstall | ||||
|  pool = console | ||||
| 
 | ||||
| build uninstall: phony meson-uninstall | ||||
| 
 | ||||
| build all: phony libcityhash.so | ||||
| 
 | ||||
| default all | ||||
| 
 | ||||
| build clean: phony meson-clean | ||||
| 
 | ||||
| build meson-clean: CUSTOM_COMMAND PHONY | ||||
|  COMMAND = ninja -t clean | ||||
|  description = Cleaning. | ||||
| 
 | ||||
| build build.ninja: REGENERATE_BUILD ../meson.build ../internal/meson.build meson-private/coredata.dat | ||||
|  pool = console | ||||
| 
 | ||||
| build reconfigure: REGENERATE_BUILD PHONY | ||||
|  pool = console | ||||
| 
 | ||||
| build ../meson.build ../internal/meson.build meson-private/coredata.dat: phony  | ||||
| 
 | ||||
											
												Binary file not shown.
											
										
									
								| @ -0,0 +1,7 @@ | ||||
| [ | ||||
|   { | ||||
|     "directory": "/mnt/c/Users/Mahmoud/git/cityhash/build", | ||||
|     "command": "sc++ -Icityhash@sha -I. -I.. -I../src/ -Iinternal -I../internal -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -O0 -g -march=native -msse4a -mfma -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -fPIC  -MD -MQ 'cityhash@sha/src_city.cc.o' -MF 'cityhash@sha/src_city.cc.o.d' -o 'cityhash@sha/src_city.cc.o' -c ../src/city.cc", | ||||
|     "file": "../src/city.cc" | ||||
|   } | ||||
| ] | ||||
| @ -0,0 +1,31 @@ | ||||
| /*
 | ||||
|  * Autogenerated by the Meson build system. | ||||
|  * Do not edit, your changes will be lost. | ||||
|  */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #define HAVE_BUILTIN_EXPECT 1 | ||||
| 
 | ||||
| #define HAVE_DLFCN_H 1 | ||||
| 
 | ||||
| #define HAVE_INTTYPES_H 1 | ||||
| 
 | ||||
| #define HAVE_MEMORY_H 1 | ||||
| 
 | ||||
| #define HAVE_STDINT_H 1 | ||||
| 
 | ||||
| #define HAVE_STDLIB_H 1 | ||||
| 
 | ||||
| #define HAVE_STRINGS_H 1 | ||||
| 
 | ||||
| #define HAVE_STRING_H 1 | ||||
| 
 | ||||
| #define HAVE_SYS_STAT_H 1 | ||||
| 
 | ||||
| #define HAVE_SYS_TYPES_H 1 | ||||
| 
 | ||||
| #define HAVE_UNISTD_H 1 | ||||
| 
 | ||||
| #define STDC_HEADERS | ||||
| 
 | ||||
											
												Binary file not shown.
											
										
									
								| @ -0,0 +1,248 @@ | ||||
| Build started at 2018-06-24T16:35:04.682597 | ||||
| Main binary: /usr/bin/python3.6 | ||||
| Python system: Linux | ||||
| The Meson build system | ||||
| Version: 0.46.0 | ||||
| Source dir: /mnt/c/Users/Mahmoud/git/cityhash | ||||
| Build dir: /mnt/c/Users/Mahmoud/git/cityhash/build | ||||
| Build type: native build | ||||
| Project name: cityhash | ||||
| Native C++ compiler: sc++ (clang 7.0.0 "clang version 7.0.0- (trunk)") | ||||
| Appending CXXFLAGS from environment: '-march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI' | ||||
| Appending CPPFLAGS from environment: '-march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI' | ||||
| Build machine cpu family: x86_64 | ||||
| Build machine cpu: x86_64 | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpm_zviaxq | ||||
| Command line:  sc++ /tmp/tmpm_zviaxq/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -o /tmp/tmpm_zviaxq/output.exe -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|  int main(){if(__builtin_expect(1<0,0)){}} | ||||
| Compiler stdout: | ||||
|   | ||||
| Compiler stderr: | ||||
|   | ||||
| Checking if "__builtin_expect" links: YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpfkribr7e | ||||
| Command line:  sc++ /tmp/tmpfkribr7e/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("dlfcn.h") | ||||
|           #error "Header 'dlfcn.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <dlfcn.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "dlfcn.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpvgu84_vv | ||||
| Command line:  sc++ /tmp/tmpvgu84_vv/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("inttypes.h") | ||||
|           #error "Header 'inttypes.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <inttypes.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "inttypes.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpxeel08sg | ||||
| Command line:  sc++ /tmp/tmpxeel08sg/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("memory.h") | ||||
|           #error "Header 'memory.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <memory.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "memory.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpsbdu836a | ||||
| Command line:  sc++ /tmp/tmpsbdu836a/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("stdint.h") | ||||
|           #error "Header 'stdint.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <stdint.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "stdint.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmp0v_87fw5 | ||||
| Command line:  sc++ /tmp/tmp0v_87fw5/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("stdlib.h") | ||||
|           #error "Header 'stdlib.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <stdlib.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "stdlib.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpvai4l63i | ||||
| Command line:  sc++ /tmp/tmpvai4l63i/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("strings.h") | ||||
|           #error "Header 'strings.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <strings.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "strings.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpquiwozk1 | ||||
| Command line:  sc++ /tmp/tmpquiwozk1/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("string.h") | ||||
|           #error "Header 'string.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <string.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "string.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmps7zurowq | ||||
| Command line:  sc++ /tmp/tmps7zurowq/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("sys/stat.h") | ||||
|           #error "Header 'sys/stat.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <sys/stat.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "sys/stat.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpm1u39pk2 | ||||
| Command line:  sc++ /tmp/tmpm1u39pk2/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("sys/types.h") | ||||
|           #error "Header 'sys/types.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <sys/types.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "sys/types.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpew93c9b9 | ||||
| Command line:  sc++ /tmp/tmpew93c9b9/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("unistd.h") | ||||
|           #error "Header 'unistd.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <unistd.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "unistd.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpfyys_71j | ||||
| Command line:  sc++ /tmp/tmpfyys_71j/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -E -P -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|   | ||||
|         #ifdef __has_include | ||||
|          #if !__has_include("stdio.h") | ||||
|           #error "Header 'stdio.h' could not be found" | ||||
|          #endif | ||||
|         #else | ||||
|          #include <stdio.h> | ||||
|         #endif | ||||
| Compiler stdout: | ||||
|   | ||||
| 
 | ||||
| Compiler stderr: | ||||
|   | ||||
| Has header "stdio.h": YES | ||||
| Running compile: | ||||
| Working directory:  /tmp/tmpas7uq5v1 | ||||
| Command line:  sc++ /tmp/tmpas7uq5v1/testfile.cpp -pipe -D_FILE_OFFSET_BITS=64 -o /tmp/tmpas7uq5v1/output.exe -march=native -msse4a -mfma -D_GLIBCXX_USE_CXX11_ABI -O0 -fpermissive  | ||||
| 
 | ||||
| Code: | ||||
|  inline void foo() {} int main() { foo(); } | ||||
| Compiler stdout: | ||||
|   | ||||
| Compiler stderr: | ||||
|   | ||||
| Checking if "inline" links: YES | ||||
| Configuring config.h using configuration | ||||
| Build targets in project: 1 | ||||
| Found ninja-1.5.1 at /usr/bin/ninja | ||||
											
												Binary file not shown.
											
										
									
								
											
												Binary file not shown.
											
										
									
								
											
												Binary file not shown.
											
										
									
								
											
												Binary file not shown.
											
										
									
								
											
												Binary file not shown.
											
										
									
								| @ -0,0 +1 @@ | ||||
| class breakCCompiler;int main(int argc, char **argv) { return 0; } | ||||
											
												Binary file not shown.
											
										
									
								
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								| @ -0,0 +1,113 @@ | ||||
| /* config.h.in.  Generated from configure.ac by autoheader.  */ | ||||
| 
 | ||||
| /* Define if building universal (internal helper macro) */ | ||||
| #undef AC_APPLE_UNIVERSAL_BUILD | ||||
| 
 | ||||
| /* Define to 1 if the compiler supports __builtin_expect. */ | ||||
| #undef HAVE_BUILTIN_EXPECT | ||||
| 
 | ||||
| /* Define to 1 if you have the <dlfcn.h> header file. */ | ||||
| #undef HAVE_DLFCN_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <inttypes.h> header file. */ | ||||
| #undef HAVE_INTTYPES_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <memory.h> header file. */ | ||||
| #undef HAVE_MEMORY_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <stdint.h> header file. */ | ||||
| #undef HAVE_STDINT_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <stdlib.h> header file. */ | ||||
| #undef HAVE_STDLIB_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <strings.h> header file. */ | ||||
| #undef HAVE_STRINGS_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <string.h> header file. */ | ||||
| #undef HAVE_STRING_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <sys/stat.h> header file. */ | ||||
| #undef HAVE_SYS_STAT_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <sys/types.h> header file. */ | ||||
| #undef HAVE_SYS_TYPES_H | ||||
| 
 | ||||
| /* Define to 1 if you have the <unistd.h> header file. */ | ||||
| #undef HAVE_UNISTD_H | ||||
| 
 | ||||
| /* Define to the sub-directory in which libtool stores uninstalled libraries.
 | ||||
|    */ | ||||
| #undef LT_OBJDIR | ||||
| 
 | ||||
| /* Define to the address where bug reports for this package should be sent. */ | ||||
| #undef PACKAGE_BUGREPORT | ||||
| 
 | ||||
| /* Define to the full name of this package. */ | ||||
| #undef PACKAGE_NAME | ||||
| 
 | ||||
| /* Define to the full name and version of this package. */ | ||||
| #undef PACKAGE_STRING | ||||
| 
 | ||||
| /* Define to the one symbol short name of this package. */ | ||||
| #undef PACKAGE_TARNAME | ||||
| 
 | ||||
| /* Define to the home page for this package. */ | ||||
| #undef PACKAGE_URL | ||||
| 
 | ||||
| /* Define to the version of this package. */ | ||||
| #undef PACKAGE_VERSION | ||||
| 
 | ||||
| /* Define to 1 if you have the ANSI C header files. */ | ||||
| #undef STDC_HEADERS | ||||
| 
 | ||||
| /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
 | ||||
|    significant byte first (like Motorola and SPARC, unlike Intel). */ | ||||
| #if defined AC_APPLE_UNIVERSAL_BUILD | ||||
| # if defined __BIG_ENDIAN__ | ||||
| #  define WORDS_BIGENDIAN 1 | ||||
| # endif | ||||
| #else | ||||
| # ifndef WORDS_BIGENDIAN | ||||
| #  undef WORDS_BIGENDIAN | ||||
| # endif | ||||
| #endif | ||||
| 
 | ||||
| /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
 | ||||
|    <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the | ||||
|    #define below would cause a syntax error. */ | ||||
| #undef _UINT32_T | ||||
| 
 | ||||
| /* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
 | ||||
|    <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the | ||||
|    #define below would cause a syntax error. */ | ||||
| #undef _UINT64_T | ||||
| 
 | ||||
| /* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
 | ||||
|    <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the | ||||
|    #define below would cause a syntax error. */ | ||||
| #undef _UINT8_T | ||||
| 
 | ||||
| /* Define to `__inline__' or `__inline' if that's what the C compiler
 | ||||
|    calls it, or to nothing if 'inline' is not supported under any name.  */ | ||||
| #ifndef __cplusplus | ||||
| #undef inline | ||||
| #endif | ||||
| 
 | ||||
| /* Define to `unsigned int' if <sys/types.h> does not define. */ | ||||
| #undef size_t | ||||
| 
 | ||||
| /* Define to `int' if <sys/types.h> does not define. */ | ||||
| #undef ssize_t | ||||
| 
 | ||||
| /* Define to the type of an unsigned integer type of width exactly 32 bits if
 | ||||
|    such a type exists and the standard includes do not define it. */ | ||||
| #undef uint32_t | ||||
| 
 | ||||
| /* Define to the type of an unsigned integer type of width exactly 64 bits if
 | ||||
|    such a type exists and the standard includes do not define it. */ | ||||
| #undef uint64_t | ||||
| 
 | ||||
| /* Define to the type of an unsigned integer type of width exactly 8 bits if
 | ||||
|    such a type exists and the standard includes do not define it. */ | ||||
| #undef uint8_t | ||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								| @ -0,0 +1,77 @@ | ||||
| m4_define([cityhash_major], [1]) | ||||
| m4_define([cityhash_minor], [1]) | ||||
| m4_define([cityhash_patchlevel], [1]) | ||||
| 
 | ||||
| # Libtool shared library interface versions (current:revision:age) | ||||
| # Update this value for every release!  (A:B:C will map to foo.so.(A-C).C.B) | ||||
| # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html | ||||
| m4_define([cityhash_ltversion], [4:0:0]) | ||||
| 
 | ||||
| AC_PREREQ([2.65]) | ||||
| AC_INIT([CityHash], [cityhash_major.cityhash_minor.cityhash_patchlevel], [cityhash-discuss@googlegroups.com]) | ||||
| AC_CONFIG_HEADERS([config.h]) | ||||
| AM_INIT_AUTOMAKE([1.10 no-define foreign]) | ||||
| LT_PREREQ([2.2]) | ||||
| LT_INIT | ||||
| 
 | ||||
| AC_CONFIG_FILES([Makefile | ||||
|                  src/Makefile]) | ||||
| AC_CONFIG_SRCDIR([src/city.h]) | ||||
| AC_CONFIG_MACRO_DIR([m4]) | ||||
| 
 | ||||
| AC_ARG_ENABLE([sse4.2], | ||||
|               AS_HELP_STRING("Build CityHash variants that depend on the _mm_crc32_u64 intrinsic."), | ||||
| 	      [ cityhash_sse42=true ], | ||||
| 	      []) | ||||
| AM_CONDITIONAL([SSE42], [test x$cityhash_sse42 = xtrue ]) | ||||
| 
 | ||||
| # Checks for programs. | ||||
| AC_PROG_CXX | ||||
| AC_LANG([C++]) | ||||
| AC_C_BIGENDIAN | ||||
| 
 | ||||
| # Checks for libraries. | ||||
| 
 | ||||
| # Checks for header files. | ||||
| AC_CHECK_HEADERS([stdint.h stdlib.h]) | ||||
| 
 | ||||
| # Checks for typedefs, structures, and compiler characteristics. | ||||
| AC_C_INLINE | ||||
| AC_TYPE_SIZE_T | ||||
| AC_TYPE_SSIZE_T | ||||
| AC_TYPE_UINT32_T | ||||
| AC_TYPE_UINT64_T | ||||
| AC_TYPE_UINT8_T | ||||
| 
 | ||||
| # Check for __builtin_expect | ||||
| AC_MSG_CHECKING([if the compiler supports __builtin_expect]) | ||||
| AC_COMPILE_IFELSE( | ||||
|   [AC_LANG_PROGRAM(, [[return __builtin_expect(1, 1) ? 1 : 0;]])], | ||||
|   [ | ||||
|     cityhash_have_builtin_expect=yes | ||||
|     AC_MSG_RESULT([yes]) | ||||
| ], [ | ||||
|     cityhash_have_builtin_expect=no | ||||
|     AC_MSG_RESULT([no]) | ||||
| ]) | ||||
| if test x$cityhash_have_builtin_expect = xyes ; then | ||||
|     AC_DEFINE([HAVE_BUILTIN_EXPECT], [1], [Define to 1 if the compiler supports __builtin_expect.]) | ||||
| fi | ||||
| 
 | ||||
| AC_OUTPUT | ||||
| 
 | ||||
| echo \ | ||||
| "------------------------------------------------- | ||||
| 
 | ||||
| ${PACKAGE_NAME} Version ${PACKAGE_VERSION} | ||||
| 
 | ||||
| Prefix: '${prefix}'. | ||||
| Compiler: '${CXX} ${CXXFLAGS}' | ||||
| 
 | ||||
| Now type 'make @<:@<target>@:>@' | ||||
|   where the optional <target> is: | ||||
|     all                - build everything | ||||
|     check              - build and run tests | ||||
|     install            - install everything | ||||
| 
 | ||||
| --------------------------------------------------" | ||||
| @ -0,0 +1,630 @@ | ||||
| #! /bin/sh | ||||
| # depcomp - compile a program generating dependencies as side-effects | ||||
| 
 | ||||
| scriptversion=2009-04-28.21; # UTC | ||||
| 
 | ||||
| # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free | ||||
| # Software Foundation, Inc. | ||||
| 
 | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2, or (at your option) | ||||
| # any later version. | ||||
| 
 | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| 
 | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| # As a special exception to the GNU General Public License, if you | ||||
| # distribute this file as part of a program that contains a | ||||
| # configuration script generated by Autoconf, you may include it under | ||||
| # the same distribution terms that you use for the rest of that program. | ||||
| 
 | ||||
| # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. | ||||
| 
 | ||||
| case $1 in | ||||
|   '') | ||||
|      echo "$0: No command.  Try \`$0 --help' for more information." 1>&2 | ||||
|      exit 1; | ||||
|      ;; | ||||
|   -h | --h*) | ||||
|     cat <<\EOF | ||||
| Usage: depcomp [--help] [--version] PROGRAM [ARGS] | ||||
| 
 | ||||
| Run PROGRAMS ARGS to compile a file, generating dependencies | ||||
| as side-effects. | ||||
| 
 | ||||
| Environment variables: | ||||
|   depmode     Dependency tracking mode. | ||||
|   source      Source file read by `PROGRAMS ARGS'. | ||||
|   object      Object file output by `PROGRAMS ARGS'. | ||||
|   DEPDIR      directory where to store dependencies. | ||||
|   depfile     Dependency file to output. | ||||
|   tmpdepfile  Temporary file to use when outputing dependencies. | ||||
|   libtool     Whether libtool is used (yes/no). | ||||
| 
 | ||||
| Report bugs to <bug-automake@gnu.org>. | ||||
| EOF | ||||
|     exit $? | ||||
|     ;; | ||||
|   -v | --v*) | ||||
|     echo "depcomp $scriptversion" | ||||
|     exit $? | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| if test -z "$depmode" || test -z "$source" || test -z "$object"; then | ||||
|   echo "depcomp: Variables source, object and depmode must be set" 1>&2 | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. | ||||
| depfile=${depfile-`echo "$object" | | ||||
|   sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} | ||||
| tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} | ||||
| 
 | ||||
| rm -f "$tmpdepfile" | ||||
| 
 | ||||
| # Some modes work just like other modes, but use different flags.  We | ||||
| # parameterize here, but still list the modes in the big case below, | ||||
| # to make depend.m4 easier to write.  Note that we *cannot* use a case | ||||
| # here, because this file can only contain one case statement. | ||||
| if test "$depmode" = hp; then | ||||
|   # HP compiler uses -M and no extra arg. | ||||
|   gccflag=-M | ||||
|   depmode=gcc | ||||
| fi | ||||
| 
 | ||||
| if test "$depmode" = dashXmstdout; then | ||||
|    # This is just like dashmstdout with a different argument. | ||||
|    dashmflag=-xM | ||||
|    depmode=dashmstdout | ||||
| fi | ||||
| 
 | ||||
| cygpath_u="cygpath -u -f -" | ||||
| if test "$depmode" = msvcmsys; then | ||||
|    # This is just like msvisualcpp but w/o cygpath translation. | ||||
|    # Just convert the backslash-escaped backslashes to single forward | ||||
|    # slashes to satisfy depend.m4 | ||||
|    cygpath_u="sed s,\\\\\\\\,/,g" | ||||
|    depmode=msvisualcpp | ||||
| fi | ||||
| 
 | ||||
| case "$depmode" in | ||||
| gcc3) | ||||
| ## gcc 3 implements dependency tracking that does exactly what | ||||
| ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like | ||||
| ## it if -MD -MP comes after the -MF stuff.  Hmm. | ||||
| ## Unfortunately, FreeBSD c89 acceptance of flags depends upon | ||||
| ## the command line argument order; so add the flags where they | ||||
| ## appear in depend2.am.  Note that the slowdown incurred here | ||||
| ## affects only configure: in makefiles, %FASTDEP% shortcuts this. | ||||
|   for arg | ||||
|   do | ||||
|     case $arg in | ||||
|     -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; | ||||
|     *)  set fnord "$@" "$arg" ;; | ||||
|     esac | ||||
|     shift # fnord | ||||
|     shift # $arg | ||||
|   done | ||||
|   "$@" | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   mv "$tmpdepfile" "$depfile" | ||||
|   ;; | ||||
| 
 | ||||
| gcc) | ||||
| ## There are various ways to get dependency output from gcc.  Here's | ||||
| ## why we pick this rather obscure method: | ||||
| ## - Don't want to use -MD because we'd like the dependencies to end | ||||
| ##   up in a subdir.  Having to rename by hand is ugly. | ||||
| ##   (We might end up doing this anyway to support other compilers.) | ||||
| ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like | ||||
| ##   -MM, not -M (despite what the docs say). | ||||
| ## - Using -M directly means running the compiler twice (even worse | ||||
| ##   than renaming). | ||||
|   if test -z "$gccflag"; then | ||||
|     gccflag=-MD, | ||||
|   fi | ||||
|   "$@" -Wp,"$gccflag$tmpdepfile" | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   rm -f "$depfile" | ||||
|   echo "$object : \\" > "$depfile" | ||||
|   alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | ||||
| ## The second -e expression handles DOS-style file names with drive letters. | ||||
|   sed -e 's/^[^:]*: / /' \ | ||||
|       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" | ||||
| ## This next piece of magic avoids the `deleted header file' problem. | ||||
| ## The problem is that when a header file which appears in a .P file | ||||
| ## is deleted, the dependency causes make to die (because there is | ||||
| ## typically no way to rebuild the header).  We avoid this by adding | ||||
| ## dummy dependencies for each header file.  Too bad gcc doesn't do | ||||
| ## this for us directly. | ||||
|   tr ' ' ' | ||||
| ' < "$tmpdepfile" | | ||||
| ## Some versions of gcc put a space before the `:'.  On the theory | ||||
| ## that the space means something, we add a space to the output as | ||||
| ## well. | ||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation | ||||
| ## correctly.  Breaking it into two sed invocations is a workaround. | ||||
|     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| hp) | ||||
|   # This case exists only to let depend.m4 do its work.  It works by | ||||
|   # looking at the text of this script.  This case will never be run, | ||||
|   # since it is checked for above. | ||||
|   exit 1 | ||||
|   ;; | ||||
| 
 | ||||
| sgi) | ||||
|   if test "$libtool" = yes; then | ||||
|     "$@" "-Wp,-MDupdate,$tmpdepfile" | ||||
|   else | ||||
|     "$@" -MDupdate "$tmpdepfile" | ||||
|   fi | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   rm -f "$depfile" | ||||
| 
 | ||||
|   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files | ||||
|     echo "$object : \\" > "$depfile" | ||||
| 
 | ||||
|     # Clip off the initial element (the dependent).  Don't try to be | ||||
|     # clever and replace this with sed code, as IRIX sed won't handle | ||||
|     # lines with more than a fixed number of characters (4096 in | ||||
|     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines; | ||||
|     # the IRIX cc adds comments like `#:fec' to the end of the | ||||
|     # dependency line. | ||||
|     tr ' ' ' | ||||
| ' < "$tmpdepfile" \ | ||||
|     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | ||||
|     tr ' | ||||
| ' ' ' >> "$depfile" | ||||
|     echo >> "$depfile" | ||||
| 
 | ||||
|     # The second pass generates a dummy entry for each header file. | ||||
|     tr ' ' ' | ||||
| ' < "$tmpdepfile" \ | ||||
|    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ | ||||
|    >> "$depfile" | ||||
|   else | ||||
|     # The sourcefile does not contain any dependencies, so just | ||||
|     # store a dummy comment line, to avoid errors with the Makefile | ||||
|     # "include basename.Plo" scheme. | ||||
|     echo "#dummy" > "$depfile" | ||||
|   fi | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| aix) | ||||
|   # The C for AIX Compiler uses -M and outputs the dependencies | ||||
|   # in a .u file.  In older versions, this file always lives in the | ||||
|   # current directory.  Also, the AIX compiler puts `$object:' at the | ||||
|   # start of each line; $object doesn't have directory information. | ||||
|   # Version 6 uses the directory in both cases. | ||||
|   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||||
|   test "x$dir" = "x$object" && dir= | ||||
|   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||||
|   if test "$libtool" = yes; then | ||||
|     tmpdepfile1=$dir$base.u | ||||
|     tmpdepfile2=$base.u | ||||
|     tmpdepfile3=$dir.libs/$base.u | ||||
|     "$@" -Wc,-M | ||||
|   else | ||||
|     tmpdepfile1=$dir$base.u | ||||
|     tmpdepfile2=$dir$base.u | ||||
|     tmpdepfile3=$dir$base.u | ||||
|     "$@" -M | ||||
|   fi | ||||
|   stat=$? | ||||
| 
 | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | ||||
|     exit $stat | ||||
|   fi | ||||
| 
 | ||||
|   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | ||||
|   do | ||||
|     test -f "$tmpdepfile" && break | ||||
|   done | ||||
|   if test -f "$tmpdepfile"; then | ||||
|     # Each line is of the form `foo.o: dependent.h'. | ||||
|     # Do two passes, one to just change these to | ||||
|     # `$object: dependent.h' and one to simply `dependent.h:'. | ||||
|     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | ||||
|     # That's a tab and a space in the []. | ||||
|     sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | ||||
|   else | ||||
|     # The sourcefile does not contain any dependencies, so just | ||||
|     # store a dummy comment line, to avoid errors with the Makefile | ||||
|     # "include basename.Plo" scheme. | ||||
|     echo "#dummy" > "$depfile" | ||||
|   fi | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| icc) | ||||
|   # Intel's C compiler understands `-MD -MF file'.  However on | ||||
|   #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c | ||||
|   # ICC 7.0 will fill foo.d with something like | ||||
|   #    foo.o: sub/foo.c | ||||
|   #    foo.o: sub/foo.h | ||||
|   # which is wrong.  We want: | ||||
|   #    sub/foo.o: sub/foo.c | ||||
|   #    sub/foo.o: sub/foo.h | ||||
|   #    sub/foo.c: | ||||
|   #    sub/foo.h: | ||||
|   # ICC 7.1 will output | ||||
|   #    foo.o: sub/foo.c sub/foo.h | ||||
|   # and will wrap long lines using \ : | ||||
|   #    foo.o: sub/foo.c ... \ | ||||
|   #     sub/foo.h ... \ | ||||
|   #     ... | ||||
| 
 | ||||
|   "$@" -MD -MF "$tmpdepfile" | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   rm -f "$depfile" | ||||
|   # Each line is of the form `foo.o: dependent.h', | ||||
|   # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. | ||||
|   # Do two passes, one to just change these to | ||||
|   # `$object: dependent.h' and one to simply `dependent.h:'. | ||||
|   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" | ||||
|   # Some versions of the HPUX 10.20 sed can't process this invocation | ||||
|   # correctly.  Breaking it into two sed invocations is a workaround. | ||||
|   sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | | ||||
|     sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| hp2) | ||||
|   # The "hp" stanza above does not work with aCC (C++) and HP's ia64 | ||||
|   # compilers, which have integrated preprocessors.  The correct option | ||||
|   # to use with these is +Maked; it writes dependencies to a file named | ||||
|   # 'foo.d', which lands next to the object file, wherever that | ||||
|   # happens to be. | ||||
|   # Much of this is similar to the tru64 case; see comments there. | ||||
|   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||||
|   test "x$dir" = "x$object" && dir= | ||||
|   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||||
|   if test "$libtool" = yes; then | ||||
|     tmpdepfile1=$dir$base.d | ||||
|     tmpdepfile2=$dir.libs/$base.d | ||||
|     "$@" -Wc,+Maked | ||||
|   else | ||||
|     tmpdepfile1=$dir$base.d | ||||
|     tmpdepfile2=$dir$base.d | ||||
|     "$@" +Maked | ||||
|   fi | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|      rm -f "$tmpdepfile1" "$tmpdepfile2" | ||||
|      exit $stat | ||||
|   fi | ||||
| 
 | ||||
|   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" | ||||
|   do | ||||
|     test -f "$tmpdepfile" && break | ||||
|   done | ||||
|   if test -f "$tmpdepfile"; then | ||||
|     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" | ||||
|     # Add `dependent.h:' lines. | ||||
|     sed -ne '2,${ | ||||
| 	       s/^ *// | ||||
| 	       s/ \\*$// | ||||
| 	       s/$/:/ | ||||
| 	       p | ||||
| 	     }' "$tmpdepfile" >> "$depfile" | ||||
|   else | ||||
|     echo "#dummy" > "$depfile" | ||||
|   fi | ||||
|   rm -f "$tmpdepfile" "$tmpdepfile2" | ||||
|   ;; | ||||
| 
 | ||||
| tru64) | ||||
|    # The Tru64 compiler uses -MD to generate dependencies as a side | ||||
|    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. | ||||
|    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put | ||||
|    # dependencies in `foo.d' instead, so we check for that too. | ||||
|    # Subdirectories are respected. | ||||
|    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||||
|    test "x$dir" = "x$object" && dir= | ||||
|    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||||
| 
 | ||||
|    if test "$libtool" = yes; then | ||||
|       # With Tru64 cc, shared objects can also be used to make a | ||||
|       # static library.  This mechanism is used in libtool 1.4 series to | ||||
|       # handle both shared and static libraries in a single compilation. | ||||
|       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. | ||||
|       # | ||||
|       # With libtool 1.5 this exception was removed, and libtool now | ||||
|       # generates 2 separate objects for the 2 libraries.  These two | ||||
|       # compilations output dependencies in $dir.libs/$base.o.d and | ||||
|       # in $dir$base.o.d.  We have to check for both files, because | ||||
|       # one of the two compilations can be disabled.  We should prefer | ||||
|       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is | ||||
|       # automatically cleaned when .libs/ is deleted, while ignoring | ||||
|       # the former would cause a distcleancheck panic. | ||||
|       tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4 | ||||
|       tmpdepfile2=$dir$base.o.d          # libtool 1.5 | ||||
|       tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5 | ||||
|       tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504 | ||||
|       "$@" -Wc,-MD | ||||
|    else | ||||
|       tmpdepfile1=$dir$base.o.d | ||||
|       tmpdepfile2=$dir$base.d | ||||
|       tmpdepfile3=$dir$base.d | ||||
|       tmpdepfile4=$dir$base.d | ||||
|       "$@" -MD | ||||
|    fi | ||||
| 
 | ||||
|    stat=$? | ||||
|    if test $stat -eq 0; then : | ||||
|    else | ||||
|       rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | ||||
|       exit $stat | ||||
|    fi | ||||
| 
 | ||||
|    for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | ||||
|    do | ||||
|      test -f "$tmpdepfile" && break | ||||
|    done | ||||
|    if test -f "$tmpdepfile"; then | ||||
|       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | ||||
|       # That's a tab and a space in the []. | ||||
|       sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | ||||
|    else | ||||
|       echo "#dummy" > "$depfile" | ||||
|    fi | ||||
|    rm -f "$tmpdepfile" | ||||
|    ;; | ||||
| 
 | ||||
| #nosideeffect) | ||||
|   # This comment above is used by automake to tell side-effect | ||||
|   # dependency tracking mechanisms from slower ones. | ||||
| 
 | ||||
| dashmstdout) | ||||
|   # Important note: in order to support this mode, a compiler *must* | ||||
|   # always write the preprocessed file to stdout, regardless of -o. | ||||
|   "$@" || exit $? | ||||
| 
 | ||||
|   # Remove the call to Libtool. | ||||
|   if test "$libtool" = yes; then | ||||
|     while test "X$1" != 'X--mode=compile'; do | ||||
|       shift | ||||
|     done | ||||
|     shift | ||||
|   fi | ||||
| 
 | ||||
|   # Remove `-o $object'. | ||||
|   IFS=" " | ||||
|   for arg | ||||
|   do | ||||
|     case $arg in | ||||
|     -o) | ||||
|       shift | ||||
|       ;; | ||||
|     $object) | ||||
|       shift | ||||
|       ;; | ||||
|     *) | ||||
|       set fnord "$@" "$arg" | ||||
|       shift # fnord | ||||
|       shift # $arg | ||||
|       ;; | ||||
|     esac | ||||
|   done | ||||
| 
 | ||||
|   test -z "$dashmflag" && dashmflag=-M | ||||
|   # Require at least two characters before searching for `:' | ||||
|   # in the target name.  This is to cope with DOS-style filenames: | ||||
|   # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. | ||||
|   "$@" $dashmflag | | ||||
|     sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile" | ||||
|   rm -f "$depfile" | ||||
|   cat < "$tmpdepfile" > "$depfile" | ||||
|   tr ' ' ' | ||||
| ' < "$tmpdepfile" | \ | ||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation | ||||
| ## correctly.  Breaking it into two sed invocations is a workaround. | ||||
|     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| dashXmstdout) | ||||
|   # This case only exists to satisfy depend.m4.  It is never actually | ||||
|   # run, as this mode is specially recognized in the preamble. | ||||
|   exit 1 | ||||
|   ;; | ||||
| 
 | ||||
| makedepend) | ||||
|   "$@" || exit $? | ||||
|   # Remove any Libtool call | ||||
|   if test "$libtool" = yes; then | ||||
|     while test "X$1" != 'X--mode=compile'; do | ||||
|       shift | ||||
|     done | ||||
|     shift | ||||
|   fi | ||||
|   # X makedepend | ||||
|   shift | ||||
|   cleared=no eat=no | ||||
|   for arg | ||||
|   do | ||||
|     case $cleared in | ||||
|     no) | ||||
|       set ""; shift | ||||
|       cleared=yes ;; | ||||
|     esac | ||||
|     if test $eat = yes; then | ||||
|       eat=no | ||||
|       continue | ||||
|     fi | ||||
|     case "$arg" in | ||||
|     -D*|-I*) | ||||
|       set fnord "$@" "$arg"; shift ;; | ||||
|     # Strip any option that makedepend may not understand.  Remove | ||||
|     # the object too, otherwise makedepend will parse it as a source file. | ||||
|     -arch) | ||||
|       eat=yes ;; | ||||
|     -*|$object) | ||||
|       ;; | ||||
|     *) | ||||
|       set fnord "$@" "$arg"; shift ;; | ||||
|     esac | ||||
|   done | ||||
|   obj_suffix=`echo "$object" | sed 's/^.*\././'` | ||||
|   touch "$tmpdepfile" | ||||
|   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" | ||||
|   rm -f "$depfile" | ||||
|   cat < "$tmpdepfile" > "$depfile" | ||||
|   sed '1,2d' "$tmpdepfile" | tr ' ' ' | ||||
| ' | \ | ||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation | ||||
| ## correctly.  Breaking it into two sed invocations is a workaround. | ||||
|     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" "$tmpdepfile".bak | ||||
|   ;; | ||||
| 
 | ||||
| cpp) | ||||
|   # Important note: in order to support this mode, a compiler *must* | ||||
|   # always write the preprocessed file to stdout. | ||||
|   "$@" || exit $? | ||||
| 
 | ||||
|   # Remove the call to Libtool. | ||||
|   if test "$libtool" = yes; then | ||||
|     while test "X$1" != 'X--mode=compile'; do | ||||
|       shift | ||||
|     done | ||||
|     shift | ||||
|   fi | ||||
| 
 | ||||
|   # Remove `-o $object'. | ||||
|   IFS=" " | ||||
|   for arg | ||||
|   do | ||||
|     case $arg in | ||||
|     -o) | ||||
|       shift | ||||
|       ;; | ||||
|     $object) | ||||
|       shift | ||||
|       ;; | ||||
|     *) | ||||
|       set fnord "$@" "$arg" | ||||
|       shift # fnord | ||||
|       shift # $arg | ||||
|       ;; | ||||
|     esac | ||||
|   done | ||||
| 
 | ||||
|   "$@" -E | | ||||
|     sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | ||||
|        -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | | ||||
|     sed '$ s: \\$::' > "$tmpdepfile" | ||||
|   rm -f "$depfile" | ||||
|   echo "$object : \\" > "$depfile" | ||||
|   cat < "$tmpdepfile" >> "$depfile" | ||||
|   sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| msvisualcpp) | ||||
|   # Important note: in order to support this mode, a compiler *must* | ||||
|   # always write the preprocessed file to stdout. | ||||
|   "$@" || exit $? | ||||
| 
 | ||||
|   # Remove the call to Libtool. | ||||
|   if test "$libtool" = yes; then | ||||
|     while test "X$1" != 'X--mode=compile'; do | ||||
|       shift | ||||
|     done | ||||
|     shift | ||||
|   fi | ||||
| 
 | ||||
|   IFS=" " | ||||
|   for arg | ||||
|   do | ||||
|     case "$arg" in | ||||
|     -o) | ||||
|       shift | ||||
|       ;; | ||||
|     $object) | ||||
|       shift | ||||
|       ;; | ||||
|     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") | ||||
| 	set fnord "$@" | ||||
| 	shift | ||||
| 	shift | ||||
| 	;; | ||||
|     *) | ||||
| 	set fnord "$@" "$arg" | ||||
| 	shift | ||||
| 	shift | ||||
| 	;; | ||||
|     esac | ||||
|   done | ||||
|   "$@" -E 2>/dev/null | | ||||
|   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" | ||||
|   rm -f "$depfile" | ||||
|   echo "$object : \\" > "$depfile" | ||||
|   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile" | ||||
|   echo "	" >> "$depfile" | ||||
|   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| msvcmsys) | ||||
|   # This case exists only to let depend.m4 do its work.  It works by | ||||
|   # looking at the text of this script.  This case will never be run, | ||||
|   # since it is checked for above. | ||||
|   exit 1 | ||||
|   ;; | ||||
| 
 | ||||
| none) | ||||
|   exec "$@" | ||||
|   ;; | ||||
| 
 | ||||
| *) | ||||
|   echo "Unknown depmode $depmode" 1>&2 | ||||
|   exit 1 | ||||
|   ;; | ||||
| esac | ||||
| 
 | ||||
| exit 0 | ||||
| 
 | ||||
| # Local Variables: | ||||
| # mode: shell-script | ||||
| # sh-indentation: 2 | ||||
| # eval: (add-hook 'write-file-hooks 'time-stamp) | ||||
| # time-stamp-start: "scriptversion=" | ||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" | ||||
| # time-stamp-time-zone: "UTC" | ||||
| # time-stamp-end: "; # UTC" | ||||
| # End: | ||||
| @ -0,0 +1,520 @@ | ||||
| #!/bin/sh | ||||
| # install - install a program, script, or datafile | ||||
| 
 | ||||
| scriptversion=2009-04-28.21; # UTC | ||||
| 
 | ||||
| # This originates from X11R5 (mit/util/scripts/install.sh), which was | ||||
| # later released in X11R6 (xc/config/util/install.sh) with the | ||||
| # following copyright and license. | ||||
| # | ||||
| # Copyright (C) 1994 X Consortium | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| # of this software and associated documentation files (the "Software"), to | ||||
| # deal in the Software without restriction, including without limitation the | ||||
| # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | ||||
| # sell copies of the Software, and to permit persons to whom the Software is | ||||
| # furnished to do so, subject to the following conditions: | ||||
| # | ||||
| # The above copyright notice and this permission notice shall be included in | ||||
| # all copies or substantial portions of the Software. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE | ||||
| # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
| # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- | ||||
| # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
| # | ||||
| # Except as contained in this notice, the name of the X Consortium shall not | ||||
| # be used in advertising or otherwise to promote the sale, use or other deal- | ||||
| # ings in this Software without prior written authorization from the X Consor- | ||||
| # tium. | ||||
| # | ||||
| # | ||||
| # FSF changes to this file are in the public domain. | ||||
| # | ||||
| # Calling this script install-sh is preferred over install.sh, to prevent | ||||
| # `make' implicit rules from creating a file called install from it | ||||
| # when there is no Makefile. | ||||
| # | ||||
| # This script is compatible with the BSD install script, but was written | ||||
| # from scratch. | ||||
| 
 | ||||
| nl=' | ||||
| ' | ||||
| IFS=" ""	$nl" | ||||
| 
 | ||||
| # set DOITPROG to echo to test this script | ||||
| 
 | ||||
| # Don't use :- since 4.3BSD and earlier shells don't like it. | ||||
| doit=${DOITPROG-} | ||||
| if test -z "$doit"; then | ||||
|   doit_exec=exec | ||||
| else | ||||
|   doit_exec=$doit | ||||
| fi | ||||
| 
 | ||||
| # Put in absolute file names if you don't have them in your path; | ||||
| # or use environment vars. | ||||
| 
 | ||||
| chgrpprog=${CHGRPPROG-chgrp} | ||||
| chmodprog=${CHMODPROG-chmod} | ||||
| chownprog=${CHOWNPROG-chown} | ||||
| cmpprog=${CMPPROG-cmp} | ||||
| cpprog=${CPPROG-cp} | ||||
| mkdirprog=${MKDIRPROG-mkdir} | ||||
| mvprog=${MVPROG-mv} | ||||
| rmprog=${RMPROG-rm} | ||||
| stripprog=${STRIPPROG-strip} | ||||
| 
 | ||||
| posix_glob='?' | ||||
| initialize_posix_glob=' | ||||
|   test "$posix_glob" != "?" || { | ||||
|     if (set -f) 2>/dev/null; then | ||||
|       posix_glob= | ||||
|     else | ||||
|       posix_glob=: | ||||
|     fi | ||||
|   } | ||||
| ' | ||||
| 
 | ||||
| posix_mkdir= | ||||
| 
 | ||||
| # Desired mode of installed file. | ||||
| mode=0755 | ||||
| 
 | ||||
| chgrpcmd= | ||||
| chmodcmd=$chmodprog | ||||
| chowncmd= | ||||
| mvcmd=$mvprog | ||||
| rmcmd="$rmprog -f" | ||||
| stripcmd= | ||||
| 
 | ||||
| src= | ||||
| dst= | ||||
| dir_arg= | ||||
| dst_arg= | ||||
| 
 | ||||
| copy_on_change=false | ||||
| no_target_directory= | ||||
| 
 | ||||
| usage="\ | ||||
| Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE | ||||
|    or: $0 [OPTION]... SRCFILES... DIRECTORY | ||||
|    or: $0 [OPTION]... -t DIRECTORY SRCFILES... | ||||
|    or: $0 [OPTION]... -d DIRECTORIES... | ||||
| 
 | ||||
| In the 1st form, copy SRCFILE to DSTFILE. | ||||
| In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. | ||||
| In the 4th, create DIRECTORIES. | ||||
| 
 | ||||
| Options: | ||||
|      --help     display this help and exit. | ||||
|      --version  display version info and exit. | ||||
| 
 | ||||
|   -c            (ignored) | ||||
|   -C            install only if different (preserve the last data modification time) | ||||
|   -d            create directories instead of installing files. | ||||
|   -g GROUP      $chgrpprog installed files to GROUP. | ||||
|   -m MODE       $chmodprog installed files to MODE. | ||||
|   -o USER       $chownprog installed files to USER. | ||||
|   -s            $stripprog installed files. | ||||
|   -t DIRECTORY  install into DIRECTORY. | ||||
|   -T            report an error if DSTFILE is a directory. | ||||
| 
 | ||||
| Environment variables override the default commands: | ||||
|   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG | ||||
|   RMPROG STRIPPROG | ||||
| " | ||||
| 
 | ||||
| while test $# -ne 0; do | ||||
|   case $1 in | ||||
|     -c) ;; | ||||
| 
 | ||||
|     -C) copy_on_change=true;; | ||||
| 
 | ||||
|     -d) dir_arg=true;; | ||||
| 
 | ||||
|     -g) chgrpcmd="$chgrpprog $2" | ||||
| 	shift;; | ||||
| 
 | ||||
|     --help) echo "$usage"; exit $?;; | ||||
| 
 | ||||
|     -m) mode=$2 | ||||
| 	case $mode in | ||||
| 	  *' '* | *'	'* | *' | ||||
| '*	  | *'*'* | *'?'* | *'['*) | ||||
| 	    echo "$0: invalid mode: $mode" >&2 | ||||
| 	    exit 1;; | ||||
| 	esac | ||||
| 	shift;; | ||||
| 
 | ||||
|     -o) chowncmd="$chownprog $2" | ||||
| 	shift;; | ||||
| 
 | ||||
|     -s) stripcmd=$stripprog;; | ||||
| 
 | ||||
|     -t) dst_arg=$2 | ||||
| 	shift;; | ||||
| 
 | ||||
|     -T) no_target_directory=true;; | ||||
| 
 | ||||
|     --version) echo "$0 $scriptversion"; exit $?;; | ||||
| 
 | ||||
|     --)	shift | ||||
| 	break;; | ||||
| 
 | ||||
|     -*)	echo "$0: invalid option: $1" >&2 | ||||
| 	exit 1;; | ||||
| 
 | ||||
|     *)  break;; | ||||
|   esac | ||||
|   shift | ||||
| done | ||||
| 
 | ||||
| if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then | ||||
|   # When -d is used, all remaining arguments are directories to create. | ||||
|   # When -t is used, the destination is already specified. | ||||
|   # Otherwise, the last argument is the destination.  Remove it from $@. | ||||
|   for arg | ||||
|   do | ||||
|     if test -n "$dst_arg"; then | ||||
|       # $@ is not empty: it contains at least $arg. | ||||
|       set fnord "$@" "$dst_arg" | ||||
|       shift # fnord | ||||
|     fi | ||||
|     shift # arg | ||||
|     dst_arg=$arg | ||||
|   done | ||||
| fi | ||||
| 
 | ||||
| if test $# -eq 0; then | ||||
|   if test -z "$dir_arg"; then | ||||
|     echo "$0: no input file specified." >&2 | ||||
|     exit 1 | ||||
|   fi | ||||
|   # It's OK to call `install-sh -d' without argument. | ||||
|   # This can happen when creating conditional directories. | ||||
|   exit 0 | ||||
| fi | ||||
| 
 | ||||
| if test -z "$dir_arg"; then | ||||
|   trap '(exit $?); exit' 1 2 13 15 | ||||
| 
 | ||||
|   # Set umask so as not to create temps with too-generous modes. | ||||
|   # However, 'strip' requires both read and write access to temps. | ||||
|   case $mode in | ||||
|     # Optimize common cases. | ||||
|     *644) cp_umask=133;; | ||||
|     *755) cp_umask=22;; | ||||
| 
 | ||||
|     *[0-7]) | ||||
|       if test -z "$stripcmd"; then | ||||
| 	u_plus_rw= | ||||
|       else | ||||
| 	u_plus_rw='% 200' | ||||
|       fi | ||||
|       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; | ||||
|     *) | ||||
|       if test -z "$stripcmd"; then | ||||
| 	u_plus_rw= | ||||
|       else | ||||
| 	u_plus_rw=,u+rw | ||||
|       fi | ||||
|       cp_umask=$mode$u_plus_rw;; | ||||
|   esac | ||||
| fi | ||||
| 
 | ||||
| for src | ||||
| do | ||||
|   # Protect names starting with `-'. | ||||
|   case $src in | ||||
|     -*) src=./$src;; | ||||
|   esac | ||||
| 
 | ||||
|   if test -n "$dir_arg"; then | ||||
|     dst=$src | ||||
|     dstdir=$dst | ||||
|     test -d "$dstdir" | ||||
|     dstdir_status=$? | ||||
|   else | ||||
| 
 | ||||
|     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command | ||||
|     # might cause directories to be created, which would be especially bad | ||||
|     # if $src (and thus $dsttmp) contains '*'. | ||||
|     if test ! -f "$src" && test ! -d "$src"; then | ||||
|       echo "$0: $src does not exist." >&2 | ||||
|       exit 1 | ||||
|     fi | ||||
| 
 | ||||
|     if test -z "$dst_arg"; then | ||||
|       echo "$0: no destination specified." >&2 | ||||
|       exit 1 | ||||
|     fi | ||||
| 
 | ||||
|     dst=$dst_arg | ||||
|     # Protect names starting with `-'. | ||||
|     case $dst in | ||||
|       -*) dst=./$dst;; | ||||
|     esac | ||||
| 
 | ||||
|     # If destination is a directory, append the input filename; won't work | ||||
|     # if double slashes aren't ignored. | ||||
|     if test -d "$dst"; then | ||||
|       if test -n "$no_target_directory"; then | ||||
| 	echo "$0: $dst_arg: Is a directory" >&2 | ||||
| 	exit 1 | ||||
|       fi | ||||
|       dstdir=$dst | ||||
|       dst=$dstdir/`basename "$src"` | ||||
|       dstdir_status=0 | ||||
|     else | ||||
|       # Prefer dirname, but fall back on a substitute if dirname fails. | ||||
|       dstdir=` | ||||
| 	(dirname "$dst") 2>/dev/null || | ||||
| 	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||||
| 	     X"$dst" : 'X\(//\)[^/]' \| \ | ||||
| 	     X"$dst" : 'X\(//\)$' \| \ | ||||
| 	     X"$dst" : 'X\(/\)' \| . 2>/dev/null || | ||||
| 	echo X"$dst" | | ||||
| 	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||||
| 		   s//\1/ | ||||
| 		   q | ||||
| 		 } | ||||
| 		 /^X\(\/\/\)[^/].*/{ | ||||
| 		   s//\1/ | ||||
| 		   q | ||||
| 		 } | ||||
| 		 /^X\(\/\/\)$/{ | ||||
| 		   s//\1/ | ||||
| 		   q | ||||
| 		 } | ||||
| 		 /^X\(\/\).*/{ | ||||
| 		   s//\1/ | ||||
| 		   q | ||||
| 		 } | ||||
| 		 s/.*/./; q' | ||||
|       ` | ||||
| 
 | ||||
|       test -d "$dstdir" | ||||
|       dstdir_status=$? | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   obsolete_mkdir_used=false | ||||
| 
 | ||||
|   if test $dstdir_status != 0; then | ||||
|     case $posix_mkdir in | ||||
|       '') | ||||
| 	# Create intermediate dirs using mode 755 as modified by the umask. | ||||
| 	# This is like FreeBSD 'install' as of 1997-10-28. | ||||
| 	umask=`umask` | ||||
| 	case $stripcmd.$umask in | ||||
| 	  # Optimize common cases. | ||||
| 	  *[2367][2367]) mkdir_umask=$umask;; | ||||
| 	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; | ||||
| 
 | ||||
| 	  *[0-7]) | ||||
| 	    mkdir_umask=`expr $umask + 22 \ | ||||
| 	      - $umask % 100 % 40 + $umask % 20 \ | ||||
| 	      - $umask % 10 % 4 + $umask % 2 | ||||
| 	    `;; | ||||
| 	  *) mkdir_umask=$umask,go-w;; | ||||
| 	esac | ||||
| 
 | ||||
| 	# With -d, create the new directory with the user-specified mode. | ||||
| 	# Otherwise, rely on $mkdir_umask. | ||||
| 	if test -n "$dir_arg"; then | ||||
| 	  mkdir_mode=-m$mode | ||||
| 	else | ||||
| 	  mkdir_mode= | ||||
| 	fi | ||||
| 
 | ||||
| 	posix_mkdir=false | ||||
| 	case $umask in | ||||
| 	  *[123567][0-7][0-7]) | ||||
| 	    # POSIX mkdir -p sets u+wx bits regardless of umask, which | ||||
| 	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0. | ||||
| 	    ;; | ||||
| 	  *) | ||||
| 	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ | ||||
| 	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 | ||||
| 
 | ||||
| 	    if (umask $mkdir_umask && | ||||
| 		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 | ||||
| 	    then | ||||
| 	      if test -z "$dir_arg" || { | ||||
| 		   # Check for POSIX incompatibilities with -m. | ||||
| 		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or | ||||
| 		   # other-writeable bit of parent directory when it shouldn't. | ||||
| 		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. | ||||
| 		   ls_ld_tmpdir=`ls -ld "$tmpdir"` | ||||
| 		   case $ls_ld_tmpdir in | ||||
| 		     d????-?r-*) different_mode=700;; | ||||
| 		     d????-?--*) different_mode=755;; | ||||
| 		     *) false;; | ||||
| 		   esac && | ||||
| 		   $mkdirprog -m$different_mode -p -- "$tmpdir" && { | ||||
| 		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"` | ||||
| 		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" | ||||
| 		   } | ||||
| 		 } | ||||
| 	      then posix_mkdir=: | ||||
| 	      fi | ||||
| 	      rmdir "$tmpdir/d" "$tmpdir" | ||||
| 	    else | ||||
| 	      # Remove any dirs left behind by ancient mkdir implementations. | ||||
| 	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null | ||||
| 	    fi | ||||
| 	    trap '' 0;; | ||||
| 	esac;; | ||||
|     esac | ||||
| 
 | ||||
|     if | ||||
|       $posix_mkdir && ( | ||||
| 	umask $mkdir_umask && | ||||
| 	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" | ||||
|       ) | ||||
|     then : | ||||
|     else | ||||
| 
 | ||||
|       # The umask is ridiculous, or mkdir does not conform to POSIX, | ||||
|       # or it failed possibly due to a race condition.  Create the | ||||
|       # directory the slow way, step by step, checking for races as we go. | ||||
| 
 | ||||
|       case $dstdir in | ||||
| 	/*) prefix='/';; | ||||
| 	-*) prefix='./';; | ||||
| 	*)  prefix='';; | ||||
|       esac | ||||
| 
 | ||||
|       eval "$initialize_posix_glob" | ||||
| 
 | ||||
|       oIFS=$IFS | ||||
|       IFS=/ | ||||
|       $posix_glob set -f | ||||
|       set fnord $dstdir | ||||
|       shift | ||||
|       $posix_glob set +f | ||||
|       IFS=$oIFS | ||||
| 
 | ||||
|       prefixes= | ||||
| 
 | ||||
|       for d | ||||
|       do | ||||
| 	test -z "$d" && continue | ||||
| 
 | ||||
| 	prefix=$prefix$d | ||||
| 	if test -d "$prefix"; then | ||||
| 	  prefixes= | ||||
| 	else | ||||
| 	  if $posix_mkdir; then | ||||
| 	    (umask=$mkdir_umask && | ||||
| 	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break | ||||
| 	    # Don't fail if two instances are running concurrently. | ||||
| 	    test -d "$prefix" || exit 1 | ||||
| 	  else | ||||
| 	    case $prefix in | ||||
| 	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; | ||||
| 	      *) qprefix=$prefix;; | ||||
| 	    esac | ||||
| 	    prefixes="$prefixes '$qprefix'" | ||||
| 	  fi | ||||
| 	fi | ||||
| 	prefix=$prefix/ | ||||
|       done | ||||
| 
 | ||||
|       if test -n "$prefixes"; then | ||||
| 	# Don't fail if two instances are running concurrently. | ||||
| 	(umask $mkdir_umask && | ||||
| 	 eval "\$doit_exec \$mkdirprog $prefixes") || | ||||
| 	  test -d "$dstdir" || exit 1 | ||||
| 	obsolete_mkdir_used=true | ||||
|       fi | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   if test -n "$dir_arg"; then | ||||
|     { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && | ||||
|     { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && | ||||
|     { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || | ||||
|       test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 | ||||
|   else | ||||
| 
 | ||||
|     # Make a couple of temp file names in the proper directory. | ||||
|     dsttmp=$dstdir/_inst.$$_ | ||||
|     rmtmp=$dstdir/_rm.$$_ | ||||
| 
 | ||||
|     # Trap to clean up those temp files at exit. | ||||
|     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 | ||||
| 
 | ||||
|     # Copy the file name to the temp name. | ||||
|     (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && | ||||
| 
 | ||||
|     # and set any options; do chmod last to preserve setuid bits. | ||||
|     # | ||||
|     # If any of these fail, we abort the whole thing.  If we want to | ||||
|     # ignore errors from any of these, just make sure not to ignore | ||||
|     # errors from the above "$doit $cpprog $src $dsttmp" command. | ||||
|     # | ||||
|     { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && | ||||
|     { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && | ||||
|     { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && | ||||
|     { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && | ||||
| 
 | ||||
|     # If -C, don't bother to copy if it wouldn't change the file. | ||||
|     if $copy_on_change && | ||||
|        old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` && | ||||
|        new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` && | ||||
| 
 | ||||
|        eval "$initialize_posix_glob" && | ||||
|        $posix_glob set -f && | ||||
|        set X $old && old=:$2:$4:$5:$6 && | ||||
|        set X $new && new=:$2:$4:$5:$6 && | ||||
|        $posix_glob set +f && | ||||
| 
 | ||||
|        test "$old" = "$new" && | ||||
|        $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 | ||||
|     then | ||||
|       rm -f "$dsttmp" | ||||
|     else | ||||
|       # Rename the file to the real destination. | ||||
|       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || | ||||
| 
 | ||||
|       # The rename failed, perhaps because mv can't rename something else | ||||
|       # to itself, or perhaps because mv is so ancient that it does not | ||||
|       # support -f. | ||||
|       { | ||||
| 	# Now remove or move aside any old file at destination location. | ||||
| 	# We try this two ways since rm can't unlink itself on some | ||||
| 	# systems and the destination file might be busy for other | ||||
| 	# reasons.  In this case, the final cleanup might fail but the new | ||||
| 	# file should still install successfully. | ||||
| 	{ | ||||
| 	  test ! -f "$dst" || | ||||
| 	  $doit $rmcmd -f "$dst" 2>/dev/null || | ||||
| 	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && | ||||
| 	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } | ||||
| 	  } || | ||||
| 	  { echo "$0: cannot unlink or rename $dst" >&2 | ||||
| 	    (exit 1); exit 1 | ||||
| 	  } | ||||
| 	} && | ||||
| 
 | ||||
| 	# Now rename the file to the real destination. | ||||
| 	$doit $mvcmd "$dsttmp" "$dst" | ||||
|       } | ||||
|     fi || exit 1 | ||||
| 
 | ||||
|     trap '' 0 | ||||
|   fi | ||||
| done | ||||
| 
 | ||||
| # Local variables: | ||||
| # eval: (add-hook 'write-file-hooks 'time-stamp) | ||||
| # time-stamp-start: "scriptversion=" | ||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" | ||||
| # time-stamp-time-zone: "UTC" | ||||
| # time-stamp-end: "; # UTC" | ||||
| # End: | ||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								| @ -0,0 +1,369 @@ | ||||
| # Helper functions for option handling.                    -*- Autoconf -*- | ||||
| # | ||||
| #   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, | ||||
| #   Inc. | ||||
| #   Written by Gary V. Vaughan, 2004 | ||||
| # | ||||
| # This file is free software; the Free Software Foundation gives | ||||
| # unlimited permission to copy and/or distribute it, with or without | ||||
| # modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 7 ltoptions.m4 | ||||
| 
 | ||||
| # This is to help aclocal find these macros, as it can't see m4_define. | ||||
| AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) | ||||
| 
 | ||||
| 
 | ||||
| # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) | ||||
| # ------------------------------------------ | ||||
| m4_define([_LT_MANGLE_OPTION], | ||||
| [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) | ||||
| 
 | ||||
| 
 | ||||
| # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) | ||||
| # --------------------------------------- | ||||
| # Set option OPTION-NAME for macro MACRO-NAME, and if there is a | ||||
| # matching handler defined, dispatch to it.  Other OPTION-NAMEs are | ||||
| # saved as a flag. | ||||
| m4_define([_LT_SET_OPTION], | ||||
| [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl | ||||
| m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), | ||||
|         _LT_MANGLE_DEFUN([$1], [$2]), | ||||
|     [m4_warning([Unknown $1 option `$2'])])[]dnl | ||||
| ]) | ||||
| 
 | ||||
| 
 | ||||
| # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) | ||||
| # ------------------------------------------------------------ | ||||
| # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. | ||||
| m4_define([_LT_IF_OPTION], | ||||
| [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) | ||||
| 
 | ||||
| 
 | ||||
| # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) | ||||
| # ------------------------------------------------------- | ||||
| # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME | ||||
| # are set. | ||||
| m4_define([_LT_UNLESS_OPTIONS], | ||||
| [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), | ||||
| 	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), | ||||
| 		      [m4_define([$0_found])])])[]dnl | ||||
| m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 | ||||
| ])[]dnl | ||||
| ]) | ||||
| 
 | ||||
| 
 | ||||
| # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) | ||||
| # ---------------------------------------- | ||||
| # OPTION-LIST is a space-separated list of Libtool options associated | ||||
| # with MACRO-NAME.  If any OPTION has a matching handler declared with | ||||
| # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about | ||||
| # the unknown option and exit. | ||||
| m4_defun([_LT_SET_OPTIONS], | ||||
| [# Set options | ||||
| m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), | ||||
|     [_LT_SET_OPTION([$1], _LT_Option)]) | ||||
| 
 | ||||
| m4_if([$1],[LT_INIT],[ | ||||
|   dnl | ||||
|   dnl Simply set some default values (i.e off) if boolean options were not | ||||
|   dnl specified: | ||||
|   _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no | ||||
|   ]) | ||||
|   _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no | ||||
|   ]) | ||||
|   dnl | ||||
|   dnl If no reference was made to various pairs of opposing options, then | ||||
|   dnl we run the default mode handler for the pair.  For example, if neither | ||||
|   dnl `shared' nor `disable-shared' was passed, we enable building of shared | ||||
|   dnl archives by default: | ||||
|   _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) | ||||
|   _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) | ||||
|   _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) | ||||
|   _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], | ||||
|   		   [_LT_ENABLE_FAST_INSTALL]) | ||||
|   ]) | ||||
| ])# _LT_SET_OPTIONS | ||||
| 
 | ||||
| 
 | ||||
| ## --------------------------------- ## | ||||
| ## Macros to handle LT_INIT options. ## | ||||
| ## --------------------------------- ## | ||||
| 
 | ||||
| # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) | ||||
| # ----------------------------------------- | ||||
| m4_define([_LT_MANGLE_DEFUN], | ||||
| [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) | ||||
| 
 | ||||
| 
 | ||||
| # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) | ||||
| # ----------------------------------------------- | ||||
| m4_define([LT_OPTION_DEFINE], | ||||
| [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl | ||||
| ])# LT_OPTION_DEFINE | ||||
| 
 | ||||
| 
 | ||||
| # dlopen | ||||
| # ------ | ||||
| LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes | ||||
| ]) | ||||
| 
 | ||||
| AU_DEFUN([AC_LIBTOOL_DLOPEN], | ||||
| [_LT_SET_OPTION([LT_INIT], [dlopen]) | ||||
| AC_DIAGNOSE([obsolete], | ||||
| [$0: Remove this warning and the call to _LT_SET_OPTION when you | ||||
| put the `dlopen' option into LT_INIT's first parameter.]) | ||||
| ]) | ||||
| 
 | ||||
| dnl aclocal-1.4 backwards compatibility: | ||||
| dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) | ||||
| 
 | ||||
| 
 | ||||
| # win32-dll | ||||
| # --------- | ||||
| # Declare package support for building win32 dll's. | ||||
| LT_OPTION_DEFINE([LT_INIT], [win32-dll], | ||||
| [enable_win32_dll=yes | ||||
| 
 | ||||
| case $host in | ||||
| *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) | ||||
|   AC_CHECK_TOOL(AS, as, false) | ||||
|   AC_CHECK_TOOL(DLLTOOL, dlltool, false) | ||||
|   AC_CHECK_TOOL(OBJDUMP, objdump, false) | ||||
|   ;; | ||||
| esac | ||||
| 
 | ||||
| test -z "$AS" && AS=as | ||||
| _LT_DECL([], [AS],      [1], [Assembler program])dnl | ||||
| 
 | ||||
| test -z "$DLLTOOL" && DLLTOOL=dlltool | ||||
| _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl | ||||
| 
 | ||||
| test -z "$OBJDUMP" && OBJDUMP=objdump | ||||
| _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl | ||||
| ])# win32-dll | ||||
| 
 | ||||
| AU_DEFUN([AC_LIBTOOL_WIN32_DLL], | ||||
| [AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||||
| _LT_SET_OPTION([LT_INIT], [win32-dll]) | ||||
| AC_DIAGNOSE([obsolete], | ||||
| [$0: Remove this warning and the call to _LT_SET_OPTION when you | ||||
| put the `win32-dll' option into LT_INIT's first parameter.]) | ||||
| ]) | ||||
| 
 | ||||
| dnl aclocal-1.4 backwards compatibility: | ||||
| dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) | ||||
| 
 | ||||
| 
 | ||||
| # _LT_ENABLE_SHARED([DEFAULT]) | ||||
| # ---------------------------- | ||||
| # implement the --enable-shared flag, and supports the `shared' and | ||||
| # `disable-shared' LT_INIT options. | ||||
| # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'. | ||||
| m4_define([_LT_ENABLE_SHARED], | ||||
| [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl | ||||
| AC_ARG_ENABLE([shared], | ||||
|     [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], | ||||
| 	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], | ||||
|     [p=${PACKAGE-default} | ||||
|     case $enableval in | ||||
|     yes) enable_shared=yes ;; | ||||
|     no) enable_shared=no ;; | ||||
|     *) | ||||
|       enable_shared=no | ||||
|       # Look at the argument we got.  We use all the common list separators. | ||||
|       lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||||
|       for pkg in $enableval; do | ||||
| 	IFS="$lt_save_ifs" | ||||
| 	if test "X$pkg" = "X$p"; then | ||||
| 	  enable_shared=yes | ||||
| 	fi | ||||
|       done | ||||
|       IFS="$lt_save_ifs" | ||||
|       ;; | ||||
|     esac], | ||||
|     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) | ||||
| 
 | ||||
|     _LT_DECL([build_libtool_libs], [enable_shared], [0], | ||||
| 	[Whether or not to build shared libraries]) | ||||
| ])# _LT_ENABLE_SHARED | ||||
| 
 | ||||
| LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) | ||||
| LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) | ||||
| 
 | ||||
| # Old names: | ||||
| AC_DEFUN([AC_ENABLE_SHARED], | ||||
| [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) | ||||
| ]) | ||||
| 
 | ||||
| AC_DEFUN([AC_DISABLE_SHARED], | ||||
| [_LT_SET_OPTION([LT_INIT], [disable-shared]) | ||||
| ]) | ||||
| 
 | ||||
| AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) | ||||
| AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) | ||||
| 
 | ||||
| dnl aclocal-1.4 backwards compatibility: | ||||
| dnl AC_DEFUN([AM_ENABLE_SHARED], []) | ||||
| dnl AC_DEFUN([AM_DISABLE_SHARED], []) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # _LT_ENABLE_STATIC([DEFAULT]) | ||||
| # ---------------------------- | ||||
| # implement the --enable-static flag, and support the `static' and | ||||
| # `disable-static' LT_INIT options. | ||||
| # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'. | ||||
| m4_define([_LT_ENABLE_STATIC], | ||||
| [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl | ||||
| AC_ARG_ENABLE([static], | ||||
|     [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], | ||||
| 	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], | ||||
|     [p=${PACKAGE-default} | ||||
|     case $enableval in | ||||
|     yes) enable_static=yes ;; | ||||
|     no) enable_static=no ;; | ||||
|     *) | ||||
|      enable_static=no | ||||
|       # Look at the argument we got.  We use all the common list separators. | ||||
|       lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||||
|       for pkg in $enableval; do | ||||
| 	IFS="$lt_save_ifs" | ||||
| 	if test "X$pkg" = "X$p"; then | ||||
| 	  enable_static=yes | ||||
| 	fi | ||||
|       done | ||||
|       IFS="$lt_save_ifs" | ||||
|       ;; | ||||
|     esac], | ||||
|     [enable_static=]_LT_ENABLE_STATIC_DEFAULT) | ||||
| 
 | ||||
|     _LT_DECL([build_old_libs], [enable_static], [0], | ||||
| 	[Whether or not to build static libraries]) | ||||
| ])# _LT_ENABLE_STATIC | ||||
| 
 | ||||
| LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) | ||||
| LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) | ||||
| 
 | ||||
| # Old names: | ||||
| AC_DEFUN([AC_ENABLE_STATIC], | ||||
| [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) | ||||
| ]) | ||||
| 
 | ||||
| AC_DEFUN([AC_DISABLE_STATIC], | ||||
| [_LT_SET_OPTION([LT_INIT], [disable-static]) | ||||
| ]) | ||||
| 
 | ||||
| AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) | ||||
| AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) | ||||
| 
 | ||||
| dnl aclocal-1.4 backwards compatibility: | ||||
| dnl AC_DEFUN([AM_ENABLE_STATIC], []) | ||||
| dnl AC_DEFUN([AM_DISABLE_STATIC], []) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # _LT_ENABLE_FAST_INSTALL([DEFAULT]) | ||||
| # ---------------------------------- | ||||
| # implement the --enable-fast-install flag, and support the `fast-install' | ||||
| # and `disable-fast-install' LT_INIT options. | ||||
| # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'. | ||||
| m4_define([_LT_ENABLE_FAST_INSTALL], | ||||
| [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl | ||||
| AC_ARG_ENABLE([fast-install], | ||||
|     [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], | ||||
|     [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], | ||||
|     [p=${PACKAGE-default} | ||||
|     case $enableval in | ||||
|     yes) enable_fast_install=yes ;; | ||||
|     no) enable_fast_install=no ;; | ||||
|     *) | ||||
|       enable_fast_install=no | ||||
|       # Look at the argument we got.  We use all the common list separators. | ||||
|       lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||||
|       for pkg in $enableval; do | ||||
| 	IFS="$lt_save_ifs" | ||||
| 	if test "X$pkg" = "X$p"; then | ||||
| 	  enable_fast_install=yes | ||||
| 	fi | ||||
|       done | ||||
|       IFS="$lt_save_ifs" | ||||
|       ;; | ||||
|     esac], | ||||
|     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) | ||||
| 
 | ||||
| _LT_DECL([fast_install], [enable_fast_install], [0], | ||||
| 	 [Whether or not to optimize for fast installation])dnl | ||||
| ])# _LT_ENABLE_FAST_INSTALL | ||||
| 
 | ||||
| LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) | ||||
| LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) | ||||
| 
 | ||||
| # Old names: | ||||
| AU_DEFUN([AC_ENABLE_FAST_INSTALL], | ||||
| [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) | ||||
| AC_DIAGNOSE([obsolete], | ||||
| [$0: Remove this warning and the call to _LT_SET_OPTION when you put | ||||
| the `fast-install' option into LT_INIT's first parameter.]) | ||||
| ]) | ||||
| 
 | ||||
| AU_DEFUN([AC_DISABLE_FAST_INSTALL], | ||||
| [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) | ||||
| AC_DIAGNOSE([obsolete], | ||||
| [$0: Remove this warning and the call to _LT_SET_OPTION when you put | ||||
| the `disable-fast-install' option into LT_INIT's first parameter.]) | ||||
| ]) | ||||
| 
 | ||||
| dnl aclocal-1.4 backwards compatibility: | ||||
| dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) | ||||
| dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) | ||||
| 
 | ||||
| 
 | ||||
| # _LT_WITH_PIC([MODE]) | ||||
| # -------------------- | ||||
| # implement the --with-pic flag, and support the `pic-only' and `no-pic' | ||||
| # LT_INIT options. | ||||
| # MODE is either `yes' or `no'.  If omitted, it defaults to `both'. | ||||
| m4_define([_LT_WITH_PIC], | ||||
| [AC_ARG_WITH([pic], | ||||
|     [AS_HELP_STRING([--with-pic], | ||||
| 	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])], | ||||
|     [pic_mode="$withval"], | ||||
|     [pic_mode=default]) | ||||
| 
 | ||||
| test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) | ||||
| 
 | ||||
| _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl | ||||
| ])# _LT_WITH_PIC | ||||
| 
 | ||||
| LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) | ||||
| LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) | ||||
| 
 | ||||
| # Old name: | ||||
| AU_DEFUN([AC_LIBTOOL_PICMODE], | ||||
| [_LT_SET_OPTION([LT_INIT], [pic-only]) | ||||
| AC_DIAGNOSE([obsolete], | ||||
| [$0: Remove this warning and the call to _LT_SET_OPTION when you | ||||
| put the `pic-only' option into LT_INIT's first parameter.]) | ||||
| ]) | ||||
| 
 | ||||
| dnl aclocal-1.4 backwards compatibility: | ||||
| dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) | ||||
| 
 | ||||
| ## ----------------- ## | ||||
| ## LTDL_INIT Options ## | ||||
| ## ----------------- ## | ||||
| 
 | ||||
| m4_define([_LTDL_MODE], []) | ||||
| LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], | ||||
| 		 [m4_define([_LTDL_MODE], [nonrecursive])]) | ||||
| LT_OPTION_DEFINE([LTDL_INIT], [recursive], | ||||
| 		 [m4_define([_LTDL_MODE], [recursive])]) | ||||
| LT_OPTION_DEFINE([LTDL_INIT], [subproject], | ||||
| 		 [m4_define([_LTDL_MODE], [subproject])]) | ||||
| 
 | ||||
| m4_define([_LTDL_TYPE], []) | ||||
| LT_OPTION_DEFINE([LTDL_INIT], [installable], | ||||
| 		 [m4_define([_LTDL_TYPE], [installable])]) | ||||
| LT_OPTION_DEFINE([LTDL_INIT], [convenience], | ||||
| 		 [m4_define([_LTDL_TYPE], [convenience])]) | ||||
| @ -0,0 +1,123 @@ | ||||
| # ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*- | ||||
| # | ||||
| # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. | ||||
| # Written by Gary V. Vaughan, 2004 | ||||
| # | ||||
| # This file is free software; the Free Software Foundation gives | ||||
| # unlimited permission to copy and/or distribute it, with or without | ||||
| # modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 6 ltsugar.m4 | ||||
| 
 | ||||
| # This is to help aclocal find these macros, as it can't see m4_define. | ||||
| AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) | ||||
| 
 | ||||
| 
 | ||||
| # lt_join(SEP, ARG1, [ARG2...]) | ||||
| # ----------------------------- | ||||
| # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their | ||||
| # associated separator. | ||||
| # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier | ||||
| # versions in m4sugar had bugs. | ||||
| m4_define([lt_join], | ||||
| [m4_if([$#], [1], [], | ||||
|        [$#], [2], [[$2]], | ||||
|        [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) | ||||
| m4_define([_lt_join], | ||||
| [m4_if([$#$2], [2], [], | ||||
|        [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) | ||||
| 
 | ||||
| 
 | ||||
| # lt_car(LIST) | ||||
| # lt_cdr(LIST) | ||||
| # ------------ | ||||
| # Manipulate m4 lists. | ||||
| # These macros are necessary as long as will still need to support | ||||
| # Autoconf-2.59 which quotes differently. | ||||
| m4_define([lt_car], [[$1]]) | ||||
| m4_define([lt_cdr], | ||||
| [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], | ||||
|        [$#], 1, [], | ||||
|        [m4_dquote(m4_shift($@))])]) | ||||
| m4_define([lt_unquote], $1) | ||||
| 
 | ||||
| 
 | ||||
| # lt_append(MACRO-NAME, STRING, [SEPARATOR]) | ||||
| # ------------------------------------------ | ||||
| # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. | ||||
| # Note that neither SEPARATOR nor STRING are expanded; they are appended | ||||
| # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). | ||||
| # No SEPARATOR is output if MACRO-NAME was previously undefined (different | ||||
| # than defined and empty). | ||||
| # | ||||
| # This macro is needed until we can rely on Autoconf 2.62, since earlier | ||||
| # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. | ||||
| m4_define([lt_append], | ||||
| [m4_define([$1], | ||||
| 	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) | ||||
| # ---------------------------------------------------------- | ||||
| # Produce a SEP delimited list of all paired combinations of elements of | ||||
| # PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list | ||||
| # has the form PREFIXmINFIXSUFFIXn. | ||||
| # Needed until we can rely on m4_combine added in Autoconf 2.62. | ||||
| m4_define([lt_combine], | ||||
| [m4_if(m4_eval([$# > 3]), [1], | ||||
|        [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl | ||||
| [[m4_foreach([_Lt_prefix], [$2], | ||||
| 	     [m4_foreach([_Lt_suffix], | ||||
| 		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, | ||||
| 	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) | ||||
| 
 | ||||
| 
 | ||||
| # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) | ||||
| # ----------------------------------------------------------------------- | ||||
| # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited | ||||
| # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. | ||||
| m4_define([lt_if_append_uniq], | ||||
| [m4_ifdef([$1], | ||||
| 	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], | ||||
| 		 [lt_append([$1], [$2], [$3])$4], | ||||
| 		 [$5])], | ||||
| 	  [lt_append([$1], [$2], [$3])$4])]) | ||||
| 
 | ||||
| 
 | ||||
| # lt_dict_add(DICT, KEY, VALUE) | ||||
| # ----------------------------- | ||||
| m4_define([lt_dict_add], | ||||
| [m4_define([$1($2)], [$3])]) | ||||
| 
 | ||||
| 
 | ||||
| # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) | ||||
| # -------------------------------------------- | ||||
| m4_define([lt_dict_add_subkey], | ||||
| [m4_define([$1($2:$3)], [$4])]) | ||||
| 
 | ||||
| 
 | ||||
| # lt_dict_fetch(DICT, KEY, [SUBKEY]) | ||||
| # ---------------------------------- | ||||
| m4_define([lt_dict_fetch], | ||||
| [m4_ifval([$3], | ||||
| 	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), | ||||
|     m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) | ||||
| 
 | ||||
| 
 | ||||
| # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) | ||||
| # ----------------------------------------------------------------- | ||||
| m4_define([lt_if_dict_fetch], | ||||
| [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], | ||||
| 	[$5], | ||||
|     [$6])]) | ||||
| 
 | ||||
| 
 | ||||
| # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) | ||||
| # -------------------------------------------------------------- | ||||
| m4_define([lt_dict_filter], | ||||
| [m4_if([$5], [], [], | ||||
|   [lt_join(m4_quote(m4_default([$4], [[, ]])), | ||||
|            lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), | ||||
| 		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl | ||||
| ]) | ||||
| @ -0,0 +1,23 @@ | ||||
| # ltversion.m4 -- version numbers			-*- Autoconf -*- | ||||
| # | ||||
| #   Copyright (C) 2004 Free Software Foundation, Inc. | ||||
| #   Written by Scott James Remnant, 2004 | ||||
| # | ||||
| # This file is free software; the Free Software Foundation gives | ||||
| # unlimited permission to copy and/or distribute it, with or without | ||||
| # modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # @configure_input@ | ||||
| 
 | ||||
| # serial 3293 ltversion.m4 | ||||
| # This file is part of GNU Libtool | ||||
| 
 | ||||
| m4_define([LT_PACKAGE_VERSION], [2.4]) | ||||
| m4_define([LT_PACKAGE_REVISION], [1.3293]) | ||||
| 
 | ||||
| AC_DEFUN([LTVERSION_VERSION], | ||||
| [macro_version='2.4' | ||||
| macro_revision='1.3293' | ||||
| _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) | ||||
| _LT_DECL(, macro_revision, 0) | ||||
| ]) | ||||
| @ -0,0 +1,98 @@ | ||||
| # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*- | ||||
| # | ||||
| #   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. | ||||
| #   Written by Scott James Remnant, 2004. | ||||
| # | ||||
| # This file is free software; the Free Software Foundation gives | ||||
| # unlimited permission to copy and/or distribute it, with or without | ||||
| # modifications, as long as this notice is preserved. | ||||
| 
 | ||||
| # serial 5 lt~obsolete.m4 | ||||
| 
 | ||||
| # These exist entirely to fool aclocal when bootstrapping libtool. | ||||
| # | ||||
| # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) | ||||
| # which have later been changed to m4_define as they aren't part of the | ||||
| # exported API, or moved to Autoconf or Automake where they belong. | ||||
| # | ||||
| # The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN | ||||
| # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us | ||||
| # using a macro with the same name in our local m4/libtool.m4 it'll | ||||
| # pull the old libtool.m4 in (it doesn't see our shiny new m4_define | ||||
| # and doesn't know about Autoconf macros at all.) | ||||
| # | ||||
| # So we provide this file, which has a silly filename so it's always | ||||
| # included after everything else.  This provides aclocal with the | ||||
| # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything | ||||
| # because those macros already exist, or will be overwritten later. | ||||
| # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.  | ||||
| # | ||||
| # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. | ||||
| # Yes, that means every name once taken will need to remain here until | ||||
| # we give up compatibility with versions before 1.7, at which point | ||||
| # we need to keep only those names which we still refer to. | ||||
| 
 | ||||
| # This is to help aclocal find these macros, as it can't see m4_define. | ||||
| AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) | ||||
| 
 | ||||
| m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) | ||||
| m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])]) | ||||
| m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) | ||||
| m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])]) | ||||
| m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) | ||||
| m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])]) | ||||
| m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])]) | ||||
| m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) | ||||
| m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])]) | ||||
| m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])]) | ||||
| m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])]) | ||||
| m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) | ||||
| m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) | ||||
| m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) | ||||
| m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) | ||||
| m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])]) | ||||
| m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])]) | ||||
| m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) | ||||
| m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) | ||||
| m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])]) | ||||
| m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])]) | ||||
| m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) | ||||
| m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) | ||||
| m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) | ||||
| m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) | ||||
| m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) | ||||
| m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) | ||||
| m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) | ||||
| m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])]) | ||||
| m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])]) | ||||
| m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])]) | ||||
| m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) | ||||
| m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])]) | ||||
| m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])]) | ||||
| m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])]) | ||||
| m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])]) | ||||
| m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) | ||||
| m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])]) | ||||
| m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) | ||||
| m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])]) | ||||
| m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])]) | ||||
| m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])]) | ||||
| m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) | ||||
| m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) | ||||
| m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) | ||||
| m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) | ||||
| m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) | ||||
| m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) | ||||
| m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) | ||||
| m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) | ||||
| m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) | ||||
| m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) | ||||
| m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])]) | ||||
| m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) | ||||
| m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) | ||||
| m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])]) | ||||
| m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) | ||||
| m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) | ||||
| m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])]) | ||||
| m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])]) | ||||
| m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])]) | ||||
| @ -0,0 +1,376 @@ | ||||
| #! /bin/sh | ||||
| # Common stub for a few missing GNU programs while installing. | ||||
| 
 | ||||
| scriptversion=2009-04-28.21; # UTC | ||||
| 
 | ||||
| # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, | ||||
| # 2008, 2009 Free Software Foundation, Inc. | ||||
| # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. | ||||
| 
 | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2, or (at your option) | ||||
| # any later version. | ||||
| 
 | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| 
 | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| # As a special exception to the GNU General Public License, if you | ||||
| # distribute this file as part of a program that contains a | ||||
| # configuration script generated by Autoconf, you may include it under | ||||
| # the same distribution terms that you use for the rest of that program. | ||||
| 
 | ||||
| if test $# -eq 0; then | ||||
|   echo 1>&2 "Try \`$0 --help' for more information" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| run=: | ||||
| sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' | ||||
| sed_minuso='s/.* -o \([^ ]*\).*/\1/p' | ||||
| 
 | ||||
| # In the cases where this matters, `missing' is being run in the | ||||
| # srcdir already. | ||||
| if test -f configure.ac; then | ||||
|   configure_ac=configure.ac | ||||
| else | ||||
|   configure_ac=configure.in | ||||
| fi | ||||
| 
 | ||||
| msg="missing on your system" | ||||
| 
 | ||||
| case $1 in | ||||
| --run) | ||||
|   # Try to run requested program, and just exit if it succeeds. | ||||
|   run= | ||||
|   shift | ||||
|   "$@" && exit 0 | ||||
|   # Exit code 63 means version mismatch.  This often happens | ||||
|   # when the user try to use an ancient version of a tool on | ||||
|   # a file that requires a minimum version.  In this case we | ||||
|   # we should proceed has if the program had been absent, or | ||||
|   # if --run hadn't been passed. | ||||
|   if test $? = 63; then | ||||
|     run=: | ||||
|     msg="probably too old" | ||||
|   fi | ||||
|   ;; | ||||
| 
 | ||||
|   -h|--h|--he|--hel|--help) | ||||
|     echo "\ | ||||
| $0 [OPTION]... PROGRAM [ARGUMENT]... | ||||
| 
 | ||||
| Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an | ||||
| error status if there is no known handling for PROGRAM. | ||||
| 
 | ||||
| Options: | ||||
|   -h, --help      display this help and exit | ||||
|   -v, --version   output version information and exit | ||||
|   --run           try to run the given command, and emulate it if it fails | ||||
| 
 | ||||
| Supported PROGRAM values: | ||||
|   aclocal      touch file \`aclocal.m4' | ||||
|   autoconf     touch file \`configure' | ||||
|   autoheader   touch file \`config.h.in' | ||||
|   autom4te     touch the output file, or create a stub one | ||||
|   automake     touch all \`Makefile.in' files | ||||
|   bison        create \`y.tab.[ch]', if possible, from existing .[ch] | ||||
|   flex         create \`lex.yy.c', if possible, from existing .c | ||||
|   help2man     touch the output file | ||||
|   lex          create \`lex.yy.c', if possible, from existing .c | ||||
|   makeinfo     touch the output file | ||||
|   tar          try tar, gnutar, gtar, then tar without non-portable flags | ||||
|   yacc         create \`y.tab.[ch]', if possible, from existing .[ch] | ||||
| 
 | ||||
| Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and | ||||
| \`g' are ignored when checking the name. | ||||
| 
 | ||||
| Send bug reports to <bug-automake@gnu.org>." | ||||
|     exit $? | ||||
|     ;; | ||||
| 
 | ||||
|   -v|--v|--ve|--ver|--vers|--versi|--versio|--version) | ||||
|     echo "missing $scriptversion (GNU Automake)" | ||||
|     exit $? | ||||
|     ;; | ||||
| 
 | ||||
|   -*) | ||||
|     echo 1>&2 "$0: Unknown \`$1' option" | ||||
|     echo 1>&2 "Try \`$0 --help' for more information" | ||||
|     exit 1 | ||||
|     ;; | ||||
| 
 | ||||
| esac | ||||
| 
 | ||||
| # normalize program name to check for. | ||||
| program=`echo "$1" | sed ' | ||||
|   s/^gnu-//; t | ||||
|   s/^gnu//; t | ||||
|   s/^g//; t'` | ||||
| 
 | ||||
| # Now exit if we have it, but it failed.  Also exit now if we | ||||
| # don't have it and --version was passed (most likely to detect | ||||
| # the program).  This is about non-GNU programs, so use $1 not | ||||
| # $program. | ||||
| case $1 in | ||||
|   lex*|yacc*) | ||||
|     # Not GNU programs, they don't have --version. | ||||
|     ;; | ||||
| 
 | ||||
|   tar*) | ||||
|     if test -n "$run"; then | ||||
|        echo 1>&2 "ERROR: \`tar' requires --run" | ||||
|        exit 1 | ||||
|     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then | ||||
|        exit 1 | ||||
|     fi | ||||
|     ;; | ||||
| 
 | ||||
|   *) | ||||
|     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then | ||||
|        # We have it, but it failed. | ||||
|        exit 1 | ||||
|     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then | ||||
|        # Could not run --version or --help.  This is probably someone | ||||
|        # running `$TOOL --version' or `$TOOL --help' to check whether | ||||
|        # $TOOL exists and not knowing $TOOL uses missing. | ||||
|        exit 1 | ||||
|     fi | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| # If it does not exist, or fails to run (possibly an outdated version), | ||||
| # try to emulate it. | ||||
| case $program in | ||||
|   aclocal*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is $msg.  You should only need it if | ||||
|          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want | ||||
|          to install the \`Automake' and \`Perl' packages.  Grab them from | ||||
|          any GNU archive site." | ||||
|     touch aclocal.m4 | ||||
|     ;; | ||||
| 
 | ||||
|   autoconf*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is $msg.  You should only need it if | ||||
|          you modified \`${configure_ac}'.  You might want to install the | ||||
|          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU | ||||
|          archive site." | ||||
|     touch configure | ||||
|     ;; | ||||
| 
 | ||||
|   autoheader*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is $msg.  You should only need it if | ||||
|          you modified \`acconfig.h' or \`${configure_ac}'.  You might want | ||||
|          to install the \`Autoconf' and \`GNU m4' packages.  Grab them | ||||
|          from any GNU archive site." | ||||
|     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` | ||||
|     test -z "$files" && files="config.h" | ||||
|     touch_files= | ||||
|     for f in $files; do | ||||
|       case $f in | ||||
|       *:*) touch_files="$touch_files "`echo "$f" | | ||||
| 				       sed -e 's/^[^:]*://' -e 's/:.*//'`;; | ||||
|       *) touch_files="$touch_files $f.in";; | ||||
|       esac | ||||
|     done | ||||
|     touch $touch_files | ||||
|     ;; | ||||
| 
 | ||||
|   automake*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is $msg.  You should only need it if | ||||
|          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. | ||||
|          You might want to install the \`Automake' and \`Perl' packages. | ||||
|          Grab them from any GNU archive site." | ||||
|     find . -type f -name Makefile.am -print | | ||||
| 	   sed 's/\.am$/.in/' | | ||||
| 	   while read f; do touch "$f"; done | ||||
|     ;; | ||||
| 
 | ||||
|   autom4te*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is needed, but is $msg. | ||||
|          You might have modified some files without having the | ||||
|          proper tools for further handling them. | ||||
|          You can get \`$1' as part of \`Autoconf' from any GNU | ||||
|          archive site." | ||||
| 
 | ||||
|     file=`echo "$*" | sed -n "$sed_output"` | ||||
|     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` | ||||
|     if test -f "$file"; then | ||||
| 	touch $file | ||||
|     else | ||||
| 	test -z "$file" || exec >$file | ||||
| 	echo "#! /bin/sh" | ||||
| 	echo "# Created by GNU Automake missing as a replacement of" | ||||
| 	echo "#  $ $@" | ||||
| 	echo "exit 0" | ||||
| 	chmod +x $file | ||||
| 	exit 1 | ||||
|     fi | ||||
|     ;; | ||||
| 
 | ||||
|   bison*|yacc*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' $msg.  You should only need it if | ||||
|          you modified a \`.y' file.  You may need the \`Bison' package | ||||
|          in order for those modifications to take effect.  You can get | ||||
|          \`Bison' from any GNU archive site." | ||||
|     rm -f y.tab.c y.tab.h | ||||
|     if test $# -ne 1; then | ||||
|         eval LASTARG="\${$#}" | ||||
| 	case $LASTARG in | ||||
| 	*.y) | ||||
| 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` | ||||
| 	    if test -f "$SRCFILE"; then | ||||
| 	         cp "$SRCFILE" y.tab.c | ||||
| 	    fi | ||||
| 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` | ||||
| 	    if test -f "$SRCFILE"; then | ||||
| 	         cp "$SRCFILE" y.tab.h | ||||
| 	    fi | ||||
| 	  ;; | ||||
| 	esac | ||||
|     fi | ||||
|     if test ! -f y.tab.h; then | ||||
| 	echo >y.tab.h | ||||
|     fi | ||||
|     if test ! -f y.tab.c; then | ||||
| 	echo 'main() { return 0; }' >y.tab.c | ||||
|     fi | ||||
|     ;; | ||||
| 
 | ||||
|   lex*|flex*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is $msg.  You should only need it if | ||||
|          you modified a \`.l' file.  You may need the \`Flex' package | ||||
|          in order for those modifications to take effect.  You can get | ||||
|          \`Flex' from any GNU archive site." | ||||
|     rm -f lex.yy.c | ||||
|     if test $# -ne 1; then | ||||
|         eval LASTARG="\${$#}" | ||||
| 	case $LASTARG in | ||||
| 	*.l) | ||||
| 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` | ||||
| 	    if test -f "$SRCFILE"; then | ||||
| 	         cp "$SRCFILE" lex.yy.c | ||||
| 	    fi | ||||
| 	  ;; | ||||
| 	esac | ||||
|     fi | ||||
|     if test ! -f lex.yy.c; then | ||||
| 	echo 'main() { return 0; }' >lex.yy.c | ||||
|     fi | ||||
|     ;; | ||||
| 
 | ||||
|   help2man*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is $msg.  You should only need it if | ||||
| 	 you modified a dependency of a manual page.  You may need the | ||||
| 	 \`Help2man' package in order for those modifications to take | ||||
| 	 effect.  You can get \`Help2man' from any GNU archive site." | ||||
| 
 | ||||
|     file=`echo "$*" | sed -n "$sed_output"` | ||||
|     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` | ||||
|     if test -f "$file"; then | ||||
| 	touch $file | ||||
|     else | ||||
| 	test -z "$file" || exec >$file | ||||
| 	echo ".ab help2man is required to generate this page" | ||||
| 	exit $? | ||||
|     fi | ||||
|     ;; | ||||
| 
 | ||||
|   makeinfo*) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is $msg.  You should only need it if | ||||
|          you modified a \`.texi' or \`.texinfo' file, or any other file | ||||
|          indirectly affecting the aspect of the manual.  The spurious | ||||
|          call might also be the consequence of using a buggy \`make' (AIX, | ||||
|          DU, IRIX).  You might want to install the \`Texinfo' package or | ||||
|          the \`GNU make' package.  Grab either from any GNU archive site." | ||||
|     # The file to touch is that specified with -o ... | ||||
|     file=`echo "$*" | sed -n "$sed_output"` | ||||
|     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` | ||||
|     if test -z "$file"; then | ||||
|       # ... or it is the one specified with @setfilename ... | ||||
|       infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` | ||||
|       file=`sed -n ' | ||||
| 	/^@setfilename/{ | ||||
| 	  s/.* \([^ ]*\) *$/\1/ | ||||
| 	  p | ||||
| 	  q | ||||
| 	}' $infile` | ||||
|       # ... or it is derived from the source name (dir/f.texi becomes f.info) | ||||
|       test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info | ||||
|     fi | ||||
|     # If the file does not exist, the user really needs makeinfo; | ||||
|     # let's fail without touching anything. | ||||
|     test -f $file || exit 1 | ||||
|     touch $file | ||||
|     ;; | ||||
| 
 | ||||
|   tar*) | ||||
|     shift | ||||
| 
 | ||||
|     # We have already tried tar in the generic part. | ||||
|     # Look for gnutar/gtar before invocation to avoid ugly error | ||||
|     # messages. | ||||
|     if (gnutar --version > /dev/null 2>&1); then | ||||
|        gnutar "$@" && exit 0 | ||||
|     fi | ||||
|     if (gtar --version > /dev/null 2>&1); then | ||||
|        gtar "$@" && exit 0 | ||||
|     fi | ||||
|     firstarg="$1" | ||||
|     if shift; then | ||||
| 	case $firstarg in | ||||
| 	*o*) | ||||
| 	    firstarg=`echo "$firstarg" | sed s/o//` | ||||
| 	    tar "$firstarg" "$@" && exit 0 | ||||
| 	    ;; | ||||
| 	esac | ||||
| 	case $firstarg in | ||||
| 	*h*) | ||||
| 	    firstarg=`echo "$firstarg" | sed s/h//` | ||||
| 	    tar "$firstarg" "$@" && exit 0 | ||||
| 	    ;; | ||||
| 	esac | ||||
|     fi | ||||
| 
 | ||||
|     echo 1>&2 "\ | ||||
| WARNING: I can't seem to be able to run \`tar' with the given arguments. | ||||
|          You may want to install GNU tar or Free paxutils, or check the | ||||
|          command line arguments." | ||||
|     exit 1 | ||||
|     ;; | ||||
| 
 | ||||
|   *) | ||||
|     echo 1>&2 "\ | ||||
| WARNING: \`$1' is needed, and is $msg. | ||||
|          You might have modified some files without having the | ||||
|          proper tools for further handling them.  Check the \`README' file, | ||||
|          it often tells you about the needed prerequisites for installing | ||||
|          this package.  You may also peek at any GNU archive site, in case | ||||
|          some other package would contain this missing \`$1' program." | ||||
|     exit 1 | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| exit 0 | ||||
| 
 | ||||
| # Local variables: | ||||
| # eval: (add-hook 'write-file-hooks 'time-stamp) | ||||
| # time-stamp-start: "scriptversion=" | ||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" | ||||
| # time-stamp-time-zone: "UTC" | ||||
| # time-stamp-end: "; # UTC" | ||||
| # End: | ||||
| @ -0,0 +1,14 @@ | ||||
| # library
 | ||||
| lib_LTLIBRARIES = libcityhash.la | ||||
| libcityhash_la_SOURCES = city.cc | ||||
| if SSE42 | ||||
| include_HEADERS = city.h citycrc.h | ||||
| else | ||||
| include_HEADERS = city.h | ||||
| endif | ||||
| 
 | ||||
| # test
 | ||||
| cityhash_unittest_SOURCES = city-test.cc | ||||
| cityhash_unittest_LDADD = libcityhash.la | ||||
| TESTS = cityhash_unittest | ||||
| noinst_PROGRAMS = $(TESTS) | ||||
| @ -0,0 +1,681 @@ | ||||
| # Makefile.in generated by automake 1.11.3 from Makefile.am.
 | ||||
| # @configure_input@
 | ||||
| 
 | ||||
| # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 | ||||
| # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
 | ||||
| # Foundation, Inc.
 | ||||
| # This Makefile.in is free software; the Free Software Foundation
 | ||||
| # gives unlimited permission to copy and/or distribute it,
 | ||||
| # with or without modifications, as long as this notice is preserved.
 | ||||
| 
 | ||||
| # This program is distributed in the hope that it will be useful,
 | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 | ||||
| # PARTICULAR PURPOSE.
 | ||||
| 
 | ||||
| @SET_MAKE@ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| VPATH = @srcdir@ | ||||
| pkgdatadir = $(datadir)/@PACKAGE@ | ||||
| pkgincludedir = $(includedir)/@PACKAGE@ | ||||
| pkglibdir = $(libdir)/@PACKAGE@ | ||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| build_triplet = @build@ | ||||
| host_triplet = @host@ | ||||
| TESTS = cityhash_unittest$(EXEEXT) | ||||
| noinst_PROGRAMS = $(am__EXEEXT_1) | ||||
| subdir = src | ||||
| DIST_COMMON = $(am__include_HEADERS_DIST) $(srcdir)/Makefile.am \
 | ||||
| 	$(srcdir)/Makefile.in | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 | ||||
| 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
 | ||||
| 	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
 | ||||
| 	$(top_srcdir)/configure.ac | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 | ||||
| 	$(ACLOCAL_M4) | ||||
| mkinstalldirs = $(install_sh) -d | ||||
| CONFIG_HEADER = $(top_builddir)/config.h | ||||
| CONFIG_CLEAN_FILES = | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||||
| am__vpath_adj = case $$p in \
 | ||||
|     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
 | ||||
|     *) f=$$p;; \
 | ||||
|   esac; | ||||
| am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||||
| am__install_max = 40 | ||||
| am__nobase_strip_setup = \
 | ||||
|   srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||||
| am__nobase_strip = \
 | ||||
|   for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||||
| am__nobase_list = $(am__nobase_strip_setup); \
 | ||||
|   for p in $$list; do echo "$$p $$p"; done | \
 | ||||
|   sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
 | ||||
|   $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
 | ||||
|     if (++n[$$2] == $(am__install_max)) \
 | ||||
|       { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
 | ||||
|     END { for (dir in files) print dir, files[dir] }' | ||||
| am__base_list = \
 | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
 | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||||
| am__uninstall_files_from_dir = { \
 | ||||
|   test -z "$$files" \
 | ||||
|     || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
 | ||||
|     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
 | ||||
|          $(am__cd) "$$dir" && rm -f $$files; }; \
 | ||||
|   } | ||||
| am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" | ||||
| LTLIBRARIES = $(lib_LTLIBRARIES) | ||||
| libcityhash_la_LIBADD = | ||||
| am_libcityhash_la_OBJECTS = city.lo | ||||
| libcityhash_la_OBJECTS = $(am_libcityhash_la_OBJECTS) | ||||
| am__EXEEXT_1 = cityhash_unittest$(EXEEXT) | ||||
| PROGRAMS = $(noinst_PROGRAMS) | ||||
| am_cityhash_unittest_OBJECTS = city-test.$(OBJEXT) | ||||
| cityhash_unittest_OBJECTS = $(am_cityhash_unittest_OBJECTS) | ||||
| cityhash_unittest_DEPENDENCIES = libcityhash.la | ||||
| DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | ||||
| depcomp = $(SHELL) $(top_srcdir)/depcomp | ||||
| am__depfiles_maybe = depfiles | ||||
| am__mv = mv -f | ||||
| CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 | ||||
| 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | ||||
| LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 | ||||
| 	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 | ||||
| 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | ||||
| CXXLD = $(CXX) | ||||
| CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 | ||||
| 	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
 | ||||
| 	$(LDFLAGS) -o $@ | ||||
| SOURCES = $(libcityhash_la_SOURCES) $(cityhash_unittest_SOURCES) | ||||
| DIST_SOURCES = $(libcityhash_la_SOURCES) $(cityhash_unittest_SOURCES) | ||||
| am__include_HEADERS_DIST = city.h citycrc.h | ||||
| HEADERS = $(include_HEADERS) | ||||
| ETAGS = etags | ||||
| CTAGS = ctags | ||||
| am__tty_colors = \
 | ||||
| red=; grn=; lgn=; blu=; std= | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| ACLOCAL = @ACLOCAL@ | ||||
| AMTAR = @AMTAR@ | ||||
| AR = @AR@ | ||||
| AUTOCONF = @AUTOCONF@ | ||||
| AUTOHEADER = @AUTOHEADER@ | ||||
| AUTOMAKE = @AUTOMAKE@ | ||||
| AWK = @AWK@ | ||||
| CC = @CC@ | ||||
| CCDEPMODE = @CCDEPMODE@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CPP = @CPP@ | ||||
| CPPFLAGS = @CPPFLAGS@ | ||||
| CXX = @CXX@ | ||||
| CXXCPP = @CXXCPP@ | ||||
| CXXDEPMODE = @CXXDEPMODE@ | ||||
| CXXFLAGS = @CXXFLAGS@ | ||||
| CYGPATH_W = @CYGPATH_W@ | ||||
| DEFS = @DEFS@ | ||||
| DEPDIR = @DEPDIR@ | ||||
| DLLTOOL = @DLLTOOL@ | ||||
| DSYMUTIL = @DSYMUTIL@ | ||||
| DUMPBIN = @DUMPBIN@ | ||||
| ECHO_C = @ECHO_C@ | ||||
| ECHO_N = @ECHO_N@ | ||||
| ECHO_T = @ECHO_T@ | ||||
| EGREP = @EGREP@ | ||||
| EXEEXT = @EXEEXT@ | ||||
| FGREP = @FGREP@ | ||||
| GREP = @GREP@ | ||||
| INSTALL = @INSTALL@ | ||||
| INSTALL_DATA = @INSTALL_DATA@ | ||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||||
| LD = @LD@ | ||||
| LDFLAGS = @LDFLAGS@ | ||||
| LIBOBJS = @LIBOBJS@ | ||||
| LIBS = @LIBS@ | ||||
| LIBTOOL = @LIBTOOL@ | ||||
| LIPO = @LIPO@ | ||||
| LN_S = @LN_S@ | ||||
| LTLIBOBJS = @LTLIBOBJS@ | ||||
| MAKEINFO = @MAKEINFO@ | ||||
| MANIFEST_TOOL = @MANIFEST_TOOL@ | ||||
| MKDIR_P = @MKDIR_P@ | ||||
| NM = @NM@ | ||||
| NMEDIT = @NMEDIT@ | ||||
| OBJDUMP = @OBJDUMP@ | ||||
| OBJEXT = @OBJEXT@ | ||||
| OTOOL = @OTOOL@ | ||||
| OTOOL64 = @OTOOL64@ | ||||
| PACKAGE = @PACKAGE@ | ||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||||
| PACKAGE_NAME = @PACKAGE_NAME@ | ||||
| PACKAGE_STRING = @PACKAGE_STRING@ | ||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||||
| PACKAGE_URL = @PACKAGE_URL@ | ||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ | ||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ | ||||
| RANLIB = @RANLIB@ | ||||
| SED = @SED@ | ||||
| SET_MAKE = @SET_MAKE@ | ||||
| SHELL = @SHELL@ | ||||
| STRIP = @STRIP@ | ||||
| VERSION = @VERSION@ | ||||
| abs_builddir = @abs_builddir@ | ||||
| abs_srcdir = @abs_srcdir@ | ||||
| abs_top_builddir = @abs_top_builddir@ | ||||
| abs_top_srcdir = @abs_top_srcdir@ | ||||
| ac_ct_AR = @ac_ct_AR@ | ||||
| ac_ct_CC = @ac_ct_CC@ | ||||
| ac_ct_CXX = @ac_ct_CXX@ | ||||
| ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||||
| am__include = @am__include@ | ||||
| am__leading_dot = @am__leading_dot@ | ||||
| am__quote = @am__quote@ | ||||
| am__tar = @am__tar@ | ||||
| am__untar = @am__untar@ | ||||
| bindir = @bindir@ | ||||
| build = @build@ | ||||
| build_alias = @build_alias@ | ||||
| build_cpu = @build_cpu@ | ||||
| build_os = @build_os@ | ||||
| build_vendor = @build_vendor@ | ||||
| builddir = @builddir@ | ||||
| datadir = @datadir@ | ||||
| datarootdir = @datarootdir@ | ||||
| docdir = @docdir@ | ||||
| dvidir = @dvidir@ | ||||
| exec_prefix = @exec_prefix@ | ||||
| host = @host@ | ||||
| host_alias = @host_alias@ | ||||
| host_cpu = @host_cpu@ | ||||
| host_os = @host_os@ | ||||
| host_vendor = @host_vendor@ | ||||
| htmldir = @htmldir@ | ||||
| includedir = @includedir@ | ||||
| infodir = @infodir@ | ||||
| install_sh = @install_sh@ | ||||
| libdir = @libdir@ | ||||
| libexecdir = @libexecdir@ | ||||
| localedir = @localedir@ | ||||
| localstatedir = @localstatedir@ | ||||
| mandir = @mandir@ | ||||
| mkdir_p = @mkdir_p@ | ||||
| oldincludedir = @oldincludedir@ | ||||
| pdfdir = @pdfdir@ | ||||
| prefix = @prefix@ | ||||
| program_transform_name = @program_transform_name@ | ||||
| psdir = @psdir@ | ||||
| sbindir = @sbindir@ | ||||
| sharedstatedir = @sharedstatedir@ | ||||
| srcdir = @srcdir@ | ||||
| sysconfdir = @sysconfdir@ | ||||
| target_alias = @target_alias@ | ||||
| top_build_prefix = @top_build_prefix@ | ||||
| top_builddir = @top_builddir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| 
 | ||||
| # library
 | ||||
| lib_LTLIBRARIES = libcityhash.la | ||||
| libcityhash_la_SOURCES = city.cc | ||||
| @SSE42_FALSE@include_HEADERS = city.h | ||||
| @SSE42_TRUE@include_HEADERS = city.h citycrc.h | ||||
| 
 | ||||
| # test
 | ||||
| cityhash_unittest_SOURCES = city-test.cc | ||||
| cityhash_unittest_LDADD = libcityhash.la | ||||
| all: all-am | ||||
| 
 | ||||
| .SUFFIXES: | ||||
| .SUFFIXES: .cc .lo .o .obj | ||||
| $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \
 | ||||
| 	  case '$(am__configure_deps)' in \
 | ||||
| 	    *$$dep*) \
 | ||||
| 	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
 | ||||
| 	        && { if test -f $@; then exit 0; else break; fi; }; \
 | ||||
| 	      exit 1;; \
 | ||||
| 	  esac; \
 | ||||
| 	done; \
 | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
 | ||||
| 	$(am__cd) $(top_srcdir) && \
 | ||||
| 	  $(AUTOMAKE) --foreign src/Makefile | ||||
| .PRECIOUS: Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \
 | ||||
| 	  *config.status*) \
 | ||||
| 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
 | ||||
| 	  *) \
 | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 | ||||
| 	esac; | ||||
| 
 | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| 
 | ||||
| $(top_srcdir)/configure:  $(am__configure_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(am__aclocal_m4_deps): | ||||
| install-libLTLIBRARIES: $(lib_LTLIBRARIES) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" | ||||
| 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 | ||||
| 	list2=; for p in $$list; do \
 | ||||
| 	  if test -f $$p; then \
 | ||||
| 	    list2="$$list2 $$p"; \
 | ||||
| 	  else :; fi; \
 | ||||
| 	done; \
 | ||||
| 	test -z "$$list2" || { \
 | ||||
| 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
 | ||||
| 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
 | ||||
| 	} | ||||
| 
 | ||||
| uninstall-libLTLIBRARIES: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 | ||||
| 	for p in $$list; do \
 | ||||
| 	  $(am__strip_dir) \
 | ||||
| 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
 | ||||
| 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
 | ||||
| 	done | ||||
| 
 | ||||
| clean-libLTLIBRARIES: | ||||
| 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) | ||||
| 	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
 | ||||
| 	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 | ||||
| 	  test "$$dir" != "$$p" || dir=.; \
 | ||||
| 	  echo "rm -f \"$${dir}/so_locations\""; \
 | ||||
| 	  rm -f "$${dir}/so_locations"; \
 | ||||
| 	done | ||||
| libcityhash.la: $(libcityhash_la_OBJECTS) $(libcityhash_la_DEPENDENCIES) $(EXTRA_libcityhash_la_DEPENDENCIES)  | ||||
| 	$(CXXLINK) -rpath $(libdir) $(libcityhash_la_OBJECTS) $(libcityhash_la_LIBADD) $(LIBS) | ||||
| 
 | ||||
| clean-noinstPROGRAMS: | ||||
| 	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
 | ||||
| 	echo " rm -f" $$list; \
 | ||||
| 	rm -f $$list || exit $$?; \
 | ||||
| 	test -n "$(EXEEXT)" || exit 0; \
 | ||||
| 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 | ||||
| 	echo " rm -f" $$list; \
 | ||||
| 	rm -f $$list | ||||
| cityhash_unittest$(EXEEXT): $(cityhash_unittest_OBJECTS) $(cityhash_unittest_DEPENDENCIES) $(EXTRA_cityhash_unittest_DEPENDENCIES)  | ||||
| 	@rm -f cityhash_unittest$(EXEEXT) | ||||
| 	$(CXXLINK) $(cityhash_unittest_OBJECTS) $(cityhash_unittest_LDADD) $(LIBS) | ||||
| 
 | ||||
| mostlyclean-compile: | ||||
| 	-rm -f *.$(OBJEXT) | ||||
| 
 | ||||
| distclean-compile: | ||||
| 	-rm -f *.tab.c | ||||
| 
 | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/city-test.Po@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/city.Plo@am__quote@ | ||||
| 
 | ||||
| .cc.o: | ||||
| @am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
| @am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||||
| @AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $< | ||||
| 
 | ||||
| .cc.obj: | ||||
| @am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||||
| @am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||||
| @AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` | ||||
| 
 | ||||
| .cc.lo: | ||||
| @am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
| @am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $< | ||||
| 
 | ||||
| mostlyclean-libtool: | ||||
| 	-rm -f *.lo | ||||
| 
 | ||||
| clean-libtool: | ||||
| 	-rm -rf .libs _libs | ||||
| install-includeHEADERS: $(include_HEADERS) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" | ||||
| 	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
 | ||||
| 	for p in $$list; do \
 | ||||
| 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 | ||||
| 	  echo "$$d$$p"; \
 | ||||
| 	done | $(am__base_list) | \
 | ||||
| 	while read files; do \
 | ||||
| 	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
 | ||||
| 	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
 | ||||
| 	done | ||||
| 
 | ||||
| uninstall-includeHEADERS: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
 | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 | ||||
| 	dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) | ||||
| 
 | ||||
| ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||||
| 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 | ||||
| 	unique=`for i in $$list; do \
 | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 | ||||
| 	  done | \
 | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 | ||||
| 	mkid -fID $$unique | ||||
| tags: TAGS | ||||
| 
 | ||||
| TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \ | ||||
| 		$(TAGS_FILES) $(LISP) | ||||
| 	set x; \
 | ||||
| 	here=`pwd`; \
 | ||||
| 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 | ||||
| 	unique=`for i in $$list; do \
 | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 | ||||
| 	  done | \
 | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 | ||||
| 	shift; \
 | ||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 | ||||
| 	  test -n "$$unique" || unique=$$empty_fix; \
 | ||||
| 	  if test $$# -gt 0; then \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
 | ||||
| 	      "$$@" $$unique; \
 | ||||
| 	  else \
 | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
 | ||||
| 	      $$unique; \
 | ||||
| 	  fi; \
 | ||||
| 	fi | ||||
| ctags: CTAGS | ||||
| CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \ | ||||
| 		$(TAGS_FILES) $(LISP) | ||||
| 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 | ||||
| 	unique=`for i in $$list; do \
 | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 | ||||
| 	  done | \
 | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 | ||||
| 	test -z "$(CTAGS_ARGS)$$unique" \
 | ||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 | ||||
| 	     $$unique | ||||
| 
 | ||||
| GTAGS: | ||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \
 | ||||
| 	  && $(am__cd) $(top_srcdir) \
 | ||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" | ||||
| 
 | ||||
| distclean-tags: | ||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||||
| 
 | ||||
| check-TESTS: $(TESTS) | ||||
| 	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
 | ||||
| 	srcdir=$(srcdir); export srcdir; \
 | ||||
| 	list=' $(TESTS) '; \
 | ||||
| 	$(am__tty_colors); \
 | ||||
| 	if test -n "$$list"; then \
 | ||||
| 	  for tst in $$list; do \
 | ||||
| 	    if test -f ./$$tst; then dir=./; \
 | ||||
| 	    elif test -f $$tst; then dir=; \
 | ||||
| 	    else dir="$(srcdir)/"; fi; \
 | ||||
| 	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
 | ||||
| 	      all=`expr $$all + 1`; \
 | ||||
| 	      case " $(XFAIL_TESTS) " in \
 | ||||
| 	      *[\ \	]$$tst[\ \	]*) \
 | ||||
| 		xpass=`expr $$xpass + 1`; \
 | ||||
| 		failed=`expr $$failed + 1`; \
 | ||||
| 		col=$$red; res=XPASS; \
 | ||||
| 	      ;; \
 | ||||
| 	      *) \
 | ||||
| 		col=$$grn; res=PASS; \
 | ||||
| 	      ;; \
 | ||||
| 	      esac; \
 | ||||
| 	    elif test $$? -ne 77; then \
 | ||||
| 	      all=`expr $$all + 1`; \
 | ||||
| 	      case " $(XFAIL_TESTS) " in \
 | ||||
| 	      *[\ \	]$$tst[\ \	]*) \
 | ||||
| 		xfail=`expr $$xfail + 1`; \
 | ||||
| 		col=$$lgn; res=XFAIL; \
 | ||||
| 	      ;; \
 | ||||
| 	      *) \
 | ||||
| 		failed=`expr $$failed + 1`; \
 | ||||
| 		col=$$red; res=FAIL; \
 | ||||
| 	      ;; \
 | ||||
| 	      esac; \
 | ||||
| 	    else \
 | ||||
| 	      skip=`expr $$skip + 1`; \
 | ||||
| 	      col=$$blu; res=SKIP; \
 | ||||
| 	    fi; \
 | ||||
| 	    echo "$${col}$$res$${std}: $$tst"; \
 | ||||
| 	  done; \
 | ||||
| 	  if test "$$all" -eq 1; then \
 | ||||
| 	    tests="test"; \
 | ||||
| 	    All=""; \
 | ||||
| 	  else \
 | ||||
| 	    tests="tests"; \
 | ||||
| 	    All="All "; \
 | ||||
| 	  fi; \
 | ||||
| 	  if test "$$failed" -eq 0; then \
 | ||||
| 	    if test "$$xfail" -eq 0; then \
 | ||||
| 	      banner="$$All$$all $$tests passed"; \
 | ||||
| 	    else \
 | ||||
| 	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
 | ||||
| 	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
 | ||||
| 	    fi; \
 | ||||
| 	  else \
 | ||||
| 	    if test "$$xpass" -eq 0; then \
 | ||||
| 	      banner="$$failed of $$all $$tests failed"; \
 | ||||
| 	    else \
 | ||||
| 	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
 | ||||
| 	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
 | ||||
| 	    fi; \
 | ||||
| 	  fi; \
 | ||||
| 	  dashes="$$banner"; \
 | ||||
| 	  skipped=""; \
 | ||||
| 	  if test "$$skip" -ne 0; then \
 | ||||
| 	    if test "$$skip" -eq 1; then \
 | ||||
| 	      skipped="($$skip test was not run)"; \
 | ||||
| 	    else \
 | ||||
| 	      skipped="($$skip tests were not run)"; \
 | ||||
| 	    fi; \
 | ||||
| 	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
 | ||||
| 	      dashes="$$skipped"; \
 | ||||
| 	  fi; \
 | ||||
| 	  report=""; \
 | ||||
| 	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
 | ||||
| 	    report="Please report to $(PACKAGE_BUGREPORT)"; \
 | ||||
| 	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
 | ||||
| 	      dashes="$$report"; \
 | ||||
| 	  fi; \
 | ||||
| 	  dashes=`echo "$$dashes" | sed s/./=/g`; \
 | ||||
| 	  if test "$$failed" -eq 0; then \
 | ||||
| 	    col="$$grn"; \
 | ||||
| 	  else \
 | ||||
| 	    col="$$red"; \
 | ||||
| 	  fi; \
 | ||||
| 	  echo "$${col}$$dashes$${std}"; \
 | ||||
| 	  echo "$${col}$$banner$${std}"; \
 | ||||
| 	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
 | ||||
| 	  test -z "$$report" || echo "$${col}$$report$${std}"; \
 | ||||
| 	  echo "$${col}$$dashes$${std}"; \
 | ||||
| 	  test "$$failed" -eq 0; \
 | ||||
| 	else :; fi | ||||
| 
 | ||||
| distdir: $(DISTFILES) | ||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 | ||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 | ||||
| 	list='$(DISTFILES)'; \
 | ||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \
 | ||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \
 | ||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
 | ||||
| 	case $$dist_files in \
 | ||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
 | ||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
 | ||||
| 			   sort -u` ;; \
 | ||||
| 	esac; \
 | ||||
| 	for file in $$dist_files; do \
 | ||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 | ||||
| 	  if test -d $$d/$$file; then \
 | ||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
 | ||||
| 	    if test -d "$(distdir)/$$file"; then \
 | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 | ||||
| 	    fi; \
 | ||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
 | ||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
 | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 | ||||
| 	    fi; \
 | ||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 | ||||
| 	  else \
 | ||||
| 	    test -f "$(distdir)/$$file" \
 | ||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \
 | ||||
| 	    || exit 1; \
 | ||||
| 	  fi; \
 | ||||
| 	done | ||||
| check-am: all-am | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) check-TESTS | ||||
| check: check-am | ||||
| all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) | ||||
| installdirs: | ||||
| 	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \
 | ||||
| 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 | ||||
| 	done | ||||
| install: install-am | ||||
| install-exec: install-exec-am | ||||
| install-data: install-data-am | ||||
| uninstall: uninstall-am | ||||
| 
 | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
| 
 | ||||
| installcheck: installcheck-am | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \
 | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 | ||||
| 	      install; \
 | ||||
| 	else \
 | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
| 
 | ||||
| clean-generic: | ||||
| 
 | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
| 
 | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| clean: clean-am | ||||
| 
 | ||||
| clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ | ||||
| 	clean-noinstPROGRAMS mostlyclean-am | ||||
| 
 | ||||
| distclean: distclean-am | ||||
| 	-rm -rf ./$(DEPDIR) | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-compile distclean-generic \ | ||||
| 	distclean-tags | ||||
| 
 | ||||
| dvi: dvi-am | ||||
| 
 | ||||
| dvi-am: | ||||
| 
 | ||||
| html: html-am | ||||
| 
 | ||||
| html-am: | ||||
| 
 | ||||
| info: info-am | ||||
| 
 | ||||
| info-am: | ||||
| 
 | ||||
| install-data-am: install-includeHEADERS | ||||
| 
 | ||||
| install-dvi: install-dvi-am | ||||
| 
 | ||||
| install-dvi-am: | ||||
| 
 | ||||
| install-exec-am: install-libLTLIBRARIES | ||||
| 
 | ||||
| install-html: install-html-am | ||||
| 
 | ||||
| install-html-am: | ||||
| 
 | ||||
| install-info: install-info-am | ||||
| 
 | ||||
| install-info-am: | ||||
| 
 | ||||
| install-man: | ||||
| 
 | ||||
| install-pdf: install-pdf-am | ||||
| 
 | ||||
| install-pdf-am: | ||||
| 
 | ||||
| install-ps: install-ps-am | ||||
| 
 | ||||
| install-ps-am: | ||||
| 
 | ||||
| installcheck-am: | ||||
| 
 | ||||
| maintainer-clean: maintainer-clean-am | ||||
| 	-rm -rf ./$(DEPDIR) | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
| 
 | ||||
| mostlyclean: mostlyclean-am | ||||
| 
 | ||||
| mostlyclean-am: mostlyclean-compile mostlyclean-generic \ | ||||
| 	mostlyclean-libtool | ||||
| 
 | ||||
| pdf: pdf-am | ||||
| 
 | ||||
| pdf-am: | ||||
| 
 | ||||
| ps: ps-am | ||||
| 
 | ||||
| ps-am: | ||||
| 
 | ||||
| uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES | ||||
| 
 | ||||
| .MAKE: check-am install-am install-strip | ||||
| 
 | ||||
| .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ | ||||
| 	clean-generic clean-libLTLIBRARIES clean-libtool \
 | ||||
| 	clean-noinstPROGRAMS ctags distclean distclean-compile \
 | ||||
| 	distclean-generic distclean-libtool distclean-tags distdir dvi \
 | ||||
| 	dvi-am html html-am info info-am install install-am \
 | ||||
| 	install-data install-data-am install-dvi install-dvi-am \
 | ||||
| 	install-exec install-exec-am install-html install-html-am \
 | ||||
| 	install-includeHEADERS install-info install-info-am \
 | ||||
| 	install-libLTLIBRARIES install-man install-pdf install-pdf-am \
 | ||||
| 	install-ps install-ps-am install-strip installcheck \
 | ||||
| 	installcheck-am installdirs maintainer-clean \
 | ||||
| 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 | ||||
| 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 | ||||
| 	tags uninstall uninstall-am uninstall-includeHEADERS \
 | ||||
| 	uninstall-libLTLIBRARIES | ||||
| 
 | ||||
| 
 | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded.
 | ||||
| .NOEXPORT: | ||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								| @ -0,0 +1,646 @@ | ||||
| // Copyright (c) 2011 Google, Inc.
 | ||||
| //
 | ||||
| // Permission is hereby granted, free of charge, to any person obtaining a copy
 | ||||
| // of this software and associated documentation files (the "Software"), to deal
 | ||||
| // in the Software without restriction, including without limitation the rights
 | ||||
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | ||||
| // copies of the Software, and to permit persons to whom the Software is
 | ||||
| // furnished to do so, subject to the following conditions:
 | ||||
| //
 | ||||
| // The above copyright notice and this permission notice shall be included in
 | ||||
| // all copies or substantial portions of the Software.
 | ||||
| //
 | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | ||||
| // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | ||||
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | ||||
| // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | ||||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | ||||
| // THE SOFTWARE.
 | ||||
| //
 | ||||
| // CityHash, by Geoff Pike and Jyrki Alakuijala
 | ||||
| //
 | ||||
| // This file provides CityHash64() and related functions.
 | ||||
| //
 | ||||
| // It's probably possible to create even faster hash functions by
 | ||||
| // writing a program that systematically explores some of the space of
 | ||||
| // possible hash functions, by using SIMD instructions, or by
 | ||||
| // compromising on hash quality.
 | ||||
| 
 | ||||
| #include "config.h" | ||||
| #include <city.h> | ||||
| 
 | ||||
| #include <algorithm> | ||||
| #include <string.h>  // for memcpy and memset | ||||
| 
 | ||||
| using namespace std; | ||||
| 
 | ||||
| static uint64 UNALIGNED_LOAD64(const char *p) { | ||||
|   uint64 result; | ||||
|   memcpy(&result, p, sizeof(result)); | ||||
|   return result; | ||||
| } | ||||
| 
 | ||||
| static uint32 UNALIGNED_LOAD32(const char *p) { | ||||
|   uint32 result; | ||||
|   memcpy(&result, p, sizeof(result)); | ||||
|   return result; | ||||
| } | ||||
| 
 | ||||
| #ifdef _MSC_VER | ||||
| 
 | ||||
| #include <stdlib.h> | ||||
| #define bswap_32(x) _byteswap_ulong(x) | ||||
| #define bswap_64(x) _byteswap_uint64(x) | ||||
| 
 | ||||
| #elif defined(__APPLE__) | ||||
| 
 | ||||
| // Mac OS X / Darwin features
 | ||||
| #include <libkern/OSByteOrder.h> | ||||
| #define bswap_32(x) OSSwapInt32(x) | ||||
| #define bswap_64(x) OSSwapInt64(x) | ||||
| 
 | ||||
| #elif defined(__sun) || defined(sun) | ||||
| 
 | ||||
| #include <sys/byteorder.h> | ||||
| #define bswap_32(x) BSWAP_32(x) | ||||
| #define bswap_64(x) BSWAP_64(x) | ||||
| 
 | ||||
| #elif defined(__FreeBSD__) | ||||
| 
 | ||||
| #include <sys/endian.h> | ||||
| #define bswap_32(x) bswap32(x) | ||||
| #define bswap_64(x) bswap64(x) | ||||
| 
 | ||||
| #elif defined(__OpenBSD__) | ||||
| 
 | ||||
| #include <sys/types.h> | ||||
| #define bswap_32(x) swap32(x) | ||||
| #define bswap_64(x) swap64(x) | ||||
| 
 | ||||
| #elif defined(__NetBSD__) | ||||
| 
 | ||||
| #include <sys/types.h> | ||||
| #include <machine/bswap.h> | ||||
| #if defined(__BSWAP_RENAME) && !defined(__bswap_32) | ||||
| #define bswap_32(x) bswap32(x) | ||||
| #define bswap_64(x) bswap64(x) | ||||
| #endif | ||||
| 
 | ||||
| #else | ||||
| 
 | ||||
| #include <byteswap.h> | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| #ifdef WORDS_BIGENDIAN | ||||
| #define uint32_in_expected_order(x) (bswap_32(x)) | ||||
| #define uint64_in_expected_order(x) (bswap_64(x)) | ||||
| #else | ||||
| #define uint32_in_expected_order(x) (x) | ||||
| #define uint64_in_expected_order(x) (x) | ||||
| #endif | ||||
| 
 | ||||
| #if !defined(LIKELY) | ||||
| #if HAVE_BUILTIN_EXPECT | ||||
| #define LIKELY(x) (__builtin_expect(!!(x), 1)) | ||||
| #else | ||||
| #define LIKELY(x) (x) | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| static uint64 Fetch64(const char *p) { | ||||
|   return uint64_in_expected_order(UNALIGNED_LOAD64(p)); | ||||
| } | ||||
| 
 | ||||
| static uint32 Fetch32(const char *p) { | ||||
|   return uint32_in_expected_order(UNALIGNED_LOAD32(p)); | ||||
| } | ||||
| 
 | ||||
| // Some primes between 2^63 and 2^64 for various uses.
 | ||||
| static const uint64 k0 = 0xc3a5c85c97cb3127ULL; | ||||
| static const uint64 k1 = 0xb492b66fbe98f273ULL; | ||||
| static const uint64 k2 = 0x9ae16a3b2f90404fULL; | ||||
| 
 | ||||
| // Magic numbers for 32-bit hashing.  Copied from Murmur3.
 | ||||
| static const uint32 c1 = 0xcc9e2d51; | ||||
| static const uint32 c2 = 0x1b873593; | ||||
| 
 | ||||
| // A 32-bit to 32-bit integer hash copied from Murmur3.
 | ||||
| static uint32 fmix(uint32 h) | ||||
| { | ||||
|   h ^= h >> 16; | ||||
|   h *= 0x85ebca6b; | ||||
|   h ^= h >> 13; | ||||
|   h *= 0xc2b2ae35; | ||||
|   h ^= h >> 16; | ||||
|   return h; | ||||
| } | ||||
| 
 | ||||
| static uint32 Rotate32(uint32 val, int shift) { | ||||
|   // Avoid shifting by 32: doing so yields an undefined result.
 | ||||
|   return shift == 0 ? val : ((val >> shift) | (val << (32 - shift))); | ||||
| } | ||||
| 
 | ||||
| #undef PERMUTE3 | ||||
| #define PERMUTE3(a, b, c) do { std::swap(a, b); std::swap(a, c); } while (0) | ||||
| 
 | ||||
| static uint32 Mur(uint32 a, uint32 h) { | ||||
|   // Helper from Murmur3 for combining two 32-bit values.
 | ||||
|   a *= c1; | ||||
|   a = Rotate32(a, 17); | ||||
|   a *= c2; | ||||
|   h ^= a; | ||||
|   h = Rotate32(h, 19); | ||||
|   return h * 5 + 0xe6546b64; | ||||
| } | ||||
| 
 | ||||
| static uint32 Hash32Len13to24(const char *s, size_t len) { | ||||
|   uint32 a = Fetch32(s - 4 + (len >> 1)); | ||||
|   uint32 b = Fetch32(s + 4); | ||||
|   uint32 c = Fetch32(s + len - 8); | ||||
|   uint32 d = Fetch32(s + (len >> 1)); | ||||
|   uint32 e = Fetch32(s); | ||||
|   uint32 f = Fetch32(s + len - 4); | ||||
|   uint32 h = len; | ||||
| 
 | ||||
|   return fmix(Mur(f, Mur(e, Mur(d, Mur(c, Mur(b, Mur(a, h))))))); | ||||
| } | ||||
| 
 | ||||
| static uint32 Hash32Len0to4(const char *s, size_t len) { | ||||
|   uint32 b = 0; | ||||
|   uint32 c = 9; | ||||
|   for (size_t i = 0; i < len; i++) { | ||||
|     signed char v = s[i]; | ||||
|     b = b * c1 + v; | ||||
|     c ^= b; | ||||
|   } | ||||
|   return fmix(Mur(b, Mur(len, c))); | ||||
| } | ||||
| 
 | ||||
| static uint32 Hash32Len5to12(const char *s, size_t len) { | ||||
|   uint32 a = len, b = len * 5, c = 9, d = b; | ||||
|   a += Fetch32(s); | ||||
|   b += Fetch32(s + len - 4); | ||||
|   c += Fetch32(s + ((len >> 1) & 4)); | ||||
|   return fmix(Mur(c, Mur(b, Mur(a, d)))); | ||||
| } | ||||
| 
 | ||||
| uint32 CityHash32(const char *s, size_t len) { | ||||
|   if (len <= 24) { | ||||
|     return len <= 12 ? | ||||
|         (len <= 4 ? Hash32Len0to4(s, len) : Hash32Len5to12(s, len)) : | ||||
|         Hash32Len13to24(s, len); | ||||
|   } | ||||
| 
 | ||||
|   // len > 24
 | ||||
|   uint32 h = len, g = c1 * len, f = g; | ||||
|   uint32 a0 = Rotate32(Fetch32(s + len - 4) * c1, 17) * c2; | ||||
|   uint32 a1 = Rotate32(Fetch32(s + len - 8) * c1, 17) * c2; | ||||
|   uint32 a2 = Rotate32(Fetch32(s + len - 16) * c1, 17) * c2; | ||||
|   uint32 a3 = Rotate32(Fetch32(s + len - 12) * c1, 17) * c2; | ||||
|   uint32 a4 = Rotate32(Fetch32(s + len - 20) * c1, 17) * c2; | ||||
|   h ^= a0; | ||||
|   h = Rotate32(h, 19); | ||||
|   h = h * 5 + 0xe6546b64; | ||||
|   h ^= a2; | ||||
|   h = Rotate32(h, 19); | ||||
|   h = h * 5 + 0xe6546b64; | ||||
|   g ^= a1; | ||||
|   g = Rotate32(g, 19); | ||||
|   g = g * 5 + 0xe6546b64; | ||||
|   g ^= a3; | ||||
|   g = Rotate32(g, 19); | ||||
|   g = g * 5 + 0xe6546b64; | ||||
|   f += a4; | ||||
|   f = Rotate32(f, 19); | ||||
|   f = f * 5 + 0xe6546b64; | ||||
|   size_t iters = (len - 1) / 20; | ||||
|   do { | ||||
|     uint32 a0 = Rotate32(Fetch32(s) * c1, 17) * c2; | ||||
|     uint32 a1 = Fetch32(s + 4); | ||||
|     uint32 a2 = Rotate32(Fetch32(s + 8) * c1, 17) * c2; | ||||
|     uint32 a3 = Rotate32(Fetch32(s + 12) * c1, 17) * c2; | ||||
|     uint32 a4 = Fetch32(s + 16); | ||||
|     h ^= a0; | ||||
|     h = Rotate32(h, 18); | ||||
|     h = h * 5 + 0xe6546b64; | ||||
|     f += a1; | ||||
|     f = Rotate32(f, 19); | ||||
|     f = f * c1; | ||||
|     g += a2; | ||||
|     g = Rotate32(g, 18); | ||||
|     g = g * 5 + 0xe6546b64; | ||||
|     h ^= a3 + a1; | ||||
|     h = Rotate32(h, 19); | ||||
|     h = h * 5 + 0xe6546b64; | ||||
|     g ^= a4; | ||||
|     g = bswap_32(g) * 5; | ||||
|     h += a4 * 5; | ||||
|     h = bswap_32(h); | ||||
|     f += a0; | ||||
|     PERMUTE3(f, h, g); | ||||
|     s += 20; | ||||
|   } while (--iters != 0); | ||||
|   g = Rotate32(g, 11) * c1; | ||||
|   g = Rotate32(g, 17) * c1; | ||||
|   f = Rotate32(f, 11) * c1; | ||||
|   f = Rotate32(f, 17) * c1; | ||||
|   h = Rotate32(h + g, 19); | ||||
|   h = h * 5 + 0xe6546b64; | ||||
|   h = Rotate32(h, 17) * c1; | ||||
|   h = Rotate32(h + f, 19); | ||||
|   h = h * 5 + 0xe6546b64; | ||||
|   h = Rotate32(h, 17) * c1; | ||||
|   return h; | ||||
| } | ||||
| 
 | ||||
| // Bitwise right rotate.  Normally this will compile to a single
 | ||||
| // instruction, especially if the shift is a manifest constant.
 | ||||
| static uint64 Rotate(uint64 val, int shift) { | ||||
|   // Avoid shifting by 64: doing so yields an undefined result.
 | ||||
|   return shift == 0 ? val : ((val >> shift) | (val << (64 - shift))); | ||||
| } | ||||
| 
 | ||||
| static uint64 ShiftMix(uint64 val) { | ||||
|   return val ^ (val >> 47); | ||||
| } | ||||
| 
 | ||||
| static uint64 HashLen16(uint64 u, uint64 v) { | ||||
|   return Hash128to64(uint128(u, v)); | ||||
| } | ||||
| 
 | ||||
| static uint64 HashLen16(uint64 u, uint64 v, uint64 mul) { | ||||
|   // Murmur-inspired hashing.
 | ||||
|   uint64 a = (u ^ v) * mul; | ||||
|   a ^= (a >> 47); | ||||
|   uint64 b = (v ^ a) * mul; | ||||
|   b ^= (b >> 47); | ||||
|   b *= mul; | ||||
|   return b; | ||||
| } | ||||
| 
 | ||||
| static uint64 HashLen0to16(const char *s, size_t len) { | ||||
|   if (len >= 8) { | ||||
|     uint64 mul = k2 + len * 2; | ||||
|     uint64 a = Fetch64(s) + k2; | ||||
|     uint64 b = Fetch64(s + len - 8); | ||||
|     uint64 c = Rotate(b, 37) * mul + a; | ||||
|     uint64 d = (Rotate(a, 25) + b) * mul; | ||||
|     return HashLen16(c, d, mul); | ||||
|   } | ||||
|   if (len >= 4) { | ||||
|     uint64 mul = k2 + len * 2; | ||||
|     uint64 a = Fetch32(s); | ||||
|     return HashLen16(len + (a << 3), Fetch32(s + len - 4), mul); | ||||
|   } | ||||
|   if (len > 0) { | ||||
|     uint8 a = s[0]; | ||||
|     uint8 b = s[len >> 1]; | ||||
|     uint8 c = s[len - 1]; | ||||
|     uint32 y = static_cast<uint32>(a) + (static_cast<uint32>(b) << 8); | ||||
|     uint32 z = len + (static_cast<uint32>(c) << 2); | ||||
|     return ShiftMix(y * k2 ^ z * k0) * k2; | ||||
|   } | ||||
|   return k2; | ||||
| } | ||||
| 
 | ||||
| // This probably works well for 16-byte strings as well, but it may be overkill
 | ||||
| // in that case.
 | ||||
| static uint64 HashLen17to32(const char *s, size_t len) { | ||||
|   uint64 mul = k2 + len * 2; | ||||
|   uint64 a = Fetch64(s) * k1; | ||||
|   uint64 b = Fetch64(s + 8); | ||||
|   uint64 c = Fetch64(s + len - 8) * mul; | ||||
|   uint64 d = Fetch64(s + len - 16) * k2; | ||||
|   return HashLen16(Rotate(a + b, 43) + Rotate(c, 30) + d, | ||||
|                    a + Rotate(b + k2, 18) + c, mul); | ||||
| } | ||||
| 
 | ||||
| // Return a 16-byte hash for 48 bytes.  Quick and dirty.
 | ||||
| // Callers do best to use "random-looking" values for a and b.
 | ||||
| static pair<uint64, uint64> WeakHashLen32WithSeeds( | ||||
|     uint64 w, uint64 x, uint64 y, uint64 z, uint64 a, uint64 b) { | ||||
|   a += w; | ||||
|   b = Rotate(b + a + z, 21); | ||||
|   uint64 c = a; | ||||
|   a += x; | ||||
|   a += y; | ||||
|   b += Rotate(a, 44); | ||||
|   return make_pair(a + z, b + c); | ||||
| } | ||||
| 
 | ||||
| // Return a 16-byte hash for s[0] ... s[31], a, and b.  Quick and dirty.
 | ||||
| static pair<uint64, uint64> WeakHashLen32WithSeeds( | ||||
|     const char* s, uint64 a, uint64 b) { | ||||
|   return WeakHashLen32WithSeeds(Fetch64(s), | ||||
|                                 Fetch64(s + 8), | ||||
|                                 Fetch64(s + 16), | ||||
|                                 Fetch64(s + 24), | ||||
|                                 a, | ||||
|                                 b); | ||||
| } | ||||
| 
 | ||||
| // Return an 8-byte hash for 33 to 64 bytes.
 | ||||
| static uint64 HashLen33to64(const char *s, size_t len) { | ||||
|   uint64 mul = k2 + len * 2; | ||||
|   uint64 a = Fetch64(s) * k2; | ||||
|   uint64 b = Fetch64(s + 8); | ||||
|   uint64 c = Fetch64(s + len - 24); | ||||
|   uint64 d = Fetch64(s + len - 32); | ||||
|   uint64 e = Fetch64(s + 16) * k2; | ||||
|   uint64 f = Fetch64(s + 24) * 9; | ||||
|   uint64 g = Fetch64(s + len - 8); | ||||
|   uint64 h = Fetch64(s + len - 16) * mul; | ||||
|   uint64 u = Rotate(a + g, 43) + (Rotate(b, 30) + c) * 9; | ||||
|   uint64 v = ((a + g) ^ d) + f + 1; | ||||
|   uint64 w = bswap_64((u + v) * mul) + h; | ||||
|   uint64 x = Rotate(e + f, 42) + c; | ||||
|   uint64 y = (bswap_64((v + w) * mul) + g) * mul; | ||||
|   uint64 z = e + f + c; | ||||
|   a = bswap_64((x + z) * mul + y) + b; | ||||
|   b = ShiftMix((z + a) * mul + d + h) * mul; | ||||
|   return b + x; | ||||
| } | ||||
| 
 | ||||
| uint64 CityHash64(const char *s, size_t len) { | ||||
|   if (len <= 32) { | ||||
|     if (len <= 16) { | ||||
|       return HashLen0to16(s, len); | ||||
|     } else { | ||||
|       return HashLen17to32(s, len); | ||||
|     } | ||||
|   } else if (len <= 64) { | ||||
|     return HashLen33to64(s, len); | ||||
|   } | ||||
| 
 | ||||
|   // For strings over 64 bytes we hash the end first, and then as we
 | ||||
|   // loop we keep 56 bytes of state: v, w, x, y, and z.
 | ||||
|   uint64 x = Fetch64(s + len - 40); | ||||
|   uint64 y = Fetch64(s + len - 16) + Fetch64(s + len - 56); | ||||
|   uint64 z = HashLen16(Fetch64(s + len - 48) + len, Fetch64(s + len - 24)); | ||||
|   pair<uint64, uint64> v = WeakHashLen32WithSeeds(s + len - 64, len, z); | ||||
|   pair<uint64, uint64> w = WeakHashLen32WithSeeds(s + len - 32, y + k1, x); | ||||
|   x = x * k1 + Fetch64(s); | ||||
| 
 | ||||
|   // Decrease len to the nearest multiple of 64, and operate on 64-byte chunks.
 | ||||
|   len = (len - 1) & ~static_cast<size_t>(63); | ||||
|   do { | ||||
|     x = Rotate(x + y + v.first + Fetch64(s + 8), 37) * k1; | ||||
|     y = Rotate(y + v.second + Fetch64(s + 48), 42) * k1; | ||||
|     x ^= w.second; | ||||
|     y += v.first + Fetch64(s + 40); | ||||
|     z = Rotate(z + w.first, 33) * k1; | ||||
|     v = WeakHashLen32WithSeeds(s, v.second * k1, x + w.first); | ||||
|     w = WeakHashLen32WithSeeds(s + 32, z + w.second, y + Fetch64(s + 16)); | ||||
|     std::swap(z, x); | ||||
|     s += 64; | ||||
|     len -= 64; | ||||
|   } while (len != 0); | ||||
|   return HashLen16(HashLen16(v.first, w.first) + ShiftMix(y) * k1 + z, | ||||
|                    HashLen16(v.second, w.second) + x); | ||||
| } | ||||
| 
 | ||||
| uint64 CityHash64WithSeed(const char *s, size_t len, uint64 seed) { | ||||
|   return CityHash64WithSeeds(s, len, k2, seed); | ||||
| } | ||||
| 
 | ||||
| uint64 CityHash64WithSeeds(const char *s, size_t len, | ||||
|                            uint64 seed0, uint64 seed1) { | ||||
|   return HashLen16(CityHash64(s, len) - seed0, seed1); | ||||
| } | ||||
| 
 | ||||
| // A subroutine for CityHash128().  Returns a decent 128-bit hash for strings
 | ||||
| // of any length representable in signed long.  Based on City and Murmur.
 | ||||
| static uint128 CityMurmur(const char *s, size_t len, uint128 seed) { | ||||
|   uint64 a = Uint128Low64(seed); | ||||
|   uint64 b = Uint128High64(seed); | ||||
|   uint64 c = 0; | ||||
|   uint64 d = 0; | ||||
|   signed long l = len - 16; | ||||
|   if (l <= 0) {  // len <= 16
 | ||||
|     a = ShiftMix(a * k1) * k1; | ||||
|     c = b * k1 + HashLen0to16(s, len); | ||||
|     d = ShiftMix(a + (len >= 8 ? Fetch64(s) : c)); | ||||
|   } else {  // len > 16
 | ||||
|     c = HashLen16(Fetch64(s + len - 8) + k1, a); | ||||
|     d = HashLen16(b + len, c + Fetch64(s + len - 16)); | ||||
|     a += d; | ||||
|     do { | ||||
|       a ^= ShiftMix(Fetch64(s) * k1) * k1; | ||||
|       a *= k1; | ||||
|       b ^= a; | ||||
|       c ^= ShiftMix(Fetch64(s + 8) * k1) * k1; | ||||
|       c *= k1; | ||||
|       d ^= c; | ||||
|       s += 16; | ||||
|       l -= 16; | ||||
|     } while (l > 0); | ||||
|   } | ||||
|   a = HashLen16(a, c); | ||||
|   b = HashLen16(d, b); | ||||
|   return uint128(a ^ b, HashLen16(b, a)); | ||||
| } | ||||
| 
 | ||||
| uint128 CityHash128WithSeed(const char *s, size_t len, uint128 seed) { | ||||
|   if (len < 128) { | ||||
|     return CityMurmur(s, len, seed); | ||||
|   } | ||||
| 
 | ||||
|   // We expect len >= 128 to be the common case.  Keep 56 bytes of state:
 | ||||
|   // v, w, x, y, and z.
 | ||||
|   pair<uint64, uint64> v, w; | ||||
|   uint64 x = Uint128Low64(seed); | ||||
|   uint64 y = Uint128High64(seed); | ||||
|   uint64 z = len * k1; | ||||
|   v.first = Rotate(y ^ k1, 49) * k1 + Fetch64(s); | ||||
|   v.second = Rotate(v.first, 42) * k1 + Fetch64(s + 8); | ||||
|   w.first = Rotate(y + z, 35) * k1 + x; | ||||
|   w.second = Rotate(x + Fetch64(s + 88), 53) * k1; | ||||
| 
 | ||||
|   // This is the same inner loop as CityHash64(), manually unrolled.
 | ||||
|   do { | ||||
|     x = Rotate(x + y + v.first + Fetch64(s + 8), 37) * k1; | ||||
|     y = Rotate(y + v.second + Fetch64(s + 48), 42) * k1; | ||||
|     x ^= w.second; | ||||
|     y += v.first + Fetch64(s + 40); | ||||
|     z = Rotate(z + w.first, 33) * k1; | ||||
|     v = WeakHashLen32WithSeeds(s, v.second * k1, x + w.first); | ||||
|     w = WeakHashLen32WithSeeds(s + 32, z + w.second, y + Fetch64(s + 16)); | ||||
|     std::swap(z, x); | ||||
|     s += 64; | ||||
|     x = Rotate(x + y + v.first + Fetch64(s + 8), 37) * k1; | ||||
|     y = Rotate(y + v.second + Fetch64(s + 48), 42) * k1; | ||||
|     x ^= w.second; | ||||
|     y += v.first + Fetch64(s + 40); | ||||
|     z = Rotate(z + w.first, 33) * k1; | ||||
|     v = WeakHashLen32WithSeeds(s, v.second * k1, x + w.first); | ||||
|     w = WeakHashLen32WithSeeds(s + 32, z + w.second, y + Fetch64(s + 16)); | ||||
|     std::swap(z, x); | ||||
|     s += 64; | ||||
|     len -= 128; | ||||
|   } while (LIKELY(len >= 128)); | ||||
|   x += Rotate(v.first + z, 49) * k0; | ||||
|   y = y * k0 + Rotate(w.second, 37); | ||||
|   z = z * k0 + Rotate(w.first, 27); | ||||
|   w.first *= 9; | ||||
|   v.first *= k0; | ||||
|   // If 0 < len < 128, hash up to 4 chunks of 32 bytes each from the end of s.
 | ||||
|   for (size_t tail_done = 0; tail_done < len; ) { | ||||
|     tail_done += 32; | ||||
|     y = Rotate(x + y, 42) * k0 + v.second; | ||||
|     w.first += Fetch64(s + len - tail_done + 16); | ||||
|     x = x * k0 + w.first; | ||||
|     z += w.second + Fetch64(s + len - tail_done); | ||||
|     w.second += v.first; | ||||
|     v = WeakHashLen32WithSeeds(s + len - tail_done, v.first + z, v.second); | ||||
|     v.first *= k0; | ||||
|   } | ||||
|   // At this point our 56 bytes of state should contain more than
 | ||||
|   // enough information for a strong 128-bit hash.  We use two
 | ||||
|   // different 56-byte-to-8-byte hashes to get a 16-byte final result.
 | ||||
|   x = HashLen16(x, v.first); | ||||
|   y = HashLen16(y + z, w.first); | ||||
|   return uint128(HashLen16(x + v.second, w.second) + y, | ||||
|                  HashLen16(x + w.second, y + v.second)); | ||||
| } | ||||
| 
 | ||||
| uint128 CityHash128(const char *s, size_t len) { | ||||
|   return len >= 16 ? | ||||
|       CityHash128WithSeed(s + 16, len - 16, | ||||
|                           uint128(Fetch64(s), Fetch64(s + 8) + k0)) : | ||||
|       CityHash128WithSeed(s, len, uint128(k0, k1)); | ||||
| } | ||||
| 
 | ||||
| #ifdef __SSE4_2__ | ||||
| #include <citycrc.h> | ||||
| #include <nmmintrin.h> | ||||
| 
 | ||||
| // Requires len >= 240.
 | ||||
| static void CityHashCrc256Long(const char *s, size_t len, | ||||
|                                uint32 seed, uint64 *result) { | ||||
|   uint64 a = Fetch64(s + 56) + k0; | ||||
|   uint64 b = Fetch64(s + 96) + k0; | ||||
|   uint64 c = result[0] = HashLen16(b, len); | ||||
|   uint64 d = result[1] = Fetch64(s + 120) * k0 + len; | ||||
|   uint64 e = Fetch64(s + 184) + seed; | ||||
|   uint64 f = 0; | ||||
|   uint64 g = 0; | ||||
|   uint64 h = c + d; | ||||
|   uint64 x = seed; | ||||
|   uint64 y = 0; | ||||
|   uint64 z = 0; | ||||
| 
 | ||||
|   // 240 bytes of input per iter.
 | ||||
|   size_t iters = len / 240; | ||||
|   len -= iters * 240; | ||||
|   do { | ||||
| #undef CHUNK | ||||
| #define CHUNK(r)                                \ | ||||
|     PERMUTE3(x, z, y);                          \ | ||||
|     b += Fetch64(s);                            \ | ||||
|     c += Fetch64(s + 8);                        \ | ||||
|     d += Fetch64(s + 16);                       \ | ||||
|     e += Fetch64(s + 24);                       \ | ||||
|     f += Fetch64(s + 32);                       \ | ||||
|     a += b;                                     \ | ||||
|     h += f;                                     \ | ||||
|     b += c;                                     \ | ||||
|     f += d;                                     \ | ||||
|     g += e;                                     \ | ||||
|     e += z;                                     \ | ||||
|     g += x;                                     \ | ||||
|     z = _mm_crc32_u64(z, b + g);                \ | ||||
|     y = _mm_crc32_u64(y, e + h);                \ | ||||
|     x = _mm_crc32_u64(x, f + a);                \ | ||||
|     e = Rotate(e, r);                           \ | ||||
|     c += e;                                     \ | ||||
|     s += 40 | ||||
| 
 | ||||
|     CHUNK(0); PERMUTE3(a, h, c); | ||||
|     CHUNK(33); PERMUTE3(a, h, f); | ||||
|     CHUNK(0); PERMUTE3(b, h, f); | ||||
|     CHUNK(42); PERMUTE3(b, h, d); | ||||
|     CHUNK(0); PERMUTE3(b, h, e); | ||||
|     CHUNK(33); PERMUTE3(a, h, e); | ||||
|   } while (--iters > 0); | ||||
| 
 | ||||
|   while (len >= 40) { | ||||
|     CHUNK(29); | ||||
|     e ^= Rotate(a, 20); | ||||
|     h += Rotate(b, 30); | ||||
|     g ^= Rotate(c, 40); | ||||
|     f += Rotate(d, 34); | ||||
|     PERMUTE3(c, h, g); | ||||
|     len -= 40; | ||||
|   } | ||||
|   if (len > 0) { | ||||
|     s = s + len - 40; | ||||
|     CHUNK(33); | ||||
|     e ^= Rotate(a, 43); | ||||
|     h += Rotate(b, 42); | ||||
|     g ^= Rotate(c, 41); | ||||
|     f += Rotate(d, 40); | ||||
|   } | ||||
|   result[0] ^= h; | ||||
|   result[1] ^= g; | ||||
|   g += h; | ||||
|   a = HashLen16(a, g + z); | ||||
|   x += y << 32; | ||||
|   b += x; | ||||
|   c = HashLen16(c, z) + h; | ||||
|   d = HashLen16(d, e + result[0]); | ||||
|   g += e; | ||||
|   h += HashLen16(x, f); | ||||
|   e = HashLen16(a, d) + g; | ||||
|   z = HashLen16(b, c) + a; | ||||
|   y = HashLen16(g, h) + c; | ||||
|   result[0] = e + z + y + x; | ||||
|   a = ShiftMix((a + y) * k0) * k0 + b; | ||||
|   result[1] += a + result[0]; | ||||
|   a = ShiftMix(a * k0) * k0 + c; | ||||
|   result[2] = a + result[1]; | ||||
|   a = ShiftMix((a + e) * k0) * k0; | ||||
|   result[3] = a + result[2]; | ||||
| } | ||||
| 
 | ||||
| // Requires len < 240.
 | ||||
| static void CityHashCrc256Short(const char *s, size_t len, uint64 *result) { | ||||
|   char buf[240]; | ||||
|   memcpy(buf, s, len); | ||||
|   memset(buf + len, 0, 240 - len); | ||||
|   CityHashCrc256Long(buf, 240, ~static_cast<uint32>(len), result); | ||||
| } | ||||
| 
 | ||||
| void CityHashCrc256(const char *s, size_t len, uint64 *result) { | ||||
|   if (LIKELY(len >= 240)) { | ||||
|     CityHashCrc256Long(s, len, 0, result); | ||||
|   } else { | ||||
|     CityHashCrc256Short(s, len, result); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| uint128 CityHashCrc128WithSeed(const char *s, size_t len, uint128 seed) { | ||||
|   if (len <= 900) { | ||||
|     return CityHash128WithSeed(s, len, seed); | ||||
|   } else { | ||||
|     uint64 result[4]; | ||||
|     CityHashCrc256(s, len, result); | ||||
|     uint64 u = Uint128High64(seed) + result[0]; | ||||
|     uint64 v = Uint128Low64(seed) + result[1]; | ||||
|     return uint128(HashLen16(u, v + result[2]), | ||||
|                    HashLen16(Rotate(v, 32), u * k0 + result[3])); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| uint128 CityHashCrc128(const char *s, size_t len) { | ||||
|   if (len <= 900) { | ||||
|     return CityHash128(s, len); | ||||
|   } else { | ||||
|     uint64 result[4]; | ||||
|     CityHashCrc256(s, len, result); | ||||
|     return uint128(result[2], result[3]); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
| @ -0,0 +1,112 @@ | ||||
| // Copyright (c) 2011 Google, Inc.
 | ||||
| //
 | ||||
| // Permission is hereby granted, free of charge, to any person obtaining a copy
 | ||||
| // of this software and associated documentation files (the "Software"), to deal
 | ||||
| // in the Software without restriction, including without limitation the rights
 | ||||
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | ||||
| // copies of the Software, and to permit persons to whom the Software is
 | ||||
| // furnished to do so, subject to the following conditions:
 | ||||
| //
 | ||||
| // The above copyright notice and this permission notice shall be included in
 | ||||
| // all copies or substantial portions of the Software.
 | ||||
| //
 | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | ||||
| // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | ||||
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | ||||
| // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | ||||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | ||||
| // THE SOFTWARE.
 | ||||
| //
 | ||||
| // CityHash, by Geoff Pike and Jyrki Alakuijala
 | ||||
| //
 | ||||
| // http://code.google.com/p/cityhash/
 | ||||
| //
 | ||||
| // This file provides a few functions for hashing strings.  All of them are
 | ||||
| // high-quality functions in the sense that they pass standard tests such
 | ||||
| // as Austin Appleby's SMHasher.  They are also fast.
 | ||||
| //
 | ||||
| // For 64-bit x86 code, on short strings, we don't know of anything faster than
 | ||||
| // CityHash64 that is of comparable quality.  We believe our nearest competitor
 | ||||
| // is Murmur3.  For 64-bit x86 code, CityHash64 is an excellent choice for hash
 | ||||
| // tables and most other hashing (excluding cryptography).
 | ||||
| //
 | ||||
| // For 64-bit x86 code, on long strings, the picture is more complicated.
 | ||||
| // On many recent Intel CPUs, such as Nehalem, Westmere, Sandy Bridge, etc.,
 | ||||
| // CityHashCrc128 appears to be faster than all competitors of comparable
 | ||||
| // quality.  CityHash128 is also good but not quite as fast.  We believe our
 | ||||
| // nearest competitor is Bob Jenkins' Spooky.  We don't have great data for
 | ||||
| // other 64-bit CPUs, but for long strings we know that Spooky is slightly
 | ||||
| // faster than CityHash on some relatively recent AMD x86-64 CPUs, for example.
 | ||||
| // Note that CityHashCrc128 is declared in citycrc.h.
 | ||||
| //
 | ||||
| // For 32-bit x86 code, we don't know of anything faster than CityHash32 that
 | ||||
| // is of comparable quality.  We believe our nearest competitor is Murmur3A.
 | ||||
| // (On 64-bit CPUs, it is typically faster to use the other CityHash variants.)
 | ||||
| //
 | ||||
| // Functions in the CityHash family are not suitable for cryptography.
 | ||||
| //
 | ||||
| // Please see CityHash's README file for more details on our performance
 | ||||
| // measurements and so on.
 | ||||
| //
 | ||||
| // WARNING: This code has been only lightly tested on big-endian platforms!
 | ||||
| // It is known to work well on little-endian platforms that have a small penalty
 | ||||
| // for unaligned reads, such as current Intel and AMD moderate-to-high-end CPUs.
 | ||||
| // It should work on all 32-bit and 64-bit platforms that allow unaligned reads;
 | ||||
| // bug reports are welcome.
 | ||||
| //
 | ||||
| // By the way, for some hash functions, given strings a and b, the hash
 | ||||
| // of a+b is easily derived from the hashes of a and b.  This property
 | ||||
| // doesn't hold for any hash functions in this file.
 | ||||
| 
 | ||||
| #ifndef CITY_HASH_H_ | ||||
| #define CITY_HASH_H_ | ||||
| 
 | ||||
| #include <stdlib.h>  // for size_t. | ||||
| #include <stdint.h> | ||||
| #include <utility> | ||||
| 
 | ||||
| typedef uint8_t uint8; | ||||
| typedef uint32_t uint32; | ||||
| typedef uint64_t uint64; | ||||
| typedef std::pair<uint64, uint64> uint128; | ||||
| 
 | ||||
| inline uint64 Uint128Low64(const uint128& x) { return x.first; } | ||||
| inline uint64 Uint128High64(const uint128& x) { return x.second; } | ||||
| 
 | ||||
| // Hash function for a byte array.
 | ||||
| uint64 CityHash64(const char *buf, size_t len); | ||||
| 
 | ||||
| // Hash function for a byte array.  For convenience, a 64-bit seed is also
 | ||||
| // hashed into the result.
 | ||||
| uint64 CityHash64WithSeed(const char *buf, size_t len, uint64 seed); | ||||
| 
 | ||||
| // Hash function for a byte array.  For convenience, two seeds are also
 | ||||
| // hashed into the result.
 | ||||
| uint64 CityHash64WithSeeds(const char *buf, size_t len, | ||||
|                            uint64 seed0, uint64 seed1); | ||||
| 
 | ||||
| // Hash function for a byte array.
 | ||||
| uint128 CityHash128(const char *s, size_t len); | ||||
| 
 | ||||
| // Hash function for a byte array.  For convenience, a 128-bit seed is also
 | ||||
| // hashed into the result.
 | ||||
| uint128 CityHash128WithSeed(const char *s, size_t len, uint128 seed); | ||||
| 
 | ||||
| // Hash function for a byte array.  Most useful in 32-bit binaries.
 | ||||
| uint32 CityHash32(const char *buf, size_t len); | ||||
| 
 | ||||
| // Hash 128 input bits down to 64 bits of output.
 | ||||
| // This is intended to be a reasonably good hash function.
 | ||||
| inline uint64 Hash128to64(const uint128& x) { | ||||
|   // Murmur-inspired hashing.
 | ||||
|   const uint64 kMul = 0x9ddfea08eb382d69ULL; | ||||
|   uint64 a = (Uint128Low64(x) ^ Uint128High64(x)) * kMul; | ||||
|   a ^= (a >> 47); | ||||
|   uint64 b = (Uint128High64(x) ^ a) * kMul; | ||||
|   b ^= (b >> 47); | ||||
|   b *= kMul; | ||||
|   return b; | ||||
| } | ||||
| 
 | ||||
| #endif  // CITY_HASH_H_
 | ||||
| @ -0,0 +1,43 @@ | ||||
| // Copyright (c) 2011 Google, Inc.
 | ||||
| //
 | ||||
| // Permission is hereby granted, free of charge, to any person obtaining a copy
 | ||||
| // of this software and associated documentation files (the "Software"), to deal
 | ||||
| // in the Software without restriction, including without limitation the rights
 | ||||
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | ||||
| // copies of the Software, and to permit persons to whom the Software is
 | ||||
| // furnished to do so, subject to the following conditions:
 | ||||
| //
 | ||||
| // The above copyright notice and this permission notice shall be included in
 | ||||
| // all copies or substantial portions of the Software.
 | ||||
| //
 | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | ||||
| // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | ||||
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | ||||
| // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | ||||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | ||||
| // THE SOFTWARE.
 | ||||
| //
 | ||||
| // CityHash, by Geoff Pike and Jyrki Alakuijala
 | ||||
| //
 | ||||
| // This file declares the subset of the CityHash functions that require
 | ||||
| // _mm_crc32_u64().  See the CityHash README for details.
 | ||||
| //
 | ||||
| // Functions in the CityHash family are not suitable for cryptography.
 | ||||
| 
 | ||||
| #ifndef CITY_HASH_CRC_H_ | ||||
| #define CITY_HASH_CRC_H_ | ||||
| 
 | ||||
| #include <city.h> | ||||
| 
 | ||||
| // Hash function for a byte array.
 | ||||
| uint128 CityHashCrc128(const char *s, size_t len); | ||||
| 
 | ||||
| // Hash function for a byte array.  For convenience, a 128-bit seed is also
 | ||||
| // hashed into the result.
 | ||||
| uint128 CityHashCrc128WithSeed(const char *s, size_t len, uint128 seed); | ||||
| 
 | ||||
| // Hash function for a byte array.  Sets result[0] ... result[3].
 | ||||
| void CityHashCrc256(const char *s, size_t len, uint64 *result); | ||||
| 
 | ||||
| #endif  // CITY_HASH_CRC_H_
 | ||||
| @ -1,6 +0,0 @@ | ||||
| [wrap-file] | ||||
| directory = cityhash-1.1.0 | ||||
| 
 | ||||
| source_url = https://github.com/google/cityhash/archive/8af9b8c.tar.gz | ||||
| source_filename = cityhash-1.3.3.tar.gz | ||||
| source_hash = a77c47153ee7de02626c5b2a097005786b71688be61e9fb81806a011f90b297b | ||||
		Loading…
	
		Reference in New Issue