]> git.donarmstrong.com Git - lilypond.git/blob - stepmake/aclocal.m4
release: 1.1.0
[lilypond.git] / stepmake / aclocal.m4
1 dnl aclocal.m4   -*-shell-script-*-
2 dnl StepMake subroutines for configure.in
3
4 AC_DEFUN(AC_STEPMAKE_COMPILE, [
5     # -O is necessary to get inlining
6     OPTIMIZE=""
7     CXXFLAGS=${CXXFLAGS:-""}
8     CFLAGS=${CFLAGS:-""}
9     checking_b=yes
10     optimise_b=no
11     profile_b=no
12     debug_b=yes
13
14     AC_ARG_ENABLE(checking,
15     [  enable-checking         set runtime checks (assert calls). Default: on],
16     [checking_b=$enableval] )
17
18     # actually, the default is: tja='-O' to get inlining...
19     # off=''  --jcn
20
21     #actually, that sucks.
22     #  tja looks like a typo.  Default is optimisation off. --hwn
23     
24     AC_ARG_ENABLE(optimise,
25     [  enable-optimise         use maximal speed optimisations. Default: off],
26     [optimise_b=$enableval])
27     
28     AC_ARG_ENABLE(profiling, 
29     [  enable-profiling        compile with gprof support. Default: off],
30     [profile_b=$enableval])
31     
32     AC_ARG_ENABLE(debugging,
33     [  enable-debugging        set debug info. Default: on],
34     [debug_b=$enableval])
35
36     AC_ARG_ENABLE(mingw-prefix,
37     [  enable-mingw-prefix=DIR set the mingw32 directory (standalone windows32 exes)],
38     [MINGWPREFIX=$enableval],
39     [MINGWPREFIX=no])
40
41     if test "$printing_b" = no; then
42         # ugh
43         AC_DEFINE(NPRINT)
44         DEFINES="$DEFINES -DNPRINT"
45     fi
46         
47     if test "$checking_b" = no; then
48         # ugh
49         AC_DEFINE(NDEBUG)
50         DEFINES="$DEFINES -DNDEBUG"
51     fi
52
53     if test "$optimise_b" = yes; then
54         OPTIMIZE="-O2 -finline-functions"
55     fi
56
57     if test "$optimise_b" = no; then
58         OPTIMIZE=""
59     fi
60
61     if test $profile_b = yes; then
62         EXTRA_LIBES="-pg"
63         OPTIMIZE="$OPTIMIZE -pg"
64     fi
65
66     if test $debug_b = yes; then        
67         OPTIMIZE="$OPTIMIZE -g"
68     fi
69
70     # however, C++ support in mingw32 v 0.1.4 is still flaky
71     if test x$MINGWPREFIX != xno; then 
72         ICFLAGS="-I$MINGWPREFIX/include"
73         ILDFLAGS="-$MINGWPREFIX/lib"
74     fi
75
76     AC_PROG_CC
77     LD='$(CC)'
78     AC_SUBST(LD)
79
80     CPPFLAGS=${CPPFLAGS:-""}
81     AC_SUBST(CPPFLAGS)
82     AC_SUBST(LDFLAGS)
83     AC_SUBST(ICFLAGS)
84     AC_SUBST(ILDFLAGS)
85     AC_SUBST(DEFINES)
86     AC_SUBST(EXTRA_LIBES)
87 ])
88
89 AC_DEFUN(AC_STEPMAKE_CXX, [
90     AC_LANG_CPLUSPLUS
91     AC_PROG_CXX
92
93     AC_CHECK_HEADER(FlexLexer.h, true,
94         AC_STEPMAKE_WARN(can"\'"t find flex header. Please install Flex headers correctly))
95
96     CPPFLAGS="$CPPFLAGS $DEFINES"
97     CXXFLAGS="$CXXFLAGS $OPTIMIZE"
98     LDFLAGS=$EXTRA_LIBES
99
100     AC_SUBST(CXXFLAGS)
101     AC_SUBST(CXX)
102     LD='$(CXX)'
103     AC_SUBST(LD)
104 ])
105
106 AC_DEFUN(AC_STEPMAKE_CXXTEMPLATE, [
107     AC_CACHE_CHECK([whether explicit instantiation is needed],
108         lily_cv_need_explicit_instantiation,
109         AC_TRY_LINK([
110     template <class T> struct foo { static int baz; };
111     template <class T> int foo<T>::baz = 1;
112     ], [ return foo<int>::baz; ],
113             lily_cv_need_explicit_instantiation=no,
114             lily_cv_need_explicit_instantiation=yes))
115     if test x"$lily_cv_need_explicit_instantiation"x = x"yes"x; then
116         AC_DEFINE(NEED_EXPLICIT_INSTANTIATION)
117     fi
118 ])
119
120 AC_DEFUN(AC_STEPMAKE_DATADIR, [
121     if test "$datadir" = "\${prefix}/share"; then
122             datadir='${prefix}/share/'$package
123     fi
124     DIR_DATADIR=${datadir}
125     presome=${prefix}
126     if test "$prefix" = "NONE"; then
127             presome=${ac_default_prefix}
128     fi
129     DIR_DATADIR=`echo ${DIR_DATADIR} | sed "s!\\\${prefix}!$presome!"`
130     AC_SUBST(datadir)
131     AC_SUBST(DIR_DATADIR)
132     AC_DEFINE_UNQUOTED(DIR_DATADIR, "${DIR_DATADIR}")
133 ])
134
135 AC_DEFUN(AC_STEPMAKE_END, [
136     AC_OUTPUT($CONFIGFILE.make:config.make.in)
137
138     rm -f GNUmakefile
139     cp make/toplevel.make.in ./GNUmakefile
140     chmod 444 GNUmakefile
141 ])
142
143 AC_DEFUN(AC_STEPMAKE_GXX, [
144     # ugh autoconf
145     changequote(<<, >>)dnl
146     if $CXX --version | grep '2\.[78]' > /dev/null ||
147         $CXX --version | grep 'egcs' > /dev/null
148     changequote([, ])dnl
149     then
150             true
151     else
152             AC_STEPMAKE_WARN(can\'t find g++ 2.7, 2.8 or egcs)
153     fi
154 ])
155
156 AC_DEFUN(AC_STEPMAKE_GUILE, [
157     # urg, must check for different functions in libguile
158     # to force new check iso reading from cache
159     AC_CHECK_LIB(guile, scm_shell, \
160       LIBS="-lguile $LIBS" AC_DEFINE(HAVE_LIBGUILE), \
161       AC_CHECK_LIB(readline, readline) \
162       AC_CHECK_LIB(dl, dlopen) \
163       AC_CHECK_LIB(guile, scm_boot_guile))
164 ])
165
166 AC_DEFUN(AC_STEPMAKE_INIT, [
167
168     . $srcdir/VERSION
169     FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
170     if test x$MY_PATCH_LEVEL != x; then
171         FULL_VERSION=$FULL_VERSION.$MY_PATCH_LEVEL
172     fi
173
174     # urg: don't "fix" this: irix doesn't know about [:lower:] and [:upper:]
175     changequote(<<, >>)dnl
176     PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'`
177     package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
178     changequote([, ])dnl
179
180     # No versioning on directory names of sub-packages 
181     # urg, urg
182     stepmake=${datadir}/stepmake
183     presome=${prefix}
184     if test "$prefix" = "NONE"; then
185             presome=${ac_default_prefix}
186     fi
187     stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
188
189     if test "x$PACKAGE" = "xSTEPMAKE"; then
190         echo Stepmake package!
191         (cd stepmake; rm -f stepmake; ln -s ../stepmake .)
192         (cd stepmake; rm -f bin; ln -s ../bin .)
193         AC_CONFIG_AUX_DIR(bin)
194         stepmake=stepmake
195     else
196         echo Package: $PACKAGE
197         # Check for installed stepmake
198         if test -d $stepmake; then
199             echo Using installed stepmake: $stepmake
200         else
201             stepmake='$(depth)'/stepmake
202             echo Using local stepmake: $datadir/stepmake not found
203         fi
204         AC_CONFIG_AUX_DIR(\
205           $HOME/usr/local/share/stepmake/bin\
206           $HOME/usr/local/lib/stepmake/bin\
207           $HOME/usr/share/stepmake/bin\
208           $HOME/usr/lib/stepmake/bin\
209           /usr/local/share/stepmake/bin\
210           /usr/local/lib/stepmake/bin\
211           /usr/share/stepmake/bin\
212           /usr/lib/stepmake/bin\
213           stepmake/bin\
214         )
215     fi
216
217     AC_SUBST(stepmake)
218     AC_SUBST(package)
219     AC_SUBST(PACKAGE)
220     AC_SUBST(PACKAGE_NAME)
221     AC_DEFINE_UNQUOTED(PACKAGE, "${PACKAGE_NAME}")
222     AC_DEFINE_UNQUOTED(TOPLEVEL_VERSION, "${FULL_VERSION}")
223
224     package_depth=`dirname $cache_file`
225     AC_SUBST(package_depth)
226
227     AUTOGENERATE="This file was automatically generated by configure"
228     AC_SUBST(AUTOGENERATE)
229     absolute_builddir="`pwd`"
230     AC_SUBST(absolute_builddir)
231
232     STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
233     if test "x$STATE_VECTOR" != "x"; then
234         STATE_VECTOR="\$(depth)/$STATE_VECTOR"
235     fi
236     AC_SUBST(STATE_VECTOR)
237
238     CONFIGSUFFIX=
239     AC_ARG_ENABLE(config,
240     [  enable-config=FILE      put configure settings in config-FILE.make],
241     [CONFIGSUFFIX=$enableval])
242
243     if test "$CONFIGSUFFIX" != "" ; then
244         CONFIGFILE=config-$CONFIGSUFFIX
245     else
246         CONFIGFILE=config
247     fi
248     AC_SUBST(CONFIGSUFFIX)
249      
250     AC_CANONICAL_HOST
251     AC_CHECK_PROGS(MAKE, make, error)
252     AC_CHECK_PROGS(FIND, find, error)
253
254
255 dnl system supplied INSTALL is unsafe; use our own install.
256 dnl    AC_PROG_INSTALL
257 dnl    if test "$INSTALL" = "bin/install-sh"; then
258 dnl     export INSTALL="\$\(depth\)/bin/install-sh"
259 dnl    fi
260
261     AC_CHECK_PROGS(TAR, tar, error)
262     AC_CHECK_PROGS(BASH, bash, /bin/sh)
263
264     AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
265     AC_SUBST(PYTHON)
266
267
268     AC_CHECK_SEARCH_RESULT($MAKE, GNU make,  You should install GNU make)
269     if test $MAKE != "error" ; then
270         $MAKE -v| grep GNU > /dev/null
271         if test "$?" = 1
272         then
273                 AC_STEPMAKE_WARN(Please install *GNU* make) 
274         fi 
275     fi 
276
277     AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python)
278
279     if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then
280         LN=cp # hard link does not work under cygnus-nt
281         LN_S=cp # symbolic link does not work for native nt
282         ZIP="zip -r -9" #
283         DOTEXE=.exe
284        DIRSEP='\\'
285         PATHSEP=';'
286        INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
287     else
288         DIRSEP='/'
289         PATHSEP=':'
290         LN=ln
291         LN_S='ln -s'
292         ZIP="zip -r -9"
293         INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c"
294     fi
295     AC_SUBST(DOTEXE)
296     AC_SUBST(ZIP)
297     AC_SUBST(LN)
298     AC_SUBST(LN_S)
299     AC_SUBST(INSTALL)
300     AC_DEFINE_UNQUOTED(DIRSEP, '${DIRSEP}')
301     AC_DEFINE_UNQUOTED(PATHSEP, '${PATHSEP}')
302     AC_SUBST(PATHSEP)
303     AC_SUBST(DIRSEP)
304   
305    
306     AC_STEPMAKE_DATADIR
307 ])
308
309 AC_DEFUN(AC_STEPMAKE_LEXYACC, [
310     # ugh, automake: we want (and check for) bison
311     AC_PROG_YACC
312     # ugh, automake: we want (and check for) flex
313     # AC_PROG_LEX
314     # urg: automake 1.3: hope this doesn't break 1.2 ac_cv_pro_lex_root hack...
315
316     # AC_DECL_YYTEXT
317     # ugh, ugh
318     ac_cv_prog_lex_root=lex.yy
319
320     AC_CHECK_PROGS(BISON, bison, error)
321     AC_CHECK_PROGS(FLEX, flex, error)
322     AC_CHECK_SEARCH_RESULT($BISON, bison,  Please install Bison, 1.25 or better)
323     AC_CHECK_SEARCH_RESULT($FLEX,  flex, Please install Flex, 2.5 or better)
324
325     if test $BISON != "error"; then
326         bison_version=`$BISON --version| sed 's/^.*version 1.//g' `
327         if test $bison_version -lt 25; then
328             AC_STEPMAKE_WARN(Your bison is a bit old (1.$bison_version). You might have to install 1.25)
329         fi      
330     fi
331
332     AC_SUBST(BISON)
333     AC_SUBST(FLEX)
334 ])
335
336 AC_DEFUN(AC_STEPMAKE_LIB, [
337     AC_CHECK_PROGS(AR, ar, error)
338     AC_PROG_RANLIB
339
340     AC_SUBST(AR)
341     AC_SUBST(RANLIB)
342 ])
343
344 AC_DEFUN(AC_STEPMAKE_LIBTOOL, [
345     # libtool.info ...
346     # **Never** try to set library version numbers so that they correspond
347     # to the release number of your package.  This is an abuse that only
348     # fosters misunderstanding of the purpose of library versions.
349
350     REVISION=$PATCH_LEVEL
351     # CURRENT=$MINOR_VERSION
352     CURRENT=`expr $MINOR_VERSION + 1`
353     # AGE=$(expr $MAJOR_VERSION + 1)
354     AGE=$MAJOR_VERSION
355     AC_SUBST(CURRENT)
356     AC_SUBST(REVISION)
357     AC_SUBST(AGE)
358 ])
359
360 AC_DEFUN(AC_STEPMAKE_LOCALE, [
361     lang=English
362     ALL_LINGUAS="en nl"
363
364     # with/enable ??
365     AC_ARG_WITH(localedir,
366     [  with-localedir=LOCALE   use LOCALE as locale dir. Default: PREFIX/share/locale ],
367     localedir=$with_localedir,
368     localedir='${prefix}/share/locale')
369
370     AC_ARG_WITH(lang,
371     [  with-lang=LANG          use LANG as language to emit messages],
372     language=$with_lang,
373     language=English)
374
375     AC_MSG_CHECKING(language)    
376     case "$language" in
377       En* | en* | Am* | am* | US* | us*)
378             lang=English;;
379       NL | nl | Du* | du* | Ned* | ned*)
380             lang=Dutch;;
381       "")
382             lang=English;;
383       *)
384             lang=unknown;;
385     esac
386     AC_MSG_RESULT($lang)
387
388     if test "$lang" = "unknown" ; then
389         AC_STEPMAKE_WARN($language not supported; available are: $ALL_LINGUAS)
390     fi
391
392 ])
393
394 AC_DEFUN(AC_STEPMAKE_GETTEXT, [
395     DIR_LOCALEDIR=${localedir}
396     presome=${prefix}
397     if test "$prefix" = "NONE"; then
398             presome=${ac_default_prefix}
399     fi
400     DIR_LOCALEDIR=`echo ${DIR_LOCALEDIR} | sed "s!\\\${prefix}!$presome!"`
401     AC_SUBST(localedir)
402     AC_SUBST(DIR_LOCALEDIR)
403     AC_DEFINE_UNQUOTED(DIR_LOCALEDIR, "${DIR_LOCALEDIR}")
404
405     AC_CHECK_LIB(intl, gettext)
406     AC_CHECK_FUNCS(gettext)
407 ])
408
409 AC_DEFUN(AC_STEPMAKE_MAN, [
410     AC_CHECK_PROGS(TROFF, troff, -echo no troff)
411 ])
412
413 AC_DEFUN(AC_STEPMAKE_MSGFMT, [
414     # AC_CHECK_PROGS(MSGFMT, msgfmt, -echo no msgfmt)
415     AC_CHECK_PROGS(MSGFMT, msgfmt, \$(SHELL) \$(step-bindir)/fake-msgfmt.sh )
416     AC_MSG_CHECKING(whether msgfmt accepts -o)
417     msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`"
418     if test "$msgfmt_output" = ""; then
419         AC_MSG_RESULT(yes)
420     else
421         # urg
422         MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh"
423         AC_MSG_RESULT(no)
424         AC_STEPMAKE_WARN(please install msgfmt from GNU gettext)
425     fi
426     if test ! -n "$MSGFMT"; then
427         AC_STEPMAKE_WARN(please install msgfmt from GNU gettext)
428     fi
429 ])
430
431 AC_DEFUN(AC_STEPMAKE_TEXMF_DIRS, [
432     AC_ARG_ENABLE(tex-prefix,
433     [  enable-tex-prefix=DIR   set the tex-directory to find TeX subdirectories. (default: PREFIX)],
434     [TEXPREFIX=$enableval],
435     [TEXPREFIX=auto] )
436     
437     AC_ARG_ENABLE(tex-dir,
438     [  enable-tex-dir=DIR      set the directory to put $PACKAGE_NAME TeX files in. ],
439     [TEXDIR=$enableval],
440     [TEXDIR=auto] )
441
442     AC_ARG_ENABLE(mf-dir,
443     [  enable-mf-dir=DIR       set the directory to put $PACKAGE_NAME MetaFont files in. ],
444     [MFDIR=$enableval],
445     [MFDIR=auto])
446
447     if test "x$TEXPREFIX" = xauto ; then
448         AC_TEX_PREFIX(TEXPREFIX)
449     else
450      find_texprefix=$TEXPREFIX
451     fi
452
453     if test "x$MFDIR" = xauto; then
454         AC_MF_SUBDIR(MFDIR)
455     fi
456         
457     if test "x$TEXDIR" = xauto ; then
458         AC_TEX_SUBDIR(TEXDIR)
459     fi
460     AC_SUBST(TEXPREFIX)
461     AC_SUBST(TEXDIR)
462     AC_SUBST(MFDIR)
463 ])
464
465 AC_DEFUN(AC_STEPMAKE_TEXMF, [
466     # urg, never know what names these teTeX guys will think up
467     AC_CHECK_PROGS(METAFONT, mf, no)
468     if test "x$METAFONT" = "xno"; then
469         AC_CHECK_PROGS(MFONT, mfont, -echo no mf or mfont)
470         METAFONT=$MFONT
471     fi
472
473     AC_CHECK_PROGS(METAPOST, mp, no)
474     if test "x$METAPOST" = "xno"; then
475         AC_CHECK_PROGS(MPOST, mpost, -echo no mp or mpost)
476         METAPOST=$MPOST
477     fi
478
479     AC_SUBST(METAFONT)
480     AC_SUBST(METAPOST)
481 ])
482
483 AC_DEFUN(AC_STEPMAKE_WARN, [
484     AC_MSG_WARN($1)
485     warn_b=yes
486 ])
487
488 AC_DEFUN(AC_STEPMAKE_YODL, [
489     if test "x$YODL" = "x"; then 
490         AC_CHECK_PROGS(STRIPROFF, striproff, -echo no striproff)
491         AC_CHECK_PROGS(YODL, yodl, -echo no yodl)
492         AC_CHECK_PROGS(YODL2HTML, yodl2html, -echo no yodl)
493         AC_CHECK_PROGS(YODL2LATEX, yodl2latex, )
494         AC_CHECK_PROGS(YODL2MAN, yodl2man, -echo no yodl)
495         AC_CHECK_PROGS(YODL2MSLESS, yodl2msless, -echo no yodl)
496         AC_CHECK_PROGS(YODL2TEXINFO, yodl2texinfo, -echo no yodl)
497         AC_CHECK_PROGS(YODL2TXT, yodl2txt, -echo no yodl)
498         YODL2LESS_DIR='$(bindir)/'
499     else
500         AC_SUBST(STRIPROFF)
501         AC_SUBST(YODL)
502         AC_SUBST(YODL2HTML)
503         AC_SUBST(YODL2LATEX)
504         AC_SUBST(YODL2LESS_DIR)
505         AC_SUBST(YODL2MAN)
506         AC_SUBST(YODL2MSLESS)
507         AC_SUBST(YODL2TEXINFO)
508         AC_SUBST(YODL2TXT)
509         export STRIPROFF YODL YODL2HTML YODL2LATEX YODL2MAN YODL2MSLESS YODL2TEXINFO YODL2TXT
510     fi
511     if test "x$YODL" = "-echo no yodl"; then
512         AC_STEPMAKE_WARN(Did not find YODL (Yodl is Yet Oneother Document Language, see http://www.cs.uu.nl/~hanwen/yodl))
513     fi    
514 ])
515
516 dnl should cache result.
517 dnl should  look in $prefix first.
518 dnl should probably assume TDS
519
520 AC_DEFUN(AC_TEX_PREFIX, [
521     
522
523     AC_MSG_CHECKING(TeX/MF root dir directory)    
524
525     find_root_prefix="$prefix"
526     
527
528     test "x$find_root_prefix" = xNONE && find_root_prefix="$ac_default_prefix"
529     find_texpostfix="";
530     for postfix in "/lib/tex/" "/lib/texmf" "/lib" "/tex" "/texmf"; do
531         find_texprefix="$find_root_prefix$postfix"
532         if test -d $find_texprefix; then
533             find_texpostfix=$postfix
534             break;
535         fi
536     done
537     
538     if test "x$find_texpostfix" = x; then
539         find_texpostfix='/lib/texmf/tex'
540         AC_STEPMAKE_WARN(Cannot determine the TeX-directory. Please use --enable-tex-prefix)
541     fi
542
543     find_texprefix="$find_root_prefix/$find_texpostfix"
544
545     # only assign if variablename not empty
546     if test x != "x[$]$1"; then
547         $1='${prefix}'/"$find_texpostfix"
548     fi
549     AC_MSG_RESULT($find_texprefix)
550
551 ])
552  
553
554 # find a directory inside a prefix, 
555 # $1 the prefix (expanded version)
556 # $2 variable to assign
557 # $3 the directory name 
558 # $4 description
559 AC_DEFUN(AC_FIND_DIR_IN_PREFIX, [
560     
561     AC_MSG_CHECKING($4 directory)    
562     find_dirdir=`(cd $1; 
563       $FIND ./ -type d -a -name $3 -print |sort|head -1|sed 's#^\./##')`
564     
565
566     if test "x$find_dirdir" = x; then
567        find_dirdir="/$3";
568        AC_STEPMAKE_WARN(Cannot determine $4 subdirectory. Please set from command-line)
569         true
570     fi
571     $2=$find_dirdir
572     AC_MSG_RESULT($1/$find_dirdir)
573 ])
574
575 # ugh.  this is hopeless
576 AC_DEFUN(AC_KPSE_TEX_DIR, [
577         kpse_paths=`(kpsepath -n latex tex; kpsepath -n tex tex) | sed 's/:/ /g' | tr ' ' '\012' |sort | uniq -d`
578         kpse_syspaths=`echo $kpse_paths | grep '!'| sed 's/!//g'`
579         echo $kpse_paths
580         if test -w "$kpse_syspaths";
581         then
582                 dir=`echo $kpse_syspaths | head -1`
583         else
584                 dir=`echo $kpse_paths | grep -v '!'| head -1`
585         fi
586         if test "$prefix" = "NONE"; then
587                 local_prefix=$ac_default_prefix
588                 local_prefix_quote='${prefix}'
589
590         else
591                 local_prefix=$prefix
592                 local_prefix_quote=$prefix
593         fi
594         echo $local_prefix_quote = $local_prefix
595         echo $dir
596         echo $dir  | sed 's!'$local_prefix'!\$local_prefix_quote!g'
597 ])
598
599 AC_DEFUN(AC_TEX_SUBDIR, [
600 dnl    AC_REQUIRE([AC_TEX_PREFIX])
601     AC_FIND_DIR_IN_PREFIX($find_texprefix, $1, tex,TeX input)
602     $1="$TEXPREFIX/$$1"
603 ])
604
605 AC_DEFUN(AC_MF_SUBDIR, [
606 dnl     AC_REQUIRE([AC_TEX_PREFIX])
607     AC_FIND_DIR_IN_PREFIX($find_texprefix, $1, source, MF input)
608     $1="$TEXPREFIX/$$1"
609 ])
610
611 AC_DEFUN(AC_CHECK_SEARCH_RESULT, [
612         result="`echo \"$1\" | grep echo`"
613         if test "x$1" = "xerror" -o "x$result" != "x"; then
614                 AC_STEPMAKE_WARN(can\'t find $2. $3)
615         fi
616 ])
617
618
619 # Configure paths for GTK+
620 # Owen Taylor     97-11-3
621
622 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
623 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
624 dnl
625 AC_DEFUN(AM_PATH_GTK,
626 [dnl 
627 dnl Get the cflags and libraries from the gtk-config script
628 dnl
629   AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
630   min_gtk_version=ifelse([$1], ,1.1.1,$1)
631   AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
632   no_gtk=""
633   if test "$GTK_CONFIG" != "no" ; then
634     GTK_CFLAGS=`$GTK_CONFIG --cflags`
635     GTK_LIBS=`$GTK_CONFIG --libs`
636     ac_save_CFLAGS="$CFLAGS"
637     ac_save_LIBS="$LIBS"
638     ac_save_CXXFLAGS="$CXXFLAGS"
639     CFLAGS="$CFLAGS $GTK_CFLAGS"
640     CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
641     LIBS="$LIBS $GTK_LIBS"
642 dnl
643 dnl Now check if the installed GTK is sufficiently new. (Also sanity
644 dnl checks the results of gtk-config to some extent
645 dnl
646     AC_TRY_RUN([
647 #include <gtk/gtk.h>
648 #include <stdio.h>
649
650 int 
651 main ()
652 {
653   int major, minor, micro;
654
655   if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
656      printf("%s, bad version string\n", "$min_gtk_version");
657      exit(1);
658    }
659
660    return !((gtk_major_version > major) ||
661             ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
662             ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
663 }
664 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
665      CFLAGS="$ac_save_CFLAGS"
666      CXXFLAGS="$ac_save_CXXFLAGS"
667      LIBS="$ac_save_LIBS"
668   else
669      no_gtk=yes
670   fi
671   if test "x$no_gtk" = x ; then
672      AC_MSG_RESULT(yes)
673      ifelse([$2], , :, [$2])     
674   else
675      AC_MSG_RESULT(no)
676      GTK_CFLAGS=""
677      GTK_LIBS=""
678      ifelse([$3], , :, [$3])
679   fi
680   CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
681   AC_SUBST(CXXFLAGS)
682   AC_SUBST(GTK_CFLAGS)
683   AC_SUBST(GTK_LIBS)
684 ])
685
686
687 # Configure paths for GTK--
688 # Erik Andersen 30 May 1998
689 # Modified by Tero Pulkkinen (added the compiler checks... I hope they work..)
690
691 dnl Test for GTK__, and define GTK___CFLAGS and GTK___LIBS
692 dnl   to be used as follows:
693 dnl AM_PATH_GTKMM([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
694 dnl
695
696 dnl Get the cflags and libraries from the gtkmm-config script
697 dnl
698 AC_ARG_WITH(gtkmm-prefix,[  --with-gtkmm-prefix=PREFIX
699                           Prefix where GTK-- is installed (optional)],
700             gtkmm_config_prefix="$withval", gtkmm_config_prefix="")
701 AC_ARG_WITH(gtkmm-exec-prefix,[  --with-gtkmm-exec-prefix=PREFIX
702                           Exec prefix where GTK-- is installed (optional)],
703             gtkmm_config_exec_prefix="$withval", gtkmm_config_exec_prefix="")
704 AC_ARG_ENABLE(gtkmmtest, [  --disable-gtkmmtest     Do not try to compile and run a test GTK-- program],
705                     , enable_gtkmmtest=yes)
706
707   if test x$gtkmm_config_exec_prefix != x ; then
708      gtkmm_config_args="$gtkmm_config_args --exec-prefix=$gtkmm_config_exec_prefix"
709      if test x${GTKMM_CONFIG+set} != xset ; then
710         GTKMM_CONFIG=$gtkmm_config_exec_prefix/bin/gtkmm-config
711      fi
712   fi
713   if test x$gtkmm_config_prefix != x ; then
714      gtkmm_config_args="$gtkmm_config_args --prefix=$gtkmm_config_prefix"
715      if test x${GTKMM_CONFIG+set} != xset ; then
716         GTKMM_CONFIG=$gtkmm_config_prefix/bin/gtkmm-config
717      fi
718   fi
719
720
721 AC_DEFUN(AM_PATH_GTKMM,
722 [dnl 
723
724 dnl
725 dnl Check check if the installed GTK-- is sufficiently new.
726 dnl
727   AC_PATH_PROG(GTKMM_CONFIG, gtkmm-config, no)
728   min_gtkmm_version=ifelse([$1], ,0.9.14,$1)
729
730   AC_MSG_CHECKING(for GTK-- - version >= $min_gtkmm_version)
731   no_gtkmm=""
732   if test "$GTKMM_CONFIG" = "no" ; then
733     no_gtkmm=yes
734   else
735     AC_LANG_SAVE
736     AC_LANG_CPLUSPLUS
737
738     GTK___CFLAGS=`$GTKMM_CONFIG $gtkmm_config_args --cflags`
739     GTK___LIBS=`$GTKMM_CONFIG $gtkmm_config_args --libs`
740     gtkmm_config_major_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
741            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
742     gtkmm_config_minor_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
743            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
744     gtkmm_config_micro_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
745            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
746     if test "x$enable_gtkmmtest" = "xyes" ; then
747       ac_save_CXXFLAGS="$CXXFLAGS"
748       ac_save_LIBS="$LIBS"
749       CXXFLAGS="$CXXFLAGS $GTK___CFLAGS"
750       LIBS="$LIBS $GTK___LIBS"
751 dnl
752 dnl Now check if the installed GTK-- is sufficiently new. (Also sanity
753 dnl checks the results of gtkmm-config to some extent
754 dnl
755       rm -f conf.gtkmmtest
756       AC_TRY_RUN([
757 #include <gtk--.h>
758 #include <stdio.h>
759 #include <stdlib.h>
760
761 int 
762 main ()
763 {
764   int major, minor, micro;
765   char *tmp_version;
766
767   system ("touch conf.gtkmmtest");
768
769   /* HP/UX 0 (%@#!) writes to sscanf strings */
770   tmp_version = g_strdup("$min_gtkmm_version");
771   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
772      printf("%s, bad version string\n", "$min_gtkmm_version");
773      exit(1);
774    }
775
776   if ((gtkmm_major_version != $gtkmm_config_major_version) ||
777       (gtkmm_minor_version != $gtkmm_config_minor_version) ||
778       (gtkmm_micro_version != $gtkmm_config_micro_version))
779     {
780       printf("\n*** 'gtkmm-config --version' returned %d.%d.%d, but GTK-- (%d.%d.%d)\n", 
781              $gtkmm_config_major_version, $gtkmm_config_minor_version, $gtkmm_config_micro_version,
782              gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
783       printf ("*** was found! If gtkmm-config was correct, then it is best\n");
784       printf ("*** to remove the old version of GTK--. You may also be able to fix the error\n");
785       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
786       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
787       printf("*** required on your system.\n");
788       printf("*** If gtkmm-config was wrong, set the environment variable GTKMM_CONFIG\n");
789       printf("*** to point to the correct copy of gtkmm-config, and remove the file config.cache\n");
790       printf("*** before re-running configure\n");
791     } 
792 /* GTK-- does not have the GTKMM_*_VERSION constants */
793 /* 
794   else if ((gtkmm_major_version != GTKMM_MAJOR_VERSION) ||
795            (gtkmm_minor_version != GTKMM_MINOR_VERSION) ||
796            (gtkmm_micro_version != GTKMM_MICRO_VERSION))
797     {
798       printf("*** GTK-- header files (version %d.%d.%d) do not match\n",
799              GTKMM_MAJOR_VERSION, GTKMM_MINOR_VERSION, GTKMM_MICRO_VERSION);
800       printf("*** library (version %d.%d.%d)\n",
801              gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
802     }
803 */
804   else
805     {
806       if ((gtkmm_major_version > major) ||
807         ((gtkmm_major_version == major) && (gtkmm_minor_version > minor)) ||
808         ((gtkmm_major_version == major) && (gtkmm_minor_version == minor) && (gtkmm_micro_version >= micro)))
809       {
810         return 0;
811        }
812      else
813       {
814         printf("\n*** An old version of GTK-- (%d.%d.%d) was found.\n",
815                gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
816         printf("*** You need a version of GTK-- newer than %d.%d.%d. The latest version of\n",
817                major, minor, micro);
818         printf("*** GTK-- is always available from ftp://ftp.gtk.org.\n");
819         printf("***\n");
820         printf("*** If you have already installed a sufficiently new version, this error\n");
821         printf("*** probably means that the wrong copy of the gtkmm-config shell script is\n");
822         printf("*** being found. The easiest way to fix this is to remove the old version\n");
823         printf("*** of GTK--, but you can also set the GTKMM_CONFIG environment to point to the\n");
824         printf("*** correct copy of gtkmm-config. (In this case, you will have to\n");
825         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
826         printf("*** so that the correct libraries are found at run-time))\n");
827       }
828     }
829   return 1;
830 }
831 ],, no_gtkmm=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
832        CXXFLAGS="$ac_save_CXXFLAGS"
833        LIBS="$ac_save_LIBS"
834      fi
835   fi
836   if test "x$no_gtkmm" = x ; then
837      AC_MSG_RESULT(yes)
838      ifelse([$2], , :, [$2])     
839   else
840      AC_MSG_RESULT(no)
841      if test "$GTKMM_CONFIG" = "no" ; then
842        echo "*** The gtkmm-config script installed by GTK-- could not be found"
843        echo "*** If GTK-- was installed in PREFIX, make sure PREFIX/bin is in"
844        echo "*** your path, or set the GTK_CONFIG environment variable to the"
845        echo "*** full path to gtk-config."
846        echo "*** The gtkmm-config script was not available in GTK-- versions"
847        echo "*** prior to 0.9.12. Perhaps you need to update your installed"
848        echo "*** version to 0.9.12 or later"
849      else
850        if test -f conf.gtkmmtest ; then
851         :
852        else
853           echo "*** Could not run GTK-- test program, checking why..."
854           CXXFLAGS="$CFLAGS $GTKMM_CXXFLAGS"
855           LIBS="$LIBS $GTK___LIBS"
856           AC_TRY_LINK([
857 #include <gtk--.h>
858 #include <stdio.h>
859 ],      [ return ((gtkmm_major_version) || (gtkmm_minor_version) || (gtkmm_micro_version)); ],
860         [ echo "*** The test program compiled, but did not run. This usually means"
861           echo "*** that the run-time linker is not finding GTK-- or finding the wrong"
862           echo "*** version of GTK--. If it is not finding GTK--, you'll need to set your"
863           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
864           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
865           echo "*** is required on your system"
866           echo "***"
867           echo "*** If you have an old version installed, it is best to remove it, although"
868           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
869         [ echo "*** The test program failed to compile or link. See the file config.log for the"
870           echo "*** exact error that occured. This usually means GTK-- was incorrectly installed"
871           echo "*** or that you have moved GTK-- since it was installed. In the latter case, you"
872           echo "*** may want to edit the gtkmm-config script: $GTKMM_CONFIG" ])
873           CXXFLAGS="$ac_save_CXXFLAGS"
874           LIBS="$ac_save_LIBS"
875        fi
876      fi
877      GTK___CFLAGS=""
878      GTK__LIBS=""
879      ifelse([$3], , :, [$3])
880      AC_LANG_RESTORE
881   fi
882   AC_SUBST(GTK___CFLAGS)
883   AC_SUBST(GTK___LIBS)
884   rm -f conf.gtkmmtest
885 ])
886
887 # Configure paths for GTK--DRAW
888 # Derek Quinn Wyatt   98-08-21  (adapted from Jan Nieuwenhuizen's code)
889
890 dnl AM_PATH_GTK__DRAW([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
891 dnl Test for GTK--DRAW, and define GTK___CFLAGS and GTK___LIBS
892 dnl
893 AC_DEFUN(AM_PATH_GTK__DRAW,
894 [dnl 
895 dnl Get the cflags and libraries from the gtk__-config script
896 dnl
897   AC_PATH_PROG(GTKMM_CONFIG, gtkmm-config, no)
898   min_gtk___version=ifelse([$1], ,0.0.5,$1)
899   AC_MSG_CHECKING(for GTK--DRAW - version >= $min_gtk___version)
900   no_gtk__=""
901   if test "$GTKMM_CONFIG" != "no" ; then
902     GTK___CFLAGS=`$GTKMM_CONFIG --cflags`
903     GTK___LIBS=`$GTKMM_CONFIG --libs`
904     GTK___DLIBS="$GTK___LIBS -lgtkmmdraw"
905     GTK___LIBS="$GTK___DLIBS"
906     ac_save_CFLAGS="$CFLAGS"
907     ac_save_LIBS="$LIBS"
908     ac_save_CXXFLAGS="$CXXFLAGS"
909     CFLAGS="$CFLAGS $GTK___CFLAGS"
910     CXXFLAGS="$CXXFLAGS $GTK___CFLAGS"
911     LIBS="$LIBS $GTK___LIBS"
912 dnl
913 dnl Now check if the installed GTK__ is sufficiently new. (Also sanity
914 dnl checks the results of gtk__-config to some extent
915 dnl
916     AC_TRY_RUN([
917 #include <gtk--.h>
918 #include <stdio.h>
919
920 int 
921 main ()
922 {
923   // urg
924   return 0;
925 }
926 ],, no_gtk__=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
927      CFLAGS="$ac_save_CFLAGS"
928      CXXFLAGS="$ac_save_CXXFLAGS"
929      LIBS="$ac_save_LIBS"
930   else
931      no_gtk__=yes
932   fi
933   if test "x$no_gtk__" = x ; then
934      AC_MSG_RESULT(yes)
935      ifelse([$2], , :, [$2])     
936   else
937      AC_MSG_RESULT(no)
938      GTK___CFLAGS=""
939      GTK___LIBS=""
940      ifelse([$3], , :, [$3])
941   fi
942   CXXFLAGS="$CXXFLAGS $GTK___CFLAGS"
943   AC_SUBST(CXXFLAGS)
944   AC_SUBST(GTK___CFLAGS)
945   AC_SUBST(GTK___LIBS)
946 ])
947