nutcracker 0.3.0.12 → 0.4.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +5 -13
  2. data/README.md +3 -3
  3. data/Rakefile +12 -10
  4. data/ext/nutcracker/Makefile.in +215 -162
  5. data/ext/nutcracker/README.md +16 -4
  6. data/ext/nutcracker/aclocal.m4 +432 -254
  7. data/ext/nutcracker/{contrib/yaml-0.1.4/configure → autom4te.cache/output.0} +11367 -4545
  8. data/ext/nutcracker/autom4te.cache/output.1 +19907 -0
  9. data/ext/nutcracker/autom4te.cache/output.2 +19907 -0
  10. data/ext/nutcracker/autom4te.cache/requests +518 -0
  11. data/ext/nutcracker/autom4te.cache/traces.0 +2715 -0
  12. data/ext/nutcracker/autom4te.cache/traces.1 +967 -0
  13. data/ext/nutcracker/autom4te.cache/traces.2 +2715 -0
  14. data/ext/nutcracker/config/compile +347 -0
  15. data/ext/nutcracker/config/config.guess +116 -78
  16. data/ext/nutcracker/config/config.sub +65 -45
  17. data/ext/nutcracker/config/depcomp +295 -192
  18. data/ext/nutcracker/config/install-sh +7 -7
  19. data/ext/nutcracker/config/ltmain.sh +15 -20
  20. data/ext/nutcracker/config/missing +149 -265
  21. data/ext/nutcracker/configure +493 -367
  22. data/ext/nutcracker/contrib/Makefile.in +158 -116
  23. data/ext/nutcracker/extconf.rb +0 -1
  24. data/ext/nutcracker/m4/libtool.m4 +4 -23
  25. data/ext/nutcracker/m4/ltoptions.m4 +0 -0
  26. data/ext/nutcracker/m4/ltsugar.m4 +0 -0
  27. data/ext/nutcracker/m4/ltversion.m4 +0 -0
  28. data/ext/nutcracker/m4/lt~obsolete.m4 +0 -0
  29. data/ext/nutcracker/notes/recommendation.md +1 -1
  30. data/ext/nutcracker/notes/redis.md +35 -3
  31. data/ext/nutcracker/scripts/benchmark-mget.py +43 -0
  32. data/ext/nutcracker/scripts/nutcracker.spec +61 -3
  33. data/ext/nutcracker/scripts/redis-check.sh +43 -0
  34. data/ext/nutcracker/src/Makefile.in +205 -142
  35. data/ext/nutcracker/src/event/Makefile.in +164 -66
  36. data/ext/nutcracker/src/hashkit/Makefile.in +164 -66
  37. data/ext/nutcracker/src/nc_conf.c +2 -0
  38. data/ext/nutcracker/src/nc_connection.c +31 -0
  39. data/ext/nutcracker/src/nc_connection.h +3 -0
  40. data/ext/nutcracker/src/nc_core.c +38 -2
  41. data/ext/nutcracker/src/nc_core.h +11 -0
  42. data/ext/nutcracker/src/nc_log.c +90 -12
  43. data/ext/nutcracker/src/nc_log.h +11 -0
  44. data/ext/nutcracker/src/nc_mbuf.h +1 -1
  45. data/ext/nutcracker/src/nc_message.c +162 -116
  46. data/ext/nutcracker/src/nc_message.h +161 -129
  47. data/ext/nutcracker/src/nc_proxy.c +34 -4
  48. data/ext/nutcracker/src/nc_request.c +158 -32
  49. data/ext/nutcracker/src/nc_server.c +59 -5
  50. data/ext/nutcracker/src/nc_server.h +1 -0
  51. data/ext/nutcracker/src/nc_signal.c +2 -2
  52. data/ext/nutcracker/src/nc_stats.c +21 -0
  53. data/ext/nutcracker/src/nc_stats.h +28 -26
  54. data/ext/nutcracker/src/nc_string.c +176 -1
  55. data/ext/nutcracker/src/nc_string.h +26 -0
  56. data/ext/nutcracker/src/nc_util.c +12 -0
  57. data/ext/nutcracker/src/nc_util.h +1 -0
  58. data/ext/nutcracker/src/proto/Makefile.in +164 -66
  59. data/ext/nutcracker/src/proto/nc_memcache.c +279 -88
  60. data/ext/nutcracker/src/proto/nc_proto.h +3 -4
  61. data/ext/nutcracker/src/proto/nc_redis.c +561 -134
  62. data/lib/nutcracker/version.rb +1 -1
  63. metadata +31 -67
  64. data/ext/nutcracker/contrib/yaml-0.1.4/LICENSE +0 -19
  65. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.am +0 -20
  66. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.in +0 -736
  67. data/ext/nutcracker/contrib/yaml-0.1.4/README +0 -27
  68. data/ext/nutcracker/contrib/yaml-0.1.4/aclocal.m4 +0 -956
  69. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in +0 -80
  70. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.guess +0 -1561
  71. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.sub +0 -1686
  72. data/ext/nutcracker/contrib/yaml-0.1.4/config/depcomp +0 -630
  73. data/ext/nutcracker/contrib/yaml-0.1.4/config/install-sh +0 -520
  74. data/ext/nutcracker/contrib/yaml-0.1.4/config/ltmain.sh +0 -8406
  75. data/ext/nutcracker/contrib/yaml-0.1.4/config/missing +0 -376
  76. data/ext/nutcracker/contrib/yaml-0.1.4/configure.ac +0 -75
  77. data/ext/nutcracker/contrib/yaml-0.1.4/doc/doxygen.cfg +0 -222
  78. data/ext/nutcracker/contrib/yaml-0.1.4/include/yaml.h +0 -1971
  79. data/ext/nutcracker/contrib/yaml-0.1.4/m4/libtool.m4 +0 -7357
  80. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltoptions.m4 +0 -368
  81. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltsugar.m4 +0 -123
  82. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltversion.m4 +0 -23
  83. data/ext/nutcracker/contrib/yaml-0.1.4/m4/lt~obsolete.m4 +0 -92
  84. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.am +0 -4
  85. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.in +0 -484
  86. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.c +0 -1392
  87. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.c +0 -394
  88. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.c +0 -2329
  89. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.c +0 -432
  90. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.c +0 -1374
  91. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.c +0 -465
  92. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.c +0 -3570
  93. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.c +0 -141
  94. data/ext/nutcracker/contrib/yaml-0.1.4/src/yaml_private.h +0 -640
  95. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.am +0 -8
  96. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.in +0 -675
  97. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.c +0 -800
  98. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.c +0 -1130
  99. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.c +0 -217
  100. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.c +0 -202
  101. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.c +0 -311
  102. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.c +0 -327
  103. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.c +0 -63
  104. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.c +0 -63
  105. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.c +0 -63
  106. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-reader.c +0 -354
  107. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-version.c +0 -29
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
  # install - install a program, script, or datafile
3
3
 
4
- scriptversion=2011-01-19.21; # UTC
4
+ scriptversion=2011-11-20.07; # UTC
5
5
 
6
6
  # This originates from X11R5 (mit/util/scripts/install.sh), which was
7
7
  # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,7 +35,7 @@ scriptversion=2011-01-19.21; # UTC
35
35
  # FSF changes to this file are in the public domain.
36
36
  #
37
37
  # Calling this script install-sh is preferred over install.sh, to prevent
38
- # `make' implicit rules from creating a file called install from it
38
+ # 'make' implicit rules from creating a file called install from it
39
39
  # when there is no Makefile.
40
40
  #
41
41
  # This script is compatible with the BSD install script, but was written
@@ -156,7 +156,7 @@ while test $# -ne 0; do
156
156
  -s) stripcmd=$stripprog;;
157
157
 
158
158
  -t) dst_arg=$2
159
- # Protect names problematic for `test' and other utilities.
159
+ # Protect names problematic for 'test' and other utilities.
160
160
  case $dst_arg in
161
161
  -* | [=\(\)!]) dst_arg=./$dst_arg;;
162
162
  esac
@@ -190,7 +190,7 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
190
190
  fi
191
191
  shift # arg
192
192
  dst_arg=$arg
193
- # Protect names problematic for `test' and other utilities.
193
+ # Protect names problematic for 'test' and other utilities.
194
194
  case $dst_arg in
195
195
  -* | [=\(\)!]) dst_arg=./$dst_arg;;
