42c4ffb358a5829cf33d08fa4cc7c6ece13337a5
[libgcrypt.git] / acinclude.m4
1 dnl macros to configure g10                                       7cache_va
2
3
4 dnl GNUPG_MSG_PRINT(STRING)
5 dnl print a message
6 dnl
7 define(GNUPG_MSG_PRINT,
8   [ echo $ac_n "$1"" $ac_c" 1>&AC_FD_MSG
9   ])
10
11
12 dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
13 dnl Check whether a typedef exists and create a #define $2 if it exists
14 dnl
15 AC_DEFUN(GNUPG_CHECK_TYPEDEF,
16   [ AC_MSG_CHECKING(for $1 typedef)
17     AC_CACHE_VAL(gnupg_cv_typedef_$1,
18     [AC_TRY_COMPILE([#include <stdlib.h>
19     #include <sys/types.h>], [
20     #undef $1
21     int a = sizeof($1);
22     ], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )])
23     AC_MSG_RESULT($gnupg_cv_typedef_$1)
24     if test "$gnupg_cv_typedef_$1" = yes; then
25         AC_DEFINE($2)
26     fi
27   ])
28
29
30
31 dnl GNUPG_LINK_FILES( SRC, DEST )
32 dnl same as AC_LINK_FILES, but collect the files to link in
33 dnl some special variables and do the link
34 dnl when GNUPG_DO_LINK_FILES is called
35 dnl This is a workaround for AC_LINK_FILES, because it does not work
36 dnl correct when using a caching scheme
37 dnl
38 define(GNUPG_LINK_FILES,
39   [ if test "x$wk_link_files_src" = "x"; then
40         wk_link_files_src="$1"
41         wk_link_files_dst="$2"
42     else
43         wk_link_files_src="$wk_link_files_src $1"
44         wk_link_files_dst="$wk_link_files_dst $2"
45     fi
46   ])
47 define(GNUPG_DO_LINK_FILES,
48   [ AC_LINK_FILES( $wk_link_files_src, $wk_link_files_dst )
49   ])
50
51
52 dnl GNUPG_CHECK_ENDIAN
53 dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST
54 dnl
55 define(GNUPG_CHECK_ENDIAN,
56   [ if test "$cross_compiling" = yes; then
57         AC_MSG_WARN(cross compiling; assuming little endianess)
58     fi
59     AC_MSG_CHECKING(endianess)
60     AC_CACHE_VAL(gnupg_cv_c_endian,
61       [ gnupg_cv_c_endian=unknown
62         # See if sys/param.h defines the BYTE_ORDER macro.
63         AC_TRY_COMPILE([#include <sys/types.h>
64         #include <sys/param.h>], [
65         #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
66          bogus endian macros
67         #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
68         AC_TRY_COMPILE([#include <sys/types.h>
69         #include <sys/param.h>], [
70         #if BYTE_ORDER != BIG_ENDIAN
71          not big endian
72         #endif], gnupg_cv_c_endian=big, gnupg_cv_c_endian=little)])
73         if test "$gnupg_cv_c_endian" = unknown; then
74             AC_TRY_RUN([main () {
75               /* Are we little or big endian?  From Harbison&Steele.  */
76               union
77               {
78                 long l;
79                 char c[sizeof (long)];
80               } u;
81               u.l = 1;
82               exit (u.c[sizeof (long) - 1] == 1);
83               }],
84               gnupg_cv_c_endian=little,
85               gnupg_cv_c_endian=big,
86               gnupg_cv_c_endian=little
87             )
88         fi
89       ])
90     AC_MSG_RESULT([$gnupg_cv_c_endian])
91     if test "$gnupg_cv_c_endian" = little; then
92       AC_DEFINE(LITTLE_ENDIAN_HOST)
93     else
94       AC_DEFINE(BIG_ENDIAN_HOST)
95     fi
96   ])
97
98 dnl GNUPG_CHECK_CACHE
99 dnl
100 define(GNUPG_CHECK_CACHE,
101   [ AC_MSG_CHECKING(cached information)
102     gnupg_hostcheck="$target"
103     AC_CACHE_VAL(gnupg_cv_hostcheck, [ gnupg_cv_hostcheck="$gnupg_hostcheck" ])
104     if test "$gnupg_cv_hostcheck" != "$gnupg_hostcheck"; then
105         AC_MSG_RESULT(changed)
106         AC_MSG_WARN(config.cache exists!)
107         AC_MSG_ERROR(you must do 'make distclean' first to compile for
108                  different target or different parameters.)
109     else
110         AC_MSG_RESULT(ok)
111     fi
112   ])
113
114
115 ######################################################################
116 # Check for -fPIC etc (taken from libtool)
117 # This sets CFLAGS_PIC to the required flags
118 #           NO_PIC to yes if it is not possible to
119 #                  generate PIC
120 ######################################################################
121 dnl GNUPG_CHECK_PIC
122 dnl
123 define(GNUPG_CHECK_PIC,
124   [ AC_MSG_CHECKING(for option to create PIC)
125     CFLAGS_PIC=
126     NO_PIC=no
127     if test "$cross_compiling" = yes; then
128         AC_MSG_RESULT(assume none)
129     else
130         if test "$GCC" = yes; then
131             CFLAGS_PIC="-fPIC"
132         else
133             case "$host_os" in
134               aix3* | aix4*)
135                 # All rs/6000 code is PIC
136                 # but is there any non-rs/6000 AIX platform?
137                 ;;
138
139               hpux9* | hpux10*)
140                 CFLAGS_PIC="+Z"
141                 ;;
142
143               irix5* | irix6*)
144                 # PIC (with -KPIC) is the default.
145                 ;;
146
147               osf3* | osf4*)
148                 # FIXME - pic_flag is probably required for
149                 # hppa*-osf* and i860-osf*
150                 ;;
151
152               sco3.2v5*)
153                 CFLAGS_PIC='-Kpic'
154                 ;;
155
156               solaris2* | solaris7* )
157                 CFLAGS_PIC='-KPIC'
158                 ;;
159
160               sunos4*)
161                 CFLAGS_PIC='-PIC'
162                 ;;
163
164               *)
165                 NO_PIC=yes
166                 ;;
167             esac
168         fi
169
170         case "$host_cpu" in
171         rs6000 | powerpc | powerpcle)
172           # Yippee! All RS/6000 and PowerPC code is position-independent.
173           CFLAGS_PIC=""
174           ;;
175         esac
176
177         if test "$NO_PIC" = yes; then
178             AC_MSG_RESULT(not possible)
179         else
180             if test -z "$CFLAGS_PIC"; then
181                AC_MSG_RESULT(none)
182             else
183                 AC_MSG_RESULT($CFLAGS_PIC)
184             fi
185         fi
186     fi
187   ])
188
189
190 ######################################################################
191 # Check for rdynamic flag
192 # This sets CFLAGS_RDYNAMIC to the required flags
193 ######################################################################
194 dnl GNUPG_CHECK_RDYNAMIC
195 dnl
196 define(GNUPG_CHECK_RDYNAMIC,
197   [ AC_MSG_CHECKING(how to specify -rdynamic)
198     CFLAGS_RDYNAMIC=
199     if test "$cross_compiling" = yes; then
200         AC_MSG_RESULT(assume none)
201     else
202         case "$host_os" in
203           solaris*)
204             CFLAGS_RDYNAMIC="-Wl,-dy"
205             ;;
206           freebsd2*)
207             CFLAGS_RDYNAMIC=""
208             ;;
209           *)
210             CFLAGS_RDYNAMIC="-Wl,-export-dynamic"
211             ;;
212         esac
213         AC_MSG_RESULT($CFLAGS_RDYNAMIC)
214     fi
215   ])
216
217
218 #####################################################################
219 # Check for SysV IPC  (from GIMP)
220 #   And see whether we have a SHM_LOCK (FreeBSD does not have it).
221 #####################################################################
222 dnl GNUPG_CHECK_IPC
223 dnl
224 define(GNUPG_CHECK_IPC,
225    [ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
226      if test "$ac_cv_header_sys_shm_h" = "yes"; then
227        AC_MSG_CHECKING(whether IPC_RMID allowes subsequent attaches)
228        AC_CACHE_VAL(gnupg_cv_ipc_rmid_deferred_release,
229           AC_TRY_RUN([
230              #include <sys/types.h>
231              #include <sys/ipc.h>
232              #include <sys/shm.h>
233              int main()
234              {
235                int id;
236                char *shmaddr;
237              id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
238              if (id == -1)
239                exit (2);
240                shmaddr = shmat (id, 0, 0);
241                shmctl (id, IPC_RMID, 0);
242                if ((char*) shmat (id, 0, 0) == (char*) -1)
243                {
244                  shmdt (shmaddr);
245                  exit (1);
246                }
247                shmdt (shmaddr);
248                shmdt (shmaddr);
249                exit (0);
250              }
251          ],
252          gnupg_cv_ipc_rmid_deferred_release="yes",
253          gnupg_cv_ipc_rmid_deferred_release="no",
254          gnupg_cv_ipc_rmid_deferred_release="assume-no")
255        )
256        if test "$gnupg_cv_ipc_rmid_deferred_release" = "yes"; then
257            AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
258            AC_MSG_RESULT(yes)
259        else
260           if test "$gnupg_cv_ipc_rmid_deferred_release" = "no"; then
261               AC_MSG_RESULT(no)
262           else
263               AC_MSG_RESULT([assuming no])
264           fi
265        fi
266
267        AC_MSG_CHECKING(whether SHM_LOCK is available)
268        AC_CACHE_VAL(gnupg_cv_ipc_have_shm_lock,
269           AC_TRY_COMPILE([#include <sys/types.h>
270              #include <sys/ipc.h>
271              #include <sys/shm.h>],[
272              int foo( int shm_id ) {  shmctl(shm_id, SHM_LOCK, 0); }
273              ],
274              gnupg_cv_ipc_have_shm_lock="yes",
275              gnupg_cv_ipc_have_shm_lock="no"
276           )
277        )
278        if test "$gnupg_cv_ipc_have_shm_lock" = "yes"; then
279          AC_DEFINE(IPC_HAVE_SHM_LOCK)
280          AC_MSG_RESULT(yes)
281        else
282          AC_MSG_RESULT(no)
283        fi
284      fi
285    ])
286
287
288 ######################################################################
289 # Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
290 # is not called from uid 0 (not tested whether uid 0 works)
291 ######################################################################
292 dnl GNUPG_CHECK_MLOCK
293 dnl
294 define(GNUPG_CHECK_MLOCK,
295   [ AC_CHECK_FUNCS(mlock)
296     if test "$ac_cv_func_mlock" = "yes"; then
297         AC_MSG_CHECKING(whether mlock is broken)
298           AC_CACHE_VAL(gnupg_cv_have_broken_mlock,
299              AC_TRY_RUN([
300                 #include <stdlib.h>
301                 #include <unistd.h>
302                 #include <errno.h>
303                 #include <sys/mman.h>
304                 #include <sys/types.h>
305                 #include <fcntl.h>
306
307                 int main()
308                 {
309                     char *pool;
310                     int err;
311                     long int pgsize = getpagesize();
312
313                     pool = malloc( 4096 + pgsize );
314                     if( !pool )
315                         return 2;
316                     pool += (pgsize - ((long int)pool % pgsize));
317
318                     err = mlock( pool, 4096 );
319                     if( !err || errno == EPERM )
320                         return 0; /* okay */
321
322                     return 1;  /* hmmm */
323                 }
324
325             ],
326             gnupg_cv_have_broken_mlock="no",
327             gnupg_cv_have_broken_mlock="yes",
328             gnupg_cv_have_broken_mlock="assume-no"
329            )
330          )
331          if test "$gnupg_cv_have_broken_mlock" = "yes"; then
332              AC_DEFINE(HAVE_BROKEN_MLOCK)
333              AC_MSG_RESULT(yes)
334          else
335             if test "$gnupg_cv_have_broken_mlock" = "no"; then
336                 AC_MSG_RESULT(no)
337             else
338                 AC_MSG_RESULT(assuming no)
339             fi
340          fi
341     fi
342   ])
343
344
345
346
347
348
349
350
351 # Macro to add for using GNU gettext.
352 # Ulrich Drepper <drepper@cygnus.com>, 1995.
353 #
354 # This file can be copied and used freely without restrictions.  It can
355 # be used in projects which are not available under the GNU Public License
356 # but which still want to provide support for the GNU gettext functionality.
357 # Please note that the actual code is *not* freely available.
358
359 # serial 5 + patch (wk 21.10.98)
360
361 AC_DEFUN(AM_WITH_NLS,
362   [AC_MSG_CHECKING([whether NLS is requested])
363     dnl Default is enabled NLS
364     AC_ARG_ENABLE(nls,
365       [  --disable-nls           do not use Native Language Support],
366       USE_NLS=$enableval, USE_NLS=yes)
367     AC_MSG_RESULT($USE_NLS)
368     AC_SUBST(USE_NLS)
369
370     USE_INCLUDED_LIBINTL=no
371
372     dnl If we use NLS figure out what method
373     if test "$USE_NLS" = "yes"; then
374       AC_DEFINE(ENABLE_NLS)
375       AC_MSG_CHECKING([whether included gettext is requested])
376       AC_ARG_WITH(included-gettext,
377         [  --with-included-gettext use the GNU gettext library included here],
378         nls_cv_force_use_gnu_gettext=$withval,
379         nls_cv_force_use_gnu_gettext=no)
380       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
381
382       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
383       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
384         dnl User does not insist on using GNU NLS library.  Figure out what
385         dnl to use.  If gettext or catgets are available (in this order) we
386         dnl use this.  Else we have to fall back to GNU NLS library.
387         dnl catgets is only used if permitted by option --with-catgets.
388         nls_cv_header_intl=
389         nls_cv_header_libgt=
390         CATOBJEXT=NONE
391
392         AC_CHECK_HEADER(libintl.h,
393           [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
394             [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
395                gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
396
397            if test "$gt_cv_func_gettext_libc" != "yes"; then
398              AC_CHECK_LIB(intl, bindtextdomain,
399                [AC_CHECK_LIB(intl, gettext,
400                  gt_cv_func_gettext_libintl=yes,
401                  gt_cv_func_gettext_libintl=no)])
402            fi
403
404            if test "$gt_cv_func_gettext_libintl" = "yes" ; then
405              LIBS="-lintl $LIBS"
406            fi
407
408            if test "$gt_cv_func_gettext_libc" = "yes" \
409               || test "$gt_cv_func_gettext_libintl" = "yes"; then
410               AC_DEFINE(HAVE_GETTEXT)
411               AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
412                 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
413               if test "$MSGFMT" != "no"; then
414                 AC_CHECK_FUNCS(dcgettext)
415                 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
416                 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
417                   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
418                 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
419                                return _nl_msg_cat_cntr],
420                   [CATOBJEXT=.gmo
421                    DATADIRNAME=share],
422                   [CATOBJEXT=.mo
423                    DATADIRNAME=lib])
424                 INSTOBJEXT=.mo
425               fi
426             fi
427         ])
428
429         if test "$CATOBJEXT" = "NONE"; then
430           AC_MSG_CHECKING([whether catgets can be used])
431           AC_ARG_WITH(catgets,
432             [  --with-catgets          use catgets functions if available],
433             nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
434           AC_MSG_RESULT($nls_cv_use_catgets)
435
436           if test "$nls_cv_use_catgets" = "yes"; then
437             dnl No gettext in C library.  Try catgets next.
438             AC_CHECK_LIB(i, main)
439             AC_CHECK_FUNC(catgets,
440               [AC_DEFINE(HAVE_CATGETS)
441                INTLOBJS="\$(CATOBJS)"
442                AC_PATH_PROG(GENCAT, gencat, no)dnl
443                if test "$GENCAT" != "no"; then
444                  AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
445                  if test "$GMSGFMT" = "no"; then
446                    AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
447                     [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
448                  fi
449                  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
450                    [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
451                  USE_INCLUDED_LIBINTL=yes
452                  CATOBJEXT=.cat
453                  INSTOBJEXT=.cat
454                  DATADIRNAME=lib
455                  INTLDEPS='$(top_builddir)/intl/libintl.a'
456                  INTLLIBS=$INTLDEPS
457                  LIBS=`echo $LIBS | sed -e 's/-lintl//'`
458                  nls_cv_header_intl=intl/libintl.h
459                  nls_cv_header_libgt=intl/libgettext.h
460                fi])
461           fi
462         fi
463
464         if test "$CATOBJEXT" = "NONE"; then
465           dnl Neither gettext nor catgets in included in the C library.
466           dnl Fall back on GNU gettext library.
467           nls_cv_use_gnu_gettext=yes
468         fi
469       fi
470
471       if test "$nls_cv_use_gnu_gettext" = "yes"; then
472         dnl Mark actions used to generate GNU NLS library.
473         INTLOBJS="\$(GETTOBJS)"
474         AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
475           [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
476         AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
477         AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
478           [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
479         AC_SUBST(MSGFMT)
480         USE_INCLUDED_LIBINTL=yes
481         CATOBJEXT=.gmo
482         INSTOBJEXT=.mo
483         DATADIRNAME=share
484         INTLDEPS='$(top_builddir)/intl/libintl.a'
485         INTLLIBS=$INTLDEPS
486         LIBS=`echo $LIBS | sed -e 's/-lintl//'`
487         nls_cv_header_intl=intl/libintl.h
488         nls_cv_header_libgt=intl/libgettext.h
489       fi
490
491       dnl Test whether we really found GNU xgettext.
492       if test "$XGETTEXT" != ":"; then
493         dnl If it is no GNU xgettext we define it as : so that the
494         dnl Makefiles still can work.
495         if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
496           : ;
497         else
498           AC_MSG_RESULT(
499             [found xgettext program is not GNU xgettext; ignore it])
500           XGETTEXT=":"
501         fi
502       fi
503
504       # We need to process the po/ directory.
505       POSUB=po
506     else
507       DATADIRNAME=share
508       nls_cv_header_intl=intl/libintl.h
509       nls_cv_header_libgt=intl/libgettext.h
510     fi
511     AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
512     AC_OUTPUT_COMMANDS(
513      [case "$CONFIG_FILES" in *po/Makefile.in*)
514         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
515       esac])
516
517
518     # If this is used in GNU gettext we have to set USE_NLS to `yes'
519     # because some of the sources are only built for this goal.
520     if test "$PACKAGE" = gettext; then
521       USE_NLS=yes
522       USE_INCLUDED_LIBINTL=yes
523     fi
524
525     dnl These rules are solely for the distribution goal.  While doing this
526     dnl we only have to keep exactly one list of the available catalogs
527     dnl in configure.in.
528     for lang in $ALL_LINGUAS; do
529       GMOFILES="$GMOFILES $lang.gmo"
530       POFILES="$POFILES $lang.po"
531     done
532
533     dnl Make all variables we use known to autoconf.
534     AC_SUBST(USE_INCLUDED_LIBINTL)
535     AC_SUBST(CATALOGS)
536     AC_SUBST(CATOBJEXT)
537     AC_SUBST(DATADIRNAME)
538     AC_SUBST(GMOFILES)
539     AC_SUBST(INSTOBJEXT)
540     AC_SUBST(INTLDEPS)
541     AC_SUBST(INTLLIBS)
542     AC_SUBST(INTLOBJS)
543     AC_SUBST(POFILES)
544     AC_SUBST(POSUB)
545   ])
546
547
548 AC_DEFUN(AM_GNU_GETTEXT,
549   [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
550    AC_REQUIRE([AC_PROG_CC])dnl
551    AC_REQUIRE([AC_PROG_RANLIB])dnl
552    AC_REQUIRE([AC_ISC_POSIX])dnl
553    AC_REQUIRE([AC_HEADER_STDC])dnl
554    AC_REQUIRE([AC_C_CONST])dnl
555    AC_REQUIRE([AC_C_INLINE])dnl
556    AC_REQUIRE([AC_TYPE_OFF_T])dnl
557    AC_REQUIRE([AC_TYPE_SIZE_T])dnl
558    AC_REQUIRE([AC_FUNC_ALLOCA])dnl
559    AC_REQUIRE([AC_FUNC_MMAP])dnl
560
561    AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
562 unistd.h sys/param.h])
563    AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
564 strdup __argz_count __argz_stringify __argz_next])
565
566    if test "${ac_cv_func_stpcpy+set}" != "set"; then
567      AC_CHECK_FUNCS(stpcpy)
568    fi
569    if test "${ac_cv_func_stpcpy}" = "yes"; then
570      AC_DEFINE(HAVE_STPCPY)
571    fi
572
573    AM_LC_MESSAGES
574    AM_WITH_NLS
575
576    if test "x$CATOBJEXT" != "x"; then
577      if test "x$ALL_LINGUAS" = "x"; then
578        LINGUAS=
579      else
580        AC_MSG_CHECKING(for catalogs to be installed)
581        NEW_LINGUAS=
582        for lang in ${LINGUAS=$ALL_LINGUAS}; do
583          case "$ALL_LINGUAS" in
584           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
585          esac
586        done
587        LINGUAS=$NEW_LINGUAS
588        AC_MSG_RESULT($LINGUAS)
589      fi
590
591      dnl Construct list of names of catalog files to be constructed.
592      if test -n "$LINGUAS"; then
593        for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
594      fi
595    fi
596
597    dnl The reference to <locale.h> in the installed <libintl.h> file
598    dnl must be resolved because we cannot expect the users of this
599    dnl to define HAVE_LOCALE_H.
600    if test $ac_cv_header_locale_h = yes; then
601      INCLUDE_LOCALE_H="#include <locale.h>"
602    else
603      INCLUDE_LOCALE_H="\
604 /* The system does not provide the header <locale.h>.  Take care yourself.  */"
605    fi
606    AC_SUBST(INCLUDE_LOCALE_H)
607
608    dnl Determine which catalog format we have (if any is needed)
609    dnl For now we know about two different formats:
610    dnl   Linux libc-5 and the normal X/Open format
611    test -d intl || mkdir intl
612    if test "$CATOBJEXT" = ".cat"; then
613      AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
614
615      dnl Transform the SED scripts while copying because some dumb SEDs
616      dnl cannot handle comments.
617      sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
618    fi
619    dnl po2tbl.sed is always needed.
620    sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
621      $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
622
623    dnl In the intl/Makefile.in we have a special dependency which makes
624    dnl only sense for gettext.  We comment this out for non-gettext
625    dnl packages.
626    if test "$PACKAGE" = "gettext"; then
627      GT_NO="#NO#"
628      GT_YES=
629    else
630      GT_NO=
631      GT_YES="#YES#"
632    fi
633    AC_SUBST(GT_NO)
634    AC_SUBST(GT_YES)
635
636    dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
637    dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
638    dnl Try to locate is.
639    MKINSTALLDIRS=
640    if test -n "$ac_aux_dir"; then
641      MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
642    fi
643    if test -z "$MKINSTALLDIRS"; then
644      MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
645    fi
646    AC_SUBST(MKINSTALLDIRS)
647
648    dnl *** For now the libtool support in intl/Makefile is not for real.
649    l=
650    AC_SUBST(l)
651
652    dnl Generate list of files to be processed by xgettext which will
653    dnl be included in po/Makefile.
654    test -d po || mkdir po
655    if test "x$srcdir" != "x."; then
656      if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
657        posrcprefix="$srcdir/"
658      else
659        posrcprefix="../$srcdir/"
660      fi
661    else
662      posrcprefix="../"
663    fi
664    rm -f po/POTFILES
665    sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
666         < $srcdir/po/POTFILES.in > po/POTFILES
667   ])
668
669 dnl *-*wedit:notab*-*  Please keep this as the last line.