summaryrefslogtreecommitdiffstats
path: root/configure.in
blob: 7a844d59c962ece780119108c07aa0a2a02cb761 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
AC_INIT
AC_CONFIG_SRCDIR(src/msgfmt.c)
AM_INIT_AUTOMAKE(gettext, 0.11.4)
RELEASE_DATE=2002-07-25      dnl in "date +%Y-%m-%d" format
AM_CONFIG_HEADER(config.h)

dnl Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_YACC
gt_PROG_LEX

gt_GCJ
if test -n "$HAVE_GCJ"; then
  BUILDJAVAEXE=yes
else
  BUILDJAVAEXE=no
fi
AC_SUBST(BUILDJAVAEXE)

gt_JAVACOMP
AC_CHECK_PROG(JAR, jar, jar)
if test -n "$HAVE_JAVACOMP" && test -n "$JAR"; then
  BUILDJAVA=yes
else
  BUILDJAVA=no
fi
AC_SUBST(BUILDJAVA)

gt_JAVAEXEC
if test -n "$HAVE_JAVAEXEC" && test $BUILDJAVA = yes; then
  TESTJAVA=yes
else
  TESTJAVA=no
fi
AC_SUBST(TESTJAVA)

dnl Check for host type.
AC_CANONICAL_HOST

dnl Checks for UNIX variants that set DEFS,
AC_ISC_POSIX

dnl Checks for compiler output filename suffixes.
AC_OBJEXT
AC_EXEEXT

dnl Check for build configuration.
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL

AC_DEFINE(_GNU_SOURCE, 1, [Make sure we see all GNU extensions.])

dnl Checks for libraries.

dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(limits.h malloc.h string.h unistd.h values.h)
gt_STDBOOL_H

dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
bh_C_SIGNED
AC_C_BACKSLASH_A
jm_AC_TYPE_UNSIGNED_LONG_LONG
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_CHECK_TYPES(ptrdiff_t)
jm_AC_TYPE_UINTMAX_T
gt_TYPE_SSIZE_T
AC_TYPE_PID_T

dnl Checks for library functions.
AC_FUNC_ALLOCA
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([getcwd mblen memcpy posix_spawn putc_unlocked raise select \
strerror strtoul uname utime utimes])
AC_REPLACE_FUNCS([memset stpcpy strcspn \
strcasecmp strncasecmp strpbrk strstr vasprintf])
AM_FUNC_GETLINE
if test $am_cv_func_working_getline != yes; then
  AC_CHECK_FUNCS(getdelim)
fi
gt_FUNC_FNMATCH
jm_PREREQ_MBSWIDTH
gt_PREREQ_BACKUPFILE
AC_FUNC_VFORK
gt_UNION_WAIT
gt_TMPDIR
gt_FUNC_MKDTEMP
gt_SIGNALBLOCKING
gt_SIGINFO
gt_FUNC_SETENV
gt_FUNC_ERROR_AT_LINE
gt_SETLOCALE

gt_PREREQ_HOSTNAME

dnl These are the only lines required to internationalize the package.
dnl (OK, not quite, the AC_OUTPUT has also some parts.)
AM_GNU_GETTEXT(use-libtool, need-ngettext)

dnl Put some default definitions into config.h.
AH_TOP([
/* Default value for alignment of strings in .mo file.  */
#define DEFAULT_OUTPUT_ALIGNMENT 1

#ifndef PARAMS
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
#  define PARAMS(args) args
# else
#  define PARAMS(args) ()
# endif
#endif
])
AH_BOTTOM([
/* We don't test for the basename function but still want to use the
   version in the libc when compiling for a system using glibc.  Likewise
   for stpncpy.  */
#ifdef __GNU_LIBRARY__
# define HAVE_BASENAME	1
# define HAVE_STPNCPY	1
#endif

/* A file name cannot consist of any character possible.  INVALID_PATH_CHAR
   contains the characters not allowed.  */
#ifndef MSDOS
# define	INVALID_PATH_CHAR "\1\2\3\4\5\6\7\10\11\12\13\14\15\16\17\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 \177/"
#else
/* Something like this for MSDOG.  */
# define	INVALID_PATH_CHAR "\1\2\3\4\5\6\7\10\11\12\13\14\15\16\17\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 \177\\:."
#endif

/* This is the page width for the message_print function.  It should
   not be set to more than 79 characters (Emacs users will appreciate
   it).  It is used to wrap the msgid and msgstr strings, and also to
   wrap the file position (#:) comments.  */
#define PAGE_WIDTH 79

/* Extra OS/2 (emx+gcc) defines.  */
#ifdef __EMX__
# include "intl/os2compat.h"
#endif
])

dnl Check for the expat XML parser.
dnl On operating systems where binary distribution vendors are likely to
dnl ship both gettext and expat, we use dynamic loading to avoid a hard
dnl dependency from gettext to expat.
case "$host_os" in
  linux*)
    AC_DEFINE([DYNLOAD_LIBEXPAT], 1,
      [Define to 1 if libexpat shall be dynamically loaded via dlopen().])
    LIBEXPAT="-ldl"
    LTLIBEXPAT="-ldl"
    AC_SUBST(LIBEXPAT)
    AC_SUBST(LTLIBEXPAT)
    ;;
  *)
    AC_LIB_HAVE_LINKFLAGS([expat], [],
      [#include <expat.h>], [XML_ExpatVersion();])
    ;;
esac

dnl Check for Emacs and where to install .elc files.
AM_PATH_LISPDIR

aclocaldir='${datadir}/aclocal'
AC_SUBST(aclocaldir)

dnl Check for tools needed for formatting the documentation.
ac_aux_dir_abs=`cd $ac_aux_dir && pwd`
AC_PATH_PROG(DVIPS, dvips, $ac_aux_dir_abs/missing dvips)
AC_PATH_PROG(TEXI2PDF, texi2pdf, $ac_aux_dir_abs/missing texi2pdf)
AC_PATH_PROG(PERL, perl, $ac_aux_dir_abs/missing perl)

dnl Check for tools needed for formatting man pages.
CROSS_COMPILING=$cross_compiling
AC_SUBST(CROSS_COMPILING)

dnl Checks for optional programs for the tests/lang-* tests.
AC_CHECK_PROGS(CXX, $CCC c++ g++ gpp gcc CC cxx cc++ cl, :)
if test "$CXX" != ":"; then
  dnl Use a modified version of AC_PROG_CXX_WORKS that does not exit
  dnl upon failure.
  AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works])
  AC_LANG_PUSH(C++)
  AC_ARG_VAR([CXX], [C++ compiler command])
  AC_ARG_VAR([CXXFLAGS], [C++ compiler flags])
  echo 'int main () { return 0; }' > conftest.$ac_ext
  if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
    ac_cv_prog_cxx_works=yes
    if (./conftest; exit) 2>/dev/null; then
      ac_cv_prog_cxx_cross=no
    else
      ac_cv_prog_cxx_cross=yes
    fi
  else
    ac_cv_prog_cxx_works=no
  fi
  rm -fr conftest*
  AC_LANG_POP(C++)
  AC_MSG_RESULT($ac_cv_prog_cxx_works)
  if test $ac_cv_prog_cxx_works = no; then
    CXX=:
  fi
fi

dnl Checks for tests/rpathcfg.
AC_SUBST(GCC)
AC_SUBST(LD)
AC_SUBST(with_gnu_ld)

dnl Generate the version information file in the intl/ directory.
test -d intl || mkdir intl
echo "GNU gettext library from $PACKAGE-$VERSION" > intl/VERSION
cat > intl/ChangeLog.inst <<EOF
$RELEASE_DATE  GNU  <bug-gnu-gettext@gnu.org>

	* Version $VERSION released.

EOF

dnl These ought to go away some day.
changequote(,)dnl
LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'`
changequote([, ])dnl
AC_SUBST(LTLIBOBJS)
changequote(,)dnl
LTALLOCA=`echo "$ALLOCA" | sed 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'`
changequote([, ])dnl
AC_SUBST(LTALLOCA)

AC_OUTPUT([Makefile \
           lib/Makefile lib/javacomp.sh lib/javaexec.sh \
           intl/Makefile intl-java/Makefile \
           libuniname/Makefile \
           src/Makefile src/user-email \
           po/Makefile.in \
           doc/Makefile man/Makefile man/x-to-1 \
           tests/Makefile \
           m4/Makefile \
           projects/Makefile \
           misc/Makefile misc/gettextize misc/autopoint], [
  dnl Fix unesthetic build commands generated by automake.
  for m in lib/Makefile src/Makefile tests/Makefile; do
    sed -e "s,\`test -f \\\$< || echo '\\\$(srcdir)/'\`\\\$<,\\\$<," < $m > $m.tmp
    mv $m.tmp $m
  done
  dnl Fix an automake-1.5 bug.
  for m in Makefile doc/Makefile; do
    sed -e 's,^#distdir:,distdir:,' < $m > $m.tmp
    mv $m.tmp $m
  done
  dnl Fix an automake-1.5 bug: all info files are erased by "make".
  for m in doc/Makefile; do
    sed -e '/cd \$(srcdir) && rm -f /d' < $m > $m.tmp
    mv $m.tmp $m
  done
  dnl Fix permissions of misc/gettextize and misc/autopoint.
  chmod a+x misc/gettextize misc/autopoint
])