1 dnl ---------------------------------------------------------------------------
2 dnl Macros for wxWindows detection. Typically used in configure.in as:
7 dnl AM_OPTIONS_WXCONFIG
10 dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1)
11 dnl if test "$wxWin" != 1; then
13 dnl wxWindows must be installed on your system
14 dnl but wx-config script couldn't be found.
16 dnl Please check that wx-config is in path, the directory
17 dnl where wxWindows libraries are installed (returned by
18 dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or
19 dnl equivalent variable and wxWindows version is 2.3.4 or above.
22 dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS"
23 dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY"
24 dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY"
26 dnl LIBS="$LIBS $WX_LIBS"
27 dnl ---------------------------------------------------------------------------
29 dnl ---------------------------------------------------------------------------
30 dnl AM_OPTIONS_WXCONFIG
32 dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and
33 dnl --wx-config command line options
34 dnl ---------------------------------------------------------------------------
36 AC_DEFUN([AM_OPTIONS_WXCONFIG],
39 [ --with-wxdir=PATH Use uninstalled version of wxWindows in PATH],
40 [ wx_config_name="$withval/wx-config"
41 wx_config_args="--inplace"])
42 AC_ARG_WITH(wx-config,
43 [ --with-wx-config=CONFIG wx-config script to use (optional)],
44 wx_config_name="$withval" )
45 AC_ARG_WITH(wx-prefix,
46 [ --with-wx-prefix=PREFIX Prefix where wxWindows is installed (optional)],
47 wx_config_prefix="$withval", wx_config_prefix="")
48 AC_ARG_WITH(wx-exec-prefix,
49 [ --with-wx-exec-prefix=PREFIX
50 Exec prefix where wxWindows is installed (optional)],
51 wx_config_exec_prefix="$withval", wx_config_exec_prefix="")
54 dnl ---------------------------------------------------------------------------
55 dnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
56 dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]])
58 dnl Test for wxWindows, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC
59 dnl (the latter is for static linking against wxWindows). Set WX_CONFIG_NAME
60 dnl environment variable to override the default name of the wx-config script
61 dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this
62 dnl case the macro won't even waste time on tests for its existence.
64 dnl Optional WX-LIBS argument contains comma- or space-separated list of
65 dnl wxWindows libraries to link against (it may include contrib libraries). If
66 dnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to
67 dnl link with all of the core wxWindows libraries.
69 dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config
70 dnl invocation command in present. It can be used to fine-tune lookup of
71 dnl best wxWidgets build available.
74 dnl AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], [html,core,net]
75 dnl [--unicode --debug])
76 dnl ---------------------------------------------------------------------------
79 dnl Get the cflags and libraries from the wx-config script
81 AC_DEFUN([AM_PATH_WXCONFIG],
83 dnl do we have wx-config name: it can be wx-config or wxd-config or ...
84 if test x${WX_CONFIG_NAME+set} != xset ; then
85 WX_CONFIG_NAME=wx-config
88 if test "x$wx_config_name" != x ; then
89 WX_CONFIG_NAME="$wx_config_name"
92 dnl deal with optional prefixes
93 if test x$wx_config_exec_prefix != x ; then
94 wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix"
95 WX_LOOKUP_PATH="$wx_config_exec_prefix/bin"
97 if test x$wx_config_prefix != x ; then
98 wx_config_args="$wx_config_args --prefix=$wx_config_prefix"
99 WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin"
101 if test "$cross_compiling" = "yes"; then
102 wx_config_args="$wx_config_args --host=$host_alias"
105 dnl don't search the PATH if WX_CONFIG_NAME is absolute filename
106 if test -x "$WX_CONFIG_NAME" ; then
107 AC_MSG_CHECKING(for wx-config)
108 WX_CONFIG_PATH="$WX_CONFIG_NAME"
109 AC_MSG_RESULT($WX_CONFIG_PATH)
111 AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH")
114 if test "$WX_CONFIG_PATH" != "no" ; then
117 min_wx_version=ifelse([$1], ,2.2.1,$1)
118 if test -z "$5" ; then
119 AC_MSG_CHECKING([for wxWindows version >= $min_wx_version])
121 AC_MSG_CHECKING([for wxWindows version >= $min_wx_version ($5)])
124 WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4"
126 WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null`
127 wx_config_major_version=`echo $WX_VERSION | \
128 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
129 wx_config_minor_version=`echo $WX_VERSION | \
130 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
131 wx_config_micro_version=`echo $WX_VERSION | \
132 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
134 wx_requested_major_version=`echo $min_wx_version | \
135 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
136 wx_requested_minor_version=`echo $min_wx_version | \
137 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
138 wx_requested_micro_version=`echo $min_wx_version | \
139 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
142 if test "x$WX_VERSION" != x ; then
143 if test $wx_config_major_version -gt $wx_requested_major_version; then
146 if test $wx_config_major_version -eq $wx_requested_major_version; then
147 if test $wx_config_minor_version -gt $wx_requested_minor_version; then
150 if test $wx_config_minor_version -eq $wx_requested_minor_version; then
151 if test $wx_config_micro_version -ge $wx_requested_micro_version; then
160 if test -n "$wx_ver_ok"; then
162 AC_MSG_RESULT(yes (version $WX_VERSION))
163 WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`
165 dnl is this even still appropriate? --static is a real option now
166 dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is
167 dnl what the user actually wants, making this redundant at best.
168 dnl For now keep it in case anyone actually used it in the past.
169 AC_MSG_CHECKING([for wxWindows static library])
170 WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null`
171 if test "x$WX_LIBS_STATIC" = "x"; then
177 dnl starting with version 2.2.6 wx-config has --cppflags argument
179 if test $wx_config_major_version -gt 2; then
182 if test $wx_config_major_version -eq 2; then
183 if test $wx_config_minor_version -gt 2; then
186 if test $wx_config_minor_version -eq 2; then
187 if test $wx_config_micro_version -ge 6; then
195 if test "x$wx_has_cppflags" = x ; then
196 dnl no choice but to define all flags like CFLAGS
197 WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
198 WX_CPPFLAGS=$WX_CFLAGS
199 WX_CXXFLAGS=$WX_CFLAGS
201 WX_CFLAGS_ONLY=$WX_CFLAGS
202 WX_CXXFLAGS_ONLY=$WX_CFLAGS
204 dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS
205 WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags`
206 WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags`
207 WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
209 WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"`
210 WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"`
213 ifelse([$2], , :, [$2])
217 if test "x$WX_VERSION" = x; then
218 dnl no wx-config at all
221 AC_MSG_RESULT(no (version $WX_VERSION is not new enough))
229 ifelse([$3], , :, [$3])
239 ifelse([$3], , :, [$3])
243 AC_SUBST(WX_CPPFLAGS)
245 AC_SUBST(WX_CXXFLAGS)
246 AC_SUBST(WX_CFLAGS_ONLY)
247 AC_SUBST(WX_CXXFLAGS_ONLY)
249 AC_SUBST(WX_LIBS_STATIC)