rice 1.7.0 → 2.0.0

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.
data/config.sub CHANGED
@@ -1,10 +1,8 @@
1
1
  #! /bin/sh
2
2
  # Configuration validation subroutine script.
3
- # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
- # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
5
- # 2011, 2012, 2013 Free Software Foundation, Inc.
3
+ # Copyright 1992-2014 Free Software Foundation, Inc.
6
4
 
7
- timestamp='2012-12-29'
5
+ timestamp='2014-12-03'
8
6
 
9
7
  # This file is free software; you can redistribute it and/or modify it
10
8
  # under the terms of the GNU General Public License as published by
@@ -27,7 +25,7 @@ timestamp='2012-12-29'
27
25
  # of the GNU General Public License, version 3 ("GPLv3").
28
26
 
29
27
 
30
- # Please send patches with a ChangeLog entry to config-patches@gnu.org.
28
+ # Please send patches to <config-patches@gnu.org>.
31
29
  #
32
30
  # Configuration subroutine to validate and canonicalize a configuration type.
33
31
  # Supply the specified configuration type as an argument.
@@ -70,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
70
68
  version="\
71
69
  GNU config.sub ($timestamp)
72
70
 
73
- Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
74
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
75
- 2012, 2013 Free Software Foundation, Inc.
71
+ Copyright 1992-2014 Free Software Foundation, Inc.
76
72
 
77
73
  This is free software; see the source for copying conditions. There is NO
78
74
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -256,12 +252,12 @@ case $basic_machine in
256
252
  | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
257
253
  | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
258
254
  | am33_2.0 \
259
- | arc \
255
+ | arc | arceb \
260
256
  | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
261
257
  | avr | avr32 \
262
258
  | be32 | be64 \
263
259
  | bfin \
264
- | c4x | clipper \
260
+ | c4x | c8051 | clipper \
265
261
  | d10v | d30v | dlx | dsp16xx \
266
262
  | epiphany \
267
263
  | fido | fr30 | frv \
@@ -269,6 +265,7 @@ case $basic_machine in
269
265
  | hexagon \
270
266
  | i370 | i860 | i960 | ia64 \
271
267
  | ip2k | iq2000 \
268
+ | k1om \
272
269
  | le32 | le64 \
273
270
  | lm32 \
274
271
  | m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -286,23 +283,26 @@ case $basic_machine in
286
283
  | mips64vr5900 | mips64vr5900el \
287
284
  | mipsisa32 | mipsisa32el \
288
285
  | mipsisa32r2 | mipsisa32r2el \
286
+ | mipsisa32r6 | mipsisa32r6el \
289
287
  | mipsisa64 | mipsisa64el \
290
288
  | mipsisa64r2 | mipsisa64r2el \
289
+ | mipsisa64r6 | mipsisa64r6el \
291
290
  | mipsisa64sb1 | mipsisa64sb1el \
292
291
  | mipsisa64sr71k | mipsisa64sr71kel \
292
+ | mipsr5900 | mipsr5900el \
293
293
  | mipstx39 | mipstx39el \
294
294
  | mn10200 | mn10300 \
295
295
  | moxie \
296
296
  | mt \
297
297
  | msp430 \
298
298
  | nds32 | nds32le | nds32be \
299
- | nios | nios2 \
299
+ | nios | nios2 | nios2eb | nios2el \
300
300
  | ns16k | ns32k \
301
- | open8 \
302
- | or32 \
301
+ | open8 | or1k | or1knd | or32 \
303
302
  | pdp10 | pdp11 | pj | pjl \
304
303
  | powerpc | powerpc64 | powerpc64le | powerpcle \
305
304
  | pyramid \
305
+ | riscv32 | riscv64 \
306
306
  | rl78 | rx \
307
307
  | score \
308
308
  | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -313,6 +313,7 @@ case $basic_machine in
313
313
  | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
314
314
  | ubicom32 \
315
315
  | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
316
+ | visium \
316
317
  | we32k \
317
318
  | x86 | xc16x | xstormy16 | xtensa \
318
319
  | z8k | z80)
@@ -327,7 +328,10 @@ case $basic_machine in
327
328
  c6x)
328
329
  basic_machine=tic6x-unknown
329
330
  ;;
330
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
331
+ leon|leon[3-9])
332
+ basic_machine=sparc-$basic_machine
333
+ ;;
334
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
331
335
  basic_machine=$basic_machine-unknown
