496624c899756e08d8722ee97c5a13f5a4483751
[gnupg.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
207           freebsd2* | osf4* )
208             CFLAGS_RDYNAMIC=""
209             ;;
210           * )
211             CFLAGS_RDYNAMIC="-Wl,-export-dynamic"
212             ;;
213         esac
214         AC_MSG_RESULT($CFLAGS_RDYNAMIC)
215     fi
216   ])
217
218
219 #####################################################################
220 # Check for SysV IPC  (from GIMP)
221 #   And see whether we have a SHM_LOCK (FreeBSD does not have it).
222 #####################################################################
223 dnl GNUPG_CHECK_IPC
224 dnl
225 define(GNUPG_CHECK_IPC,
226    [ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
227      if test "$ac_cv_header_sys_shm_h" = "yes"; then
228        AC_MSG_CHECKING(whether IPC_RMID allowes subsequent attaches)
229        AC_CACHE_VAL(gnupg_cv_ipc_rmid_deferred_release,
230           AC_TRY_RUN([
231              #include <sys/types.h>
232              #include <sys/ipc.h>
233              #include <sys/shm.h>
234              int main()
235              {
236                int id;
237                char *shmaddr;
238              id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
239              if (id == -1)
240                exit (2);
241                shmaddr = shmat (id, 0, 0);
242                shmctl (id, IPC_RMID, 0);
243                if ((char*) shmat (id, 0, 0) == (char*) -1)
244                {
245                  shmdt (shmaddr);
246                  exit (1);
247                }
248                shmdt (shmaddr);
249                shmdt (shmaddr);
250                exit (0);
251              }
252          ],
253          gnupg_cv_ipc_rmid_deferred_release="yes",
254          gnupg_cv_ipc_rmid_deferred_release="no",
255          gnupg_cv_ipc_rmid_deferred_release="assume-no")
256        )
257        if test "$gnupg_cv_ipc_rmid_deferred_release" = "yes"; then
258            AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
259            AC_MSG_RESULT(yes)
260        else
261           if test "$gnupg_cv_ipc_rmid_deferred_release" = "no"; then
262               AC_MSG_RESULT(no)
263           else
264               AC_MSG_RESULT([assuming no])
265           fi
266        fi
267
268        AC_MSG_CHECKING(whether SHM_LOCK is available)
269        AC_CACHE_VAL(gnupg_cv_ipc_have_shm_lock,
270           AC_TRY_COMPILE([#include <sys/types.h>
271              #include <sys/ipc.h>
272              #include <sys/shm.h>],[
273              int foo( int shm_id ) {  shmctl(shm_id, SHM_LOCK, 0); }
274              ],
275              gnupg_cv_ipc_have_shm_lock="yes",
276              gnupg_cv_ipc_have_shm_lock="no"
277           )
278        )
279        if test "$gnupg_cv_ipc_have_shm_lock" = "yes"; then
280          AC_DEFINE(IPC_HAVE_SHM_LOCK)
281          AC_MSG_RESULT(yes)
282        else
283          AC_MSG_RESULT(no)
284        fi
285      fi
286    ])
287
288
289 ######################################################################
290 # Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
291 # is not called from uid 0 (not tested whether uid 0 works)
292 ######################################################################
293 dnl GNUPG_CHECK_MLOCK
294 dnl
295 define(GNUPG_CHECK_MLOCK,
296   [ AC_CHECK_FUNCS(mlock)
297     if test "$ac_cv_func_mlock" = "yes"; then
298         AC_MSG_CHECKING(whether mlock is broken)
299           AC_CACHE_VAL(gnupg_cv_have_broken_mlock,
300              AC_TRY_RUN([
301                 #include <stdlib.h>
302                 #include <unistd.h>
303                 #include <errno.h>
304                 #include <sys/mman.h>
305                 #include <sys/types.h>
306                 #include <fcntl.h>
307
308                 int main()
309                 {
310                     char *pool;
311                     int err;
312                     long int pgsize = getpagesize();
313
314                     pool = malloc( 4096 + pgsize );
315                     if( !pool )
316                         return 2;
317                     pool += (pgsize - ((long int)pool % pgsize));
318
319                     err = mlock( pool, 4096 );
320                     if( !err || errno == EPERM )
321                         return 0; /* okay */
322
323                     return 1;  /* hmmm */
324                 }
325
326             ],
327             gnupg_cv_have_broken_mlock="no",
328             gnupg_cv_have_broken_mlock="yes",
329             gnupg_cv_have_broken_mlock="assume-no"
330            )
331          )
332          if test "$gnupg_cv_have_broken_mlock" = "yes"; then
333              AC_DEFINE(HAVE_BROKEN_MLOCK)
334              AC_MSG_RESULT(yes)
335          else
336             if test "$gnupg_cv_have_broken_mlock" = "no"; then
337                 AC_MSG_RESULT(no)
338             else
339                 AC_MSG_RESULT(assuming no)
340             fi
341          fi
342     fi
343   ])
344
345
346
347
348
349
350
351
352 # Macro to add for using GNU gettext.
353 # Ulrich Drepper <drepper@cygnus.com>, 1995.
354 #
355 # This file can be copied and used freely without restrictions.  It can
356 # be used in projects which are not available under the GNU Public License
357 # but which still want to provide support for the GNU gettext functionality.
358 # Please note that the actual code is *not* freely available.
359
360 # serial 5 + patch (wk 21.10.98)
361
362 AC_DEFUN(AM_WITH_NLS,
363   [AC_MSG_CHECKING([whether NLS is requested])
364     dnl Default is enabled NLS
365     AC_ARG_ENABLE(nls,
366       [  --disable-nls           do not use Native Language Support],
367       USE_NLS=$enableval, USE_NLS=yes)
368     AC_MSG_RESULT($USE_NLS)
369     AC_SUBST(USE_NLS)
370
371     USE_INCLUDED_LIBINTL=no
372
373     dnl If we use NLS figure out what method
374     if test "$USE_NLS" = "yes"; then
375       AC_DEFINE(ENABLE_NLS)
376       AC_MSG_CHECKING([whether included gettext is requested])
377       AC_ARG_WITH(included-gettext,
378         [  --with-included-gettext use the GNU gettext library included here],
379         nls_cv_force_use_gnu_gettext=$withval,
380         nls_cv_force_use_gnu_gettext=no)
381       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
382
383       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
384       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
385         dnl User does not insist on using GNU NLS library.  Figure out what
386         dnl to use.  If gettext or catgets are available (in this order) we
387         dnl use this.  Else we have to fall back to GNU NLS library.
388         dnl catgets is only used if permitted by option --with-catgets.
389         nls_cv_header_intl=
390         nls_cv_header_libgt=
391         CATOBJEXT=NONE
392
393         AC_CHECK_HEADER(libintl.h,
394           [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
395             [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
396                gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
397
398            if test "$gt_cv_func_gettext_libc" != "yes"; then
399              AC_CHECK_LIB(intl, bindtextdomain,
400                [AC_CHECK_LIB(intl, gettext,
401                  gt_cv_func_gettext_libintl=yes,
402                  gt_cv_func_gettext_libintl=no)])
403            fi
404
405            if test "$gt_cv_func_gettext_libintl" = "yes" ; then
406              LIBS="-lintl $LIBS"
407            fi
408
409            if test "$gt_cv_func_gettext_libc" = "yes" \
410               || test "$gt_cv_func_gettext_libintl" = "yes"; then
411               AC_DEFINE(HAVE_GETTEXT)
412               AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
413                 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
414               if test "$MSGFMT" != "no"; then
415                 AC_CHECK_FUNCS(dcgettext)
416                 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
417                 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
418                   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
419                 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
420                                return _nl_msg_cat_cntr],
421                   [CATOBJEXT=.gmo
422                    DATADIRNAME=share],
423                   [CATOBJEXT=.mo
424                    DATADIRNAME=lib])
425                 INSTOBJEXT=.mo
426               fi
427             fi
428         ])
429
430         if test "$CATOBJEXT" = "NONE"; then
431           AC_MSG_CHECKING([whether catgets can be used])
432           AC_ARG_WITH(catgets,
433             [  --with-catgets          use catgets functions if available],
434             nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
435           AC_MSG_RESULT($nls_cv_use_catgets)
436
437           if test "$nls_cv_use_catgets" = "yes"; then
438             dnl No gettext in C library.  Try catgets next.
439             AC_CHECK_LIB(i, main)
440             AC_CHECK_FUNC(catgets,
441               [AC_DEFINE(HAVE_CATGETS)
442                INTLOBJS="\$(CATOBJS)"
443                AC_PATH_PROG(GENCAT, gencat, no)dnl
444                if test "$GENCAT" != "no"; then
445                  AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
446                  if test "$GMSGFMT" = "no"; then
447                    AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
448                     [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
449                  fi
450                  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
451                    [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
452                  USE_INCLUDED_LIBINTL=yes
453                  CATOBJEXT=.cat
454                  INSTOBJEXT=.cat
455                  DATADIRNAME=lib
456                  INTLDEPS='$(top_builddir)/intl/libintl.a'
457                  INTLLIBS=$INTLDEPS
458                  LIBS=`echo $LIBS | sed -e 's/-lintl//'`
459                  nls_cv_header_intl=intl/libintl.h
460                  nls_cv_header_libgt=intl/libgettext.h
461                fi])
462           fi
463         fi
464
465         if test "$CATOBJEXT" = "NONE"; then
466           dnl Neither gettext nor catgets in included in the C library.
467           dnl Fall back on GNU gettext library.
468           nls_cv_use_gnu_gettext=yes
469         fi
470       fi
471
472       if test "$nls_cv_use_gnu_gettext" = "yes"; then
473         dnl Mark actions used to generate GNU NLS library.
474         INTLOBJS="\$(GETTOBJS)"
475         AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
476           [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
477         AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
478         AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
479           [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
480         AC_SUBST(MSGFMT)
481         USE_INCLUDED_LIBINTL=yes
482         CATOBJEXT=.gmo
483         INSTOBJEXT=.mo
484         DATADIRNAME=share
485         INTLDEPS='$(top_builddir)/intl/libintl.a'
486         INTLLIBS=$INTLDEPS
487         LIBS=`echo $LIBS | sed -e 's/-lintl//'`
488         nls_cv_header_intl=intl/libintl.h
489         nls_cv_header_libgt=intl/libgettext.h
490       fi
491
492       dnl Test whether we really found GNU xgettext.
493       if test "$XGETTEXT" != ":"; then
494         dnl If it is no GNU xgettext we define it as : so that the
495         dnl Makefiles still can work.
496         if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
497           : ;
498         else
499           AC_MSG_RESULT(
500             [found xgettext program is not GNU xgettext; ignore it])
501           XGETTEXT=":"
502         fi
503       fi
504
505       # We need to process the po/ directory.
506       POSUB=po
507     else
508       DATADIRNAME=share
509       nls_cv_header_intl=intl/libintl.h
510       nls_cv_header_libgt=intl/libgettext.h
511     fi
512     AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
513     AC_OUTPUT_COMMANDS(
514      [case "$CONFIG_FILES" in *po/Makefile.in*)
515         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
516       esac])
517
518
519     # If this is used in GNU gettext we have to set USE_NLS to `yes'
520     # because some of the sources are only built for this goal.
521     if test "$PACKAGE" = gettext; then
522       USE_NLS=yes
523       USE_INCLUDED_LIBINTL=yes
524     fi
525
526     dnl These rules are solely for the distribution goal.  While doing this
527     dnl we only have to keep exactly one list of the available catalogs
528     dnl in configure.in.
529     for lang in $ALL_LINGUAS; do
530       GMOFILES="$GMOFILES $lang.gmo"
531       POFILES="$POFILES $lang.po"
532     done
533
534     dnl Make all variables we use known to autoconf.
535     AC_SUBST(USE_INCLUDED_LIBINTL)
536     AC_SUBST(CATALOGS)
537     AC_SUBST(CATOBJEXT)
538     AC_SUBST(DATADIRNAME)
539     AC_SUBST(GMOFILES)
540     AC_SUBST(INSTOBJEXT)
541     AC_SUBST(INTLDEPS)
542     AC_SUBST(INTLLIBS)
543     AC_SUBST(INTLOBJS)
544     AC_SUBST(POFILES)
545     AC_SUBST(POSUB)
546   ])
547
548
549 AC_DEFUN(AM_GNU_GETTEXT,
550   [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
551    AC_REQUIRE([AC_PROG_CC])dnl
552    AC_REQUIRE([AC_PROG_RANLIB])dnl
553    AC_REQUIRE([AC_ISC_POSIX])dnl
554    AC_REQUIRE([AC_HEADER_STDC])dnl
555    AC_REQUIRE([AC_C_CONST])dnl
556    AC_REQUIRE([AC_C_INLINE])dnl
557    AC_REQUIRE([AC_TYPE_OFF_T])dnl
558    AC_REQUIRE([AC_TYPE_SIZE_T])dnl
559    AC_REQUIRE([AC_FUNC_ALLOCA])dnl
560    AC_REQUIRE([AC_FUNC_MMAP])dnl
561
562    AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
563 unistd.h sys/param.h])
564    AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
565 strdup __argz_count __argz_stringify __argz_next])
566
567    if test "${ac_cv_func_stpcpy+set}" != "set"; then
568      AC_CHECK_FUNCS(stpcpy)
569    fi
570    if test "${ac_cv_func_stpcpy}" = "yes"; then
571      AC_DEFINE(HAVE_STPCPY)
572    fi
573
574    AM_LC_MESSAGES
575    AM_WITH_NLS
576
577    if test "x$CATOBJEXT" != "x"; then
578      if test "x$ALL_LINGUAS" = "x"; then
579        LINGUAS=
580      else
581        AC_MSG_CHECKING(for catalogs to be installed)
582        NEW_LINGUAS=
583        for lang in ${LINGUAS=$ALL_LINGUAS}; do
584          case "$ALL_LINGUAS" in
585           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
586          esac
587        done
588        LINGUAS=$NEW_LINGUAS
589        AC_MSG_RESULT($LINGUAS)
590      fi
591
592      dnl Construct list of names of catalog files to be constructed.
593      if test -n "$LINGUAS"; then
594        for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
595      fi
596    fi
597
598    dnl The reference to <locale.h> in the installed <libintl.h> file
599    dnl must be resolved because we cannot expect the users of this
600    dnl to define HAVE_LOCALE_H.
601    if test $ac_cv_header_locale_h = yes; then
602      INCLUDE_LOCALE_H="#include <locale.h>"
603    else
604      INCLUDE_LOCALE_H="\
605 /* The system does not provide the header <locale.h>.  Take care yourself.  */"
606    fi
607    AC_SUBST(INCLUDE_LOCALE_H)
608
609    dnl Determine which catalog format we have (if any is needed)
610    dnl For now we know about two different formats:
611    dnl   Linux libc-5 and the normal X/Open format
612    test -d intl || mkdir intl
613    if test "$CATOBJEXT" = ".cat"; then
614      AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
615
616      dnl Transform the SED scripts while copying because some dumb SEDs
617      dnl cannot handle comments.
618      sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
619    fi
620    dnl po2tbl.sed is always needed.
621    sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
622      $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
623
624    dnl In the intl/Makefile.in we have a special dependency which makes
625    dnl only sense for gettext.  We comment this out for non-gettext
626    dnl packages.
627    if test "$PACKAGE" = "gettext"; then
628      GT_NO="#NO#"
629      GT_YES=
630    else
631      GT_NO=
632      GT_YES="#YES#"
633    fi
634    AC_SUBST(GT_NO)
635    AC_SUBST(GT_YES)
636
637    dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
638    dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
639    dnl Try to locate is.
640    MKINSTALLDIRS=
641    if test -n "$ac_aux_dir"; then
642      MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
643    fi
644    if test -z "$MKINSTALLDIRS"; then
645      MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
646    fi
647    AC_SUBST(MKINSTALLDIRS)
648
649    dnl *** For now the libtool support in intl/Makefile is not for real.
650    l=
651    AC_SUBST(l)
652
653    dnl Generate list of files to be processed by xgettext which will
654    dnl be included in po/Makefile.
655    test -d po || mkdir po
656    if test "x$srcdir" != "x."; then
657      if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
658        posrcprefix="$srcdir/"
659      else
660        posrcprefix="../$srcdir/"
661      fi
662    else
663      posrcprefix="../"
664    fi
665    rm -f po/POTFILES
666    sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
667         < $srcdir/po/POTFILES.in > po/POTFILES
668   ])
669
670 dnl *-*wedit:notab*-*  Please keep this as the last line.