summaryrefslogtreecommitdiff
path: root/libbb/mk_loop_h.sh
blob: 71c987376a26a78dbfc4cd613246be927bb7031a (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
#!/bin/sh
#
# Figure out (i) the type of dev_t (ii) the defines for loop stuff
#
# Output of this script is normally redirected to "loop.h".

# Since 1.3.79 there is an include file <asm/posix_types.h>
# that defines __kernel_dev_t.
# (The file itself appeared in 1.3.78, but there it defined __dev_t.)
# If it exists, we use it, or, rather, <linux/posix_types.h> which
# avoids namespace pollution.  Otherwise we guess that __kernel_dev_t
# is an unsigned short (which is true on i386, but false on alpha).

# BUG: This test is actually broken if your gcc is not configured to
# search /usr/include, as may well happen with cross-compilers.
# It would be better to ask $(CC) if these files can be found.

if [ -f /usr/include/linux/posix_types.h ]; then
   echo '#include <linux/posix_types.h>'
   echo '#undef dev_t'
   echo '#define dev_t __kernel_dev_t'
else
   echo '#undef dev_t'
   echo '#define dev_t unsigned short'
fi

# Next we have to find the loop stuff itself.
# First try kernel source, then a private version.

if [ -f /usr/include/linux/loop.h ]; then
   echo '#include <linux/loop.h>'
else
   echo '#include "real_loop.h"'
fi

echo '#undef dev_t'