nutcracker 0.3.0.12 → 0.4.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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)