rice 1.7.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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