summaryrefslogtreecommitdiff
path: root/bootstrap.conf
blob: 7ef7342390da3e20b904bb5192a6bfb67e6c7768 (plain)
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
# Bootstrap configuration.

# Copyright (C) 2006-2023 Free Software Foundation, Inc.

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

# Automake requires that ChangeLog exists.
touch ChangeLog

# Random extra gnulib files needed for findutils.
# copied from 'import-gnulib.config'
gnulib_extra_files='
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/mdate-sh
build-aux/mkinstalldirs
build-aux/texinfo.tex
'


# gnulib modules needed only for maintainer things.
maintainer_modules='
gitlog-to-changelog
maintainer-makefile
update-copyright
gendocs
'

# 'consider' comments copied from 'import-gnulib.config':

# consider using do-release-commit-and-tag
# consider using gendocs
# consider using getdelim
# consider using gethrxtime
# consider using getsubopt (for -D)
# consider using gnu-web-doc-update
# consider using idprov-drop and privset for locate
# consider using long-options
# consider using nproc in xargs
# consider using pmccabe2html
# consider using selinux-h
# consider using gendocs
# consider using sig2str in xargs
# consider using signal (why not: maybe we don't need those features)
# consider using the dev-ino moduile to support -samefile.

# consider removing stpcpy
# We have rpmatch, either use it for -ok and xargs or remove the dependency
# use fileblocks, filemode properly.

# Considered, but no:
# consider using autobuild (the information is not usually interesting for us)
# consider using same-inode (we don't keep a full struct stat for the ref file)

# Modules needed for findutils.
# We need regex to ensure that we can build on platforms like
# Solaris which lack those functions.

# gnulib modules used by this package.
gnulib_modules="
    alloca
    areadlinkat
    argmatch
    argv-iter
    assert
    byteswap
    c-strcasestr
    c-strstr
    canonicalize
    cloexec
    closein
    closeout
    ctype
    d-ino
    d-type
    dirent-safer
    dirname
    dup2
    errno
    error
    faccessat
    fchdir
    fcntl
    fcntl-safer
    fdopendir
    fflush
    fileblocks
    filemode
    fnmatch-gnu
    fopen-safer
    fts
    gcc-attributes
    getdelim
    getline
    getopt-gnu
    gettext-h
    gettimeofday
    git-version-gen
    gnupload
    gpl-3.0
    hash
    human
    idcache
    inline
    intprops
    inttypes
    isblank
    locale
    lstat
    malloc-gnu
    manywarnings
    math
    mbrtowc
    mbscasestr
    mbswidth
    mbsstr
    mktime
    modechange
    modf
    mountlist
    nstrftime
    open
    openat-safer
    parse-datetime
    pathmax
    perror
    progname
    quotearg
    readlink
    realloc-gnu
    regex
    rpmatch
    safe-read
    same-inode
    save-cwd
    savedir
    selinux-at
    snprintf
    stat
    stat-macros
    stat-size
    stat-time
    stdarg
    stdbool
    stddef
    stdio
    stdint
    stdlib
    stpcpy
    strcasestr
    strdup-posix
    string
    strndup
    strtoull
    strtoumax
    sys_stat
    sys_time
    sys_wait
    timespec
    uname
    unistd-safer
    unlinkat
    verify
    version-etc
    version-etc-fsf
    warnings
    wchar
    wcwidth
    xalloc
    xalloc-die
    xgetcwd
    xstrtod
    xstrtol
    xstrtol-error
    xstrtoumax
    year2038
    yesno
    ${maintainer_modules}
"

# Override bootstrap's defaults, with values consistent with
# 'import-gnulib.sh'
local_gl_dir='gnulib-local'
source_base=gl/lib
m4_base=gl/m4
# use 'libgnulib' instead of the default lib$package (=libfindutils)
# 'libgnulib' is mentioned in various 'Makefile.am' files.
gnulib_name=libgnulib

# Create 'gl/Makefile.am' which is mentioned in 'configure.ac'.
hack_gnulib_tool_makefile() {
    cat > gl/Makefile.am <<EOF
# Copyright (C) 2004, 2009 Free Software Foundation, Inc.
#
# This file is free software, distributed under the terms of the GNU
# General Public License.  As a special exception to the GNU General
# Public License, this file may be distributed as part of a program
# that contains a configuration script generated by Automake, under
# the same distribution terms as the rest of that program.
#
# This file was generated by $0
#
SUBDIRS = lib
EXTRA_DIST = m4/gnulib-cache.m4
EOF
}

# after 'gnulib-tool' is done, create the 'gl/Makefile.am' to be backward
# compatible with 'import-gnulib.sh'.
bootstrap_post_import_hook() {
    hack_gnulib_tool_makefile
}

# For compatibility with 'import-gnulib.sh', add gnulib's test directory.
# 'gnulib-tests/Makefile' is mentioned in 'configure.ac'
gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink"


# Additional xgettext options to use.  Use "\\\newline" to break lines.
XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
 --from-code=UTF-8\\\
 --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\
 --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\
 --flag=wrapf:1:c-format\\\
'


# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
# appears in configure.ac, exclude some unnecessary files.
# Without grep's -E option (not portable enough, pre-configure),
# the following test is ugly.  Also, this depends on the existence
# of configure.ac, not the obsolescent-named configure.in.  But if
# you're using this infrastructure, you should care about such things.

gettext_external=0
grep '^[	 ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
  gettext_external=1
grep '^[	 ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
  gettext_external=1

if test $gettext_external = 1; then
  # Gettext supplies these files, but we don't need them since
  # we don't have an intl subdirectory.
  excluded_files='
      m4/glibc2.m4
      m4/intdiv0.m4
      m4/lcmessage.m4
      m4/lock.m4
      m4/printf-posix.m4
      m4/size_max.m4
      m4/uintmax_t.m4
      m4/ulonglong.m4
      m4/visibility.m4
      m4/xsize.m4
  '
fi

# Build prerequisites
buildreq="\
autoconf   2.64
automake   1.11.2
git        1.5.5
tar        -
gettext    0.19.2
"