Mark msysGit as obsolete
[msysgit.git] / mingw / share / doc / gettext / examples / hello-c++-wxwidgets / m4 / wxwidgets.m4
blob24c258a24c48d6f590a92facebba1297d38f70ce
1 dnl ---------------------------------------------------------------------------
2 dnl Macros for wxWidgets detection. Typically used in configure.in as:
3 dnl
4 dnl     AC_ARG_ENABLE(...)
5 dnl     AC_ARG_WITH(...)
6 dnl        ...
7 dnl     AM_OPTIONS_WXCONFIG
8 dnl        ...
9 dnl        ...
10 dnl     AM_PATH_WXCONFIG(2.6.0, wxWin=1)
11 dnl     if test "$wxWin" != 1; then
12 dnl        AC_MSG_ERROR([
13 dnl                wxWidgets must be installed on your system
14 dnl                but wx-config script couldn't be found.
15 dnl
16 dnl                Please check that wx-config is in path, the directory
17 dnl                where wxWidgets libraries are installed (returned by
18 dnl                'wx-config --libs' command) is in LD_LIBRARY_PATH or
19 dnl                equivalent variable and wxWidgets version is 2.3.4 or above.
20 dnl        ])
21 dnl     fi
22 dnl     CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS"
23 dnl     CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY"
24 dnl     CFLAGS="$CFLAGS $WX_CFLAGS_ONLY"
25 dnl
26 dnl     LIBS="$LIBS $WX_LIBS"
27 dnl ---------------------------------------------------------------------------
29 dnl ---------------------------------------------------------------------------
30 dnl AM_OPTIONS_WXCONFIG
31 dnl
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],
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="")
54 dnl Helper macro for checking if wx version is at least $1.$2.$3, set's
55 dnl wx_ver_ok=yes if it is:
56 AC_DEFUN([_WX_PRIVATE_CHECK_VERSION],
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
78 dnl ---------------------------------------------------------------------------
79 dnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
80 dnl                  [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]])
81 dnl
82 dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC
83 dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME
84 dnl environment variable to override the default name of the wx-config script
85 dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this
86 dnl case the macro won't even waste time on tests for its existence.
87 dnl
88 dnl Optional WX-LIBS argument contains comma- or space-separated list of
89 dnl wxWidgets libraries to link against (it may include contrib libraries). If
90 dnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to
91 dnl link with all of the core wxWidgets libraries.
92 dnl
93 dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config
94 dnl invocation command in present. It can be used to fine-tune lookup of
95 dnl best wxWidgets build available.
96 dnl
97 dnl Example use:
98 dnl   AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], [html,core,net]
99 dnl                    [--unicode --debug])
100 dnl ---------------------------------------------------------------------------
103 dnl Get the cflags and libraries from the wx-config script
105 AC_DEFUN([AM_PATH_WXCONFIG],
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
112   if test "x$wx_config_name" != x ; then
113      WX_CONFIG_NAME="$wx_config_name"
114   fi
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
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
138   if test "$WX_CONFIG_PATH" != "no" ; then
139     WX_VERSION=""
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
148     WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4"
150     WX_VERSION=`$WX_CONFIG_WITH_ARGS --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/'`
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/'`
165     _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version],
166                               [$wx_requested_minor_version],
167                               [$wx_requested_micro_version])
169     if test -n "$wx_ver_ok"; then
171       AC_MSG_RESULT(yes (version $WX_VERSION))
172       WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`
174       dnl is this even still appropriate?  --static is a real option now
175       dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is
176       dnl what the user actually wants, making this redundant at best.
177       dnl For now keep it in case anyone actually used it in the past.
178       AC_MSG_CHECKING([for wxWidgets static library])
179       WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null`
180       if test "x$WX_LIBS_STATIC" = "x"; then
181         AC_MSG_RESULT(no)
182       else
183         AC_MSG_RESULT(yes)
184       fi
186       dnl starting with version 2.2.6 wx-config has --cppflags argument
187       wx_has_cppflags=""
188       if test $wx_config_major_version -gt 2; then
189         wx_has_cppflags=yes
190       else
191         if test $wx_config_major_version -eq 2; then
192            if test $wx_config_minor_version -gt 2; then
193               wx_has_cppflags=yes
194            else
195               if test $wx_config_minor_version -eq 2; then
196                  if test $wx_config_micro_version -ge 6; then
197                     wx_has_cppflags=yes
198                  fi
199               fi
200            fi
201         fi
202       fi
204       if test "x$wx_has_cppflags" = x ; then
205          dnl no choice but to define all flags like CFLAGS
206          WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
207          WX_CPPFLAGS=$WX_CFLAGS
208          WX_CXXFLAGS=$WX_CFLAGS
210          WX_CFLAGS_ONLY=$WX_CFLAGS
211          WX_CXXFLAGS_ONLY=$WX_CFLAGS
212       else
213          dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS
214          WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags`
215          WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags`
216          WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
218          WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"`
219          WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"`
220       fi
222       ifelse([$2], , :, [$2])
224     else
226        if test "x$WX_VERSION" = x; then
227           dnl no wx-config at all
228           AC_MSG_RESULT(no)
229        else
230           AC_MSG_RESULT(no (version $WX_VERSION is not new enough))
231        fi
233        WX_CFLAGS=""
234        WX_CPPFLAGS=""
235        WX_CXXFLAGS=""
236        WX_LIBS=""
237        WX_LIBS_STATIC=""
238        ifelse([$3], , :, [$3])
240     fi
241   else
243     WX_CFLAGS=""
244     WX_CPPFLAGS=""
245     WX_CXXFLAGS=""
246     WX_LIBS=""
247     WX_LIBS_STATIC=""
248     ifelse([$3], , :, [$3])
250   fi
252   AC_SUBST(WX_CPPFLAGS)
253   AC_SUBST(WX_CFLAGS)
254   AC_SUBST(WX_CXXFLAGS)
255   AC_SUBST(WX_CFLAGS_ONLY)
256   AC_SUBST(WX_CXXFLAGS_ONLY)
257   AC_SUBST(WX_LIBS)
258   AC_SUBST(WX_LIBS_STATIC)
259   AC_SUBST(WX_VERSION)
262 dnl ---------------------------------------------------------------------------
263 dnl Get information on the wxrc program for making C++, Python and xrs
264 dnl resource files.
266 dnl     AC_ARG_ENABLE(...)
267 dnl     AC_ARG_WITH(...)
268 dnl        ...
269 dnl     AM_OPTIONS_WXCONFIG
270 dnl     AM_OPTIONS_WXRC
271 dnl        ...
272 dnl     AM_PATH_WXCONFIG(2.6.0, wxWin=1)
273 dnl     if test "$wxWin" != 1; then
274 dnl        AC_MSG_ERROR([
275 dnl                wxWidgets must be installed on your system
276 dnl                but wx-config script couldn't be found.
278 dnl                Please check that wx-config is in path, the directory
279 dnl                where wxWidgets libraries are installed (returned by
280 dnl                'wx-config --libs' command) is in LD_LIBRARY_PATH or
281 dnl                equivalent variable and wxWidgets version is 2.6.0 or above.
282 dnl        ])
283 dnl     fi
285 dnl     AM_PATH_WXRC([HAVE_WXRC=1], [HAVE_WXRC=0])
286 dnl     if test "x$HAVE_WXRC" != x1; then
287 dnl         AC_MSG_ERROR([
288 dnl                The wxrc program was not installed or not found.
289 dnl     
290 dnl                Please check the wxWidgets installation.
291 dnl         ])
292 dnl     fi
294 dnl     CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS"
295 dnl     CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY"
296 dnl     CFLAGS="$CFLAGS $WX_CFLAGS_ONLY"
298 dnl     LDFLAGS="$LDFLAGS $WX_LIBS"
299 dnl ---------------------------------------------------------------------------
303 dnl ---------------------------------------------------------------------------
304 dnl AM_PATH_WXRC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
306 dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS
307 dnl resources.  The variable WXRC will be set and substituted in the configure
308 dnl script and Makefiles.
310 dnl Example use:
311 dnl   AM_PATH_WXRC([wxrc=1], [wxrc=0])
312 dnl ---------------------------------------------------------------------------
315 dnl wxrc program from the wx-config script
317 AC_DEFUN([AM_PATH_WXRC],
319   AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler])
320     
321   if test "x$WX_CONFIG_NAME" = x; then
322     AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.])
323   else
324     
325     AC_MSG_CHECKING([for wxrc])
326     
327     if test "x$WXRC" = x ; then
328       dnl wx-config --utility is a new addition to wxWidgets:
329       _WX_PRIVATE_CHECK_VERSION(2,5,3)
330       if test -n "$wx_ver_ok"; then
331         WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc`
332       fi
333     fi
335     if test "x$WXRC" = x ; then
336       AC_MSG_RESULT([not found])
337       ifelse([$2], , :, [$2])
338     else
339       AC_MSG_RESULT([$WXRC])
340       ifelse([$1], , :, [$1])
341     fi
342     
343     AC_SUBST(WXRC)
344   fi