3 # Developer helper script for setting up gEDA build environment
4 # Copyright (C) 2009 Peter Brett <peter@peter-b.co.uk>
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 #####################################################################
22 #####################################################################
24 ac_script
=configure.ac
26 aclocal_flags
="$ACLOCAL_FLAGS -I m4"
28 podirs
="libgeda/po gaf/po gschem/po gattrib/po gaf/po gnetlist/po gsymcheck/po"
31 if test "x$srcdir" = x
; then srcdir
=.
; fi
33 script_name
=`echo $0 | sed -e's:.*/::'`
35 #####################################################################
36 # Define some functions
37 #####################################################################
39 # check_dist_file FILENAME
40 # ------------------------
41 # Check that a file that should be provided by the tarball or git
42 # checkout is present.
44 printf "checking for $srcdir/$1 ... " >&2
45 if test -f "$srcdir/$1" ; then
51 $script_name: $srcdir/$1 is missing. Check that your source tarball
52 or git checkout is intact.
59 # check_tool TOOLS PKG [URL]
60 # --------------------------
61 # Check that a build tool is present. TOOLS is a list of candidates to
62 # search for in the path, and PKG is the package which provides the
63 # tool. If URL is specified, recommend to the user that he get obtain
64 # the package there. Prints the location of the tool on standard
68 printf "checking for $tool ... " >&2
69 found_tool
=`which $tool 2> /dev/null` && break
72 if test "x$found_tool" != x
; then
77 echo "$script_name: You must have $2 installed." >&2
78 if test "x$3" != x
; then
81 If your operating system distribution doesn't provide a package, you
82 can get download it from <$3>.
90 # run_tool TOOL [ARG]...
91 # ----------------------
92 # Run TOOL with the given ARGs.
94 echo "$script_name: running $1 ..."
98 echo "***Error*** $script_name: $1 failed with exit status $?"
103 # autopoint_fix [PO_DIR]...
104 # ------------------------
105 # GNU gettext has a tool called autopoint which is used for copying
106 # the gettext build infrastructure into the package. Unfortunately,
107 # some versions of autopoint only recognize the top level po directory
108 # -- which gEDA doesn't use at all.
110 # To get around this, when we run autopoint we check if it's created
111 # the top-level po directory. If it has, we copy the files to po
112 # directories that we actually use.
114 # N.b. when this function is called we've cd'd into $srcdir.
118 # For safety, refuse to continue if the top level po dir exists.
119 if test -d $top_po; then
120 echo "***Error*** $script_name: $top_po exists. Remove it and re-run $script_name"
122 elif run_tool
$AUTOPOINT --force; then
123 if test -d $top_po; then
126 echo "$script_name: copying gettext files to $d ..."
127 cp -p $top_po/* $d ||
break
136 #####################################################################
137 # Do some checks for directories and tools
138 #####################################################################
140 check_dist_file
$ac_script || die
=1
141 check_dist_file
$tooldir/desktop-i18n
&&
142 DESKTOP_I18N
=$tooldir/desktop-i18n || die
=1
144 AUTOCONF
=`check_tool autoconf "GNU autoconf" ftp://ftp.gnu.org/pub/gnu/` 2>&1 || die
=1
146 AUTOHEADER
=`check_tool autoheader "GNU autoconf" ftp://ftp.gnu.org/pub/gnu/` 2>&1 || die
=1
148 AUTOMAKE
=`check_tool automake "GNU automake" ftp://ftp.gnu.org/pub/gnu/` 2>&1 || die
=1
150 ACLOCAL
=`check_tool aclocal "GNU automake" ftp://ftp.gnu.org/pub/gnu/` 2>&1 || die
=1
152 LIBTOOLIZE
=`check_tool "libtoolize glibtoolize" "GNU libtool" "ftp://ftp.gnu.org/pub/gnu/"` 2>&1 || die
=1
154 AUTOPOINT
=`check_tool autopoint "GNU gettext" "http://www.gnu.org/software/gettext"` 2>&1 || die
=1
156 #####################################################################
157 # Check automake version
158 #####################################################################
160 # Exit now if we don't have automake at all
161 if test "x$AUTOMAKE" = x
; then
162 echo "***Error*** $script_name: Some required tools could not be found."
166 printf "checking for automake >= $am_version ... "
167 am_have_version
=`$AUTOMAKE --version | sed -n -e 's:[^0-9]* \([0-9]*\.[0-9]*\.*[0-9]*\).*$:\1:p'`
168 echo $am_have_version
170 need_major
=`echo $am_version | awk -F . '{print $1}'`
171 need_minor
=`echo $am_version | awk -F . '{print $2}'`
172 need_point
=`echo $am_version | awk -F . '{print $3}'`
174 have_major
=`echo $am_have_version | awk -F . '{print $1}'`
175 have_minor
=`echo $am_have_version | awk -F . '{print $2}'`
176 have_point
=`echo $am_have_version | awk -F . '{print $3}'`
178 if test "x$have_point" = x
; then have_point
="0"; fi
180 if test $need_major -gt $have_major ||
181 test $need_major -eq $have_major -a $need_minor -gt $have_minor ||
182 test $need_major -eq $have_major -a $need_minor -eq $have_minor \
183 -a $need_point -gt $have_point; then
186 You have Automake $am_have_version installed, but Automake $am_version
187 or later is required.
189 If your operating system doesn't provide a package, you can download
190 it from ftp://ftp.gnu.org/pub/gnu/
196 #####################################################################
197 # Die if checks failed
198 #####################################################################
200 if test "x$die" != x
; then
201 echo "***Error*** $script_name: Some required tools could not be found."
205 #####################################################################
207 #####################################################################
211 run_tool
"$DESKTOP_I18N" --setup &&
212 run_tool
"$LIBTOOLIZE" --force --copy &&
213 run_tool
"$ACLOCAL" $aclocal_flags &&
214 run_tool
"$AUTOHEADER" &&
215 run_tool
"$AUTOMAKE" -Wall --copy --add-missing --gnu &&
216 run_tool
"$AUTOCONF" )