1dnl Process this file with autoconf to produce a configure script. -*-m4-*- 2 3dnl %CopyrightBegin% 4dnl 5dnl Copyright Ericsson AB 2008-2016. All Rights Reserved. 6dnl 7dnl Licensed under the Apache License, Version 2.0 (the "License"); 8dnl you may not use this file except in compliance with the License. 9dnl You may obtain a copy of the License at 10dnl 11dnl http://www.apache.org/licenses/LICENSE-2.0 12dnl 13dnl Unless required by applicable law or agreed to in writing, software 14dnl distributed under the License is distributed on an "AS IS" BASIS, 15dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16dnl See the License for the specific language governing permissions and 17dnl limitations under the License. 18dnl 19dnl %CopyrightEnd% 20 21AC_INIT() 22 23AC_CONFIG_AUX_DIRS($srcdir/autoconf) 24 25AC_PREREQ(2.59) 26 27## Delete previous failed configure results 28if test -f ./CONF_INFO; then 29 rm ./CONF_INFO 30fi 31 32AC_DEFUN([WX_MSG_ERROR], 33[ echo "$1" >> ./CONF_INFO 34 WXERL_CAN_BUILD_DRIVER=false 35 if test X"$with_wx" = X"yes" ; then 36 AC_MSG_ERROR([$1]) 37 else 38 AC_MSG_WARN([$1]) 39 fi 40]) 41 42 43if test -z "$ERL_TOP" || test ! -d $ERL_TOP ; then 44 AC_MSG_ERROR([ERL_TOP is not set]) 45else 46 erl_top=${ERL_TOP} 47 AC_CONFIG_AUX_DIRS($erl_top/erts/autoconf) 48 WX_BUILDING_INSIDE_ERLSRC=true 49fi 50 51AC_ARG_WITH(wx, 52[ --with-wxdir=PATH specify location of wxWidgets include and lib 53 --with-wx use wxWidgets (default) 54 --without-wx don't use wxWidgets]) 55 56if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then 57 AC_CANONICAL_HOST 58else 59 host_os=win32 60fi 61 62case $host_os in 63 mingw32) 64 if test "X$host" = "X"; then 65 host=win32 66 fi 67 ;; 68 *) 69 ;; 70esac 71 72TARGET=$host 73AC_SUBST(TARGET) 74 75AC_PROG_CC 76AC_PROG_CXX 77AC_PROG_RANLIB 78AC_PROG_CPP 79 80AC_LANG_PUSH([C++]) 81AC_COMPILE_IFELSE([AC_LANG_PROGRAM( 82 [[#ifndef __cplusplus 83 #error "broken C++" 84 #endif]])],, 85 [CXX=;]) 86AC_LANG_POP([C++]) 87if test "X$CXX" = X ; then 88 WX_MSG_ERROR([Can not find C++ compiler]) 89fi 90WXERL_CAN_BUILD_DRIVER=false 91 92AC_MSG_NOTICE(Building for [$host_os]) 93WXERL_CAN_BUILD_DRIVER=true 94 95LM_WINDOWS_ENVIRONMENT 96 97USER_CFLAGS=$CFLAGS 98 99if test X"$MIXED_VC" = X"yes" ; then 100 CFLAGS="-Owx" 101fi 102 103AC_CHECK_SIZEOF(void *) 104 105PTHR_CFLAGS="-D_THREAD_SAFE -D_REENTRANT" 106 107OBJC_CC=$CC 108OBJC_CFLAGS="" 109CXXFLAGS="" 110dnl NOTE: CPPFLAGS will be included in CFLAGS at the end 111case $host_os in 112 darwin*) 113 AC_MSG_CHECKING([Checking wxWidgets for min version:]) 114 WX_CC=`wx-config --cc` 115 MAC_MIN=`echo "$WX_CC" | sed 's/^[[^ ]]*\ *//'` 116 AC_MSG_RESULT([$MAC_MIN]) 117 118 AC_MSG_CHECKING([if compiler accepts -ObjC]) 119 CFLAGS="$CFLAGS -ObjC" 120 AC_TRY_COMPILE([],[;], accept_objc_flag=true, accept_objc_flag=false) 121 if test "X$accept_objc_flag" = "Xtrue"; then 122 AC_MSG_RESULT([yes]) 123 C_ONLY_FLAGS="-ObjC" 124 else 125 dnl We are probably trying to build with a non-Apple gcc, 126 dnl which is good as long as we do not try to build Cocoa 127 dnl code. We need an Apple compiler for just that (Objective C) 128 AC_MSG_RESULT([no]) 129 AC_MSG_CHECKING([for a Cocoa compliant Objective C compiler]) 130 SEARCHFOR="" 131 SEARCHFORXX="" 132 save_IFS=$IFS 133 IFS=: 134 set $PATH 135 IFS=$save_IFS 136 while test X"$1" != X""; do 137 dnl Add all possible paths to a real apple gcc 138 SEARCHFOR="$1/gcc-apple-4.2 $SEARCHFOR" 139 SEARCHFORXX="$1/g++-apple-4.2 $SEARCHFORXX" 140 shift 141 done 142 dnl Add LLVM compilers, they will work in this case 143 SEARCHFOR="/usr/bin/clang /usr/bin/gcc $SEARCHFOR" 144 SEARCHFORXX="/usr/bin/clang /usr/bin/g++ $SEARCHFORXX" 145 APPLE_CC="" 146 APPLE_CXX="" 147 dnl SEARCHFOR is reversed, so we want to find the last existing 148 dnl executable in the list 149 IFS=" " 150 set $SEARCHFORXX 151 for x in $SEARCHFOR; do 152 if test -x $x; then 153 APPLE_CC=$x 154 fi 155 if test -x "$1"; then 156 APPLE_CXX="$1" 157 fi 158 shift 159 done 160 IFS=$save_IFS 161 if test X$APPLE_CC = X -o X$APPLE_CXX = X; then 162 AC_MSG_RESULT([no]) 163 dnl Complete failure, we cannot build Cocoa code 164 WX_MSG_ERROR([Can not find compiler to compile Cocoa applications]) 165 else 166 dnl We think we found an Apple compiler and will add 167 dnl Apple specific options 168 AC_MSG_RESULT([$APPLE_CC ($APPLE_CXX)]) 169 dnl We should use this compiler for all of wx - hack... 170 CC=$APPLE_CC 171 CXX=$APPLE_CXX 172 dnl Both clang and gcc accept these flags... 173 #CXXFLAGS="-x c++ $CXXFLAGS" 174 OBJC_CC=$APPLE_CC 175 OBJC_CFLAGS="-ObjC" 176 fi 177 fi 178 CFLAGS="$USER_CFLAGS $MAC_MIN -Wno-deprecated-declarations" 179 CPPFLAGS="$CPPFLAGS -D_MACOSX $PTHR_CFLAGS" 180 ;; 181 mingw32) 182 CFLAGS="$CFLAGS -DWIN32 -DWINVER=0x0600 -D_WINDOWS -D_UNICODE -DUNICODE" 183 CPPFLAGS="$CPPFLAGS -D_WIN32_WINNT=0x0600" 184 AC_MSG_WARN([Reverting to 32-bit time_t]) 185 CPPFLAGS="$CPPFLAGS -D_USE_32BIT_TIME_T" 186 ;; 187 win32) 188 CFLAGS="$CFLAGS -DWIN32 -DWINVER=0x0600 -D_WINDOWS -D_UNICODE -DUNICODE" 189 CPPFLAGS="$CPPFLAGS -D_WIN32_WINNT=0x0600" 190 ;; 191 *) 192 CFLAGS="$CFLAGS -Wno-deprecated-declarations" 193 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE $PTHR_CFLAGS" 194 ;; 195esac 196 197AC_SUBST(OBJC_CC) 198AC_SUBST(OBJC_CFLAGS) 199 200case $host_os in 201 darwin*) 202 LDFLAGS="$MAC_MIN -bundle -flat_namespace -undefined warning -fPIC $LDFLAGS" 203 # Check sizof_void_p as future will hold 64bit MacOS wx 204 if test $ac_cv_sizeof_void_p = 4; then 205 LDFLAGS="-m32 $LDFLAGS" 206 fi 207 GL_LIBS="-framework OpenGL" 208 ;; 209 win32) 210 LDFLAGS="-dll $LDFLAGS" 211 GL_LIBS="-lglu32 -lOpengl32" 212 ;; 213 mingw32) 214 LDFLAGS="-shared -fPIC $LDFLAGS" 215 GL_LIBS="-lglu32 -lOpengl32" 216 ;; 217 *) 218 LDFLAGS="-shared -fPIC $LDFLAGS" 219 GL_LIBS="-lGL -lGLU" 220 ;; 221esac 222 223dnl ---------------------------------------------------------------------- 224dnl Include CPPFLAGS in CFLAGS 225dnl ---------------------------------------------------------------------- 226 227case $host_os in 228 mingw32) 229 DEBUG_CFLAGS="-g -Wall -DDEBUG $CFLAGS" 230 CFLAGS="-g -Wall -O2 $CFLAGS -fomit-frame-pointer -fno-strict-aliasing" 231 ;; 232 win32) 233 DEBUG_CFLAGS="-g -Wall $CFLAGS -DDEBUG" 234 CFLAGS="-g -Wall -O2 $CFLAGS" 235 ;; 236 darwin*) 237 DEBUG_CFLAGS="-g -Wall -fPIC $CFLAGS -DDEBUG" 238 # omit-frame-pointer causes seg faults with 10.9 and clang 239 CFLAGS="-g -Wall -fPIC $CFLAGS -fno-strict-aliasing" 240 ;; 241 *) 242 DEBUG_CFLAGS="-g -Wall -fPIC $CFLAGS -DDEBUG" 243 CFLAGS="-Wall -fPIC $CFLAGS -fomit-frame-pointer -fno-strict-aliasing" 244 ;; 245esac 246 247dnl 248dnl Use -O1 -fno-move-loop-invariants for wxe_funcs.cpp to reduce 249dnl compilation time 250dnl 251 252if test "x$GCC" = xyes -a X"$host_os" != X"win32" ; then 253 CXXNOOPT="-O1" 254 LM_TRY_ENABLE_CFLAG([-fno-move-loop-invariants], [CXXNOOPT]) 255 LM_TRY_ENABLE_CFLAG([-fno-var-tracking-assignments], [CXXNOOPT]) 256fi 257 258dnl 259dnl Opengl tests 260dnl 261 262if test X"$host_os" != X"win32" ; then 263 AC_CHECK_HEADERS([GL/gl.h], [], 264 [AC_CHECK_HEADERS([OpenGL/gl.h])]) 265 if test X"$ac_cv_header_GL_gl_h" != Xyes && 266 test X"$ac_cv_header_OpenGL_gl_h" != Xyes 267 then 268 saved_CPPFLAGS="$CPPFLAGS" 269 AC_MSG_NOTICE(Checking for OpenGL headers in /usr/X11R6) 270 CPPFLAGS="-isystem /usr/X11R6/include $CPPFLAGS" 271 $as_unset ac_cv_header_GL_gl_h 272 AC_CHECK_HEADERS([GL/gl.h]) 273 if test X"$ac_cv_header_GL_gl_h" != Xyes ; then 274 AC_MSG_NOTICE(Checking for OpenGL headers in /usr/local) 275 CPPFLAGS="-isystem /usr/local/include $saved_CPPFLAGS" 276 $as_unset ac_cv_header_GL_gl_h 277 AC_CHECK_HEADERS([GL/gl.h]) 278 if test X"$ac_cv_header_GL_gl_h" != Xyes ; then 279 WX_MSG_ERROR([No OpenGL headers found, wx will NOT be usable]) 280 CPPFLAGS="$saved_CPPFLAGS" 281 else 282 GL_LIBS="-L/usr/local/lib $GL_LIBS" 283 fi 284 else 285 GL_LIBS="-L/usr/X11R6/lib $GL_LIBS" 286 fi 287 fi 288else 289 AC_CHECK_HEADERS([gl/gl.h],[],[],[#include <windows.h>]) 290fi 291 292if test X"$host_os" != X"win32" ; then 293 AC_CHECK_HEADERS([GL/glu.h], [], 294 [AC_CHECK_HEADERS([OpenGL/glu.h])]) 295 if test X"$ac_cv_header_GL_glu_h" != Xyes && 296 test X"$ac_cv_header_OpenGL_glu_h" != Xyes 297 then 298 WX_MSG_ERROR([No GLU headers found, wx will NOT be usable]) 299 fi 300else 301 AC_CHECK_HEADERS([gl/glu.h],[],[],[#include <windows.h>]) 302fi 303 304AC_SUBST(GL_LIBS) 305 306DEBUG_CXXFLAGS="$CXXFLAGS $DEBUG_CFLAGS $CPPFLAGS" 307DEBUG_CFLAGS="$DEBUG_CFLAGS $CPPFLAGS $C_ONLY_FLAGS" 308 309CXXNOOPTFLAGS="$CXXFLAGS $CFLAGS $CPPFLAGS $CXXNOOPT" 310CXXFLAGS="$CXXFLAGS $CFLAGS $CPPFLAGS" 311CFLAGS="$CFLAGS $CPPFLAGS $C_ONLY_FLAGS" 312 313AC_SUBST(DEBUG_CFLAGS) 314AC_SUBST(DEBUG_CXXFLAGS) 315 316ERLC=erlc 317ERL=erl 318ERLANG_ROOT_DIR=$ERL_TOP 319AC_SUBST(ERLC) 320 321AC_SUBST(WX_BUILDING_INSIDE_ERLSRC) 322AC_SUBST(ERLANG_ROOT_DIR) 323 324dnl 325dnl Check for wxwidgets 326dnl 327if test "$cross_compiling" = "yes"; then 328 WX_MSG_ERROR([Cross compilation of the wx driver is not supported yet, wx will NOT be usable]) 329elif test X"$MIXED_VC" = X"no"; then 330 m4_include(wxwin-nothrow.m4) 331 332 AM_OPTIONS_WXCONFIG 333 reqwx=3.0.2 334 AM_PATH_WXCONFIG($reqwx, [], [], [core,base,html,webview], [--unicode]) 335 AC_MSG_CHECKING(for wxwidgets webview) 336 AC_LANG_PUSH(C++) 337 saved_CXXFLAGS=$CXXFLAGS 338 CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS" 339 saved_LIBS=$LIBS 340 LIBS=$WX_LIBS 341 342 AC_LINK_IFELSE( 343 [AC_LANG_PROGRAM([[ 344 #include "wx/wx.h" 345 #include "wx/webview.h" 346 ]], [[ 347 wxWebView::New(); 348 ]])], 349 HAVE_WEBVIEW_SUPPORT=yes, HAVE_WEBVIEW_SUPPORT=no) 350 351 CXXFLAGS=$saved_CXXFLAGS 352 LIBS=$saved_LIBS 353 AC_LANG_POP(C++) 354 AC_MSG_RESULT($HAVE_WEBVIEW_SUPPORT) 355 356 if test X"$HAVE_WEBVIEW_SUPPORT" != X"yes" ; then 357 WXELIBS=stc,xrc,html,adv,xml,core,base,gl,aui 358 echo "wxWidgets was not compiled with --enable-webview or wxWebView developer package is not installed, wxWebView will NOT be available" >> ./CONF_INFO 359 else 360 WXELIBS=stc,xrc,html,adv,xml,core,base,gl,aui,webview 361 AC_DEFINE([WXE_WEBVIEW]) 362 fi 363 364 # Try to find debug libs first 365 AM_PATH_WXCONFIG($reqwx, wxWinWithGLDBG=1, wxWinWithGLDBG=0, [$WXELIBS], [--unicode --debug=yes]) 366 367 AC_MSG_CHECKING(for debug build of wxWidgets) 368 if test "$wxWinWithGLDBG" = 1; then 369 AC_MSG_RESULT(yes); 370 else 371 AC_MSG_RESULT(no); 372 fi 373 374 DEBUG_WX_CFLAGS=$WX_CFLAGS 375 DEBUG_WX_CXXFLAGS=$WX_CXXFLAGS 376 DEBUG_WX_LIBS=$WX_LIBS 377 DEBUG_WX_LIBS_STATIC=$WX_LIBS_STATIC 378 AC_SUBST(DEBUG_WX_CFLAGS) 379 AC_SUBST(DEBUG_WX_CXXFLAGS) 380 AC_SUBST(DEBUG_WX_LIBS) 381 AC_SUBST(DEBUG_WX_LIBS_STATIC) 382 383 AM_PATH_WXCONFIG($reqwx, wxWinWithGL=1, wxWinWithGL=0, [$WXELIBS], [--unicode --debug=no]) 384 385 AC_MSG_CHECKING(for standard build of wxWidgets) 386 if test "$wxWinWithGL" = 1; then 387 AC_MSG_RESULT(yes); 388 else 389 AC_MSG_RESULT(no); 390 fi 391 392 if test "x$WX_LIBS_STATIC" = "x"; then 393 WX_HAVE_STATIC_LIBS=false 394 else 395 WX_HAVE_STATIC_LIBS=true 396 fi 397 398 wxWin=0 399 400 if test "$wxWinWithGLDBG" = 1; then 401 if test "$wxWinWithGL" = 1; then 402 wxWin=1 403 FORCED_DEBUG_BUILD=false 404 else 405 wxWin=1 406 FORCED_DEBUG_BUILD=debug 407 WX_CFLAGS=$DEBUG_WX_CFLAGS 408 WX_CXXFLAGS=$DEBUG_WX_CXXFLAGS 409 WX_LIBS=$DEBUG_WX_LIBS 410 WX_LIBS_STATIC=$DEBUG_WX_LIBS_STATIC 411 fi 412 elif test "$wxWinWithGL" = 1; then 413 wxWin=1 414 FORCED_DEBUG_BUILD=false 415 fi 416 AC_SUBST(FORCED_DEBUG_BUILD) 417 RC_FILE_TYPE=o 418 419 if test "$wxWin" != 1; then 420 WX_MSG_ERROR([ 421 wxWidgets must be installed on your system. 422 423 Please check that wx-config is in path, the directory 424 where wxWidgets libraries are installed (returned by 425 'wx-config --libs' or 'wx-config --static --libs' command) 426 is in LD_LIBRARY_PATH or equivalent variable and 427 wxWidgets version is $reqwx or above.]) 428 fi 429else 430 AC_MSG_CHECKING(for wxWidgets in standard locations) 431 echo 432 # Check whether --with-wxdir was given. 433 AC_MSG_NOTICE(OptionCheck: [$with_wxdir $with_wx_prefix]) 434 435 if test "${with_wxdir+set}" = set; then : 436 withval=$with_wxdir; CWXWIN0=$withval 437 else 438 # Check whether --with-wx-prefix was given. 439 if test "${with_wx_prefix+set}" = set; then : 440 withval=$with_wx_prefix; CWXWIN0=$withval 441 else 442 CWXWIN0="" 443 fi 444 fi 445 446 CWXWIN_CONFIG=`win32_path.sh -u $wx_config_name 2>/dev/null` 447 CWXWIN1=`dirname $CWXWIN_CONFIG 2>/dev/null` 448 CWXWIN2=`dirname $CWXWIN1 2>/dev/null` 449 450 if test -z "$PROGRAMFILES" ; then 451 PROGRAMFILES="c:/Program Files" 452 fi 453 454 CWXWIN_PROG=`win32_path.sh -u "$PROGRAMFILES" 2>/dev/null` 455 456 CWXWIN3="$CWXWIN_PROG/wxWidgets-3.*.* 457 CWXWIN4="$CWXWIN_PROG/wxMSW-3.*.* 458 459 DOC_OPT1=/opt/local/pgm 460 DOC_OPT2=/mnt/c/opt/local/pgm 461 CWX_DOCUMENTED="$DOC_OPT1/wxWidgets-3.*.* $DOC_OPT1/wxMSW-3.*.*" 462 CWX_DOCUMENTED="$DOC_OPT2/wxWidgets-3.*.* $DOC_OPT2/wxMSW-3.*.* $CWX_DOCUMENTED" 463 464 case $ac_cv_sizeof_void_p in 465 8) 466 VC_LIB=lib/vc_x64_lib 467 WX_ARCH=x64 468 DOC_OPT64_1=/opt/local64/pgm 469 DOC_OPT64_2=/mnt/c/opt/local64/pgm 470 CWX_DOCUMENTED="$DOC_OPT64_1/wxWidgets-3.*.* $DOC_OPT64_1/wxMSW-3.*.* $CWX_DOCUMENTED" 471 CWX_DOCUMENTED="$DOC_OPT64_2/wxWidgets-3.*.* $DOC_OPT64_2/wxMSW-3.*.* $CWX_DOCUMENTED" 472 ;; 473 *) 474 VC_LIB=lib/vc_lib 475 WX_ARCH=x86 476 DOC_OPT3=/opt/local32/pgm 477 DOC_OPT4=/mnt/c/opt/local32/pgm 478 CWX_DOCUMENTED="$DOC_OPT3/wxWidgets-3.*.* $DOC_OPT3/wxMSW-3.*.* $CWX_DOCUMENTED" 479 CWX_DOCUMENTED="$DOC_OPT4/wxWidgets-3.*.* $DOC_OPT4/wxMSW-3.*.* $CWX_DOCUMENTED" 480 ;; 481 esac 482 483 CWXPATH="$CWXWIN0 $CWXWIN1 $CWXWIN2 $CWX_DOCUMENTED $CWXWIN3 $CWXWIN4" 484 485 for dir in $CWXPATH; do 486 AC_MSG_NOTICE(Checking: [$dir]) 487 if test -f $dir/include/wx/wx.h; then 488 WXINCLUDE_MSVC=$dir/include/msvc 489 WXINCLUDE_PLAIN=$dir/include 490 WX_CFLAGS="-EHsc -D_UNICODE -DUNICODE -I$WXINCLUDE_MSVC -I$WXINCLUDE_PLAIN -D__WXMSW__" 491 WX_CXXFLAGS="-TP $WX_CFLAGS" 492 WX_LIBDIR=$dir/$VC_LIB 493 WX_RESCOMP="rc.sh -I$WXINCLUDE_PLAIN -D __WIN32__" 494 RC_FILE_TYPE=res 495 base=`ls $WX_LIBDIR/wxbase*.lib 2> /dev/null | egrep 'wxbase[[0-9]]*u\.lib'` 496 corelib_number=`echo $base | sed 's,.*\([[0-9]].\)u\.lib,\1,'` 497 if test '!' -z "$corelib_number"; then 498 WXLIBNO=$corelib_number 499 WX_LIBS0="wxmsw${WXLIBNO}u_stc wxmsw${WXLIBNO}u_xrc wxmsw${WXLIBNO}u_html" 500 WX_LIBS1="wxmsw${WXLIBNO}u_adv wxbase${WXLIBNO}u_xml wxmsw${WXLIBNO}u_core" 501 WX_LIBS2="wxbase${WXLIBNO}u wxmsw${WXLIBNO}u_gl wxmsw${WXLIBNO}u_aui" 502 WX_LIBS3="wxregexu wxexpat wxtiff wxjpeg wxpng wxzlib" 503 WX_SYSLIBS="winspool winmm oleaut32 ole32 gdiplus" 504 WX_LIBS_STATIC="-L$WX_LIBDIR" 505 for lib in $WX_LIBS0 $WX_LIBS1 $WX_LIBS2 $WX_LIBS3 $WX_SYSLIBS; do 506 WX_LIBS_STATIC="$WX_LIBS_STATIC -l$lib" 507 done 508 WXDIR=$dir 509 AC_MSG_RESULT([Found: $dir]) 510 break 511 fi 512 fi 513 done 514 515 if test -z "$WX_LIBS_STATIC"; then 516 AC_MSG_RESULT([failed]) 517 WX_MSG_ERROR([Cannot find core lib version for wxWidgets]) 518 fi 519 520 AC_MSG_CHECKING(for edge webview loader) 521 WEBVIEW_DLL=$WXDIR/3rdparty/webview2/build/native/$WX_ARCH/WebView2Loader.dll 522 if test -f "$WEBVIEW_DLL"; then 523 AC_MSG_RESULT([$WEBVIEW_DLL]) 524 WX_WEBVIEW_DLL=$WEBVIEW_DLL 525 else 526 AC_MSG_RESULT(not found in $WEBVIEW_DLL) 527 WX_WEBVIEW_DLL= 528 fi 529 530 531 WX_HAVE_STATIC_LIBS=true 532 AC_SUBST(WX_CFLAGS) 533 AC_SUBST(WX_CXXFLAGS) 534 AC_SUBST(WX_LIBS_STATIC) 535 AC_SUBST(WX_RESCOMP) 536 AC_SUBST(WX_WEBVIEW_DLL) 537 AC_DEFINE([WXE_WEBVIEW]) 538fi 539 540if test "$WXERL_CAN_BUILD_DRIVER" != "false"; then 541 542AC_SUBST(WX_HAVE_STATIC_LIBS) 543AC_SUBST(RC_FILE_TYPE) 544 545AC_MSG_CHECKING(for wxwidgets 3.0 compatibility ) 546AC_LANG_PUSH(C++) 547saved_CXXFLAGS=$CXXFLAGS 548CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS" 549 550AC_COMPILE_IFELSE( 551 [AC_LANG_PROGRAM([[ 552 #ifdef WIN32 553 # include <windows.h> 554 #endif 555 #include "wx/wx.h" 556 ]], [[ 557 #if wxMAJOR_VERSION > 2 && (wxMINOR_VERSION == 0 || WXWIN_COMPATIBILITY_3_0 == 1) 558 ; 559 #else 560 #error barf 561 #endif 562 ]])], 563 HAVE_COMPAT30_SUPPORT=yes, HAVE_COMPAT30_SUPPORT=no) 564 565CXXFLAGS=$saved_CXXFLAGS 566AC_LANG_POP(C++) 567AC_MSG_RESULT($HAVE_COMPAT30_SUPPORT) 568 569if test X"$HAVE_COMPAT30_SUPPORT" != X"yes" ; then 570 WX_MSG_ERROR([wxWidgets was not compiled with --enable-compat30, wx will NOT be useable]) 571fi 572 573AC_MSG_CHECKING(for wxwidgets opengl support) 574AC_LANG_PUSH(C++) 575saved_CXXFLAGS=$CXXFLAGS 576CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS" 577 578AC_COMPILE_IFELSE( 579 [AC_LANG_PROGRAM([[ 580 #ifdef WIN32 581 # include <windows.h> 582 #endif 583 #include "wx/wx.h" 584 ]], [[ 585 #if wxUSE_GLCANVAS 586 ; 587 #else 588 #error barf 589 #endif 590 ]])], 591[HAVE_GL_SUPPORT=yes 592 AC_DEFINE(HAVE_GL_SUPPORT, [1], [Define if wxwidgets have gl support])], 593 HAVE_GL_SUPPORT=no) 594 595CXXFLAGS=$saved_CXXFLAGS 596AC_LANG_POP(C++) 597AC_MSG_RESULT($HAVE_GL_SUPPORT) 598AC_SUBST(HAVE_GL_SUPPORT) 599 600if test X"$HAVE_GL_SUPPORT" != X"yes" ; then 601 WX_MSG_ERROR([wxWidgets don't have gl support, wx will NOT be useable]) 602fi 603 604dnl Check for GLintptr 605dnl We define the types glext.h so we don't depend on glext.h is updated 606dnl to the latest version, but some systems defined them in gl.h 607dnl i.e Darwin and Solaris. 608 609AC_CHECK_TYPES([GLintptr, GLintptrARB, GLchar, 610 GLcharARB, GLhalfARB, GLint64EXT], 611 [], [], 612 [#ifdef WIN32 613 # include <windows.h> 614 # include <gl/gl.h> 615 #elif defined(HAVE_GL_GL_H) 616 # include <GL/gl.h> 617 #elif defined(HAVE_OPENGL_GL_H) 618 # include <OpenGL/gl.h> 619 #endif 620 ]) 621 622AC_MSG_CHECKING(GLU Callbacks uses Tiger Style) 623AC_LANG_PUSH(C++) 624saved_CXXFLAGS=$CXXFLAGS 625CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS" 626 627AC_TRY_COMPILE([ 628 #ifdef WIN32 629 # include <windows.h> 630 # include <gl/glu.h> 631 #elif defined(HAVE_GL_GL_H) 632 # include <GL/glu.h> 633 #elif defined(HAVE_OPENGL_GL_H) 634 # include <OpenGL/glu.h> 635 #endif 636 #ifndef CALLBACK 637 # define CALLBACK 638 #endif 639 void CALLBACK foo() {}; 640 ], 641 [ 642 GLUtesselator* tess; 643 gluTessCallback(tess,GLU_TESS_VERTEX,(GLvoid (*)(...)) foo); 644 ], 645 [TESS_CB_TIGER_STYLE=yes 646 AC_DEFINE(TESS_CB_TIGER_STYLE, [1], [GLU Callbacks are Tiger style])], 647 TESS_CB_TIGER_STYLE=no) 648AC_MSG_RESULT($TESS_CB_TIGER_STYLE) 649AC_SUBST(TESS_CB_TIGER_STYLE) 650 651dnl 652dnl Check that we wx have stc (wxStyledTextControl) headers 653dnl 654 655AC_CHECK_HEADERS([wx/stc/stc.h], 656 [], 657 [WX_MSG_ERROR([Can not find wx/stc/stc.h $CXXFLAGS]) 658 ], 659 [#ifdef WIN32 660 # include <windows.h> 661 #endif 662 #include "wx/wx.h"]) 663 664dnl 665dnl Check that we can link all the libraries 666dnl 667 668AC_MSG_CHECKING(if we can link wxwidgets programs) 669saved_LIBS=$LIBS 670 671if test X"$WX_HAVE_STATIC_LIBS" = X"true" ; then 672 LIBS=$WX_LIBS_STATIC 673fi 674 675AC_LINK_IFELSE([AC_LANG_SOURCE([ 676 #ifdef WIN32 677 # include <windows.h> 678 #endif 679 #include "wx/wx.h" 680 #include "wx/stc/stc.h" 681 ]) 682 683 class MyApp : public wxApp 684 { 685 virtual bool OnInit() { 686 // Test that we have a FromUTF8 687 // it isn't in too old wxWidgets versions 688 wxString test = wxString::FromUTF8((const char *)"foo"); 689 wxStyledTextCtrl * foo = new wxStyledTextCtrl(); 690 return foo; 691 }; 692 }; 693 IMPLEMENT_APP(MyApp) 694 ], 695 [ 696 CAN_LINK_WX=yes 697 ], 698 [ 699 CAN_LINK_WX=no 700 ]) 701 702CXXFLAGS=$saved_CXXFLAGS 703LIBS=$saved_LIBS 704AC_LANG_POP(C++) 705AC_MSG_RESULT($CAN_LINK_WX) 706 707if test X"$CAN_LINK_WX" != X"yes" ; then 708 WX_MSG_ERROR([Can not link wx program are all developer packages installed?]) 709fi 710 711fi dnl - if test "$WXERL_CAN_BUILD_DRIVER" != "false" 712 713AC_SUBST(WXERL_CAN_BUILD_DRIVER) 714 715if test "x$GCC" = xyes; then 716 # Treat certain GCC warnings as errors 717 LM_TRY_ENABLE_CFLAG([-Werror=return-type], [CFLAGS]) 718 LM_TRY_ENABLE_CFLAG([-Werror=return-type], [CXXFLAGS]) 719fi 720 721dnl ---------------------------------------------------------------------- 722dnl Enable -fsanitize= flags. 723dnl ---------------------------------------------------------------------- 724 725m4_define(DEFAULT_SANITIZERS, [address,undefined]) 726AC_ARG_ENABLE( 727 sanitizers, 728 AS_HELP_STRING( 729 [--enable-sanitizers@<:@=comma-separated list of sanitizers@:>@], 730 [Default=DEFAULT_SANITIZERS]), 731[ 732case "$enableval" in 733 no) sanitizers= ;; 734 yes) sanitizers="-fsanitize=DEFAULT_SANITIZERS" ;; 735 *) sanitizers="-fsanitize=$enableval" ;; 736esac 737CFLAGS="$CFLAGS $sanitizers" 738CXXFLAGS="$CXXFLAGS $sanitizers" 739LDFLAGS="$LDFLAGS $sanitizers" 740]) 741 742############################################################################# 743 744dnl 745 746case $host_os in 747 mingw32|win32) 748 RUN_ERL=werl 749 SO_EXT=.dll;; 750 *) 751 RUN_ERL=erl 752 SO_EXT=.so;; 753esac 754 755AC_SUBST(SO_EXT) 756AC_SUBST(RUN_ERL) 757AC_SUBST(CXXNOOPTFLAGS) 758 759 760if test X"$WX_BUILDING_INSIDE_ERLSRC" != X"true" ; then 761 dnl Find driver directory name according to erlang 762 WXERL_SYS_TYPE=`erl -noshell -eval 'io:format("~s~n",[[erlang:system_info(system_architecture)]])' -s erlang halt` 763else 764 WXERL_SYS_TYPE=$TARGET 765fi 766 767AC_SUBST(WXERL_SYS_TYPE) 768 769mkdir -p $WXERL_SYS_TYPE 770CONFIG_STATUS=$WXERL_SYS_TYPE/config.status 771 772dnl 773 774AC_CONFIG_FILES([ 775 config.mk 776 c_src/Makefile 777 ]) 778 779AC_OUTPUT 780 781CORES=`ls core* 2>/dev/null` 782if test X"$CORES" != X"" ; then 783 echo "Configure dumped core files" > ignore_core_files 784fi 785 786 787 788