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