Blame view

Giac_maj/giac-1.4.9/config/mkinstalldirs 3.34 KB
6663b6c9   adorian   projet complet av...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
  #! /bin/sh
  # mkinstalldirs --- make directory hierarchy
  
  scriptversion=2004-02-15.20
  
  # Original author: Noah Friedman <friedman@prep.ai.mit.edu>
  # Created: 1993-05-16
  # Public domain.
  #
  # This file is maintained in Automake, please report
  # bugs to <bug-automake@gnu.org> or send patches to
  # <automake-patches@gnu.org>.
  
  errstatus=0
  dirmode=""
  
  usage="\
  Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
  
  Create each directory DIR (with mode MODE, if specified), including all
  leading file name components.
  
  Report bugs to <bug-automake@gnu.org>."
  
  # process command line arguments
  while test $# -gt 0 ; do
    case $1 in
      -h | --help | --h*)         # -h for help
        echo "$usage"
        exit 0
        ;;
      -m)                         # -m PERM arg
        shift
        test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
        dirmode=$1
        shift
        ;;
      --version)
        echo "$0 $scriptversion"
        exit 0
        ;;
      --)                         # stop option processing
        shift
        break
        ;;
      -*)                         # unknown option
        echo "$usage" 1>&2
        exit 1
        ;;
      *)                          # first non-opt arg
        break
        ;;
    esac
  done
  
  for file
  do
    if test -d "$file"; then
      shift
    else
      break
    fi
  done
  
  case $# in
    0) exit 0 ;;
  esac
  
  # Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
  # mkdir -p a/c at the same time, both will detect that a is missing,
  # one will create a, then the other will try to create a and die with
  # a "File exists" error.  This is a problem when calling mkinstalldirs
  # from a parallel make.  We use --version in the probe to restrict
  # ourselves to GNU mkdir, which is thread-safe.
  case $dirmode in
    '')
      if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
        echo "mkdir -p -- $*"
        exec mkdir -p -- "$@"
      else
        # On NextStep and OpenStep, the `mkdir' command does not
        # recognize any option.  It will interpret all options as
        # directories to create, and then abort because `.' already
        # exists.
        test -d ./-p && rmdir ./-p
        test -d ./--version && rmdir ./--version
      fi
      ;;
    *)
      if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
         test ! -d ./--version; then
        echo "mkdir -m $dirmode -p -- $*"
        exec mkdir -m "$dirmode" -p -- "$@"
      else
        # Clean up after NextStep and OpenStep mkdir.
        for d in ./-m ./-p ./--version "./$dirmode";
        do
          test -d $d && rmdir $d
        done
      fi
      ;;
  esac
  
  for file
  do
    set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
    shift
  
    pathcomp=
    for d
    do
      pathcomp="$pathcomp$d"
      case $pathcomp in
        -*) pathcomp=./$pathcomp ;;
      esac
  
      if test ! -d "$pathcomp"; then
        echo "mkdir $pathcomp"
  
        mkdir "$pathcomp" || lasterr=$?
  
        if test ! -d "$pathcomp"; then
  	errstatus=$lasterr
        else
  	if test ! -z "$dirmode"; then
  	  echo "chmod $dirmode $pathcomp"
  	  lasterr=""
  	  chmod "$dirmode" "$pathcomp" || lasterr=$?
  
  	  if test ! -z "$lasterr"; then
  	    errstatus=$lasterr
  	  fi
  	fi
        fi
      fi
  
      pathcomp="$pathcomp/"
    done
  done
  
  exit $errstatus
  
  # Local Variables:
  # mode: shell-script
  # sh-indentation: 2
  # eval: (add-hook 'write-file-hooks 'time-stamp)
  # time-stamp-start: "scriptversion="
  # time-stamp-format: "%:y-%02m-%02d.%02H"
  # time-stamp-end: "$"
  # End: