]> git.lyx.org Git - lyx.git/blob - autogen.sh
proof of concept l10n for ui menus
[lyx.git] / autogen.sh
1 #!/bin/sh
2
3 ACLOCAL=aclocal
4 AUTOHEADER=autoheader
5 AUTOMAKE="automake -a -c --foreign"
6 AUTOCONF=autoconf
7 GNUM4=
8
9 echo -n "Locating GNU m4... "
10 for prog in $M4 gm4 gnum4 m4 ; do
11   case `$prog --version 2>&1` in
12     *GNU*) ok=yes
13            GNUM4=$prog
14            echo "found: $GNUM4"
15            break ;;
16     *) ;;
17   esac
18 done
19 if test x$ok = xno ; then
20     echo "not found."
21 fi
22
23 # Generate acinclude.m4
24 echo -n "Generate acinclude.m4... "
25 rm -f acinclude.m4 sigc++/acinclude.m4
26 touch acinclude.m4
27 for fil in config/lyxinclude.m4 config/libtool.m4 config/gettext.m4 config/lcmessage.m4 config/progtest.m4 config/sigc++.m4 config/kde.m4 config/gnome/gtk.m4 config/gnome/aclocal-include.m4 config/gnome/gnome-print-check.m4 config/gnome/compiler-flags.m4 config/gnome/gnome-pthread-check.m4 config/gnome/curses.m4 config/gnome/gnome-support.m4 config/gnome/gnome-bonobo-check.m4 config/gnome/gnome-undelfs.m4 config/gnome/gnome-common.m4 config/gnome/gnome-vfs.m4 config/gnome/gnome-fileutils.m4 config/gnome/gnome-x-checks.m4 config/gnome/gnome-ghttp-check.m4 config/gnome/gnome-xml-check.m4 config/gnome/gnome-gnorba-check.m4 config/gnome/gnome.m4 config/gnome/gnome-guile-checks.m4 config/gnome/gperf-check.m4 config/gnome/gnome-libgtop-check.m4 config/gnome/linger.m4 config/gnome/gnome-objc-checks.m4 config/gnome/need-declaration.m4 config/gnome/gnome-orbit-check.m4 config/gnome/gtk--.m4 config/gnome/gnome--.m4 ; do
28     cat $fil >> acinclude.m4
29 done
30 touch sigc++/acinclude.m4
31 for fil in config/libtool.m4 ; do
32     cat $fil >> sigc++/acinclude.m4
33 done
34 echo "done."
35
36 # Generate the ext_l10n.h
37 echo -n "Generate the ext_l10n file..."
38 grep -i -E "submenu|item|optitem" < lib/ui/default.ui | cut -d '"' -f 2 | awk '{printf "_(\"%s\");\n", $0}' > src/ext_l10n.h
39 echo "done."
40
41 # Generate the Makefiles and configure files
42 if ( aclocal --version ) </dev/null > /dev/null 2>&1; then
43         echo -n "Building macros... "
44         $ACLOCAL ; ( cd lib/reLyX; $ACLOCAL ) ; ( cd sigc++; $ACLOCAL ) 
45         echo "done."
46 else
47         echo "aclocal not found -- aborting"
48         exit
49 fi
50
51 if ( autoheader --version ) </dev/null > /dev/null 2>&1; then
52         echo -n "Building config header template... "
53         $AUTOHEADER ; ( cd sigc++; $AUTOHEADER )
54         echo "done."
55 else
56         echo "autoheader not found -- aborting"
57         exit
58 fi
59
60 if ( $AUTOMAKE --version ) </dev/null > /dev/null 2>&1; then
61         echo -n "Building Makefile templates... "
62         $AUTOMAKE ; ( cd lib/reLyX ; $AUTOMAKE ) ; ( cd sigc++; $AUTOMAKE )
63         echo "done."
64 else
65         echo "automake not found -- aborting"
66         exit
67 fi
68
69 if ( $AUTOCONF --version ) </dev/null > /dev/null 2>&1; then
70         echo -n "Building configure... "
71         $AUTOCONF ; ( cd lib/reLyX ; $AUTOCONF ) ; ( cd sigc++; $AUTOCONF )
72         echo "done."
73 else
74         echo "autoconf not found -- aborting"
75         exit
76 fi
77
78 # Autogenerate lib/configure.m4.
79 if test x$GNUM4 != x ; then
80     echo -n "Building lib/configure ... "
81     rm -f lib/configure
82     $GNUM4 lib/configure.m4 > lib/configure
83     chmod a+x lib/configure
84     echo "done."
85 else
86     echo "No GNU m4. Impossible to build lib/configure -- aborting"
87     exit
88 fi
89
90 echo -n "Creating POTFILES.in... "
91 cat <<EOF > tmppot
92 #
93 # This file is automatically generated by autogen.sh. This command was
94 # used to extract the files from the sources:
95 #
96 # grep -E "_\(\".*\"\)" \`find src -name \*.[hHC]\` | \\
97 # awk 'BEGIN {FS= ":"} {print $1}' | sort | uniq
98 #
99 # This must be done when standing in lyx/
100 #
101 # This is all the files that contains internationalization strings.
102
103 EOF
104
105 grep -l -E "_\(\".*\"\)" `find src -name \*.[hHC]` | \
106 awk 'BEGIN {FS= ":"} {print $1}' | sort -f -d | uniq >> tmppot
107 mv tmppot po/POTFILES.in
108 echo "done"
109
110 echo
111 echo 'run "./configure ; make"'
112 echo