File: bootstrap

package info (click to toggle)
virt-p2v 1.42.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,152 kB
  • sloc: ansic: 36,949; sh: 6,691; perl: 1,278; makefile: 389
file content (124 lines) | stat: -rwxr-xr-x 3,208 bytes parent folder | download
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
#!/bin/sh

usage() {
  echo >&2 "\
Usage: $0 [OPTION]...
Bootstrap this package from the checked-out sources.

Options:
 --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
                          sources reside.  Use this if you already
                          have gnulib sources on your machine, and
                          do not want to waste your bandwidth downloading
                          them again.  Defaults to \$GNULIB_SRCDIR
"
}

for option
do
  case $option in
  --help)
    usage
    exit;;
  --gnulib-srcdir=*)
    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
  *)
    echo >&2 "$0: $option: unknown option"
    exit 1;;
  esac
done

cleanup_gnulib() {
  status=$?
  rm -fr "$gnulib_path"
  exit $status
}

git_modules_config () {
  test -f .gitmodules && git config --file .gitmodules "$@"
}

gnulib_path=$(git_modules_config submodule.gnulib.path)
test -z "$gnulib_path" && gnulib_path=gnulib

# Get gnulib files.  Populate $GNULIB_SRCDIR, possibly updating a
# submodule, for use in the rest of the script.

case ${GNULIB_SRCDIR--} in
-)
  if git_modules_config submodule.gnulib.url >/dev/null; then
    echo "$0: getting gnulib files..."
    git submodule init -- "$gnulib_path" || exit $?
    git submodule update -- "$gnulib_path" || exit $?

  elif [ ! -d "$gnulib_path" ]; then
    echo "$0: getting gnulib files..."

    trap cleanup_gnulib 1 2 13 15

    shallow=
    git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
    git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
      cleanup_gnulib

    trap - 1 2 13 15
  fi
  GNULIB_SRCDIR=$gnulib_path
  ;;
*)
  # Use GNULIB_SRCDIR directly or as a reference.
  if test -d "$GNULIB_SRCDIR"/.git && \
        git_modules_config submodule.gnulib.url >/dev/null; then
    echo "$0: getting gnulib files..."
    if git submodule -h|grep -- --reference > /dev/null; then
      # Prefer the one-liner available in git 1.6.4 or newer.
      git submodule update --init --reference "$GNULIB_SRCDIR" \
        "$gnulib_path" || exit $?
    else
      # This fallback allows at least git 1.5.5.
      if test -f "$gnulib_path"/gnulib-tool; then
        # Since file already exists, assume submodule init already complete.
        git submodule update -- "$gnulib_path" || exit $?
      else
        # Older git can't clone into an empty directory.
        rmdir "$gnulib_path" 2>/dev/null
        git clone --reference "$GNULIB_SRCDIR" \
          "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
          && git submodule init -- "$gnulib_path" \
          && git submodule update -- "$gnulib_path" \
          || exit $?
      fi
    fi
    GNULIB_SRCDIR=$gnulib_path
  fi
  ;;
esac

gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
<$gnulib_tool || exit

modules='
c-ctype
error
getprogname
ignore-value
manywarnings
ptsname_r
sys_types
xstrtoll
'

# If any tests fail, avoid including them by adding them to
# this list.
avoid=""

$gnulib_tool			\
  $avoid			\
  --with-tests			\
  --m4-base=m4			\
  --source-base=gnulib/lib	\
  --tests-base=gnulib/tests	\
  --import $modules

# Disable autopoint, since it was already done above.
AUTOPOINT=true autoreconf --verbose --install