196
196
  esac
@@ -202,7 +202,7 @@ if test $# -eq 0; then
202
202
  echo "$0: no input file specified." >&2
203
203
  exit 1
204
204
  fi
205
- # It's OK to call `install-sh -d' without argument.
205
+ # It's OK to call 'install-sh -d' without argument.
206
206
  # This can happen when creating conditional directories.
207
207
  exit 0
208
208
  fi
@@ -240,7 +240,7 @@ fi
240
240
 
241
241
  for src
242
242
  do
243
- # Protect names problematic for `test' and other utilities.
243
+ # Protect names problematic for 'test' and other utilities.
244
244
  case $src in
245
245
  -* | [=\(\)!]) src=./$src;;
246
246
  esac
@@ -354,7 +354,7 @@ do
354
354
  if test -z "$dir_arg" || {
355
355
  # Check for POSIX incompatibilities with -m.
356
356
  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
357
- # other-writeable bit of parent directory when it shouldn't.
357
+ # other-writable bit of parent directory when it shouldn't.
358
358
  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
359
359
  ls_ld_tmpdir=`ls -ld "$tmpdir"`
360
360
  case $ls_ld_tmpdir in
@@ -70,7 +70,7 @@
70
70
  # compiler: $LTCC
71
71
  # compiler flags: $LTCFLAGS
72
72
  # linker: $LD (gnu? $with_gnu_ld)
73
- # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1
73
+ # $progname: (GNU libtool) 2.4.2
74
74
  # automake: $automake_version
75
75
  # autoconf: $autoconf_version
76
76
  #
@@ -80,7 +80,7 @@
80
80
 
81
81
  PROGRAM=libtool
82
82
  PACKAGE=libtool
83
- VERSION="2.4.2 Debian-2.4.2-1ubuntu1"
83
+ VERSION=2.4.2
84
84
  TIMESTAMP=""
85
85
  package_revision=1.3337
86
86
 
@@ -5851,9 +5851,10 @@ func_mode_link ()
5851
5851
  # -tp=* Portland pgcc target processor selection
5852
5852
  # --sysroot=* for sysroot support
5853
5853
  # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
5854
+ # -stdlib=* select c++ std lib with clang
5854
5855
  -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5855
5856
  -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
5856
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
5857
+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-stdlib=*)
5857
5858
  func_quote_for_eval "$arg"
5858
5859
  arg="$func_quote_for_eval_result"
5859
5860
  func_append compile_command " $arg"
@@ -6124,10 +6125,7 @@ func_mode_link ()
6124
6125
  case $pass in
6125
6126
  dlopen) libs="$dlfiles" ;;
6126
6127
  dlpreopen) libs="$dlprefiles" ;;
6127
- link)
6128
- libs="$deplibs %DEPLIBS%"
6129
- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
6130
- ;;
6128
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
6131
6129
  esac
6132
6130
  fi
6133
6131
  if test "$linkmode,$pass" = "lib,dlpreopen"; then
@@ -6447,19 +6445,19 @@ func_mode_link ()
6447
6445
  # It is a libtool convenience library, so add in its objects.
6448
6446
  func_append convenience " $ladir/$objdir/$old_library"
6449
6447
  func_append old_convenience " $ladir/$objdir/$old_library"
6450
- tmp_libs=
6451
- for deplib in $dependency_libs; do
6452
- deplibs="$deplib $deplibs"
6453
- if $opt_preserve_dup_deps ; then
6454
- case "$tmp_libs " in
6455
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6456
- esac
6457
- fi
6458
- func_append tmp_libs " $deplib"
6459
- done
6460
6448
  elif test "$linkmode" != prog && test "$linkmode" != lib; then
6461
6449
  func_fatal_error "\`$lib' is not a convenience library"
6462
6450
  fi
6451
+ tmp_libs=
6452
+ for deplib in $dependency_libs; do
6453
+ deplibs="$deplib $deplibs"
6454
+ if $opt_preserve_dup_deps ; then
6455
+ case "$tmp_libs " in
6456
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6457
+ esac
6458
+ fi
6459
+ func_append tmp_libs " $deplib"
6460
+ done
6463
6461
  continue
6464
6462
  fi # $pass = conv
6465
6463
 
@@ -7352,9 +7350,6 @@ func_mode_link ()
7352
7350
  revision="$number_minor"
7353
7351
  lt_irix_increment=no
7354
7352
  ;;
7355
- *)
7356
- func_fatal_configuration "$modename: unknown library version type \`$version_type'"
7357
- ;;
7358
7353
  esac
7359
7354
  ;;
7360
7355
  no)
@@ -1,11 +1,10 @@
1
1
  #! /bin/sh
2
- # Common stub for a few missing GNU programs while installing.
2
+ # Common wrapper for a few potentially missing GNU programs.
3
3
 
4
- scriptversion=2012-01-06.13; # UTC
4
+ scriptversion=2013-10-28.13; # UTC
5
5
 
6
- # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
7
- # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
8
- # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
6
+ # Copyright (C) 1996-2013 Free Software Foundation, Inc.
7
+ # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
9
8
 
10
9
  # This program is free software; you can redistribute it and/or modify
11
10
  # it under the terms of the GNU General Public License as published by
@@ -26,68 +25,40 @@ scriptversion=2012-01-06.13; # UTC
26
25
  # the same distribution terms that you use for the rest of that program.
27
26
 
28
27
  if test $# -eq 0; then
29
- echo 1>&2 "Try \`$0 --help' for more information"
28
+ echo 1>&2 "Try '$0 --help' for more information"
30
29
  exit 1
31
30
  fi
32
31
 
33
- run=:
34
- sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
35
- sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
36
-
37
- # In the cases where this matters, `missing' is being run in the
38
- # srcdir already.
39
- if test -f configure.ac; then
40
- configure_ac=configure.ac
41
- else
42
- configure_ac=configure.in
43
- fi
32
+ case $1 in
44
33
 
45
- msg="missing on your system"
34
+ --is-lightweight)
35
+ # Used by our autoconf macros to check whether the available missing
36
+ # script is modern enough.
37
+ exit 0
38
+ ;;
46
39
 
47
- case $1 in
48
- --run)
49
- # Try to run requested program, and just exit if it succeeds.
50
- run=
51
- shift
52
- "$@" && exit 0
53
- # Exit code 63 means version mismatch. This often happens
54
- # when the user try to use an ancient version of a tool on
55
- # a file that requires a minimum version. In this case we
56
- # we should proceed has if the program had been absent, or
57
- # if --run hadn't been passed.
58
- if test $? = 63; then
59
- run=:
60
- msg="probably too old"
61
- fi
62
- ;;
40
+ --run)
41
+ # Back-compat with the calling convention used by older automake.
42
+ shift
43
+ ;;
63
44
 
64
45
  -h|--h|--he|--hel|--help)
65
46
  echo "\
66
47
  $0 [OPTION]... PROGRAM [ARGUMENT]...
67
48
 
68
- Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
69
- error status if there is no known handling for PROGRAM.
49
+ Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
50
+ to PROGRAM being missing or too old.
70
51
 
71
52
  Options:
72
53
  -h, --help display this help and exit
73
54
  -v, --version output version information and exit
74
- --run try to run the given command, and emulate it if it fails
75
55
 
76
56
  Supported PROGRAM values:
77
- aclocal touch file \`aclocal.m4'
78
- autoconf touch file \`configure'
79
- autoheader touch file \`config.h.in'
80
- autom4te touch the output file, or create a stub one
81
- automake touch all \`Makefile.in' files
82
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
83
- flex create \`lex.yy.c', if possible, from existing .c
84
- help2man touch the output file
85
- lex create \`lex.yy.c', if possible, from existing .c
86
- makeinfo touch the output file
87
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
57
+ aclocal autoconf autoheader autom4te automake makeinfo
58
+ bison yacc flex lex help2man
88
59
 
89
- Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
90
- \`g' are ignored when checking the name.
60
+ Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
61
+ 'g' are ignored when checking the name.
91
62
 
92
63
  Send bug reports to <bug-automake@gnu.org>."
93
64
  exit $?
@@ -99,228 +70,141 @@ Send bug reports to <bug-automake@gnu.org>."
99
70
  ;;
100
71
 
101
72
  -*)
102
- echo 1>&2 "$0: Unknown \`$1' option"
103
- echo 1>&2 "Try \`$0 --help' for more information"
73
+ echo 1>&2 "$0: unknown '$1' option"
74
+ echo 1>&2 "Try '$0 --help' for more information"
104
75
  exit 1
105
76
  ;;
106
77
 
107
78
  esac
108
79
 
109
- # normalize program name to check for.
110
- program=`echo "$1" | sed '
111
- s/^gnu-//; t
112
- s/^gnu//; t
113
- s/^g//; t'`
114
-
115
- # Now exit if we have it, but it failed. Also exit now if we
116
- # don't have it and --version was passed (most likely to detect
117
- # the program). This is about non-GNU programs, so use $1 not
118
- # $program.
119
- case $1 in
120
- lex*|yacc*)
121
- # Not GNU programs, they don't have --version.
122
- ;;
123
-
124
- *)
125
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
126
- # We have it, but it failed.
127
- exit 1
128
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
129
- # Could not run --version or --help. This is probably someone
130
- # running `$TOOL --version' or `$TOOL --help' to check whether
131
- # $TOOL exists and not knowing $TOOL uses missing.
132
- exit 1
133
- fi
134
- ;;
135
- esac
136
-
137
- # If it does not exist, or fails to run (possibly an outdated version),
138
- # try to emulate it.
139
- case $program in
140
- aclocal*)
141
- echo 1>&2 "\
142
- WARNING: \`$1' is $msg. You should only need it if
143
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
144
- to install the \`Automake' and \`Perl' packages. Grab them from
145
- any GNU archive site."
146
- touch aclocal.m4
147
- ;;
148
-
149
- autoconf*)
150
- echo 1>&2 "\
151
- WARNING: \`$1' is $msg. You should only need it if
152
- you modified \`${configure_ac}'. You might want to install the
153
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
154
- archive site."
155
- touch configure
156
- ;;
157
-
158
- autoheader*)
159
- echo 1>&2 "\
160
- WARNING: \`$1' is $msg. You should only need it if
161
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
162
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
163
- from any GNU archive site."
164
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
165
- test -z "$files" && files="config.h"
166
- touch_files=
167
- for f in $files; do
168
- case $f in
169
- *:*) touch_files="$touch_files "`echo "$f" |
170
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
171
- *) touch_files="$touch_files $f.in";;
172
- esac
173
- done
174
- touch $touch_files
175
- ;;
176
-
177
- automake*)
178
- echo 1>&2 "\
179
- WARNING: \`$1' is $msg. You should only need it if
180
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
181
- You might want to install the \`Automake' and \`Perl' packages.
182
- Grab them from any GNU archive site."
183
- find . -type f -name Makefile.am -print |
184
- sed 's/\.am$/.in/' |
185
- while read f; do touch "$f"; done
186
- ;;
187
-
188
- autom4te*)
189
- echo 1>&2 "\
190
- WARNING: \`$1' is needed, but is $msg.
191
- You might have modified some files without having the
192
- proper tools for further handling them.
193
- You can get \`$1' as part of \`Autoconf' from any GNU
194
- archive site."
195
-
196
- file=`echo "$*" | sed -n "$sed_output"`
197
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
198
- if test -f "$file"; then
199
- touch $file
200
- else
201
- test -z "$file" || exec >$file
202
- echo "#! /bin/sh"
203
- echo "# Created by GNU Automake missing as a replacement of"
204
- echo "# $ $@"
205
- echo "exit 0"
206
- chmod +x $file
207
- exit 1
208
- fi
209
- ;;
210
-
211
- bison*|yacc*)
212
- echo 1>&2 "\
213
- WARNING: \`$1' $msg. You should only need it if
214
- you modified a \`.y' file. You may need the \`Bison' package
215
- in order for those modifications to take effect. You can get
216
- \`Bison' from any GNU archive site."
217
- rm -f y.tab.c y.tab.h
218
- if test $# -ne 1; then
219
- eval LASTARG=\${$#}
220
- case $LASTARG in
221
- *.y)
222
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
223
- if test -f "$SRCFILE"; then
224
- cp "$SRCFILE" y.tab.c
225
- fi
226
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
227
- if test -f "$SRCFILE"; then
228
- cp "$SRCFILE" y.tab.h
229
- fi
230
- ;;
231
- esac
232
- fi
233
- if test ! -f y.tab.h; then
234
- echo >y.tab.h
235
- fi
236
- if test ! -f y.tab.c; then
237
- echo 'main() { return 0; }' >y.tab.c
238
- fi
239
- ;;
240
-
241
- lex*|flex*)
242
- echo 1>&2 "\
243
- WARNING: \`$1' is $msg. You should only need it if
244
- you modified a \`.l' file. You may need the \`Flex' package
245
- in order for those modifications to take effect. You can get
246
- \`Flex' from any GNU archive site."
247
- rm -f lex.yy.c
248
- if test $# -ne 1; then
249
- eval LASTARG=\${$#}
250
- case $LASTARG in
251
- *.l)
252
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
253
- if test -f "$SRCFILE"; then
254
- cp "$SRCFILE" lex.yy.c
255
- fi
256
- ;;
257
- esac
258
- fi
259
- if test ! -f lex.yy.c; then
260
- echo 'main() { return 0; }' >lex.yy.c
261
- fi
262
- ;;
263
-
264
- help2man*)
265
- echo 1>&2 "\
266
- WARNING: \`$1' is $msg. You should only need it if
267
- you modified a dependency of a manual page. You may need the
268
- \`Help2man' package in order for those modifications to take
269
- effect. You can get \`Help2man' from any GNU archive site."
270
-
271
- file=`echo "$*" | sed -n "$sed_output"`
272
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
273
- if test -f "$file"; then
274
- touch $file
275
- else
276
- test -z "$file" || exec >$file
277
- echo ".ab help2man is required to generate this page"
278
- exit $?
279
- fi
280
- ;;
281
-
282
- makeinfo*)
283
- echo 1>&2 "\
284
- WARNING: \`$1' is $msg. You should only need it if
285
- you modified a \`.texi' or \`.texinfo' file, or any other file
286
- indirectly affecting the aspect of the manual. The spurious
287
- call might also be the consequence of using a buggy \`make' (AIX,
288
- DU, IRIX). You might want to install the \`Texinfo' package or
289
- the \`GNU make' package. Grab either from any GNU archive site."
290
- # The file to touch is that specified with -o ...
291
- file=`echo "$*" | sed -n "$sed_output"`
292
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
293
- if test -z "$file"; then
294
- # ... or it is the one specified with @setfilename ...
295
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
296
- file=`sed -n '
297
- /^@setfilename/{
298
- s/.* \([^ ]*\) *$/\1/
299
- p
300
- q
301
- }' $infile`
302
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
303
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
304
- fi
305
- # If the file does not exist, the user really needs makeinfo;
306
- # let's fail without touching anything.
307
- test -f $file || exit 1
308
- touch $file
309
- ;;
80
+ # Run the given program, remember its exit status.
81
+ "$@"; st=$?
82
+
83
+ # If it succeeded, we are done.
84
+ test $st -eq 0 && exit 0
85
+
86
+ # Also exit now if we it failed (or wasn't found), and '--version' was
87
+ # passed; such an option is passed most likely to detect whether the
88
+ # program is present and works.
89
+ case $2 in --version|--help) exit $st;; esac
90
+
91
+ # Exit code 63 means version mismatch. This often happens when the user
92
+ # tries to use an ancient version of a tool on a file that requires a
93
+ # minimum version.
94
+ if test $st -eq 63; then
95
+ msg="probably too old"
96
+ elif test $st -eq 127; then
97
+ # Program was missing.
98
+ msg="missing on your system"
99
+ else
100
+ # Program was found and executed, but failed. Give up.
101
+ exit $st
102
+ fi
310
103
 
311
- *)
312
- echo 1>&2 "\
313
- WARNING: \`$1' is needed, and is $msg.
314
- You might have modified some files without having the
315
- proper tools for further handling them. Check the \`README' file,
316
- it often tells you about the needed prerequisites for installing
317
- this package. You may also peek at any GNU archive site, in case
318
- some other package would contain this missing \`$1' program."
319
- exit 1
104
+ perl_URL=http://www.perl.org/
105
+ flex_URL=http://flex.sourceforge.net/
106
+ gnu_software_URL=http://www.gnu.org/software
107
+
108
+ program_details ()
109
+ {
110
+ case $1 in
111
+ aclocal|automake)
112
+ echo "The '$1' program is part of the GNU Automake package:"
113
+ echo "<$gnu_software_URL/automake>"
114
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
115
+ echo "<$gnu_software_URL/autoconf>"
116
+ echo "<$gnu_software_URL/m4/>"
117
+ echo "<$perl_URL>"
118
+ ;;
119
+ autoconf|autom4te|autoheader)
120
+ echo "The '$1' program is part of the GNU Autoconf package:"
121
+ echo "<$gnu_software_URL/autoconf/>"
122
+ echo "It also requires GNU m4 and Perl in order to run:"
123
+ echo "<$gnu_software_URL/m4/>"
124
+ echo "<$perl_URL>"
125
+ ;;
126
+ esac
127
+ }
128
+
129
+ give_advice ()
130
+ {
131
+ # Normalize program name to check for.
132
+ normalized_program=`echo "$1" | sed '
133
+ s/^gnu-//; t
134
+ s/^gnu//; t
135
+ s/^g//; t'`
136
+
137
+ printf '%s\n' "'$1' is $msg."
138
+
139
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
140
+ case $normalized_program in
141
+ autoconf*)
142
+ echo "You should only need it if you modified 'configure.ac',"
143
+ echo "or m4 files included by it."
144
+ program_details 'autoconf'
145
+ ;;
146
+ autoheader*)
147
+ echo "You should only need it if you modified 'acconfig.h' or"
148
+ echo "$configure_deps."
149
+ program_details 'autoheader'
150
+ ;;
151
+ automake*)
152
+ echo "You should only need it if you modified 'Makefile.am' or"
153
+ echo "$configure_deps."
154
+ program_details 'automake'
155
+ ;;
156
+ aclocal*)
157
+ echo "You should only need it if you modified 'acinclude.m4' or"
158
+ echo "$configure_deps."
159
+ program_details 'aclocal'
160
+ ;;
161
+ autom4te*)
162
+ echo "You might have modified some maintainer files that require"
163
+ echo "the 'autom4te' program to be rebuilt."
164
+ program_details 'autom4te'
165
+ ;;
166
+ bison*|yacc*)
167
+ echo "You should only need it if you modified a '.y' file."
168
+ echo "You may want to install the GNU Bison package:"
169
+ echo "<$gnu_software_URL/bison/>"
170
+ ;;
171
+ lex*|flex*)
172
+ echo "You should only need it if you modified a '.l' file."
173
+ echo "You may want to install the Fast Lexical Analyzer package:"
174
+ echo "<$flex_URL>"
175
+ ;;
176
+ help2man*)
177
+ echo "You should only need it if you modified a dependency" \
178
+ "of a man page."
179
+ echo "You may want to install the GNU Help2man package:"
180
+ echo "<$gnu_software_URL/help2man/>"
320
181
  ;;
