X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=d5a6cd8b6f4def22ff16e2a1e93ff6e063efd902;hb=f220cc512fdc7f885e60d656ba7ba0d9f2e67611;hp=c0338fbd93011bbbb31c653856d20edae227609d;hpb=aca2e347e7904c3e2ef1dac083420ff2f0aeea38;p=ghc-hetmet.git
diff --git a/aclocal.m4 b/aclocal.m4
index c0338fb..d5a6cd8 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -205,7 +205,9 @@ struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}};
#endif
-int main()
+int main(argc, argv)
+int argc;
+char **argv;
{
#ifdef HAVE_NLIST_H
if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0)
@@ -493,8 +495,8 @@ AC_CACHE_CHECK([whether $fp_prog_ar_raw supports -input], [fp_cv_prog_ar_support
if test $fp_prog_ar_is_gnu = no; then
rm -f conftest*
touch conftest.lst
- if $fp_prog_ar_raw $fp_prog_ar_args conftest.a -input conftest.lst > /dev/null 2> /dev/null; then
- fp_cv_prog_ar_supports_input=yes
+ if FP_EVAL_STDERR([$fp_prog_ar_raw $fp_prog_ar_args conftest.a -input conftest.lst]) >/dev/null; then
+ test -s conftest.err || fp_cv_prog_ar_supports_input=yes
fi
rm -f conftest*
fi])
@@ -910,14 +912,66 @@ fi
])# FP_CHECK_DOCBOOK_DTD
+# FP_GEN_FO
+# ------------------
+# Generates a formatting objects document in conftest.fo.
+AC_DEFUN([FP_GEN_FO],
+[rm -f conftest.fo
+cat > conftest.fo << EOF
+
+
+
+
+
+
+
+
+
+
+ Test!
+
+
+
+
+EOF
+]) # FP_GEN_FO
+
+
+# FP_PROG_FOP
+# -----------
+# Set the output variable 'FopCmd' to the first working 'fop' in the current
+# 'PATH'. Note that /usr/bin/fop is broken in SuSE 9.1 (unpatched), so try
+# /usr/share/fop/fop.sh in that case (or no 'fop'), too.
+AC_DEFUN([FP_PROG_FOP],
+[AC_PATH_PROGS([FopCmd1], [fop])
+if test -n "$FopCmd1"; then
+ AC_CACHE_CHECK([for $FopCmd1 usability], [fp_cv_fop_usability],
+ [FP_GEN_FO
+ if "$FopCmd1" -fo conftest.fo -ps conftest.ps > /dev/null 2>&1; then
+ fp_cv_fop_usability=yes
+ else
+ fp_cv_fop_usability=no
+ fi
+ rm -rf conftest*])
+ if test x"$fp_cv_fop_usability" = xyes; then
+ FopCmd=$FopCmd1
+ fi
+fi
+if test -z "$FopCmd"; then
+ AC_PATH_PROGS([FopCmd2], [fop.sh], , [/usr/share/fop])
+ FopCmd=$FopCmd2
+fi
+AC_SUBST([FopCmd])
+])# FP_PROG_FOP
+
+
# FP_PROG_FO_PROCESSOR
# --------------------
# Try to find an FO processor. PassiveTeX output is sometimes a bit strange, so
-# try FOP first. Furthermore, /usr/bin/fop is broken in SuSE 9.1, so try the
-# "real" fop.sh first. Sets the output variables FopCmd, XmltexCmd, DvipsCmd,
-# and PdfxmltexCmd.
+# try FOP first. Sets the output variables FopCmd, XmltexCmd, DvipsCmd, and
+# PdfxmltexCmd.
AC_DEFUN([FP_PROG_FO_PROCESSOR],
-[AC_PATH_PROGS([FopCmd], [fop.sh fop], [], [$PATH:/usr/share/fop])
+[AC_REQUIRE([FP_PROG_FOP])
AC_PATH_PROG([XmltexCmd], [xmltex])
AC_PATH_PROG([DvipsCmd], [dvips])
if test -z "$FopCmd"; then
@@ -1173,100 +1227,4 @@ fi
])
-dnl @synopsis FP_READDIR_EOF_ERRNO
-dnl
-dnl Check what readdir() sets 'errno' to upon reaching
-dnl end of directory; not setting it is the correct thing to do,
-dnl but mingw based versions have set it to ENOENT until recently
-dnl (summer 2004).
-dnl
-dnl
-AC_DEFUN(FP_READDIR_EOF_ERRNO,
-[AC_CACHE_CHECK([what readdir sets errno to upon EOF], fptools_cv_readdir_eof_errno,
-[AC_TRY_RUN([#include
-#include
-#include
-int
-main(argc, argv)
-int argc;
-char **argv;
-{
- FILE *f=fopen("conftestval", "w");
-#if defined(__MINGW32__)
- int fd = mkdir("testdir");
-#else
- int fd = mkdir("testdir", 0666);
-#endif
- DIR* dp;
- struct dirent* de;
- int err = 0;
-
- if (!f) return 1;
- if (fd == -1) {
- fprintf(stderr,"unable to create directory; quitting.\n");
- return 1;
- }
- close(fd);
- dp = opendir("testdir");
- if (!dp) {
- fprintf(stderr,"unable to browse directory; quitting.\n");
- rmdir("testdir");
- return 1;
- }
-
- /* the assumption here is that readdir() will only return NULL
- * due to reaching the end of the directory.
- */
- while (de = readdir(dp)) {
- ;
- }
- err = errno;
- fprintf(f,"%d", err);
- fclose(f);
- closedir(de);
- rmdir("testdir");
- return 0;
-}],fptools_cv_readdir_eof_errno=`cat conftestval`, fptools_cv_readdir_eof_errno=bogus, fptools_cv_readdir_eof_errno=0)])
-dnl the cross value is somewhat bogus.
-AC_DEFINE_UNQUOTED([READDIR_ERRNO_EOF], [$fptools_cv_readdir_eof_errno], [readdir() sets errno to this upon EOF])
-])
-
-dnl @synopsis FP_DIRENT_FLAT_LAYOUT
-dnl
-dnl Check whether 'struct dirent' (in dirent.h) has d_name defined
-dnl as being the final field in a struct, or a pointer to somewhere
-dnl else. The former is the standardly thing to do, but mingw defns
-dnl have for the longest time gone for the latter. They no longer do,
-dnl hence the need to configure test for this.
-dnl
-dnl
-AC_DEFUN(FP_DIRENT_FLAT_LAYOUT,
-[AC_CACHE_CHECK([if struct dirent layout is flat], fptools_cv_dirent_flat_layout,
-[AC_TRY_RUN([#include
-#include
-#include
-int
-main(argc, argv)
-int argc;
-char **argv;
-{
- struct dirent de;
- /*
- * Check whether d_name is defined as
- * struct dirent { .... ; char d_name[..]; }
- * or
- * struct dirent { .... ; char* d_name; }
- *
- * Returns 0 if the former.
- */
- memset(&de,0,sizeof(struct dirent));
- return ((int)de.d_name == 0);
-}],fptools_cv_dirent_flat_layout=yes, fptools_cv_dirent_flat_layout=no, fptools_cv_dirent_flat_layout=yes)])
-dnl the cross value is somewhat bogus.
-if test "$fptools_cv_dirent_flat_layout" = yes; then
-AC_DEFINE([STRUCT_DIRENT_FLAT_LAYOUT], [1], [Define to 1 if struct dirent is a flat structure])
-fi
-])
-
-
# LocalWords: fi