dirent wrapper. Use yaz_file_glob for XML include
[yaz-moved-to-github.git] / buildconf.sh
1 #!/bin/sh
2
3 automake=automake
4 aclocal=aclocal
5 autoconf=autoconf
6 libtoolize=libtoolize
7 autoheader=autoheader
8
9 test -d config || mkdir config
10 if [ -d .git ]; then
11     git submodule init
12     git submodule update
13 fi
14 if [ "`uname -s`" = FreeBSD ]; then
15     # FreeBSD intalls the various auto* tools with version numbers
16     echo "Using special configuration for FreeBSD ..."
17     automake=automake19
18     aclocal="aclocal19 -I /usr/local/share/aclocal"
19     autoconf=autoconf259
20     libtoolize=libtoolize15
21     autoheader=autoheader259
22 fi
23
24 if [ "`uname -s`" = Darwin ]; then
25     echo "Using special configuration for Darwin/MacOS ..."
26     libtoolize=glibtoolize
27 fi
28
29 if $automake --version|head -1 |grep '1\.[4-7]'; then
30     echo "automake 1.4-1.7 is active. You should use automake 1.8 or later"
31     if [ -f /etc/debian_version ]; then
32         echo " sudo apt-get install automake1.9"
33         echo " sudo update-alternatives --config automake"
34     fi
35     exit 1
36 fi
37
38 set -x
39 $aclocal -I m4
40 if grep AC_CONFIG_HEADERS configure.ac >/dev/null; then
41     $autoheader
42 fi
43 if grep AM_PROG_LIBTOOL configure.ac >/dev/null; then
44     has_libtool=true
45 else
46     has_libtool=false
47 fi
48
49 $libtoolize --automake --force 
50 $automake --add-missing 
51 $autoconf
52 set -
53 if [ -f config.cache ]; then
54         rm config.cache
55 fi
56
57 enable_configure=false
58 enable_help=true
59 sh_flags=""
60 conf_flags=""
61 case $1 in
62     -d)
63         sh_cflags="-g -Wall -Wdeclaration-after-statement -Wstrict-prototypes"
64         sh_cxxflags="-g -Wall"
65         enable_configure=true
66         enable_help=false
67         shift
68         ;;
69     -c)
70         sh_cflags=""
71         sh_cxxflags=""
72         enable_configure=true
73         enable_help=false
74         shift
75         ;;
76 esac
77
78 if $enable_configure; then
79     if [ -n "$sh_cflags" ]; then
80         if $has_libtool; then
81             CFLAGS="$sh_cflags" CXXFLAGS="$sh_cxxflags" ./configure --disable-shared --enable-static $*
82         else
83             CFLAGS="$sh_cflags" CXXFLAGS="$sh_cxxflags" ./configure $*
84         fi
85     else
86         ./configure $*
87     fi
88 fi
89 if $enable_help; then
90     cat <<EOF
91
92 Build the Makefiles with the configure command.
93   ./configure [--someoption=somevalue ...]
94
95 For help on options or configuring run
96   ./configure --help
97
98 Build and install binaries with the usual
99   make
100   make check
101   make install
102
103 Build distribution tarball with
104   make dist
105
106 Verify distribution tarball with
107   make distcheck
108
109 EOF
110     if [ -f /etc/debian_version ]; then
111         cat <<EOF
112 Or just build the Debian packages without configuring
113   dpkg-buildpackage -rfakeroot
114
115 When building from Git, you need these Debian packages:
116   autoconf, automake, libtool, gcc, bison, any tcl,
117   xsltproc, docbook, docbook-xml, docbook-xsl,
118   libxslt1-dev, libssl-dev, libreadline5-dev, libwrap0-dev,
119   libpcap0.8-dev, pkg-config
120
121 Also perhaps: libgnutls-dev libicu-dev
122
123 And if you want to make a Debian package: dpkg-dev fakeroot debhelper
124 (Then run "dpkg-buildpackage -rfakeroot" in this directory.)
125
126 EOF
127     fi
128     if [ "`uname -s`" = FreeBSD ]; then
129         cat <<EOF
130 When building from a Git, you need these FreeBSD Ports:
131   autoconf259, automake19, libtool15, bison, tcl84,
132   docbook-xsl, libxml2, libxslt, g++-4.0, make
133 EOF
134     fi
135 fi