1dnl --------------------------------------------------------------------------- 2dnl Macros for wxWidgets detection. Typically used in configure.in as: 3dnl 4dnl AC_ARG_ENABLE(...) 5dnl AC_ARG_WITH(...) 6dnl ... 7dnl AM_OPTIONS_WXCONFIG 8dnl ... 9dnl ... 10dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1) 11dnl if test "$wxWin" != 1; then 12dnl AC_MSG_ERROR([ 13dnl wxWidgets must be installed on your system 14dnl but wx-config script couldn't be found. 15dnl 16dnl Please check that wx-config is in path, the directory 17dnl where wxWidgets libraries are installed (returned by 18dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or 19dnl equivalent variable and wxWidgets version is 2.3.4 or above. 20dnl ]) 21dnl fi 22dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" 23dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" 24dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" 25dnl 26dnl LIBS="$LIBS $WX_LIBS" 27dnl --------------------------------------------------------------------------- 28 29dnl --------------------------------------------------------------------------- 30dnl AM_OPTIONS_WXCONFIG 31dnl 32dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and 33dnl --wx-config command line options 34dnl --------------------------------------------------------------------------- 35 36AC_DEFUN([AM_OPTIONS_WXCONFIG], 37[ 38 AC_ARG_WITH(wxdir, 39 [ --with-wxdir=PATH Use uninstalled version of wxWidgets 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 wxWidgets 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 wxWidgets is installed (optional)], 51 wx_config_exec_prefix="$withval", wx_config_exec_prefix="") 52]) 53 54dnl Helper macro for checking if wx version is at least $1.$2.$3, set's 55dnl wx_ver_ok=yes if it is: 56AC_DEFUN([_WX_PRIVATE_CHECK_VERSION], 57[ 58 wx_ver_ok="" 59 if test "x$WX_VERSION" != x ; then 60 if test $wx_config_major_version -gt $1; then 61 wx_ver_ok=yes 62 else 63 if test $wx_config_major_version -eq $1; then 64 if test $wx_config_minor_version -gt $2; then 65 wx_ver_ok=yes 66 else 67 if test $wx_config_minor_version -eq $2; then 68 if test $wx_config_micro_version -ge $3; then 69 wx_ver_ok=yes 70 fi 71 fi 72 fi 73 fi 74 fi 75 fi 76]) 77 78dnl --------------------------------------------------------------------------- 79dnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND 80dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]]) 81dnl 82dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC 83dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME 84dnl environment variable to override the default name of the wx-config script 85dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this 86dnl case the macro won't even waste time on tests for its existence. 87dnl 88dnl Optional WX-LIBS argument contains comma- or space-separated list of 89dnl wxWidgets libraries to link against (it may include contrib libraries). If 90dnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to 91dnl link with all of the core wxWidgets libraries. 92dnl 93dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config 94dnl invocation command in present. It can be used to fine-tune lookup of 95dnl best wxWidgets build available. 96dnl 97dnl Example use: 98dnl AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], [html,core,net] 99dnl [--unicode --debug]) 100dnl --------------------------------------------------------------------------- 101 102dnl 103dnl Get the cflags and libraries from the wx-config script 104dnl 105AC_DEFUN([AM_PATH_WXCONFIG], 106[ 107 dnl do we have wx-config name: it can be wx-config or wxd-config or ... 108 if test x${WX_CONFIG_NAME+set} != xset ; then 109 WX_CONFIG_NAME=wx-config 110 fi 111 112 if test "x$wx_config_name" != x ; then 113 WX_CONFIG_NAME="$wx_config_name" 114 fi 115 116 dnl deal with optional prefixes 117 if test x$wx_config_exec_prefix != x ; then 118 wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" 119 WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" 120 fi 121 if test x$wx_config_prefix != x ; then 122 wx_config_args="$wx_config_args --prefix=$wx_config_prefix" 123 WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" 124 fi 125 if test "$cross_compiling" = "yes"; then 126 wx_config_args="$wx_config_args --host=$host_alias" 127 fi 128 129 dnl don't search the PATH if WX_CONFIG_NAME is absolute filename 130 if test -x "$WX_CONFIG_NAME" ; then 131 AC_MSG_CHECKING(for wx-config) 132 WX_CONFIG_PATH="$WX_CONFIG_NAME" 133 AC_MSG_RESULT($WX_CONFIG_PATH) 134 else 135 AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH") 136 fi 137 138 if test "$WX_CONFIG_PATH" != "no" ; then 139 WX_VERSION="" 140 141 min_wx_version=ifelse([$1], ,2.2.1,$1) 142 if test -z "$5" ; then 143 AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version]) 144 else 145 AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)]) 146 fi 147 148 WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4" 149 150 WX_VERSION=`$WX_CONFIG_PATH --version 2>/dev/null` 151 wx_config_major_version=`echo $WX_VERSION | \ 152 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` 153 wx_config_minor_version=`echo $WX_VERSION | \ 154 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` 155 wx_config_micro_version=`echo $WX_VERSION | \ 156 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` 157 158 wx_requested_major_version=`echo $min_wx_version | \ 159 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` 160 wx_requested_minor_version=`echo $min_wx_version | \ 161 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` 162 wx_requested_micro_version=`echo $min_wx_version | \ 163 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` 164 165 _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version], 166 [$wx_requested_minor_version], 167 [$wx_requested_micro_version]) 168 169 if test -n "$wx_ver_ok"; then 170 171 AC_MSG_RESULT(yes (version $WX_VERSION)) 172 WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs` 173 174 dnl starting with version 2.2.6 wx-config has --cppflags argument 175 wx_has_cppflags="" 176 if test $wx_config_major_version -gt 2; then 177 wx_has_cppflags=yes 178 else 179 if test $wx_config_major_version -eq 2; then 180 if test $wx_config_minor_version -gt 2; then 181 wx_has_cppflags=yes 182 else 183 if test $wx_config_minor_version -eq 2; then 184 if test $wx_config_micro_version -ge 6; then 185 wx_has_cppflags=yes 186 fi 187 fi 188 fi 189 fi 190 fi 191 192 if test "x$wx_has_cppflags" = x ; then 193 dnl no choice but to define all flags like CFLAGS 194 WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` 195 WX_CPPFLAGS=$WX_CFLAGS 196 WX_CXXFLAGS=$WX_CFLAGS 197 198 WX_CFLAGS_ONLY=$WX_CFLAGS 199 WX_CXXFLAGS_ONLY=$WX_CFLAGS 200 else 201 dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS 202 WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags` 203 WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags` 204 WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` 205 206 dnl WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` 207 dnl WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` 208 fi 209 210 dnl we don't need no \n in the flags 211 WX_CFLAGS=`echo $WX_CFLAGS` 212 WX_CPPFLAGS=`echo $WX_CPPFLAGS` 213 WX_CXXFLAGS=`echo $WX_CXXFLAGS` 214 WX_LIBS=`echo $WX_LIBS` 215 216 ifelse([$2], , :, [$2]) 217 218 else 219 220 if test "x$WX_VERSION" = x; then 221 dnl no wx-config at all 222 AC_MSG_RESULT(no) 223 else 224 AC_MSG_RESULT(no (version $WX_VERSION is not new enough)) 225 fi 226 227 WX_CFLAGS="" 228 WX_CPPFLAGS="" 229 WX_CXXFLAGS="" 230 WX_LIBS="" 231 ifelse([$3], , :, [$3]) 232 233 fi 234 else 235 236 WX_CFLAGS="" 237 WX_CPPFLAGS="" 238 WX_CXXFLAGS="" 239 WX_LIBS="" 240 ifelse([$3], , :, [$3]) 241 242 fi 243 244 AC_SUBST(WX_CPPFLAGS) 245 AC_SUBST(WX_CFLAGS) 246 AC_SUBST(WX_CXXFLAGS) 247 AC_SUBST(WX_CFLAGS_ONLY) 248 AC_SUBST(WX_CXXFLAGS_ONLY) 249 AC_SUBST(WX_LIBS) 250 AC_SUBST(WX_VERSION) 251]) 252 253dnl --------------------------------------------------------------------------- 254dnl Get information on the wxrc program for making C++, Python and xrs 255dnl resource files. 256dnl 257dnl AC_ARG_ENABLE(...) 258dnl AC_ARG_WITH(...) 259dnl ... 260dnl AM_OPTIONS_WXCONFIG 261dnl AM_OPTIONS_WXRC 262dnl ... 263dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1) 264dnl if test "$wxWin" != 1; then 265dnl AC_MSG_ERROR([ 266dnl wxWidgets must be installed on your system 267dnl but wx-config script couldn't be found. 268dnl 269dnl Please check that wx-config is in path, the directory 270dnl where wxWidgets libraries are installed (returned by 271dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or 272dnl equivalent variable and wxWidgets version is 2.6.0 or above. 273dnl ]) 274dnl fi 275dnl 276dnl AM_PATH_WXRC([HAVE_WXRC=1], [HAVE_WXRC=0]) 277dnl if test "x$HAVE_WXRC" != x1; then 278dnl AC_MSG_ERROR([ 279dnl The wxrc program was not installed or not found. 280dnl 281dnl Please check the wxWidgets installation. 282dnl ]) 283dnl fi 284dnl 285dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" 286dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" 287dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" 288dnl 289dnl LDFLAGS="$LDFLAGS $WX_LIBS" 290dnl --------------------------------------------------------------------------- 291 292 293 294dnl --------------------------------------------------------------------------- 295dnl AM_PATH_WXRC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) 296dnl 297dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS 298dnl resources. The variable WXRC will be set and substituted in the configure 299dnl script and Makefiles. 300dnl 301dnl Example use: 302dnl AM_PATH_WXRC([wxrc=1], [wxrc=0]) 303dnl --------------------------------------------------------------------------- 304 305dnl 306dnl wxrc program from the wx-config script 307dnl 308AC_DEFUN([AM_PATH_WXRC], 309[ 310 AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler]) 311 312 if test "x$WX_CONFIG_NAME" = x; then 313 AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.]) 314 else 315 316 AC_MSG_CHECKING([for wxrc]) 317 318 if test "x$WXRC" = x ; then 319 dnl wx-config --utility is a new addition to wxWidgets: 320 _WX_PRIVATE_CHECK_VERSION(2,5,3) 321 if test -n "$wx_ver_ok"; then 322 WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc` 323 fi 324 fi 325 326 if test "x$WXRC" = x ; then 327 AC_MSG_RESULT([not found]) 328 ifelse([$2], , :, [$2]) 329 else 330 AC_MSG_RESULT([$WXRC]) 331 ifelse([$1], , :, [$1]) 332 fi 333 334 AC_SUBST(WXRC) 335 fi 336]) 337