]> git.lyx.org Git - lyx.git/blob - config/lyxinclude.m4
Fixed some lines that were too long. It compiled afterwards.
[lyx.git] / config / lyxinclude.m4
1 dnl Some useful functions for LyXs configure.in                 -*- sh -*-
2 dnl Author: Jean-Marc Lasgouttes (Jean-Marc.Lasgouttes@inria.fr)
3 dnl         Lars Gullik Bjønnes (larsbj@lyx.org)
4 dnl         Allan Rae (rae@lyx.org)
5
6
7 dnl Usage LYX_CHECK_VERSION   Displays version of LyX being built and
8 dnl sets variables "lyx_devel_version" and "lyx_prerelease"
9 AC_DEFUN([LYX_CHECK_VERSION],[
10 echo "configuring LyX version" AC_PACKAGE_VERSION
11 lyx_devel_version=no
12 lyx_prerelease=no
13 case AC_PACKAGE_VERSION in
14   *svn*) lyx_devel_version=yes
15          AC_DEFINE(DEVEL_VERSION, 1, [Define if you are building a development version of LyX])
16          LYX_DATE="not released yet"
17          echo "WARNING: This is a development version. Expect bugs.";;
18   *pre*|*alpha*|*beta*|*rc*) lyx_prerelease=yes
19         echo "WARNING: This is a prerelease. Be careful and backup your documents.";;
20 esac
21 AC_SUBST(lyx_devel_version)])
22
23
24 dnl Define the option to set a LyX version on installed executables and directories
25 dnl
26 dnl
27 AC_DEFUN([LYX_VERSION_SUFFIX],[
28 AC_MSG_CHECKING([for version suffix])
29 dnl We need the literal double quotes in the rpm spec file
30 RPM_VERSION_SUFFIX='""'
31 AC_ARG_WITH(version-suffix,
32   [  --with-version-suffix[=<version>]  install lyx files as lyx<version>],
33   [if test "x$withval" = "xyes";
34    then
35      withval="-"AC_PACKAGE_VERSION
36      ac_configure_args=`echo $ac_configure_args | sed "s,--with-version-suffix,--with-version-suffix=$withval,"`
37    fi
38    AC_SUBST(version_suffix,$withval)
39    RPM_VERSION_SUFFIX="--with-version-suffix=$withval"])
40 AC_SUBST(RPM_VERSION_SUFFIX)
41 AC_MSG_RESULT([$withval])
42 ])
43
44
45 dnl Usage: LYX_ERROR(message)  Displays the warning "message" and sets the
46 dnl flag lyx_error to yes.
47 AC_DEFUN([LYX_ERROR],[
48 lyx_error_txt="$lyx_error_txt
49 ** $1
50 "
51 lyx_error=yes])
52
53
54 dnl Usage: LYX_WARNING(message)  Displays the warning "message" and sets the
55 dnl flag lyx_warning to yes.
56 AC_DEFUN([LYX_WARNING],[
57 lyx_warning_txt="$lyx_warning_txt
58 == $1
59 "
60 lyx_warning=yes])
61
62
63 dnl Usage: LYX_LIB_ERROR(file,library)  Displays an error message indication
64 dnl  that 'file' cannot be found because 'lib' may be uncorrectly installed.
65 AC_DEFUN([LYX_LIB_ERROR],[
66 LYX_ERROR([Cannot find $1. Please check that the $2 library
67    is correctly installed on your system.])])
68
69
70 dnl Usage: LYX_CHECK_ERRORS  Displays a warning message if a LYX_ERROR
71 dnl   has occured previously.
72 AC_DEFUN([LYX_CHECK_ERRORS],[
73 if test x$lyx_warning = xyes; then
74 cat <<EOF
75 === The following minor problems have been detected by configure.
76 === Please check the messages below before running 'make'.
77 === (see the section 'Problems' in the INSTALL file)
78 $lyx_warning_txt
79 EOF
80 fi
81 if test x$lyx_error = xyes; then
82 cat <<EOF
83 **** The following problems have been detected by configure.
84 **** Please check the messages below before running 'make'.
85 **** (see the section 'Problems' in the INSTALL file)
86 $lyx_error_txt
87 $lyx_warning_txt
88 EOF
89 exit 1
90 else
91
92 cat <<EOF
93 Configuration of LyX was successful.
94 Type 'make' to compile the program,
95 and then 'make install' to install it.
96 EOF
97 fi])
98
99
100 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
101 dnl
102 define(LYX_SEARCH_PROG,[dnl
103 for ac_prog in $2 ; do
104 # Extract the first word of "$ac_prog", so it can be a program name with args.
105   set dummy $ac_prog ; ac_word=$[2]
106   if test -z "[$]$1"; then
107     IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
108     for ac_dir in $PATH; do
109       test -z "$ac_dir" && ac_dir=.
110       if test -f [$ac_dir/$ac_word]; then
111         $1="$ac_prog"
112         break
113       fi
114     done
115     IFS="$ac_save_ifs"
116   fi
117
118   if test -n "[$]$1"; then
119     ac_result=yes
120   else
121     ac_result=no
122   fi
123   ifelse($3,,,[$3])
124   test -n "[$]$1" && break
125 done
126 ])dnl
127
128
129 AC_DEFUN([LYX_PROG_CXX_WORKS],
130 [rm -f conftest.C
131 cat >conftest.C <<EOF
132 class foo {
133    // we require the mutable keyword
134    mutable int bar;
135  };
136  // we require namespace support
137  namespace baz {
138    int bar;
139  }
140  int main() {
141    return(0);
142  }
143 EOF
144 $CXX -c $CXXFLAGS $CPPFLAGS conftest.C >&5 || CXX=
145 rm -f conftest.C conftest.o conftest.obj || true
146 ])
147
148
149 AC_DEFUN([LYX_PROG_CXX],
150 [AC_MSG_CHECKING([for a good enough C++ compiler])
151 LYX_SEARCH_PROG(CXX, $CXX $CCC g++ gcc c++ CC cxx xlC cc++, [LYX_PROG_CXX_WORKS])
152
153 if test -z "$CXX" ; then
154   AC_MSG_ERROR([Unable to find a good enough C++ compiler])
155 fi
156 AC_MSG_RESULT($CXX)
157
158 AC_PROG_CXX
159
160 ### We might want to get or shut warnings.
161 AC_ARG_ENABLE(warnings,
162   AC_HELP_STRING([--enable-warnings],[tell the compiler to display more warnings]),,
163   [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
164         enable_warnings=yes;
165     else
166         enable_warnings=no;
167     fi;])
168 if test x$enable_warnings = xyes ; then
169   lyx_flags="warnings $lyx_flags"
170 fi
171
172 ### We might want to disable debug
173 AC_ARG_ENABLE(debug,
174   AC_HELP_STRING([--enable-debug],[enable debug information]),,
175   [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
176         enable_debug=yes;
177     else
178         enable_debug=no;
179     fi;])
180
181 AC_ARG_ENABLE(stdlib-debug,
182   AC_HELP_STRING([--enable-stdlib-debug],[enable debug mode in the standard library]),,
183   [ if test $lyx_devel_version = yes ; then
184       enable_stdlib_debug=yes;
185     else
186       enable_stdlib_debug=no;
187     fi;])
188
189 AC_ARG_ENABLE(concept-checks,
190   AC_HELP_STRING([--enable-concept-checks],[enable concept checks]),,
191   [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
192         enable_concept_checks=yes;
193     else
194         enable_concept_checks=no;
195     fi;])
196
197 AC_ARG_ENABLE(profiling,
198   AC_HELP_STRING([--enable-profiling],[enable profiling]),,
199   enable_profiling=no;)
200
201 ### set up optimization
202 AC_ARG_ENABLE(optimization,
203     AC_HELP_STRING([--enable-optimization[=value]],[enable compiler optimisation]),,
204     enable_optimization=yes;)
205 case $enable_optimization in
206     yes)
207         if test $lyx_devel_version = yes ; then
208             lyx_opt=-O
209         else
210             lyx_opt=-O2
211         fi;;
212     no) lyx_opt=;;
213     *) lyx_opt=${enable_optimization};;
214 esac
215
216 AC_ARG_ENABLE(pch,
217   AC_HELP_STRING([--enable-pch],[enable precompiled headers]),,
218         enable_pch=yes;)
219 lyx_pch_comp=no
220
221 # set the compiler options correctly.
222 if test x$GXX = xyes; then
223   dnl Useful for global version info
224   gxx_version=`${CXX} -dumpversion`
225   CXX_VERSION="($gxx_version)"
226
227   if test "$ac_test_CXXFLAGS" = set; then
228     CXXFLAGS="$ac_save_CXXFLAGS"
229   else
230       CFLAGS="$lyx_opt"
231       CXXFLAGS="$lyx_opt"
232     if test x$enable_debug = xyes ; then
233         CFLAGS="-g $CFLAGS"
234         CXXFLAGS="-g $CXXFLAGS"
235     fi
236     if test x$enable_profiling = xyes ; then
237         CFLAGS="-pg $CFLAGS"
238         CXXFLAGS="-pg $CXXFLAGS"
239         LDFLAGS="-pg $LDFLAGS"
240     fi
241   fi
242   if test "$ac_env_CPPFLAGS_set" != set; then
243     if test x$enable_warnings = xyes ; then
244         case $gxx_version in
245             3.1*|3.2*|3.3*)
246                 CPPFLAGS="-W -Wall $CPPFLAGS"
247                 ;;
248             *)
249                 CPPFLAGS="-Wextra -Wall $CPPFLAGS "
250                 ;;
251         esac
252     fi
253   fi
254   case $gxx_version in
255       3.1*)    AM_CXXFLAGS="-finline-limit=500 ";;
256       3.2*|3.3*)    AM_CXXFLAGS="";;
257       3.4*|4.*)
258           AM_CXXFLAGS=""
259           test $enable_pch = yes && lyx_pch_comp=yes
260           ;;
261       *)       AM_CXXFLAGS="";;
262   esac
263   if test x$enable_stdlib_debug = xyes ; then
264     case $gxx_version in
265       3.4*|4.*)
266         lyx_flags="stdlib-debug $lyx_flags"
267         AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode])
268         AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode])
269         ;;
270     esac
271   fi
272   if test x$enable_concept_checks = xyes ; then
273     case $gxx_version in
274       3.3*)
275         lyx_flags="concept-checks $lyx_flags"
276         AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
277         ;;
278       3.4*|4.*)
279         lyx_flags="concept-checks $lyx_flags"
280         AC_DEFINE(_GLIBCXX_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
281         ;;
282     esac
283   fi
284 fi
285 test "$lyx_pch_comp" = yes && lyx_flags="pch $lyx_flags"
286 AM_CONDITIONAL(LYX_BUILD_PCH, test "$lyx_pch_comp" = yes)
287 ])dnl
288
289
290 dnl NOT USED CURRENTLY*************************************
291 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
292 dnl   supports RTTI
293 AC_DEFUN([LYX_CXX_RTTI],[
294 ### Check whether the compiler supports runtime type information
295 AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti,
296  [AC_TRY_RUN([
297 class rtti {
298 public:
299    virtual int tag() { return 0; }
300 };
301 class derived1 : public rtti {
302 public:
303     int tag() { return 1; }
304 };
305 class derived2 : public rtti {
306 public:
307     int tag() { return 2; }
308 };
309 int main() {
310     derived1 * foo1 = new derived1();
311     derived2 * foo2 = new derived2();
312     rtti * bar = foo1;
313     derived1 * bar1 = dynamic_cast<derived1 *>(bar);
314     if (bar1 == 0)
315         exit(1);
316     bar = foo2;
317     bar1 = dynamic_cast<derived1 *>(bar);
318     if (bar1 != 0)
319         exit(1);
320     return 0;
321 }
322 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
323 ])
324 if test x$lyx_cv_rtti = xyes ; then
325   AC_DEFINE(HAVE_RTTI, 1,
326    [Define to 1 if your compiler supports runtime type information])
327 fi])
328
329
330 dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
331 dnl   understands the "explicit" directive.
332 AC_DEFUN([LYX_CXX_EXPLICIT],[
333 ### Check whether the compiler understands the keyword `explicit'
334 AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
335  [AC_TRY_COMPILE([
336 class Expl {
337 public:
338         explicit Expl() {}
339 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
340 ])
341 if test $lyx_cv_explicit = no ; then
342   AC_DEFINE(explicit,[ ],
343    [Define to nothing if your compiler does not understand the
344    'explicit' directive])
345 fi])
346
347
348 dnl NOT USED CURRENTLY*************************************
349 dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler
350 dnl   has a working stl stack template
351 AC_DEFUN([LYX_CXX_STL_STACK],[
352 AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack,
353  [AC_TRY_COMPILE([
354 #include <stack>
355 using std::stack;
356 ],[
357     stack<int> stakk;
358     stakk.push(0);
359 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
360 ])
361 if test $lyx_cv_broken_stack = yes ; then
362   AC_DEFINE(BROKEN_STL_STACK, 1,
363    [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined
364    correctly])
365 fi])
366
367
368 dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming
369 dnl    count template, if not the old HP version is assumed.
370 AC_DEFUN([LYX_STD_COUNT],[
371 AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count,
372  [AC_TRY_COMPILE([
373 #include <algorithm>
374 using std::count;
375 int countChar(char * b, char * e, char const c)
376 {
377         return count(b, e, c);
378 }
379 ],[
380     char a[] = "hello";
381     int i = countChar(a, a + 5, 'l');
382 ],lyx_cv_std_count=yes,lyx_cv_std_count=no)
383 ])
384 if test $lyx_cv_std_count = yes ; then
385     AC_DEFINE(HAVE_STD_COUNT, 1,
386     [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.])
387 fi])
388
389
390 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
391 dnl   supports modern STL streams
392 AC_DEFUN([LYX_CXX_STL_MODERN_STREAMS],[
393 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
394  [AC_TRY_COMPILE([
395 #include <iostream>
396 ],[
397  std::streambuf * test = std::cerr.rdbuf();
398  test->pubsync();
399 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
400 ])
401 if test $lyx_cv_modern_streams = yes ; then
402   AC_DEFINE(MODERN_STL_STREAMS, 1,
403    [Define if you have modern standard-compliant STL streams])
404 fi])
405
406
407 dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should
408 dnl        be used.
409 AC_DEFUN([LYX_USE_INCLUDED_BOOST],[
410         AC_ARG_WITH(included-boost,
411             [  --without-included-boost  do not use the boost lib supplied with LyX, try to find one in the system directories - compilation will abort if nothing suitable is found],
412             [lyx_cv_with_included_boost=$withval
413                 AC_MSG_RESULT([$with_included_boost])],
414             [lyx_cv_with_included_boost=yes])
415         AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes)
416 ])
417
418
419 dnl NOT USED CURRENTLY*************************************
420 dnl LYX_CXX_PARTIAL
421 AC_DEFUN([LYX_CXX_PARTIAL], [
422     AC_REQUIRE([AC_PROG_CXX])
423     AC_CACHE_CHECK([if C++ compiler supports partial specialization],
424         [lyx_cv_cxx_partial_specialization],
425         [AC_TRY_COMPILE(
426             [
427             template<class T, class K>
428             class k {
429             public:
430             };
431             template<class T> class k<void,T> { };
432             ],[
433             k<float, float> b;
434             k<void,void> a;
435             ],[
436             lyx_cv_cxx_partial_specialization=yes
437             ],[
438             lyx_cv_cxx_partial_specialization=no
439             ])
440         ])
441     if test x$lyx_cv_cxx_partial_specialization = xyes ; then
442         AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
443         [Defined if your compiler supports partial specialization.])
444     fi
445 ])
446
447
448 dnl Usage: LYX_CXX_GLOBAL_CSTD: checks whether C library functions
449 dnl   are already in the global namespace
450 AC_DEFUN([LYX_CXX_GLOBAL_CSTD],[
451     AC_CACHE_CHECK(whether C library functions are already in the global namespace,
452     lyx_cv_cxx_global_cstd,
453     [AC_TRY_COMPILE([
454     #include <cctype>
455     using std::tolower;
456     ],[
457     return 0;
458     ],[lyx_cv_cxx_global_cstd=no],[lyx_cv_cxx_global_cstd=yes])])
459     if test x$lyx_cv_cxx_global_cstd = xyes; then
460         AC_DEFINE(CXX_GLOBAL_CSTD,1,
461         [Define if your C++ compiler puts C library functions in the global namespace])
462     fi
463 ])
464
465
466 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
467 dnl                       [default-yes-value])
468 dnl  Adds a --with-'dir-name' option (described by 'desc') and puts the
469 dnl  resulting directory name in 'dir-var-name'.
470 AC_DEFUN([LYX_WITH_DIR],[
471   AC_ARG_WITH($1,[AC_HELP_STRING([--with-$1],[specify $2])])
472   AC_MSG_CHECKING([for $2])
473   if test -z "$with_$3"; then
474      AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
475   else
476     test "x$with_$3" = xyes && with_$3=$5
477     lyx_cv_$3="$with_$3"
478   fi
479   AC_MSG_RESULT($lyx_cv_$3)])
480
481
482 dnl Usage: LYX_LOOP_DIR(value,action)
483 dnl Executes action for values of variable `dir' in `values'. `values' can
484 dnl use ":" as a separator.
485 AC_DEFUN([LYX_LOOP_DIR],[
486 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
487 for dir in `eval "echo $1"`; do
488   if test ! "$dir" = NONE; then
489     test ! -d "$dir" && AC_MSG_ERROR([\"$dir\" is not a directory])
490     $2
491   fi
492 done
493 IFS=$ac_save_ifs
494 ])
495
496
497 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
498 dnl var-name.
499 AC_DEFUN([LYX_ADD_LIB_DIR],[
500 $1="${$1} -L$2"
501 if test "`(uname) 2>/dev/null`" = SunOS &&
502     uname -r | grep '^5' >/dev/null; then
503   if test $ac_cv_prog_gxx = yes ; then
504     $1="${$1} -Wl[,]-R$2"
505   else
506     $1="${$1} -R$2"
507   fi
508 fi])
509
510
511 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
512 dnl var-name.
513 AC_DEFUN([LYX_ADD_INC_DIR],[$1="${$1} -I$2 "])
514
515 ### Check for a headers existence and location iff it exists
516 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
517 ## It almost works.  I've tried a few variations but they give errors
518 ## of one sort or other: bad substitution or file not found etc.  The
519 ## actual header _is_ found though and the cache variable is set however
520 ## the reported setting (on screen) is equal to $ac_safe for some unknown
521 ## reason.
522 ## Additionally, autoheader can't figure out what to use as the name in
523 ## the config.h.in file so we need to write our own entries there -- one for
524 ## each header in the form PATH_HEADER_NAME_H
525 ##
526 AC_DEFUN([LYX_PATH_HEADER],
527 [ AC_CHECK_HEADER($1,[
528   ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
529 ### the only remaining problem is getting the second parameter to this
530 ### AC_CACHE_CACHE to print correctly. Currently it just results in value
531 ### of $ac_safe being printed.
532   AC_CACHE_CHECK([path to $1],[lyx_cv_path2_$ac_safe],
533   [ cat > conftest.$ac_ext <<EOF
534 #line __oline__ "configure"
535 #include "confdefs.h"
536
537 #include <$1>
538 EOF
539 lyx_path_header_path=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
540   grep $1  2>/dev/null | \
541   sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
542 eval "lyx_cv_path2_${ac_safe}=\$lyx_path_header_path"
543 rm -f conftest*])
544   AC_DEFINE_UNQUOTED($ac_tr_safe, $lyx_path_header_path, [dummy])])
545 ])
546 ### end of LYX_PATH_HEADER
547
548 ### Check which frontends we want to use.
549 ###
550 AC_DEFUN([LYX_USE_FRONTENDS],
551 [AC_MSG_CHECKING([what frontend should be used for the GUI])
552 AC_ARG_WITH(frontend,
553   [  --with-frontend=THIS    Use THIS frontend as main GUI:
554                             Possible values: qt4],
555   [FRONTENDS="$withval"],[FRONTENDS="qt4"])
556 if test "x$FRONTENDS" = x ; then
557   AC_MSG_RESULT(none)
558   AC_ERROR("Please select a frontend using --with-frontend")
559 fi
560 AC_MSG_RESULT($FRONTENDS)
561 AC_SUBST(FRONTENDS)
562 AC_SUBST(FRONTENDS_SUBDIRS)
563 AC_SUBST(FRONTENDS_PROGS)
564 ])
565
566
567 ## Check what kind of packaging should be used at install time.
568 ## The default is autodetected.
569 AC_DEFUN([LYX_USE_PACKAGING],
570 [AC_MSG_CHECKING([what packaging should be used])
571 AC_ARG_WITH(packaging,
572   [  --with-packaging=THIS   Use THIS packaging for installation:
573                             Possible values: posix, windows, macosx],
574   [lyx_use_packaging="$withval"], [
575   case $host in
576     *-apple-darwin*) lyx_use_packaging=macosx ;;
577      *-pc-mingw32*) lyx_use_packaging=windows;;
578                   *) lyx_use_packaging=posix;;
579   esac])
580 AC_MSG_RESULT($lyx_use_packaging)
581 lyx_install_macosx=false
582 case $lyx_use_packaging in
583    macosx) AC_DEFINE(USE_MACOSX_PACKAGING, 1, [Define to 1 if LyX should use a MacOS X application bundle file layout])
584            PACKAGE=LyX${version_suffix}
585            default_prefix="/Applications/${PACKAGE}.app"
586            bindir='${prefix}/Contents/MacOS'
587            libdir='${prefix}/Contents/Resources'
588            datadir='${prefix}/Contents/Resources'
589            pkgdatadir='${datadir}'
590            mandir='${datadir}/man' 
591            lyx_install_macosx=true ;;
592   windows) AC_DEFINE(USE_WINDOWS_PACKAGING, 1, [Define to 1 if LyX should use a Windows-style file layout])
593            PACKAGE=LyX${version_suffix}
594            default_prefix="C:/Program Files/${PACKAGE}"
595            bindir='${prefix}/bin'
596            libdir='${prefix}/Resources'
597            datadir='${prefix}/Resources'
598            pkgdatadir='${datadir}'
599            mandir='${prefix}/Resources/man' ;;
600     posix) AC_DEFINE(USE_POSIX_PACKAGING, 1, [Define to 1 if LyX should use a POSIX-style file layout])
601            PACKAGE=lyx${version_suffix}
602            program_suffix=$version_suffix
603            pkgdatadir='${datadir}/${PACKAGE}'
604            default_prefix=$ac_default_prefix ;;
605     *) LYX_ERROR([Unknown packaging type $lyx_use_packaging]) ;;
606 esac
607 AM_CONDITIONAL(INSTALL_MACOSX, $lyx_install_macosx)
608 AC_SUBST(pkgdatadir)
609 AC_SUBST(program_suffix)
610 ])
611
612
613 ## ------------------------------------------------------------------------
614 ## Find a file (or one of more files in a list of dirs)
615 ## ------------------------------------------------------------------------
616 ##
617 AC_DEFUN([AC_FIND_FILE],
618 [
619 $3=NO
620 for i in $2;
621 do
622   for j in $1;
623   do
624     if test -r "$i/$j"; then
625       $3=$i
626       break 2
627     fi
628   done
629 done
630 ])
631
632 dnl just a wrapper to clean up configure.in
633 AC_DEFUN([LYX_PROG_LIBTOOL],
634 [
635 AC_REQUIRE([AC_ENABLE_SHARED])
636 AC_REQUIRE([AC_ENABLE_STATIC])
637 dnl libtool is only for C, so I must force him
638 dnl to find the correct flags for C++
639 ac_save_cc=$CC
640 ac_save_cflags="$CFLAGS"
641 CC=$CXX
642 CFLAGS="$CXXFLAGS"
643 AC_PROG_LIBTOOL dnl for libraries
644 CC=$ac_save_cc
645 CFLAGS="$ac_save_cflags"
646 ])
647
648
649 ## ------------------------------------------------------------------------
650 ## Check whether mkdir() is mkdir or _mkdir, and whether it takes
651 ## one or two arguments.
652 ##
653 ## http://ac-archive.sourceforge.net/C_Support/ac_func_mkdir.html
654 ## ------------------------------------------------------------------------
655 ##
656 AC_DEFUN([AC_FUNC_MKDIR],
657 [AC_CHECK_FUNCS([mkdir _mkdir])
658 AC_CACHE_CHECK([whether mkdir takes one argument],
659                [ac_cv_mkdir_takes_one_arg],
660 [AC_TRY_COMPILE([
661 #include <sys/stat.h>
662 #if HAVE_UNISTD_H
663 #  include <unistd.h>
664 #endif
665 ], [mkdir (".");],
666 [ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])])
667 if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then
668   AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
669             [Define if mkdir takes only one argument.])
670 fi
671 ])
672
673
674 dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME,
675 dnl (which may be a relative path, and need not refer to any existing 
676 dnl entity).
677
678 dnl On Win32-MSYS build hosts, the returned path is resolved to its true
679 dnl native Win32 path name, (but with slashes, not backslashes).
680
681 dnl On any other system, it is simply the result which would be obtained
682 dnl if PATHNAME represented an existing directory, and the pwd command was
683 dnl executed in that directory.
684 AC_DEFUN([MSYS_AC_CANONICAL_PATH],
685 [ac_dir="$2"
686  ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null &&
687     ac_pwd_w="pwd -W" || ac_pwd_w=pwd
688  until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w`
689  do
690    ac_dir=`AS_DIRNAME(["$ac_dir"])`
691  done
692  ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'`
693  ac_val=`echo "$ac_val" | sed 's?/*$[]??'`
694  $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"'
695    s?/*$[]??'`
696 ])
697
698 dnl this is used by the macro blow to general a proper config.h.in entry
699 m4_define([LYX_AH_CHECK_DECL],
700 [AH_TEMPLATE(AS_TR_CPP(HAVE_DECL_$1),
701   [Define if you have the prototype for function `$1'])])
702
703 dnl Check things are declared in headers to avoid errors or warnings.
704 dnl Called like LYX_CHECK_DECL(function, header1 header2...)
705 dnl Defines HAVE_DECL_{FUNCTION}
706 AC_DEFUN([LYX_CHECK_DECL],
707 [LYX_AH_CHECK_DECL($1)
708 for ac_header in $2
709 do
710   AC_MSG_CHECKING([if $1 is declared by header $ac_header])
711   AC_EGREP_HEADER($1, $ac_header,
712       [AC_MSG_RESULT(yes)
713        AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_DECL_$1))
714        break],
715       [AC_MSG_RESULT(no)])
716 done])