Initial import of Leif's work
[grub.git] / autogen.sh
1 #! /usr/bin/env bash
2
3 set -e
4
5 export LC_CTYPE=C
6 export LC_COLLATE=C
7 unset LC_ALL
8
9 autogen --version >/dev/null || exit 1
10
11 echo "Importing unicode..."
12 python util/import_unicode.py unicode/UnicodeData.txt unicode/BidiMirroring.txt unicode/ArabicShaping.txt grub-core/unidata.c
13
14 echo "Importing libgcrypt..."
15 python util/import_gcry.py grub-core/lib/libgcrypt/ grub-core
16 sed -n -f util/import_gcrypth.sed < grub-core/lib/libgcrypt/src/gcrypt.h.in > include/grub/gcrypt/gcrypt.h
17 if [ -f include/grub/gcrypt/g10lib.h ]; then
18     rm include/grub/gcrypt/g10lib.h
19 fi
20 if [ -d grub-core/lib/libgcrypt-grub/mpi/generic ]; then 
21     rm -rf grub-core/lib/libgcrypt-grub/mpi/generic
22 fi
23 ln -s ../../../grub-core/lib/libgcrypt-grub/src/g10lib.h include/grub/gcrypt/g10lib.h
24 cp -R grub-core/lib/libgcrypt/mpi/generic grub-core/lib/libgcrypt-grub/mpi/generic
25
26 for x in mpi-asm-defs.h mpih-add1.c mpih-sub1.c mpih-mul1.c mpih-mul2.c mpih-mul3.c mpih-lshift.c mpih-rshift.c; do
27     if [ -f grub-core/lib/libgcrypt-grub/mpi/"$x" ]; then
28         rm grub-core/lib/libgcrypt-grub/mpi/"$x"
29     fi
30     ln -s generic/"$x" grub-core/lib/libgcrypt-grub/mpi/"$x"
31 done
32
33 echo "Importing libfdt..."
34 python util/import_libfdt.py grub-core/lib/dtc/ grub-core
35
36 echo "Creating Makefile.tpl..."
37 python gentpl.py | sed -e '/^$/{N;/^\n$/D;}' > Makefile.tpl
38
39 echo "Running autogen..."
40
41 # Automake doesn't like including files from a path outside the project.
42 rm -f contrib grub-core/contrib
43 if [ "x${GRUB_CONTRIB}" != x ]; then
44   [ "${GRUB_CONTRIB}" = contrib ] || ln -s "${GRUB_CONTRIB}" contrib
45   [ "${GRUB_CONTRIB}" = grub-core/contrib ] || ln -s ../contrib grub-core/contrib
46 fi
47
48 UTIL_DEFS='Makefile.util.def Makefile.utilgcry.def'
49 CORE_DEFS='grub-core/Makefile.core.def grub-core/Makefile.gcry.def grub-core/Makefile.libfdt.def'
50
51 for extra in contrib/*/Makefile.util.def; do
52   if test -e "$extra"; then
53     UTIL_DEFS="$UTIL_DEFS $extra"
54   fi
55 done
56
57 for extra in contrib/*/Makefile.core.def; do
58   if test -e "$extra"; then
59     CORE_DEFS="$CORE_DEFS $extra"
60   fi
61 done
62
63 cat $UTIL_DEFS | autogen -T Makefile.tpl | sed -e '/^$/{N;/^\n$/D;}' > Makefile.util.am
64 cat $CORE_DEFS | autogen -T Makefile.tpl | sed -e '/^$/{N;/^\n$/D;}' > grub-core/Makefile.core.am
65
66 for extra in contrib/*/Makefile.common; do
67   if test -e "$extra"; then
68     echo "include $extra" >> Makefile.util.am
69     echo "include $extra" >> grub-core/Makefile.core.am
70   fi
71 done
72
73 for extra in contrib/*/Makefile.util.common; do
74   if test -e "$extra"; then
75     echo "include $extra" >> Makefile.util.am
76   fi
77 done
78
79 for extra in contrib/*/Makefile.core.common; do
80   if test -e "$extra"; then
81     echo "include $extra" >> grub-core/Makefile.core.am
82   fi
83 done
84
85 echo "Saving timestamps..."
86 echo timestamp > stamp-h.in
87
88 echo "Running autoreconf..."
89 autoreconf -vi
90 exit 0