332
336
  os=-none
333
337
  ;;
@@ -369,13 +373,13 @@ case $basic_machine in
369
373
  | aarch64-* | aarch64_be-* \
370
374
  | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
371
375
  | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
372
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
376
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
373
377
  | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
374
378
  | avr-* | avr32-* \
375
379
  | be32-* | be64-* \
376
380
  | bfin-* | bs2000-* \
377
381
  | c[123]* | c30-* | [cjt]90-* | c4x-* \
378
- | clipper-* | craynv-* | cydra-* \
382
+ | c8051-* | clipper-* | craynv-* | cydra-* \
379
383
  | d10v-* | d30v-* | dlx-* \
380
384
  | elxsi-* \
381
385
  | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -384,6 +388,7 @@ case $basic_machine in
384
388
  | hexagon-* \
385
389
  | i*86-* | i860-* | i960-* | ia64-* \
386
390
  | ip2k-* | iq2000-* \
391
+ | k1om-* \
387
392
  | le32-* | le64-* \
388
393
  | lm32-* \
389
394
  | m32c-* | m32r-* | m32rle-* \
@@ -403,18 +408,22 @@ case $basic_machine in
403
408
  | mips64vr5900-* | mips64vr5900el-* \
404
409
  | mipsisa32-* | mipsisa32el-* \
405
410
  | mipsisa32r2-* | mipsisa32r2el-* \
411
+ | mipsisa32r6-* | mipsisa32r6el-* \
406
412
  | mipsisa64-* | mipsisa64el-* \
407
413
  | mipsisa64r2-* | mipsisa64r2el-* \
414
+ | mipsisa64r6-* | mipsisa64r6el-* \
408
415
  | mipsisa64sb1-* | mipsisa64sb1el-* \
409
416
  | mipsisa64sr71k-* | mipsisa64sr71kel-* \
417
+ | mipsr5900-* | mipsr5900el-* \
410
418
  | mipstx39-* | mipstx39el-* \
411
419
  | mmix-* \
412
420
  | mt-* \
413
421
  | msp430-* \
414
422
  | nds32-* | nds32le-* | nds32be-* \
415
- | nios-* | nios2-* \
423
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
416
424
  | none-* | np1-* | ns16k-* | ns32k-* \
417
425
  | open8-* \
426
+ | or1k*-* \
418
427
  | orion-* \
419
428
  | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
420
429
  | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -432,6 +441,7 @@ case $basic_machine in
432
441
  | ubicom32-* \
433
442
  | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
434
443
  | vax-* \
444
+ | visium-* \
435
445
  | we32k-* \
436
446
  | x86-* | x86_64-* | xc16x-* | xps100-* \
437
447
  | xstormy16-* | xtensa*-* \
@@ -769,6 +779,9 @@ case $basic_machine in
769
779
  basic_machine=m68k-isi
770
780
  os=-sysv
771
781
  ;;
782
+ leon-*|leon[3-9]-*)
783
+ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
784
+ ;;
772
785
  m68knommu)
773
786
  basic_machine=m68k-unknown
774
787
  os=-linux
@@ -796,7 +809,7 @@ case $basic_machine in
796
809
  os=-mingw64
797
810
  ;;
798
811
  mingw32)
799
- basic_machine=i386-pc
812
+ basic_machine=i686-pc
800
813
  os=-mingw32
801
814
  ;;
802
815
  mingw32ce)
@@ -824,6 +837,10 @@ case $basic_machine in
824
837
  basic_machine=powerpc-unknown
825
838
  os=-morphos
826
839
  ;;
840
+ moxiebox)
841
+ basic_machine=moxie-unknown
842
+ os=-moxiebox
843
+ ;;
827
844
  msdos)
828
845
  basic_machine=i386-pc
829
846
  os=-msdos
@@ -832,7 +849,7 @@ case $basic_machine in
832
849
  basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
833
850
  ;;
834
851
  msys)
835
- basic_machine=i386-pc
852
+ basic_machine=i686-pc
836
853
  os=-msys
837
854
  ;;
838
855
  mvs)
@@ -1354,7 +1371,7 @@ case $os in
1354
1371
  -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1355
1372
  | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1356
1373
  | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1357
- | -sym* | -kopensolaris* \
1374
+ | -sym* | -kopensolaris* | -plan9* \
1358
1375
  | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1359
1376
  | -aos* | -aros* \
1360
1377
  | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1369,14 +1386,14 @@ case $os in
1369
1386
  | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1370
1387
  | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1371
1388
  | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1372
- | -uxpv* | -beos* | -mpeix* | -udk* \
1389
+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1373
1390
  | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1374
1391
  | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1375
1392
  | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1376
1393
  | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1377
1394
  | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1378
1395
  | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1379
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1396
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
1380
1397
  # Remember, each alternative MUST END IN *, to match a version number.
1381
1398
  ;;
1382
1399
  -qnx*)
@@ -1500,9 +1517,6 @@ case $os in
1500
1517
  -aros*)
1501
1518
  os=-aros
1502
1519
  ;;
1503
- -kaos*)
1504
- os=-kaos
1505
- ;;
1506
1520
  -zvmoe)
1507
1521
  os=-zvmoe
1508
1522
  ;;
@@ -1551,6 +1565,9 @@ case $basic_machine in
1551
1565
  c4x-* | tic4x-*)
1552
1566
  os=-coff
1553
1567
  ;;
1568
+ c8051-*)
1569
+ os=-elf
1570
+ ;;
1554
1571
  hexagon-*)
1555
1572
  os=-elf
1556
1573
  ;;
data/configure CHANGED
@@ -1922,7 +1922,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
1922
1922
 
1923
1923
 
1924
1924
 
1925
- am__api_version='1.14'
1925
+ am__api_version='1.15'
1926
1926
 
1927
1927
  ac_aux_dir=
1928
1928
  for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
@@ -2123,8 +2123,8 @@ test "$program_suffix" != NONE &&
2123
2123
  ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
2124
2124
  program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
2125
2125
 
2126
- # expand $ac_aux_dir to an absolute path
2127
- am_aux_dir=`cd $ac_aux_dir && pwd`
2126
+ # Expand $ac_aux_dir to an absolute path.
2127
+ am_aux_dir=`cd "$ac_aux_dir" && pwd`
2128
2128
 
2129
2129
  if test x"${MISSING+set}" != xset; then
2130
2130
  case \"$am_aux_dir\" in
@@ -2143,7 +2143,7 @@ else
2143
2143
  $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
2144
2144
  fi
2145
2145
 
2146
- if test x"${install_sh}" != xset; then
2146
+ if test x"${install_sh+set}" != xset; then
2147
2147
  case \"$am_aux_dir\" in
2148
2148
  *\ * | *\ *)
2149
2149
  install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -2471,8 +2471,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
2471
2471
  # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
2472
2472
  mkdir_p='$(MKDIR_P)'
2473
2473
 
2474
- # We need awk for the "check" target. The system "awk" is bad on
2475
- # some platforms.
2474
+ # We need awk for the "check" target (and possibly the TAP driver). The
2475
+ # system "awk" is bad on some platforms.
2476
2476
  # Always define AMTAR for backward compatibility. Yes, it's still used
2477
2477
  # in the wild :-( We should find a proper way to deprecate it ...
2478
2478
  AMTAR='$${TAR-tar}'
@@ -2530,6 +2530,7 @@ END
2530
2530
  fi
2531
2531
  fi
2532
2532
 
2533
+
2533
2534
  ac_config_headers="$ac_config_headers rice/config.hpp"
2534
2535
 
2535
2536
 
@@ -3717,14 +3718,9 @@ RUBY_CONFIG_LIBRUBYARG_STATIC=`
3717
3718
  RUBY_CONFIG_CCDLFLAGS=`
3718
3719
  $RUBY -rrbconfig -e "puts(RbConfig::CONFIG['CCDLFLAGS'] || '')"`
3719
3720
 
3720
- if test "x${RUBY_CONFIG_RUBYHDRDIR}x" != "xx"; then
3721
- # 1.9
3722
- RUBY_CPPFLAGS="-I${RUBY_CONFIG_RUBYHDRDIR}"
3723
- RUBY_CPPFLAGS="${RUBY_CPPFLAGS} -I${RUBY_CONFIG_RUBYHDRDIR}/${RUBY_CONFIG_ARCH}"
3724
- else
3725
- # 1.8
3726
- RUBY_CPPFLAGS="-I${RUBY_CONFIG_ARCHDIR}"
3727
- fi
3721
+ RUBY_CPPFLAGS="-I${RUBY_CONFIG_RUBYHDRDIR}"
3722
+ RUBY_CPPFLAGS="${RUBY_CPPFLAGS} -I${RUBY_CONFIG_RUBYHDRDIR}/${RUBY_CONFIG_ARCH}"
3723
+
3728
3724
  if test "x${RUBY_CONFIG_RUBYARCHHDRDIR}x" != "xx"; then
3729
3725
  RUBY_CPPFLAGS="${RUBY_CPPFLAGS} -I${RUBY_CONFIG_RUBYARCHHDRDIR}"
3730
3726
  fi
data/depcomp CHANGED
@@ -1,9 +1,9 @@
1
1
  #! /bin/sh
2
2
  # depcomp - compile a program generating dependencies as side-effects
3
3
 
4
- scriptversion=2012-10-18.11; # UTC
4
+ scriptversion=2013-05-30.07; # UTC
5
5
 
6
- # Copyright (C) 1999-2013 Free Software Foundation, Inc.
6
+ # Copyright (C) 1999-2014 Free Software Foundation, Inc.
7
7
 
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of the GNU General Public License as published by
@@ -552,6 +552,7 @@ $ {
552
552
  G
553
553
  p
554
554
  }' >> "$depfile"
555
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
555
556
  rm -f "$tmpdepfile"
556
557
  ;;
557
558
 
data/extconf.rb CHANGED
@@ -1,15 +1,11 @@
1
- # To allow Rice to be installed on non-system installs of Ruby (say the user has
2
- # 1.8.7 and 1.9.0 installed), the rice gem uses the extconf version of deployment
1
+ # To allow Rice to be installed on non-system installs of Ruby (rbenv or rvm),
2
+ # the rice gem uses the extconf version of deployment
3
3
  # rather than configure. This file will get the appropriate values from CONFIG
4
4
  # for the Ruby that this library is being installed into and generate
5
5
  # the proper arguments to ./configure.
6
6
  #
7
7
  # With this, installing on any of the Ruby versions installed on a machine is as
8
8
  # easy as /path/to/the/gem install rice.
9
- #
10
- # This isn't actually an extconf.rb file, all it needs to do is create a Makefile
11
- # for gem to continue 'make'-ing. It needs to be named 'extconf.rb' to fit Rubygem's
12
- # expectations
13
9
 
14
10
  $:.unshift File.expand_path(File.dirname(__FILE__))
15
11
 
@@ -19,32 +15,54 @@ require 'ruby/lib/version.rb'
19
15
  prefix_dir = File.join(File.dirname(File.expand_path(__FILE__)), "ruby", "lib")
20
16
  with_ruby = File.join(RbConfig::CONFIG["bindir"], RbConfig::CONFIG["RUBY_INSTALL_NAME"])
21
17
 
18
+ other_opts = ""
19
+ env = ""
20
+
22
21
  if RbConfig::CONFIG["ENABLE_SHARED"] == "no"
23
- raise <<EOC
24
- Unfortunately Rice does not work against a Ruby without any shared libraries.
22
+ abort <<EOC.chomp
23
+ Unfortunately Rice does not build against a staticly linked Ruby.
25
24
  You'll need to rebuild Ruby with --enable-shared to use this library.
26
25
 
27
26
  If you're on rvm: rvm reinstall [version] -- --enable-shared
28
27
  If you're on rbenv: CONFIGURE_OPTS="--enable-shared" rbenv install [version]
29
- If this is a host environment like Heroku you'll need to contact their support.
28
+
29
+ If you are using Heroku, they use a own custom configured, staticly linked Ruby
30
+ for their stack and it unfortunately does not work with Rice. You will need to use
31
+ a custom Ruby build pack that builds and uses a non-static version of Ruby.
30
32
  EOC
31
33
  end
32
34
 
33
- other_opts = ""
34
- env = ""
35
+ if RUBY_PLATFORM =~ /darwin(\d+)/
36
+ # TY Nokogiri!
37
+ if !File.exist?('/usr/include/iconv.h')
38
+ abort <<EOM.chomp
39
+ -----
40
+ The file "/usr/include/iconv.h" is missing in your build environment,
41
+ which means you haven't installed Xcode Command Line Tools properly.
42
+ To install Command Line Tools, try running `xcode-select --install` on
43
+ terminal and follow the instructions. If it fails, open Xcode.app,
44
+ select from the menu "Xcode" - "Open Developer Tool" - "More Developer
45
+ Tools" to open the developer site, download the installer for your OS
46
+ version and run it.
47
+ -----
48
+ EOM
49
+ end
35
50
 
36
- if RUBY_PLATFORM =~ /darwin1[0-2]/
37
- arch = RbConfig::CONFIG["arch"].split("-")[0]
51
+ darwin_version = $1.to_i
38
52
 
39
- if arch == "universal"
40
- arch = `uname -m`.strip
41
- end
53
+ if darwin_version >= 10
54
+ arch = RbConfig::CONFIG["arch"].split("-")[0]
42
55
 
43
- other_opts = "--disable-dependency-tracking"
44
- env = "ARCHFLAGS='-arch #{arch}' CPPFLAGS='-arch #{arch}'"
45
- elsif RUBY_PLATFORM =~ /darwin9/
46
- arch = `uname -p`.chomp
47
- env = "ARCHFLAGS='-arch #{arch}' CPPFLAGS='-arch #{arch}'"
56
+ if arch == "universal"
57
+ arch = `uname -m`.strip
58
+ end
59
+
60
+ other_opts = "--disable-dependency-tracking"
61
+ env = "ARCHFLAGS='-arch #{arch}' CPPFLAGS='-arch #{arch}'"
62
+ else
63
+ arch = `uname -p`.chomp
64
+ env = "ARCHFLAGS='-arch #{arch}' CPPFLAGS='-arch #{arch}'"
65
+ end
48
66
  end
49
67
 
50
68
  system "sh bootstrap"
data/install-sh CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
  # install - install a program, script, or datafile
3
3
 
4
- scriptversion=2011-11-20.07; # UTC
4
+ scriptversion=2013-12-25.23; # 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
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
41
41
  # This script is compatible with the BSD install script, but was written
42
42
  # from scratch.
43
43
 
44
+ tab=' '
44
45
  nl='
45
46
  '
46
- IFS=" "" $nl"
47
+ IFS=" $tab$nl"
47
48
 
48
- # set DOITPROG to echo to test this script
49
+ # Set DOITPROG to "echo" to test this script.
49
50
 
50
- # Don't use :- since 4.3BSD and earlier shells don't like it.
51
51
  doit=${DOITPROG-}
52
- if test -z "$doit"; then
53
- doit_exec=exec
54
- else
55
- doit_exec=$doit
56
- fi
52
+ doit_exec=${doit:-exec}
57
53
 
58
54
  # Put in absolute file names if you don't have them in your path;
59
55
  # or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
68
64
  rmprog=${RMPROG-rm}
69
65
  stripprog=${STRIPPROG-strip}
70
66
 
71
- posix_glob='?'
72
- initialize_posix_glob='
73
- test "$posix_glob" != "?" || {
74
- if (set -f) 2>/dev/null; then
75
- posix_glob=
76
- else
77
- posix_glob=:
78
- fi
79
- }
80
- '
81
-
82
67
  posix_mkdir=
83
68
 
84
69
  # Desired mode of installed file.
@@ -97,7 +82,7 @@ dir_arg=
97
82
  dst_arg=
98
83
 
99
84
  copy_on_change=false
100
- no_target_directory=
85
+ is_target_a_directory=possibly
101
86
 
102
87
  usage="\
103
88
  Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,46 +122,57 @@ while test $# -ne 0; do
137
122
  -d) dir_arg=true;;
138
123
 
139
124
  -g) chgrpcmd="$chgrpprog $2"
140
- shift;;
125
+ shift;;
141
126
 
142
127
  --help) echo "$usage"; exit $?;;
143
128
 
144
129
  -m) mode=$2
145
- case $mode in
146
- *' '* | *' '* | *'
147
- '* | *'*'* | *'?'* | *'['*)
148
- echo "$0: invalid mode: $mode" >&2
149
- exit 1;;
150
- esac
151
- shift;;
130
+ case $mode in
131
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
132
+ echo "$0: invalid mode: $mode" >&2
133
+ exit 1;;
134
+ esac
135
+ shift;;
152
136
 
153
137
  -o) chowncmd="$chownprog $2"
154
- shift;;
138
+ shift;;
155
139
 
156
140
  -s) stripcmd=$stripprog;;
157
141
 
158
- -t) dst_arg=$2
159
- # Protect names problematic for 'test' and other utilities.
160
- case $dst_arg in
161
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
162
- esac
163
- shift;;
142
+ -t)
143
+ is_target_a_directory=always
144
+ dst_arg=$2
145
+ # Protect names problematic for 'test' and other utilities.
146
+ case $dst_arg in
147
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
148
+ esac
149
+ shift;;
164
150
 
165
- -T) no_target_directory=true;;
151
+ -T) is_target_a_directory=never;;
166
152
 
167
153
  --version) echo "$0 $scriptversion"; exit $?;;
168
154
 
169
- --) shift
170
- break;;
155
+ --) shift
156
+ break;;
171
157
 
172
- -*) echo "$0: invalid option: $1" >&2
173
- exit 1;;
158
+ -*) echo "$0: invalid option: $1" >&2
159
+ exit 1;;
174
160
 
175
161
  *) break;;
176
162
  esac
177
163
  shift
178
164
  done
179
165
 
166
+ # We allow the use of options -d and -T together, by making -d
167
+ # take the precedence; this is for compatibility with GNU install.
168
+
169
+ if test -n "$dir_arg"; then
170
+ if test -n "$dst_arg"; then
171
+ echo "$0: target directory not allowed when installing a directory." >&2
172
+ exit 1
173
+ fi
174
+ fi
175
+
180
176
  if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
181
177
  # When -d is used, all remaining arguments are directories to create.
182
178
  # When -t is used, the destination is already specified.
@@ -207,6 +203,15 @@ if test $# -eq 0; then
207
203
  exit 0
208
204
  fi
209
205
 
206
+ if test -z "$dir_arg"; then
207
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
208
+ if test ! -d "$dst_arg"; then
209
+ echo "$0: $dst_arg: Is not a directory." >&2
210
+ exit 1
211
+ fi
212
+ fi
213
+ fi
214
+
210
215
  if test -z "$dir_arg"; then
211
216
  do_exit='(exit $ret); exit $ret'
212
217
  trap "ret=129; $do_exit" 1
@@ -223,16 +228,16 @@ if test -z "$dir_arg"; then
223
228
 
224
229
  *[0-7])
225
230
  if test -z "$stripcmd"; then
226
- u_plus_rw=
231
+ u_plus_rw=
227
232
  else
228
- u_plus_rw='% 200'
233
+ u_plus_rw='% 200'
229
234
  fi
230
235
  cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
231
236
  *)
232
237
  if test -z "$stripcmd"; then
233
- u_plus_rw=
238
+ u_plus_rw=
234
239
  else
235
- u_plus_rw=,u+rw
240
+ u_plus_rw=,u+rw
236
241
  fi
237
242
  cp_umask=$mode$u_plus_rw;;
238
243
  esac
@@ -269,41 +274,15 @@ do
269
274
  # If destination is a directory, append the input filename; won't work
270
275
  # if double slashes aren't ignored.
271
276
  if test -d "$dst"; then
272
- if test -n "$no_target_directory"; then
273
- echo "$0: $dst_arg: Is a directory" >&2
274
- exit 1
277
+ if test "$is_target_a_directory" = never; then
278
+ echo "$0: $dst_arg: Is a directory" >&2
279
+ exit 1
275
280
  fi
276
281
  dstdir=$dst
277
282
  dst=$dstdir/`basename "$src"`
278
283
  dstdir_status=0
279
284
  else
280
- # Prefer dirname, but fall back on a substitute if dirname fails.
281
- dstdir=`
282
- (dirname "$dst") 2>/dev/null ||
283
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
284
- X"$dst" : 'X\(//\)[^/]' \| \
285
- X"$dst" : 'X\(//\)$' \| \
286
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
287
- echo X"$dst" |
288
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
289
- s//\1/
290
- q
291
- }
292
- /^X\(\/\/\)[^/].*/{
293
- s//\1/
294
- q
295
- }
296
- /^X\(\/\/\)$/{
297
- s//\1/
298
- q
299
- }
300
- /^X\(\/\).*/{
301
- s//\1/
302
- q
303
- }
304
- s/.*/./; q'
305
- `
306
-
285
+ dstdir=`dirname "$dst"`
307
286
  test -d "$dstdir"
308
287
  dstdir_status=$?
309
288
  fi
@@ -314,74 +293,74 @@ do
314
293
  if test $dstdir_status != 0; then
315
294
  case $posix_mkdir in
316
295
  '')
317
- # Create intermediate dirs using mode 755 as modified by the umask.
318
- # This is like FreeBSD 'install' as of 1997-10-28.
319
- umask=`umask`
320
- case $stripcmd.$umask in
321
- # Optimize common cases.
322
- *[2367][2367]) mkdir_umask=$umask;;
323
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
324
-
325
- *[0-7])
326
- mkdir_umask=`expr $umask + 22 \
327
- - $umask % 100 % 40 + $umask % 20 \
328
- - $umask % 10 % 4 + $umask % 2
329
- `;;
330
- *) mkdir_umask=$umask,go-w;;
331
- esac
332
-
333
- # With -d, create the new directory with the user-specified mode.
334
- # Otherwise, rely on $mkdir_umask.
335
- if test -n "$dir_arg"; then
336
- mkdir_mode=-m$mode
337
- else
338
- mkdir_mode=
339
- fi
340
-
341
- posix_mkdir=false
342
- case $umask in
343
- *[123567][0-7][0-7])
344
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
345
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
346
- ;;
347
- *)
348
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
349
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
350
-
351
- if (umask $mkdir_umask &&
352
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
353
- then
354
- if test -z "$dir_arg" || {
355
- # Check for POSIX incompatibilities with -m.
356
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
357
- # other-writable bit of parent directory when it shouldn't.
358
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
359
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
360
- case $ls_ld_tmpdir in
361
- d????-?r-*) different_mode=700;;
362
- d????-?--*) different_mode=755;;
363
- *) false;;
364
- esac &&
365
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
366
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
367
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
368
- }
369
- }
370
- then posix_mkdir=:
371
- fi
372
- rmdir "$tmpdir/d" "$tmpdir"
373
- else
374
- # Remove any dirs left behind by ancient mkdir implementations.
375
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
376
- fi
377
- trap '' 0;;
378
- esac;;
296
+ # Create intermediate dirs using mode 755 as modified by the umask.
297
+ # This is like FreeBSD 'install' as of 1997-10-28.
298
+ umask=`umask`
299
+ case $stripcmd.$umask in
300
+ # Optimize common cases.
301
+ *[2367][2367]) mkdir_umask=$umask;;
302
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
303
+
304
+ *[0-7])
305
+ mkdir_umask=`expr $umask + 22 \
306
+ - $umask % 100 % 40 + $umask % 20 \
307
+ - $umask % 10 % 4 + $umask % 2
308
+ `;;
309
+ *) mkdir_umask=$umask,go-w;;
310
+ esac
311
+
312
+ # With -d, create the new directory with the user-specified mode.
313
+ # Otherwise, rely on $mkdir_umask.
314
+ if test -n "$dir_arg"; then
315
+ mkdir_mode=-m$mode
316
+ else
317
+ mkdir_mode=
318
+ fi
319
+
320
+ posix_mkdir=false
321
+ case $umask in
322
+ *[123567][0-7][0-7])
323
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
324
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
325
+ ;;
326
+ *)
327
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
328
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
329
+
330
+ if (umask $mkdir_umask &&
331
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
332
+ then
333
+ if test -z "$dir_arg" || {
334
+ # Check for POSIX incompatibilities with -m.
335
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
336
+ # other-writable bit of parent directory when it shouldn't.
337
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
338
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
339
+ case $ls_ld_tmpdir in
340
+ d????-?r-*) different_mode=700;;
341
+ d????-?--*) different_mode=755;;
342
+ *) false;;
343
+ esac &&
344
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
345
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
346
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
347
+ }
348
+ }
349
+ then posix_mkdir=:
350
+ fi
351
+ rmdir "$tmpdir/d" "$tmpdir"
352
+ else
353
+ # Remove any dirs left behind by ancient mkdir implementations.
354
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
355
+ fi
356
+ trap '' 0;;
357
+ esac;;
379
358
  esac
380
359
 
381
360
  if
382
361
  $posix_mkdir && (
383
- umask $mkdir_umask &&
384
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
362
+ umask $mkdir_umask &&
363
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
385
364
  )
386
365
  then :
387
366
  else
@@ -391,53 +370,51 @@ do
391
370
  # directory the slow way, step by step, checking for races as we go.
392
371
 
393
372
  case $dstdir in
394
- /*) prefix='/';;
395
- [-=\(\)!]*) prefix='./';;
396
- *) prefix='';;
373
+ /*) prefix='/';;
374
+ [-=\(\)!]*) prefix='./';;
375
+ *) prefix='';;
397
376
  esac
398
377
 
399
- eval "$initialize_posix_glob"
400
-
401
378
  oIFS=$IFS
402
379
  IFS=/
403
- $posix_glob set -f
380
+ set -f
404
381
  set fnord $dstdir
405
382
  shift
406
- $posix_glob set +f
383
+ set +f
407
384
  IFS=$oIFS
408
385
 
409
386
  prefixes=
410
387
 
411
388
  for d
412
389
  do
413
- test X"$d" = X && continue
414
-
415
- prefix=$prefix$d
416
- if test -d "$prefix"; then
417
- prefixes=
418
- else
419
- if $posix_mkdir; then
420
- (umask=$mkdir_umask &&
421
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
422
- # Don't fail if two instances are running concurrently.
423
- test -d "$prefix" || exit 1
424
- else
425
- case $prefix in
426
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
427
- *) qprefix=$prefix;;
428
- esac
429
- prefixes="$prefixes '$qprefix'"
430
- fi
431
- fi
432
- prefix=$prefix/
390
+ test X"$d" = X && continue
391
+
392
+ prefix=$prefix$d
393
+ if test -d "$prefix"; then
394
+ prefixes=
395
+ else
396
+ if $posix_mkdir; then
397
+ (umask=$mkdir_umask &&
398
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
399
+ # Don't fail if two instances are running concurrently.
400
+ test -d "$prefix" || exit 1
401
+ else
402
+ case $prefix in
403
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
404
+ *) qprefix=$prefix;;
405
+ esac
406
+ prefixes="$prefixes '$qprefix'"
407
+ fi
408
+ fi
409
+ prefix=$prefix/
433
410
  done
434
411
 
435
412
  if test -n "$prefixes"; then
436
- # Don't fail if two instances are running concurrently.
437
- (umask $mkdir_umask &&
438
- eval "\$doit_exec \$mkdirprog $prefixes") ||
439
- test -d "$dstdir" || exit 1
440
- obsolete_mkdir_used=true
413
+ # Don't fail if two instances are running concurrently.
414
+ (umask $mkdir_umask &&
415
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
416
+ test -d "$dstdir" || exit 1
417
+ obsolete_mkdir_used=true
441
418
  fi
442
419
  fi
443
420
  fi
@@ -472,15 +449,12 @@ do
472
449
 
473
450
  # If -C, don't bother to copy if it wouldn't change the file.
474
451
  if $copy_on_change &&
475
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
476
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
477
-
478
- eval "$initialize_posix_glob" &&
479
- $posix_glob set -f &&
452
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
453
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
454
+ set -f &&
480
455
  set X $old && old=:$2:$4:$5:$6 &&
481
456
  set X $new && new=:$2:$4:$5:$6 &&
482
- $posix_glob set +f &&
483
-
457
+ set +f &&
484
458
  test "$old" = "$new" &&
485
459
  $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
486
460
  then
@@ -493,24 +467,24 @@ do
493
467
  # to itself, or perhaps because mv is so ancient that it does not
494
468
  # support -f.
495
469
  {
496
- # Now remove or move aside any old file at destination location.
497
- # We try this two ways since rm can't unlink itself on some
498
- # systems and the destination file might be busy for other
499
- # reasons. In this case, the final cleanup might fail but the new
500
- # file should still install successfully.
501
- {
502
- test ! -f "$dst" ||
503
- $doit $rmcmd -f "$dst" 2>/dev/null ||
504
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
505
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
506
- } ||
507
- { echo "$0: cannot unlink or rename $dst" >&2
508
- (exit 1); exit 1
509
- }
510
- } &&
511
-
512
- # Now rename the file to the real destination.
513
- $doit $mvcmd "$dsttmp" "$dst"
470
+ # Now remove or move aside any old file at destination location.
471
+ # We try this two ways since rm can't unlink itself on some
472
+ # systems and the destination file might be busy for other
473
+ # reasons. In this case, the final cleanup might fail but the new
474
+ # file should still install successfully.
475
+ {
476
+ test ! -f "$dst" ||
477
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
478
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
479
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
480
+ } ||
481
+ { echo "$0: cannot unlink or rename $dst" >&2
482
+ (exit 1); exit 1
483
+ }
484
+ } &&
485
+
486
+ # Now rename the file to the real destination.
487
+ $doit $mvcmd "$dsttmp" "$dst"
514
488
  }
515
489
  fi || exit 1
516
490