comparison m4/acinclude.m4 @ 22234:66dd260512a4

allow configure to select Qt version * Makefile.am (AM_FFLAGS): Include FPICFLAG in definition. (AM_CFLAGS): Include CPICFLAG in definition. (AM_CXXFLAGS): Include CXXPICFLAG in definition. * libgui/module.mk: Use MOCFLAGS, UICFLAGS, RCCFLAGS, and LRELEASEFLAGS in MOC, UIC, RCC, and LRELEASE commands. * acinclude.m4: Add CXXPICFLAG to CXXFLAGS in Qt tests. (OCTAVE_CHECK_QSCINTILLA_VERSION): Rename from OCTAVE_CHECK_VERSION_2_6_0. (OCTAVE_CHECK_QT_VERSION, OCTAVE_CHECK_QT): New macros extracted from configure.ac. * configure.ac: Move checks for shared vs. static libraries earlier in file. Allow checking for multiple versions of Qt libraries. Report MOC, UIC, RCC, and LRELEASE in summary.
author John W. Eaton <jwe@octave.org>
date Tue, 09 Aug 2016 14:41:52 -0400
parents 83963bad5e7d
children 2fd4f1a3f4a8
comparison
equal deleted inserted replaced
22233:60faa7c85e31 22234:66dd260512a4
187 AC_DEFUN([OCTAVE_CHECK_CXSPARSE_VERSION_OK], [ 187 AC_DEFUN([OCTAVE_CHECK_CXSPARSE_VERSION_OK], [
188 AC_CACHE_CHECK([whether CXSparse is version 2.2 or later], 188 AC_CACHE_CHECK([whether CXSparse is version 2.2 or later],
189 [octave_cv_cxsparse_version_ok], 189 [octave_cv_cxsparse_version_ok],
190 [AC_LANG_PUSH(C++) 190 [AC_LANG_PUSH(C++)
191 ac_octave_save_CPPFLAGS="$CPPFLAGS" 191 ac_octave_save_CPPFLAGS="$CPPFLAGS"
192 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 192 ac_octave_save_CXXFLAGS="$CXXFLAGS"
193 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
194 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
193 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ 195 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
194 #if defined (HAVE_SUITESPARSE_CS_H) 196 #if defined (HAVE_SUITESPARSE_CS_H)
195 #include <suitesparse/cs.h> 197 #include <suitesparse/cs.h>
196 #elif defined (HAVE_UFSPARSE_CS_H) 198 #elif defined (HAVE_UFSPARSE_CS_H)
197 #include <ufsparse/cs.h> 199 #include <ufsparse/cs.h>
209 #endif 211 #endif
210 ]])], 212 ]])],
211 octave_cv_cxsparse_version_ok=yes, 213 octave_cv_cxsparse_version_ok=yes,
212 octave_cv_cxsparse_version_ok=no) 214 octave_cv_cxsparse_version_ok=no)
213 CPPFLAGS="$ac_octave_save_CPPFLAGS" 215 CPPFLAGS="$ac_octave_save_CPPFLAGS"
216 CXXFLAGS="$ac_octave_save_CXXFLAGS"
214 AC_LANG_POP(C++) 217 AC_LANG_POP(C++)
215 ]) 218 ])
216 if test $octave_cv_cxsparse_version_ok = yes; then 219 if test $octave_cv_cxsparse_version_ok = yes; then
217 AC_DEFINE(HAVE_CXSPARSE_VERSION_OK, 1, 220 AC_DEFINE(HAVE_CXSPARSE_VERSION_OK, 1,
218 [Define to 1 if CXSparse is version 2.2 or later.]) 221 [Define to 1 if CXSparse is version 2.2 or later.])
350 dnl 353 dnl
351 dnl Check whether Qscintilla has version 2.6.0 or later 354 dnl Check whether Qscintilla has version 2.6.0 or later
352 dnl FIXME: This test uses a version number. It potentially could 355 dnl FIXME: This test uses a version number. It potentially could
353 dnl be re-written to actually call the function, but is it worth it? 356 dnl be re-written to actually call the function, but is it worth it?
354 dnl 357 dnl
355 AC_DEFUN([OCTAVE_CHECK_VERSION_2_6_0], [ 358 AC_DEFUN([OCTAVE_CHECK_QSCINTILLA_VERSION], [
356 AC_CACHE_CHECK([whether Qscintilla has version 2.6.0 or later], 359 AC_CACHE_CHECK([whether Qscintilla has version 2.6.0 or later],
357 [octave_cv_version_2_6_0], 360 [octave_cv_version_2_6_0],
358 [AC_LANG_PUSH(C++) 361 [AC_LANG_PUSH(C++)
359 ac_octave_save_CPPFLAGS="$CPPFLAGS" 362 ac_octave_save_CPPFLAGS="$CPPFLAGS"
360 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 363 ac_octave_save_CXXFLAGS="$CXXFLAGS"
364 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
365 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
361 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ 366 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
362 #include <Qsci/qsciglobal.h> 367 #include <Qsci/qsciglobal.h>
363 ]], [[ 368 ]], [[
364 #if QSCINTILLA_VERSION < 0x020600 369 #if QSCINTILLA_VERSION < 0x020600
365 #error Old FindFirst function found. 370 #error Old FindFirst function found.
366 #endif 371 #endif
367 ]])], 372 ]])],
368 octave_cv_version_2_6_0=yes, 373 octave_cv_version_2_6_0=yes,
369 octave_cv_version_2_6_0=no) 374 octave_cv_version_2_6_0=no)
370 CPPFLAGS="$ac_octave_save_CPPFLAGS" 375 CPPFLAGS="$ac_octave_save_CPPFLAGS"
376 CXXFLAGS="$ac_octave_save_CXXFLAGS"
371 AC_LANG_POP(C++) 377 AC_LANG_POP(C++)
372 ]) 378 ])
373 if test $octave_cv_version_2_6_0 = yes; then 379 if test $octave_cv_version_2_6_0 = yes; then
374 AC_DEFINE(HAVE_QSCI_VERSION_2_6_0, 1, 380 AC_DEFINE(HAVE_QSCI_VERSION_2_6_0, 1,
375 [Define to 1 if Qscintilla is of Version 2.6.0 or later.]) 381 [Define to 1 if Qscintilla is of Version 2.6.0 or later.])
431 AC_DEFUN([OCTAVE_CHECK_QFONT_MONOSPACE], [ 437 AC_DEFUN([OCTAVE_CHECK_QFONT_MONOSPACE], [
432 AC_CACHE_CHECK([whether Qt provides QFont::Monospace], 438 AC_CACHE_CHECK([whether Qt provides QFont::Monospace],
433 [octave_cv_decl_qfont_monospace], 439 [octave_cv_decl_qfont_monospace],
434 [AC_LANG_PUSH(C++) 440 [AC_LANG_PUSH(C++)
435 ac_octave_save_CPPFLAGS="$CPPFLAGS" 441 ac_octave_save_CPPFLAGS="$CPPFLAGS"
436 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 442 ac_octave_save_CXXFLAGS="$CXXFLAGS"
443 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
444 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
437 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 445 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
438 #include <QFont> 446 #include <QFont>
439 ]], [[ 447 ]], [[
440 QFont::StyleHint hint = QFont::Monospace; 448 QFont::StyleHint hint = QFont::Monospace;
441 ]])], 449 ]])],
442 octave_cv_decl_qfont_monospace=yes, 450 octave_cv_decl_qfont_monospace=yes,
443 octave_cv_decl_qfont_monospace=no) 451 octave_cv_decl_qfont_monospace=no)
444 CPPFLAGS="$ac_octave_save_CPPFLAGS" 452 CPPFLAGS="$ac_octave_save_CPPFLAGS"
453 CXXFLAGS="$ac_octave_save_CXXFLAGS"
445 AC_LANG_POP(C++) 454 AC_LANG_POP(C++)
446 ]) 455 ])
447 if test $octave_cv_decl_qfont_monospace = yes; then 456 if test $octave_cv_decl_qfont_monospace = yes; then
448 AC_DEFINE(HAVE_QFONT_MONOSPACE, 1, 457 AC_DEFINE(HAVE_QFONT_MONOSPACE, 1,
449 [Define to 1 if Qt provides QFont::Monospace.]) 458 [Define to 1 if Qt provides QFont::Monospace.])
455 AC_DEFUN([OCTAVE_CHECK_QFONT_FORCE_INTEGER_METRICS], [ 464 AC_DEFUN([OCTAVE_CHECK_QFONT_FORCE_INTEGER_METRICS], [
456 AC_CACHE_CHECK([whether Qt provides QFont::ForceIntegerMetrics], 465 AC_CACHE_CHECK([whether Qt provides QFont::ForceIntegerMetrics],
457 [octave_cv_decl_qfont_force_integer_metrics], 466 [octave_cv_decl_qfont_force_integer_metrics],
458 [AC_LANG_PUSH(C++) 467 [AC_LANG_PUSH(C++)
459 ac_octave_save_CPPFLAGS="$CPPFLAGS" 468 ac_octave_save_CPPFLAGS="$CPPFLAGS"
460 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 469 ac_octave_save_CXXFLAGS="$CXXFLAGS"
470 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
471 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
461 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 472 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
462 #include <QFont> 473 #include <QFont>
463 ]], [[ 474 ]], [[
464 QFont::StyleStrategy strategy = QFont::ForceIntegerMetrics; 475 QFont::StyleStrategy strategy = QFont::ForceIntegerMetrics;
465 ]])], 476 ]])],
466 octave_cv_decl_qfont_force_integer_metrics=yes, 477 octave_cv_decl_qfont_force_integer_metrics=yes,
467 octave_cv_decl_qfont_force_integer_metrics=no) 478 octave_cv_decl_qfont_force_integer_metrics=no)
468 CPPFLAGS="$ac_octave_save_CPPFLAGS" 479 CPPFLAGS="$ac_octave_save_CPPFLAGS"
480 CXXFLAGS="$ac_octave_save_CXXFLAGS"
469 AC_LANG_POP(C++) 481 AC_LANG_POP(C++)
470 ]) 482 ])
471 if test $octave_cv_decl_qfont_force_integer_metrics = yes; then 483 if test $octave_cv_decl_qfont_force_integer_metrics = yes; then
472 AC_DEFINE(HAVE_QFONT_FORCE_INTEGER_METRICS, 1, 484 AC_DEFINE(HAVE_QFONT_FORCE_INTEGER_METRICS, 1,
473 [Define to 1 if Qt provides QFont::ForceIntegerMetrics.]) 485 [Define to 1 if Qt provides QFont::ForceIntegerMetrics.])
481 AC_DEFUN([OCTAVE_CHECK_FUNC_SETPLACEHOLDERTEXT], [ 493 AC_DEFUN([OCTAVE_CHECK_FUNC_SETPLACEHOLDERTEXT], [
482 AC_CACHE_CHECK([whether Qt has SetPlaceholderText function], 494 AC_CACHE_CHECK([whether Qt has SetPlaceholderText function],
483 [octave_cv_func_setplaceholdertext], 495 [octave_cv_func_setplaceholdertext],
484 [AC_LANG_PUSH(C++) 496 [AC_LANG_PUSH(C++)
485 ac_octave_save_CPPFLAGS="$CPPFLAGS" 497 ac_octave_save_CPPFLAGS="$CPPFLAGS"
486 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 498 ac_octave_save_CXXFLAGS="$CXXFLAGS"
499 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
500 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
487 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ 501 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
488 #include <Qt/qglobal.h> 502 #include <Qt/qglobal.h>
489 ]], [[ 503 ]], [[
490 #if QT_VERSION < 0x040700 504 #if QT_VERSION < 0x040700
491 #error No SetPlacholderText function available. 505 #error No SetPlacholderText function available.
492 #endif 506 #endif
493 ]])], 507 ]])],
494 octave_cv_func_setplaceholdertext=yes, 508 octave_cv_func_setplaceholdertext=yes,
495 octave_cv_func_setplaceholdertext=no) 509 octave_cv_func_setplaceholdertext=no)
496 CPPFLAGS="$ac_octave_save_CPPFLAGS" 510 CPPFLAGS="$ac_octave_save_CPPFLAGS"
511 CXXFLAGS="$ac_octave_save_CXXFLAGS"
497 AC_LANG_POP(C++) 512 AC_LANG_POP(C++)
498 ]) 513 ])
499 if test $octave_cv_func_setplaceholdertext = yes; then 514 if test $octave_cv_func_setplaceholdertext = yes; then
500 AC_DEFINE(HAVE_SETPLACEHOLDERTEXT, 1, 515 AC_DEFINE(HAVE_SETPLACEHOLDERTEXT, 1,
501 [Define to 1 if you have the Qt SetPlaceholderText function.]) 516 [Define to 1 if you have the Qt SetPlaceholderText function.])
509 AC_DEFUN([OCTAVE_CHECK_FUNC_QABSTRACTITEMMODEL_BEGINRESETMODEL], [ 524 AC_DEFUN([OCTAVE_CHECK_FUNC_QABSTRACTITEMMODEL_BEGINRESETMODEL], [
510 AC_CACHE_CHECK([whether Qt has the QAbstractItemModel::beginResetModel function], 525 AC_CACHE_CHECK([whether Qt has the QAbstractItemModel::beginResetModel function],
511 [octave_cv_func_qabstractitemmodel_beginresetmodel], 526 [octave_cv_func_qabstractitemmodel_beginresetmodel],
512 [AC_LANG_PUSH(C++) 527 [AC_LANG_PUSH(C++)
513 ac_octave_save_CPPFLAGS="$CPPFLAGS" 528 ac_octave_save_CPPFLAGS="$CPPFLAGS"
514 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 529 ac_octave_save_CXXFLAGS="$CXXFLAGS"
530 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
531 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
515 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 532 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
516 #include <QAbstractItemModel> 533 #include <QAbstractItemModel>
517 class item_model : public QAbstractItemModel 534 class item_model : public QAbstractItemModel
518 { 535 {
519 public: 536 public:
535 model.update_model (); 552 model.update_model ();
536 ]])], 553 ]])],
537 octave_cv_func_qabstractitemmodel_beginresetmodel=yes, 554 octave_cv_func_qabstractitemmodel_beginresetmodel=yes,
538 octave_cv_func_qabstractitemmodel_beginresetmodel=no) 555 octave_cv_func_qabstractitemmodel_beginresetmodel=no)
539 CPPFLAGS="$ac_octave_save_CPPFLAGS" 556 CPPFLAGS="$ac_octave_save_CPPFLAGS"
557 CXXFLAGS="$ac_octave_save_CXXFLAGS"
540 AC_LANG_POP(C++) 558 AC_LANG_POP(C++)
541 ]) 559 ])
542 if test $octave_cv_func_qabstractitemmodel_beginresetmodel = yes; then 560 if test $octave_cv_func_qabstractitemmodel_beginresetmodel = yes; then
543 AC_DEFINE(HAVE_QABSTRACTITEMMODEL_BEGINRESETMODEL, 1, 561 AC_DEFINE(HAVE_QABSTRACTITEMMODEL_BEGINRESETMODEL, 1,
544 [Define to 1 if Qt has the QAbstractItemModel::beginResetModel() function.]) 562 [Define to 1 if Qt has the QAbstractItemModel::beginResetModel() function.])
551 AC_DEFUN([OCTAVE_CHECK_FUNC_QTABWIDGET_SETMOVABLE], [ 569 AC_DEFUN([OCTAVE_CHECK_FUNC_QTABWIDGET_SETMOVABLE], [
552 AC_CACHE_CHECK([whether Qt has the QTabWidget::setMovable function], 570 AC_CACHE_CHECK([whether Qt has the QTabWidget::setMovable function],
553 [octave_cv_func_qtabwidget_setmovable], 571 [octave_cv_func_qtabwidget_setmovable],
554 [AC_LANG_PUSH(C++) 572 [AC_LANG_PUSH(C++)
555 ac_octave_save_CPPFLAGS="$CPPFLAGS" 573 ac_octave_save_CPPFLAGS="$CPPFLAGS"
556 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 574 ac_octave_save_CXXFLAGS="$CXXFLAGS"
575 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
576 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
557 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 577 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
558 #include <QTabWidget> 578 #include <QTabWidget>
559 class tab_widget : public QTabWidget 579 class tab_widget : public QTabWidget
560 { 580 {
561 public: 581 public:
566 tab_widget tw; 586 tab_widget tw;
567 ]])], 587 ]])],
568 octave_cv_func_qtabwidget_setmovable=yes, 588 octave_cv_func_qtabwidget_setmovable=yes,
569 octave_cv_func_qtabwidget_setmovable=no) 589 octave_cv_func_qtabwidget_setmovable=no)
570 CPPFLAGS="$ac_octave_save_CPPFLAGS" 590 CPPFLAGS="$ac_octave_save_CPPFLAGS"
591 CXXFLAGS="$ac_octave_save_CXXFLAGS"
571 AC_LANG_POP(C++) 592 AC_LANG_POP(C++)
572 ]) 593 ])
573 if test $octave_cv_func_qtabwidget_setmovable = yes; then 594 if test $octave_cv_func_qtabwidget_setmovable = yes; then
574 AC_DEFINE(HAVE_QTABWIDGET_SETMOVABLE, 1, 595 AC_DEFINE(HAVE_QTABWIDGET_SETMOVABLE, 1,
575 [Define to 1 if Qt has the QTabWidget::setMovable function.]) 596 [Define to 1 if Qt has the QTabWidget::setMovable function.])
582 AC_DEFUN([OCTAVE_CHECK_FUNC_QSCI_FINDSELECTION], [ 603 AC_DEFUN([OCTAVE_CHECK_FUNC_QSCI_FINDSELECTION], [
583 AC_CACHE_CHECK([whether QSci has the QsciScintilla::findFirstInSelection function], 604 AC_CACHE_CHECK([whether QSci has the QsciScintilla::findFirstInSelection function],
584 [octave_cv_func_qsci_findfirstinselection], 605 [octave_cv_func_qsci_findfirstinselection],
585 [AC_LANG_PUSH(C++) 606 [AC_LANG_PUSH(C++)
586 ac_octave_save_CPPFLAGS="$CPPFLAGS" 607 ac_octave_save_CPPFLAGS="$CPPFLAGS"
587 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 608 ac_octave_save_CXXFLAGS="$CXXFLAGS"
609 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
610 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
588 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 611 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
589 #include <Qsci/qsciscintilla.h> 612 #include <Qsci/qsciscintilla.h>
590 class qsci : public QsciScintilla 613 class qsci : public QsciScintilla
591 { 614 {
592 public: 615 public:
598 qsci edit; 621 qsci edit;
599 ]])], 622 ]])],
600 octave_cv_func_qsci_findfirstinselection=yes, 623 octave_cv_func_qsci_findfirstinselection=yes,
601 octave_cv_func_qsci_findfirstinselection=no) 624 octave_cv_func_qsci_findfirstinselection=no)
602 CPPFLAGS="$ac_octave_save_CPPFLAGS" 625 CPPFLAGS="$ac_octave_save_CPPFLAGS"
626 CXXFLAGS="$ac_octave_save_CXXFLAGS"
603 AC_LANG_POP(C++) 627 AC_LANG_POP(C++)
604 ]) 628 ])
605 if test $octave_cv_func_qsci_findfirstinselection = yes; then 629 if test $octave_cv_func_qsci_findfirstinselection = yes; then
606 AC_DEFINE(HAVE_QSCI_FINDSELECTION, 1, 630 AC_DEFINE(HAVE_QSCI_FINDSELECTION, 1,
607 [Define to 1 if Qsci has the QsciScintilla::findFirstInSelection function.]) 631 [Define to 1 if Qsci has the QsciScintilla::findFirstInSelection function.])
1248 AC_DEFUN([OCTAVE_CHECK_QT_OPENGL_OK], [ 1272 AC_DEFUN([OCTAVE_CHECK_QT_OPENGL_OK], [
1249 AC_CACHE_CHECK([whether Qt works with OpenGL and GLU], 1273 AC_CACHE_CHECK([whether Qt works with OpenGL and GLU],
1250 [octave_cv_qt_opengl_ok], 1274 [octave_cv_qt_opengl_ok],
1251 [AC_LANG_PUSH(C++) 1275 [AC_LANG_PUSH(C++)
1252 ac_octave_save_CPPFLAGS="$CPPFLAGS" 1276 ac_octave_save_CPPFLAGS="$CPPFLAGS"
1253 CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" 1277 ac_octave_save_CXXFLAGS="$CXXFLAGS"
1278 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
1279 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
1254 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1280 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1255 #if HAVE_WINDOWS_H 1281 #if HAVE_WINDOWS_H
1256 # include <windows.h> 1282 # include <windows.h>
1257 #endif 1283 #endif
1258 #if defined (HAVE_GL_GL_H) 1284 #if defined (HAVE_GL_GL_H)
1276 gl_widget widget; 1302 gl_widget widget;
1277 ]])], 1303 ]])],
1278 octave_cv_qt_opengl_ok=yes, 1304 octave_cv_qt_opengl_ok=yes,
1279 octave_cv_qt_opengl_ok=no) 1305 octave_cv_qt_opengl_ok=no)
1280 CPPFLAGS="$ac_octave_save_CPPFLAGS" 1306 CPPFLAGS="$ac_octave_save_CPPFLAGS"
1307 CXXFLAGS="$ac_octave_save_CXXFLAGS"
1281 AC_LANG_POP(C++) 1308 AC_LANG_POP(C++)
1282 ]) 1309 ])
1283 if test $octave_cv_qt_opengl_ok = yes; then 1310 if test $octave_cv_qt_opengl_ok = yes; then
1284 $1 1311 $1
1285 : 1312 :
1286 else 1313 else
1287 $2 1314 $2
1288 : 1315 :
1289 fi 1316 fi
1317 ])
1318 dnl
1319 dnl Check whether Qt VERSION is present, supports QtOpenGL and
1320 dnl QScintilla and will work for Octave.
1321 dnl
1322 dnl OCTAVE_CHECK_QT_VERSION(VERSION)
1323 dnl
1324 AC_DEFUN([OCTAVE_CHECK_QT_VERSION], [AC_MSG_CHECKING([Qt version $1])
1325 QT_CPPFLAGS=
1326 QT_LDFLAGS=
1327 QT_LIBS=
1328
1329 qt_version="$1";
1330
1331 build_qt_gui=no
1332 build_qt_graphics=no
1333 use_qscintilla=no
1334 win32_terminal=no
1335
1336 warn_qt_libraries=""
1337 warn_qt_version=""
1338 warn_qt_tools=""
1339 warn_qt_setlocale=""
1340 warn_qt_setvbuf=""
1341 warn_qt_lib_fcns=""
1342 warn_qt_abstract_item_model=""
1343 warn_qt_opengl=""
1344 warn_qscintilla=""
1345
1346 ## Check for Qt libraries
1347 case "$qt_version" in
1348 4)
1349 QT_MODULES="QtCore QtGui QtNetwork QtOpenGL"
1350 LIBQSCINTILLA=qscintilla2
1351 ;;
1352 5)
1353 QT_MODULES="Qt5Core Qt5Gui Qt5Network Qt5OpenGL"
1354 LIBQSCINTILLA=qt5scintilla2
1355 ;;
1356 *)
1357 AC_MSG_ERROR([Unrecognized Qt version $qt_version])
1358 ;;
1359 esac
1360
1361 PKG_CHECK_MODULES(QT, [$QT_MODULES],
1362 [],
1363 [check_qt=no
1364 warn_qt_libraries="Qt libraries not found; disabling Qt GUI"])
1365
1366 if test $check_qt = yes; then
1367 ## Retrieve Qt compilation and linker flags
1368 QT_CPPFLAGS="`$PKG_CONFIG --cflags-only-I $QT_MODULES`"
1369 QT_LDFLAGS="`$PKG_CONFIG --libs-only-L $QT_MODULES`"
1370 QT_LIBS="`$PKG_CONFIG --libs-only-l $QT_MODULES`"
1371
1372 case $host_os in
1373 *darwin*)
1374 ## Qt might be installed in framework
1375 if test -z "$QT_LIBS"; then
1376 QT_LDFLAGS="`$PKG_CONFIG --libs-only-other $QT_MODULES | tr ' ' '\n' | $GREP -e '-F' | uniq | tr '\n' ' '`"
1377 QT_LIBS="`$PKG_CONFIG --libs-only-other $QT_MODULES | tr ' ' '\n' | $GREP -v -e '-F' | uniq | tr '\n' ' '`"
1378 ## Enabling link_all_deps works around libtool's imperfect handling
1379 ## of the -F flag
1380 AM_CONDITIONAL([AMCOND_LINK_ALL_DEPS],
1381 [test $link_all_deps = yes || test -n "$QT_LDFLAGS"])
1382 fi
1383 ;;
1384 esac
1385
1386 if test $qt_version = 4; then
1387 ## Check for Qt4
1388 if ! `$PKG_CONFIG --atleast-version=4.0.0 QtCore`; then
1389 check_qt=no
1390 warn_qt_version="Qt >= 4.0.0 not found; disabling Qt GUI"
1391 fi
1392 fi
1393 fi
1394
1395 if test $check_qt = yes; then
1396 AC_CHECK_TOOLS(MOC, [moc-qt$qt_version])
1397 AC_CHECK_TOOLS(UIC, [uic-qt$qt_version])
1398 AC_CHECK_TOOLS(RCC, [rcc-qt$qt_version])
1399 AC_CHECK_TOOLS(LRELEASE, [lrelease-qt$qt_version])
1400
1401 if test -z "$MOC" || test -z "$UIC" || test -z "$RCC" || test -z "$LRELEASE"; then
1402 AC_CHECK_TOOLS(QTCHOOSER, [qtchooser])
1403
1404 if test -z "$MOC"; then
1405 AC_CHECK_TOOLS(MOC, [moc])
1406 if test -n "$QTCHOOSER"; then
1407 MOCFLAGS="-qt$qt_version"
1408 fi
1409 fi
1410 if test -z "$UIC"; then
1411 AC_CHECK_TOOLS(UIC, [uic])
1412 if test -n "$QTCHOOSER"; then
1413 UICFLAGS="-qt$qt_version"
1414 fi
1415 fi
1416 if test -z "$RCC"; then
1417 AC_CHECK_TOOLS(RCC, [rcc])
1418 if test -n "$QTCHOOSER"; then
1419 RCCFLAGS="-qt$qt_version"
1420 fi
1421 fi
1422 if test -z "$LRELEASE"; then
1423 AC_CHECK_TOOLS(LRELEASE, [lrelease])
1424 if test -n "$QTCHOOSER"; then
1425 LRELEASEFLAGS="-qt$qt_version"
1426 fi
1427 fi
1428 fi
1429
1430 if test -n "$MOC" && test -n "$UIC" && test -n "$RCC" && test -n "$LRELEASE"; then
1431 AC_DEFINE(HAVE_QT, 1,
1432 [Define to 1 if Qt is available (libraries, developer header files, utility programs (moc, uic, rcc, and lrelease))])
1433 else
1434 warn_qt_tools="one or more of the Qt utility programs moc, uic, rcc, and lrelease not found; disabling Qt GUI"
1435 check_qt=no
1436 fi
1437 fi
1438
1439 if test $check_qt = yes; then
1440 AC_CHECK_FUNCS([setlocale], [],
1441 [check_qt=no
1442 warn_qt_setlocale="setlocale not found; disabling Qt GUI"])
1443 fi
1444
1445 if test $check_qt = yes; then
1446 case $host_os in
1447 mingw* | msdosmsvc*)
1448 AC_CHECK_FUNCS([setvbuf], [win32_terminal=yes],
1449 [check_qt=no
1450 warn_qt_setvbuf="setvbuf not found; disabling Qt GUI"])
1451 ;;
1452 *)
1453 AC_CHECK_HEADERS([pty.h libutil.h util.h])
1454 AC_SEARCH_LIBS([openpty], [util],
1455 [AC_DEFINE(HAVE_OPENPTY, [], [Define whether openpty exists])])
1456 AC_CHECK_FUNCS([chmod chown ftruncate mmap munmap], [],
1457 [check_qt=no
1458 warn_qt_lib_fcns="At least one of chmod, chown, ftruncate, mmap, and munmap not found; disabling Qt GUI"])
1459 ;;
1460 esac
1461 fi
1462
1463 if test $check_qt = yes; then
1464 OCTAVE_CHECK_FUNC_QABSTRACTITEMMODEL_BEGINRESETMODEL
1465
1466 if test $octave_cv_func_qabstractitemmodel_beginresetmodel = no; then
1467 check_qt=no
1468 warn_qt_abstract_item_model="QAbstractItemModel::beginResetModel not found; disabling Qt GUI"
1469 fi
1470 fi
1471
1472 if test $check_qt = yes; then
1473 ## We have what we need to build the Qt GUI. The remaining
1474 ## checks below are for optional features related to the Qt GUI.
1475 build_qt_gui=yes
1476 fi
1477
1478 if test $check_qt = yes; then
1479 OCTAVE_CHECK_QFONT_MONOSPACE
1480 OCTAVE_CHECK_QFONT_FORCE_INTEGER_METRICS
1481 OCTAVE_CHECK_FUNC_QTABWIDGET_SETMOVABLE
1482
1483 if test -n "$OPENGL_LIBS"; then
1484 OCTAVE_CHECK_QT_OPENGL_OK([build_qt_graphics=yes],
1485 [warn_qt_opengl="Qt does not work with the OpenGL libs (GL and GLU); disabling OpenGL graphics with Qt GUI"])
1486
1487 if test $build_qt_graphics = yes; then
1488 AC_DEFINE(HAVE_QT_GRAPHICS, 1, [Define to 1 if Qt works with OpenGL libs (GL and GLU)])
1489 fi
1490 fi
1491
1492 ## Check for Qscintilla library which is used in the Qt GUI editor.
1493 AC_CACHE_CHECK([whether Qscintilla library is installed],
1494 [octave_cv_lib_qscintilla],
1495 [save_CPPFLAGS="$CPPFLAGS"
1496 save_CXXFLAGS="$CXXFLAGS"
1497 save_LDFLAGS="$LDFLAGS"
1498 save_LIBS="$LIBS"
1499 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
1500 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
1501 LDFLAGS="$QT_LDFLAGS $LDFLAGS"
1502 LIBS="$QT_LIBS -l$LIBQSCINTILLA"
1503 AC_LANG_PUSH(C++)
1504 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1505 #include <Qsci/qscilexersql.h>
1506 ]], [[
1507 QsciLexerSQL sqlLexer(0);
1508 ]])],
1509 octave_cv_lib_qscintilla=yes,
1510 octave_cv_lib_qscintilla=no)
1511 CPPFLAGS="$save_CPPFLAGS"
1512 CXXFLAGS="$save_CXXFLAGS"
1513 LDFLAGS="$save_LDFLAGS"
1514 LIBS="$save_LIBS"
1515 AC_LANG_POP([C++])
1516 ])
1517
1518 if test $octave_cv_lib_qscintilla = no; then
1519 warn_qscintilla="Qscintilla library not found; disabling built-in Qt GUI editor"
1520 else
1521 ## Let's assume Qscintilla library is at the same location as
1522 ## other regular Qt libraries.
1523 QT_LIBS="$QT_LIBS -l$LIBQSCINTILLA"
1524 OCTAVE_CHECK_QSCINTILLA_VERSION
1525 AC_DEFINE(HAVE_QSCINTILLA, 1,
1526 [Define to 1 if the QScintilla library and header files are available])
1527
1528 save_CPPFLAGS="$CPPFLAGS"
1529 save_CXXFLAGS="$CXXFLAGS"
1530 CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
1531 CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
1532 AC_LANG_PUSH(C++)
1533 AC_CHECK_HEADERS([Qsci/qscilexeroctave.h Qsci/qscilexermatlab.h])
1534 AC_LANG_POP(C++)
1535 CPPFLAGS="$save_CPPFLAGS"
1536 CXXFLAGS="$save_CXXFLAGS"
1537
1538 OCTAVE_CHECK_FUNC_SETPLACEHOLDERTEXT
1539 OCTAVE_CHECK_FUNC_QSCI_FINDSELECTION
1540 use_qscintilla=yes
1541 fi
1542 fi
1543 AC_SUBST(MOCFLAGS)
1544 AC_SUBST(UICFLAGS)
1545 AC_SUBST(RCCFLAGS)
1546 AC_SUBST(LRELEASEFLAGS)
1547 AC_SUBST(QT_CPPFLAGS)
1548 AC_SUBST(QT_LDFLAGS)
1549 AC_SUBST(QT_LIBS)
1550 ])
1551 dnl
1552 dnl OCTAVE_CHECK_QT
1553 dnl
1554 AC_DEFUN([OCTAVE_CHECK_QT], [
1555 octave_qt_versions="$1"
1556 if test $check_qt = yes; then
1557 for ver in $octave_qt_versions; do
1558 OCTAVE_CHECK_QT_VERSION([$ver])
1559 if test $build_qt_gui = yes; then
1560 break
1561 fi
1562 done
1563
1564 if test $build_qt_gui = no; then
1565 if test -n "$warn_qt_libraries"; then
1566 OCTAVE_CONFIGURE_WARNING([warn_qt_libraries])
1567 fi
1568 if test -n "$warn_qt_version"; then
1569 OCTAVE_CONFIGURE_WARNING([warn_qt_version])
1570 fi
1571 if test -n "$warn_qt_tools"; then
1572 OCTAVE_CONFIGURE_WARNING([warn_qt_tools])
1573 fi
1574 if test -n "$warn_qt_setlocale"; then
1575 OCTAVE_CONFIGURE_WARNING([warn_qt_setlocale])
1576 fi
1577 if test -n "$warn_qt_setvbuf"; then
1578 OCTAVE_CONFIGURE_WARNING([warn_qt_setvbuf])
1579 fi
1580 if test -n "$warn_qt_lib_fcns"; then
1581 OCTAVE_CONFIGURE_WARNING([warn_qt_lib_fcns])
1582 fi
1583 if test -n "$warn_qt_abstract_item_model"; then
1584 OCTAVE_CONFIGURE_WARNING([warn_qt_abstract_item_model])
1585 fi
1586 if test -n "$warn_qt_opengl"; then
1587 OCTAVE_CONFIGURE_WARNING([warn_qt_opengl])
1588 fi
1589 if test -n "$warn_qscintilla"; then
1590 OCTAVE_CONFIGURE_WARNING([warn_qscintilla])
1591 fi
1592 fi
1593 fi
1594
1595 AM_CONDITIONAL([AMCOND_BUILD_QT_GUI], [test $build_qt_gui = yes])
1596 AM_CONDITIONAL([AMCOND_BUILD_QT_GRAPHICS], [test $build_qt_graphics = yes])
1597 AM_CONDITIONAL([AMCOND_HAVE_QSCINTILLA], [test $use_qscintilla = yes])
1598 AM_CONDITIONAL([WIN32_TERMINAL], [test $win32_terminal = yes])
1290 ]) 1599 ])
1291 dnl 1600 dnl
1292 dnl Check if the default Fortran INTEGER is 64 bits wide. 1601 dnl Check if the default Fortran INTEGER is 64 bits wide.
1293 dnl 1602 dnl
1294 AC_DEFUN([OCTAVE_CHECK_SIZEOF_FORTRAN_INTEGER], [ 1603 AC_DEFUN([OCTAVE_CHECK_SIZEOF_FORTRAN_INTEGER], [