4
AC_CONFIG_AUX_DIRS(autoconf)
8
if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then
9
AC_CONFIG_AUX_DIRS(autoconf)
10
WX_BUILDING_INSIDE_ERLSRC=false
13
if test -d $erl_top/erts/autoconf; then
14
AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf)
15
WX_BUILDING_INSIDE_ERLSRC=true
17
AC_CONFIG_AUX_DIRS(autoconf)
18
WX_BUILDING_INSIDE_ERLSRC=false
22
if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then
30
if test "X$host" = "X"; then
46
AC_MSG_NOTICE(Building for [$host_os])
48
WXERL_CAN_BUILD_DRIVER=true
50
AC_MSG_CHECKING(for mixed cygwin and native VC++ environment)
51
if test "X$CC" = "Xcc.sh" -a "X$host" = "Xwin32" -a "x$GCC" != x"yes"; then
52
if test -x /usr/bin/cygpath; then
57
CPPFLAGS="$CPPFLAGS -DERTS_MIXED_CYGWIN_VC"
59
AC_MSG_RESULT([undeterminable])
60
AC_MSG_ERROR(Seems to be mixed windows but not with cygwin, cannot handle this!)
66
AC_SUBST(MIXED_CYGWIN_VC)
68
AC_MSG_CHECKING(for mixed cygwin and native MinGW environment)
69
if test "X$CC" = "Xcc.sh" -a "X$host" = "Xwin32" -a "x$GCC" = x"yes"; then
70
if test -x /usr/bin/cygpath; then
74
MIXED_CYGWIN_MINGW=yes
75
CPPFLAGS="$CPPFLAGS -DERTS_MIXED_CYGWIN_MINGW"
77
AC_MSG_RESULT([undeterminable])
78
AC_MSG_ERROR(Seems to be mixed windows but not with cygwin, cannot handle this!)
84
AC_SUBST(MIXED_CYGWIN_MINGW)
86
AC_MSG_CHECKING(if we mix cygwin with any native compiler)
87
if test "X$MIXED_CYGWIN" = "Xyes" ; then
93
AC_SUBST(MIXED_CYGWIN)
95
PTHR_CFLAGS="-D_THREAD_SAFE -D_REENTRANT"
97
dnl NOTE: CPPFLAGS will be included in CFLAGS at the end
101
CPPFLAGS="$CPPFLAGS -D_MACOSX $PTHR_CFLAGS"
104
CFLAGS="$CFLAGS -DWIN32 -DWINVER=0x0500 -D_WINDOWS -D_UNICODE -DUNICODE"
105
CPPFLAGS="$CPPFLAGS -D_WIN32_WINNT=0x0500"
106
AC_MSG_WARN([Reverting to 32-bit time_t])
107
CPPFLAGS="$CPPFLAGS -D_USE_32BIT_TIME_T"
110
CFLAGS="$CFLAGS -DWIN32 -DWINVER=0x0500 -D_WINDOWS -D_UNICODE -DUNICODE"
111
CPPFLAGS="$CPPFLAGS -D_WIN32_WINNT=0x0500"
114
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE $PTHR_CFLAGS"
120
CFLAGS="-no-cpp-precomp"
121
LDFLAGS="-bundle -flat_namespace -undefined suppress -fPIC -framework OpenGL"
127
LDFLAGS="-shared -fPIC"
131
LDFLAGS="-shared -fPIC"
135
dnl ----------------------------------------------------------------------
136
dnl Include CPPFLAGS in CFLAGS
137
dnl ----------------------------------------------------------------------
141
DEBUG_CFLAGS="-g -Wall -DDEBUG $CFLAGS"
142
CFLAGS="-g -Wall -O2 -fomit-frame-pointer -fno-strict-aliasing $CFLAGS"
145
DEBUG_CFLAGS="-g -Wall -DDEBUG $CFLAGS"
146
CFLAGS="-g -Wall -O2 $CFLAGS"
149
DEBUG_CFLAGS="-g -Wall -fPIC -DDEBUG $CFLAGS"
150
CFLAGS="-g -Wall -O2 -fPIC -fomit-frame-pointer -fno-strict-aliasing $CFLAGS"
154
CXXFLAGS="$CFLAGS $CPPFLAGS"
155
CFLAGS="$CFLAGS $CPPFLAGS $C_ONLY_FLAGS"
157
DEBUG_CXXFLAGS="$DEBUG_CFLAGS $CPPFLAGS"
158
DEBUG_CFLAGS="$DEBUG_CFLAGS $CPPFLAGS $C_ONLY_FLAGS"
159
AC_SUBST(DEBUG_CFLAGS)
160
AC_SUBST(DEBUG_CXXFLAGS)
163
if test X"$WX_BUILDING_INSIDE_ERLSRC" != X"true" ; then
164
AC_MSG_CHECKING(for erl)
165
if test X$ERL != X; then
166
AC_MSG_RESULT([yes; using $ERL])
168
type erl >/dev/null 2>&1
169
if test $? -eq 0 ; then
173
AC_MSG_ERROR([Cannot find erl in path])
176
AC_MSG_CHECKING(for erlc)
177
if test X$ERLC != X; then
178
AC_MSG_RESULT([yes; using $ERLC])
180
type erlc >/dev/null 2>&1
181
if test $? -eq 0 ; then
185
AC_MSG_ERROR([Cannot find erlc in path])
188
ERLANG_ROOT_DIR=`echo 'io:format("~n~s~n", [[code:root_dir()]]), halt().' | erl | tail +3`
189
AC_MSG_NOTICE(ERL ROOT DIR: [$ERLANG_ROOT_DIR])
193
ERLANG_ROOT_DIR=$ERL_TOP
197
AC_SUBST(WX_BUILDING_INSIDE_ERLSRC)
198
AC_SUBST(ERLANG_ROOT_DIR)
201
dnl Check for wxwidgets
203
if test X"$MIXED_CYGWIN_VC" != X"yes" ; then
208
# Try to find debug libs first
209
# wxelibs=core,base,gl,aui,adv
211
AC_MSG_CHECKING(for debug build of WxWidgets)
213
AM_PATH_WXCONFIG($reqwx, wxWinWithGL=1, wxWinWithGL=0, [stc,xrc,html,adv,xml,core,base,gl,aui], [--unicode --debug=yes])
214
DEBUG_WX_CFLAGS=$WX_CFLAGS
215
DEBUG_WX_CXXFLAGS=$WX_CXXFLAGS
216
DEBUG_WX_LIBS=$WX_LIBS
217
DEBUG_WX_LIBS_STATIC=$WX_LIBS_STATIC
218
AC_SUBST(DEBUG_WX_CFLAGS)
219
AC_SUBST(DEBUG_WX_CXXFLAGS)
220
AC_SUBST(DEBUG_WX_LIBS)
221
AC_SUBST(DEBUG_WX_LIBS_STATIC)
223
AC_MSG_CHECKING(for standard build of WxWidgets)
224
AM_PATH_WXCONFIG($reqwx, wxWinWithGL=1, wxWinWithGL=0, [stc,xrc,html,adv,xml,core,base,gl,aui], [--unicode --debug=no])
226
if test "x$WX_LIBS_STATIC" = "x"; then
227
WX_HAVE_STATIC_LIBS=false
229
WX_HAVE_STATIC_LIBS=true
232
if test "$wxWinWithGL" != 1; then
233
AM_PATH_WXCONFIG($reqwx, wxWin=1, wxWin=0, [stc,xrc,html,adv,xml,core,base,aui], [--unicode])
238
define(wx_warn_text,[
239
wxWidgets must be installed on your system.
241
Please check that wx-config is in path, the directory
242
where wxWidgets libraries are installed (returned by
243
'wx-config --libs' or 'wx-config --static --libs' command)
244
is in LD_LIBRARY_PATH or equivalent variable and
245
wxWidgets version is $reqwx or above.])
247
if test "$wxWin" != 1; then
248
if test X"$WX_BUILDING_INSIDE_ERLSRC" != X"true" ; then
249
AC_MSG_ERROR([wx_warn_text])
251
echo "wxWidgets not found, wx will NOT be useable" > ./CONF_INFO
252
WXERL_CAN_BUILD_DRIVER=false
253
AC_MSG_WARN([wx_warn_text])
257
AC_MSG_CHECKING(for WxWidgets in standard locations)
258
CWXWIN=`cygpath $WXWIN 2>/dev/null`
259
for dir in $CWXWIN /opt/local/pgm/wxMSW-2.8.*; do
260
if test -f $dir/include/wx/wx.h; then
261
WXINCLUDE_MSVC=$dir/include/msvc
262
WXINCLUDE_PLAIN=$dir/include
263
WXINCLUDE_CONTRIB=$dir/contrib/include
264
WX_CFLAGS="-EHsc -D_UNICODE -DUNICODE -I$WXINCLUDE_MSVC -I$WXINCLUDE_PLAIN -I$WXINCLUDE_CONTRIB -D__WXMSW__"
265
WX_CXXFLAGS=$WX_CFLAGS
266
WX_LIBDIR=$dir/lib/vc_lib
267
WX_RESCOMP="rc.sh -I$WXINCLUDE_PLAIN -D __WIN32__"
269
for lib in $WX_LIBDIR/wxbase*.lib; do
270
maybe=`echo $lib | egrep 'wxbase[[0-9]]*u\.lib'`
271
if test '!' -z "$maybe"; then
272
corelib_number=`echo $maybe | sed 's,.*\([[0-9]].\)u\.lib,\1,'`
276
if test '!' -z "$corelib_number"; then
277
WXLIBNO=$corelib_number
278
WX_LIBS0="wxmsw${WXLIBNO}u_stc wxmsw${WXLIBNO}u_xrc wxmsw${WXLIBNO}u_html"
279
WX_LIBS1="wxmsw${WXLIBNO}u_adv wxbase${WXLIBNO}u_xml wxmsw${WXLIBNO}u_core"
280
WX_LIBS2="wxbase${WXLIBNO}u wxmsw${WXLIBNO}u_gl wxmsw${WXLIBNO}u_aui"
281
WX_LIBS3="wxregexu wxexpat wxtiff wxjpeg wxpng wxzlib"
282
WX_SYSLIBS="winspool winmm oleaut32 ole32"
283
WX_LIBS_STATIC="-L$WX_LIBDIR"
284
for lib in $WX_LIBS0 $WX_LIBS1 $WX_LIBS2 $WX_LIBS3 $WX_SYSLIBS; do
285
WX_LIBS_STATIC="$WX_LIBS_STATIC -l$lib"
287
AC_MSG_RESULT([$dir])
292
if test -z "$WX_LIBS_STATIC"; then
293
AC_MSG_RESULT([failed])
294
if test X"$WX_BUILDING_INSIDE_ERLSRC" != X"true" ; then
295
AC_MSG_ERROR([Cannot find core lib version for wxWidgets])
297
echo "No usable wxWidgets not found, wx will not be useable" > ./CONF_INFO
298
WXERL_CAN_BUILD_DRIVER=false
299
AC_MSG_WARN([Cannot find core lib version for wxWidgets])
302
WX_HAVE_STATIC_LIBS=true
304
AC_SUBST(WX_CXXFLAGS)
305
AC_SUBST(WX_LIBS_STATIC)
309
AC_SUBST(WX_HAVE_STATIC_LIBS)
310
AC_SUBST(RC_FILE_TYPE)
316
if test X"$host_os" != X"win32" ; then
317
AC_CHECK_HEADERS([GL/gl.h])
318
AC_CHECK_HEADERS([OpenGL/gl.h])
320
AC_CHECK_HEADERS([gl/gl.h],[],[],[#include <windows.h>])
323
AC_MSG_CHECKING(if wxwidgets have opengl support)
325
saved_CXXFLAGS=$CXXFLAGS
326
CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS"
331
# include <windows.h>
342
AC_DEFINE(HAVE_GL_SUPPORT, [1], [Define if wxwidgets have gl support])],
345
CXXFLAGS=$saved_CXXFLAGS
347
AC_MSG_RESULT($HAVE_GL_SUPPORT)
348
AC_SUBST(HAVE_GL_SUPPORT)
350
if test X"$HAVE_GL_SUPPORT" != X"yes" ; then
351
echo "wxWidgets don't have gl support, wx will NOT be useable" > ./CONF_INFO
352
WXERL_CAN_BUILD_DRIVER=false
355
dnl Check for GLintptr
356
dnl We define the types glext.h so we don't depend on glext.h is updated
357
dnl to the latest version, but some systems defined them in gl.h
358
dnl i.e Darwin and Solaris.
360
AC_CHECK_TYPES([GLintptr, GLintptrARB, GLchar,
361
GLcharARB, GLhalfARB, GLint64EXT],
364
# include <windows.h>
366
#elif defined(HAVE_GL_GL_H)
368
#elif defined(HAVE_OPENGL_GL_H)
369
# include <OpenGL/gl.h>
375
AC_MSG_CHECKING(GLU Callbacks uses Tiger Style)
377
saved_CXXFLAGS=$CXXFLAGS
378
CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS"
382
# include <windows.h>
384
#elif defined(HAVE_GL_GL_H)
386
#elif defined(HAVE_OPENGL_GL_H)
387
# include <OpenGL/glu.h>
392
void CALLBACK foo() {};
396
gluTessCallback(tess,GLU_TESS_VERTEX,(GLvoid (*)(...)) foo);
398
[TESS_CB_TIGER_STYLE=yes
399
AC_DEFINE(TESS_CB_TIGER_STYLE, [1], [GLU Callbacks are Tiger style])],
400
TESS_CB_TIGER_STYLE=no)
401
AC_MSG_RESULT($TESS_CB_TIGER_STYLE)
402
AC_SUBST(TESS_CB_TIGER_STYLE)
405
dnl Check that we wx have stc (wxStyledTextControl) headers
408
AC_CHECK_HEADERS([wx/stc/stc.h],
410
[WXERL_CAN_BUILD_DRIVER=false
411
echo "wxWidgets don't have wxStyledTextControl (stc.h), wx will NOT be useable" > ./CONF_INFO
412
AC_MSG_WARN([Can not find wx/stc/stc.h])
415
# include <windows.h>
420
dnl Check that we can link all the libraries
423
AC_MSG_CHECKING(if we can link wxwidgets programs)
426
if test X"$WX_HAVE_STATIC_LIBS" = X"true" ; then
432
# include <windows.h>
434
#elif defined(HAVE_GL_GL_H)
436
#elif defined(HAVE_OPENGL_GL_H)
437
# include <OpenGL/gl.h>
440
#include "wx/stc/stc.h"
441
#include "wx/glcanvas.h"
443
class MyApp : public wxApp
445
virtual bool OnInit() {
446
wxStyledTextCtrl * foo = new wxStyledTextCtrl();
447
wxGLCanvas * bar = new wxGLCanvas((wxWindow *) NULL, -1,
448
wxDefaultPosition,wxDefaultSize,0);
461
CXXFLAGS=$saved_CXXFLAGS
464
AC_MSG_RESULT($CAN_LINK_WX)
466
if test X"$CAN_LINK_WX" != X"yes" ; then
467
echo "Can not link the wx driver, wx will NOT be useable" > ./CONF_INFO
468
WXERL_CAN_BUILD_DRIVER=false
469
AC_MSG_WARN([Can not link wx program are all developer packages installed?])
472
AC_SUBST(WXERL_CAN_BUILD_DRIVER)
474
#############################################################################
491
if test X"$WX_BUILDING_INSIDE_ERLSRC" != X"true" ; then
492
dnl Find driver directory name according to erlang
493
WXERL_SYS_TYPE=`echo 'io:format("~n~s~n", [[erlang:system_info(system_architecture)]]), halt().' | erl | tail +3`
495
WXERL_SYS_TYPE=$TARGET
498
AC_SUBST(WXERL_SYS_TYPE)
500
mkdir -p $WXERL_SYS_TYPE
501
CONFIG_STATUS=$WXERL_SYS_TYPE/config.status
505
if test X"$WX_BUILDING_INSIDE_ERLSRC" != X"true" ; then
506
if test X"$WXERL_CAN_BUILD_DRIVER" != X"true" ; then
507
AC_MSG_ERROR([Cannot build wxErlang driver, see ./CONF_INFO for information])
518
if test X"$WX_BUILDING_INSIDE_ERLSRC" != X"true" ; then
520
AC_MSG_NOTICE(--------------------------------------------------)
521
AC_MSG_NOTICE(Using erlang compiler: [$ERLC])
522
AC_MSG_NOTICE(wxErlang Install in: [$ERLANG_ROOT_DIR/lib/wx-$ERLWX_VSN])
523
AC_MSG_NOTICE(Erlang driver in priv/[$WXERL_SYS_TYPE]/wxe_driver[$SO_EXT])
524
AC_MSG_NOTICE(--------------------------------------------------)
527
if test X"$WX_BUILDING_INSIDE_ERLSRC" = X"true" ; then
528
CORES=`ls core* 2>/dev/null`
529
if test X"$CORES" != X"" ; then
530
echo "Configure dumped core files" > ignore_core_files