bootstrap 2.3 KB
Newer Older
1
#!/bin/sh
J
Jim Meyering 已提交
2
# Run this before autogen.sh, to pull in all of the gnulib-related bits.
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

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.

If the file bootstrap.conf exists in the current working directory, its
contents are read as shell variables to configure the bootstrap.

Running without arguments will suffice in most cases.
"
}

for option
do
  case $option in
  --help)
    usage
    exit;;
  --gnulib-srcdir=*)
    GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
  *)
    echo >&2 "$0: $option: unknown option"
    exit 1;;
  esac
done

J
Jim Meyering 已提交
37
# Get gnulib files.
38 39 40

case ${GNULIB_SRCDIR--} in
-)
J
Jim Meyering 已提交
41 42 43 44 45 46 47 48 49 50 51 52 53
  echo "$0: getting gnulib files..."
  git submodule init || exit $?
  git submodule update || exit $?
  GNULIB_SRCDIR=.gnulib
  ;;
*)
  # Redirect the gnulib submodule to the directory on the command line
  # if possible.
  if test -d "$GNULIB_SRCDIR"/.git && \
	git config --file .gitmodules submodule.gnulib.url >/dev/null; then
    git submodule init
    GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd`
    git config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
54
    echo "$0: getting gnulib files..."
J
Jim Meyering 已提交
55 56 57 58 59
    git submodule update || exit $?
    GNULIB_SRCDIR=.gnulib
  else
    echo >&2 "$0: invalid gnulib srcdir: $GNULIB_SRCDIR"
    exit 1
60
  fi
J
Jim Meyering 已提交
61
  ;;
62 63 64 65 66
esac

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

67 68
modules='
c-ctype
J
Jim Meyering 已提交
69 70
close
connect
71
getaddrinfo
J
Jim Meyering 已提交
72
gethostname
73 74
getpass
gettext
75
gitlog-to-changelog
76
gnumakefile
77
inet_pton
78
ioctl
79
maintainer-makefile
80
mkstemp
81
mktempd
J
Jim Meyering 已提交
82
perror
83 84 85
physmem
poll
posix-shell
J
Jim Meyering 已提交
86
recv
87
random_r
J
Jim Meyering 已提交
88 89 90
send
setsockopt
socket
J
Jim Meyering 已提交
91
stpcpy
92
strndup
J
Jim Meyering 已提交
93
strerror
94 95
strsep
sys_stat
96
time_r
97 98
useless-if-before-free
vasprintf
99
verify
100 101 102
vc-list-files
'

103
# Tell gnulib to:
104
#   require LGPLv2+
105 106 107 108
#   put *.m4 files in new gnulib/m4/ dir
#   put *.[ch] files in new gnulib/lib/ dir.

$gnulib_tool			\
109
  --lgpl=2			\
J
Jim Meyering 已提交
110
  --with-tests			\
111 112 113
  --m4-base=gnulib/m4		\
  --source-base=gnulib/lib	\
  --tests-base=gnulib/tests	\
114
  --import $modules