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