321
- esac
322
-
323
- exit 0
182
+ makeinfo*)
183
+ echo "You should only need it if you modified a '.texi' file, or"
184
+ echo "any other file indirectly affecting the aspect of the manual."
185
+ echo "You might want to install the Texinfo package:"
186
+ echo "<$gnu_software_URL/texinfo/>"
187
+ echo "The spurious makeinfo call might also be the consequence of"
188
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
189
+ echo "want to install GNU make:"
190
+ echo "<$gnu_software_URL/make/>"
191
+ ;;
192
+ *)
193
+ echo "You might have modified some files without having the proper"
194
+ echo "tools for further handling them. Check the 'README' file, it"
195
+ echo "often tells you about the needed prerequisites for installing"
196
+ echo "this package. You may also peek at any GNU archive site, in"
197
+ echo "case some other package contains this missing '$1' program."
198
+ ;;
199
+ esac
200
+ }
201
+
202
+ give_advice "$1" | sed -e '1s/^/WARNING: /' \
203
+ -e '2,$s/^/ /' >&2
204
+
205
+ # Propagate the correct exit status (expected to be 127 for a program
206
+ # not found, 63 for a program that failed due to version mismatch).
207
+ exit $st
324
208
 
325
209
  # Local variables:
326
210
  # eval: (add-hook 'write-file-hooks 'time-stamp)