# HG changeset patch # User John W. Eaton # Date 1470768112 14400 # Node ID 66dd260512a441f9ed70c5ab13fc296f4b8153bb # Parent 60faa7c85e3186b9fbc750e0907f602a226a9d15 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. diff -r 60faa7c85e31 -r 66dd260512a4 Makefile.am --- a/Makefile.am Mon Aug 08 19:22:29 2016 -0400 +++ b/Makefile.am Tue Aug 09 14:41:52 2016 -0400 @@ -38,11 +38,11 @@ # Fortran compiler flags. -AM_FFLAGS = @FFLAGS@ +AM_FFLAGS = ${FPICFLAG} @FFLAGS@ # C compiler flags. -AM_CFLAGS = ${XTRA_CFLAGS} +AM_CFLAGS = ${CPICFLAG} ${XTRA_CFLAGS} # ifeq (${INCLUDE_DEPS},no) # omit_deps = true; @@ -50,7 +50,7 @@ # C++ compiler flags. -AM_CXXFLAGS = ${XTRA_CXXFLAGS} +AM_CXXFLAGS = ${CXXPICFLAG} ${XTRA_CXXFLAGS} FFTW_XCPPFLAGS = @FFTW_XCPPFLAGS@ FFTW_XLDFLAGS = @FFTW_XLDFLAGS@ diff -r 60faa7c85e31 -r 66dd260512a4 configure.ac --- a/configure.ac Mon Aug 08 19:22:29 2016 -0400 +++ b/configure.ac Tue Aug 09 14:41:52 2016 -0400 @@ -484,6 +484,422 @@ AC_SUBST(DEPEND_FLAGS) AC_SUBST(DEPEND_EXTRA_SED_PATTERN) +### Start determination of shared vs. static libraries + +## Use -static if compiling on Alpha OSF/1 1.3 systems. +case $canonical_host_type in + alpha*-dec-osf1.3) + LD_STATIC_FLAG=-static + ;; +esac +if test -n "$LD_STATIC_FLAG"; then + AC_MSG_NOTICE([defining LD_STATIC_FLAG to be $LD_STATIC_FLAG]) +fi +AC_SUBST(LD_STATIC_FLAG) + +OCTAVE_PROG_AR + +ifdef([LT_INIT], [], [ + errprint([error: you must have libtool 2.2.2 or a more recent version +]) + m4exit([1])]) + +LT_PREREQ([2.2.2]) +LT_INIT([disable-static dlopen win32-dll]) + +if test $enable_shared = yes; then + SHARED_LIBS=yes +else + SHARED_LIBS=no +fi +AC_SUBST(SHARED_LIBS) + +if test $enable_static = yes; then + STATIC_LIBS=yes +else + STATIC_LIBS=no +fi +AC_SUBST(STATIC_LIBS) + +XTRA_CRUFT_SH_LDFLAGS= +if test $have_msvc = yes; then + FLIBS="$FLIBS -lkernel32" + XTRA_CRUFT_SH_LDFLAGS="-Wl,cruft/cruft.def" +fi +AC_SUBST(XTRA_CRUFT_SH_LDFLAGS) + +### Enable dynamic linking. --enable-shared implies this, so +### --enable-dl is only need if you are only building static libraries +### and want to try dynamic linking too (works on some systems, for +### example, OS X and Windows). + +AC_ARG_ENABLE([dl], + [AS_HELP_STRING([--disable-dl], + [disable loading of dynamically linked modules])], + [case $enableval in + yes) ENABLE_DYNAMIC_LINKING=yes ;; + no) ENABLE_DYNAMIC_LINKING=no ;; + *) AC_MSG_ERROR([bad value $enableval for --enable-dl]) ;; + esac], + [ENABLE_DYNAMIC_LINKING=no]) + +if test $STATIC_LIBS = no && test $SHARED_LIBS = no; then + AC_MSG_ERROR([You can't disable building both static AND shared libraries!]) +fi + +CPICFLAG=-fPIC +CXXPICFLAG=-fPIC +FPICFLAG=-fPIC +SH_LD="${CXX}" +SH_LDFLAGS=-shared +DL_LD="${SH_LD}" +DL_LDFLAGS="${SH_LDFLAGS}" +MKOCTFILE_DL_LDFLAGS="${DL_LDFLAGS}" +NO_OCT_FILE_STRIP=false +TEMPLATE_AR="${AR}" +TEMPLATE_ARFLAGS="$ARFLAGS" +CRUFT_DLL_DEFS= +OCTAVE_DLL_DEFS= +OCTINTERP_DLL_DEFS= +OCTGUI_DLL_DEFS= +OCTGRAPHICS_DLL_DEFS= +library_path_var=LD_LIBRARY_PATH +ldpreloadsep=" " +case $canonical_host_type in + *-*-386bsd* | *-*-netbsd*) + SH_LD=ld + SH_LDFLAGS=-Bshareable + ;; + *-*-openbsd*) + SH_LDFLAGS="-shared -fPIC" + ;; + *-*-freebsd*) + SH_LDFLAGS="-shared -Wl,-x" + ;; + alpha*-dec-osf*) + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + SH_LDFLAGS="-shared -Wl,-expect_unresolved -Wl,'*'" + ;; + *-*-darwin*) + DL_LDFLAGS="-bundle -bundle_loader ${ac_top_build_prefix}libinterp/octave ${LDFLAGS}" + ## Contains variables that are defined and undefined at this point, so use + ## appropriate quoting to defer expansion of ${bindir} and ${version}. + MKOCTFILE_DL_LDFLAGS='-bundle -bundle_loader ${bindir}/octave-${version}'"${EXEEXT}" + SH_LDFLAGS="-dynamiclib -single_module ${LDFLAGS}" + case $canonical_host_type in + powerpc-*) + CXXPICFLAG= + CPICFLAG= + FPICFLAG= + ;; + esac + NO_OCT_FILE_STRIP=true + library_path_var=DYLD_LIBRARY_PATH + ;; + *-*-cygwin*) + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" + SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base" + ldpreloadsep=":" + ;; + *-*-mingw*) + if test $have_msvc = yes; then + DL_LDFLAGS="-shared" + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + SH_LDFLAGS="-shared" + if test -n "`echo $CFLAGS | $GREP -e '-g'`" || test -n "`echo $CXXFLAGS | $GREP -e '-g'`"; then + DL_LDFLAGS="$DL_LDFLAGS -g" + SH_LDFLAGS="$SH_LDFLAGS -g" + fi + NO_OCT_FILE_STRIP=true + library_path_var=PATH + ## Extra compilation flags. + CRUFT_DLL_DEFS="-DCRUFT_DLL" + OCTAVE_DLL_DEFS="-DOCTAVE_DLL" + OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL" + OCTGUI_DLL_DEFS="-DOCTGUI_DLL" + OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL" + else + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" + SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base" + library_path_var=PATH + fi + ;; + + *-*-msdosmsvc) + DL_LDFLAGS="-shared" + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + SH_LDFLAGS="-shared" + if test -n "`echo $CFLAGS | $GREP -e '-g'`" || test -n "`echo $CXXFLAGS | $GREP -e '-g'`"; then + DL_LDFLAGS="$DL_LDFLAGS -g" + SH_LDFLAGS="$SH_LDFLAGS -g" + fi + NO_OCT_FILE_STRIP=true + library_path_var=PATH + ## Extra compilation flags. + CRUFT_DLL_DEFS="-DCRUFT_DLL" + OCTAVE_DLL_DEFS="-DOCTAVE_DLL" + OCTGUI_DLL_DEFS="-DOCTGUI_DLL" + OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL" + ;; + *-*-linux* | *-*-gnu*) + MKOCTFILE_DL_LDFLAGS="-shared -Wl,-Bsymbolic" + ;; + i[[3456]]86-*-sco3.2v5*) + SH_LDFLAGS=-G + ;; + rs6000-ibm-aix* | powerpc-ibm-aix*) + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + library_path_var=LIBPATH + ;; + hppa*-hp-hpux*) + if test $ac_cv_f77_compiler_gnu = yes; then + FPICFLAG=-fPIC + else + FPICFLAG=+Z + fi + SH_LDFLAGS="-shared -fPIC" + library_path_var=SHLIB_PATH + ;; + ia64*-hp-hpux*) + if test $ac_cv_f77_compiler_gnu = yes; then + FPICFLAG=-fPIC + else + FPICFLAG=+Z + fi + SH_LDFLAGS="-shared -fPIC" + ;; + *-sgi-*) + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + ;; + sparc-sun-sunos4*) + if test $ac_cv_f77_compiler_gnu = yes; then + FPICFLAG=-fPIC + else + FPICFLAG=-PIC + fi + SH_LD=ld + SH_LDFLAGS="-assert nodefinitions" + ;; + sparc-sun-solaris2* | i386-pc-solaris2*) + if test $ac_cv_f77_compiler_gnu = yes; then + FPICFLAG=-fPIC + else + FPICFLAG=-KPIC + fi + if test "$GCC" = yes; then + CPICFLAG=-fPIC + else + CPICFLAG=-KPIC + fi + if test "$GXX" = yes; then + CXXPICFLAG=-fPIC + SH_LDFLAGS=-shared + else + CXXPICFLAG=-KPIC + SH_LDFLAGS=-G + fi + ## Template closures in archive libraries need a different mechanism. + if test "$GXX" != yes; then + TEMPLATE_AR="${CXX}" + TEMPLATE_ARFLAGS="-xar -o" + fi + ;; +esac + +AC_MSG_NOTICE([defining FPICFLAG to be $FPICFLAG]) +AC_MSG_NOTICE([defining CPICFLAG to be $CPICFLAG]) +AC_MSG_NOTICE([defining CXXPICFLAG to be $CXXPICFLAG]) +AC_MSG_NOTICE([defining SH_LD to be $SH_LD]) +AC_MSG_NOTICE([defining SH_LDFLAGS to be $SH_LDFLAGS]) +AC_MSG_NOTICE([defining DL_LD to be $DL_LD]) +AC_MSG_NOTICE([defining DL_LDFLAGS to be $DL_LDFLAGS]) +AC_MSG_NOTICE([defining MKOCTFILE_DL_LDFLAGS to be $MKOCTFILE_DL_LDFLAGS]) +AC_MSG_NOTICE([defining NO_OCT_FILE_STRIP to be $NO_OCT_FILE_STRIP]) +AC_MSG_NOTICE([defining TEMPLATE_AR to be $TEMPLATE_AR]) +AC_MSG_NOTICE([defining TEMPLATE_ARFLAGS to be $TEMPLATE_ARFLAGS]) +AC_MSG_NOTICE([defining CRUFT_DLL_DEFS to be $CRUFT_DLL_DEFS]) +AC_MSG_NOTICE([defining OCTAVE_DLL_DEFS to be $OCTAVE_DLL_DEFS]) +AC_MSG_NOTICE([defining OCTINTERP_DLL_DEFS to be $OCTINTERP_DLL_DEFS]) +AC_MSG_NOTICE([defining OCTGUI_DLL_DEFS to be $OCTGUI_DLL_DEFS]) +AC_MSG_NOTICE([defining OCTGRAPHICS_DLL_DEFS to be $OCTGRAPHICS_DLL_DEFS]) +AC_MSG_NOTICE([defining library_path_var to be $library_path_var]) +AC_SUBST(FPICFLAG) +AC_SUBST(CPICFLAG) +AC_SUBST(CXXPICFLAG) +AC_SUBST(SH_LD) +AC_SUBST(SH_LDFLAGS) +AC_SUBST(DL_LD) +AC_SUBST(DL_LDFLAGS) +AC_SUBST(MKOCTFILE_DL_LDFLAGS) +AC_SUBST(NO_OCT_FILE_STRIP) +AC_SUBST(TEMPLATE_AR) +AC_SUBST(TEMPLATE_ARFLAGS) +AC_SUBST(CRUFT_DLL_DEFS) +AC_SUBST(OCTAVE_DLL_DEFS) +AC_SUBST(OCTINTERP_DLL_DEFS) +AC_SUBST(OCTGUI_DLL_DEFS) +AC_SUBST(OCTGRAPHICS_DLL_DEFS) +AC_SUBST(library_path_var) +AC_SUBST(ldpreloadsep) +AM_SUBST_NOTMAKE(ldpreloadsep) + +### More configure argument checking related to linking + +AC_ARG_ENABLE([no-undefined], + [AS_HELP_STRING([--disable-no-undefined], + [don't pass -no-undefined to libtool when linking Octave and its shared libraries])], + [case $enableval in + yes) NO_UNDEFINED_LDFLAG="-no-undefined" ;; + no) NO_UNDEFINED_LDFLAG="" ;; + *) AC_MSG_ERROR([bad value $enableval for --disable-no-undefined]) ;; + esac], + [NO_UNDEFINED_LDFLAG="-no-undefined"]) +AC_SUBST(NO_UNDEFINED_LDFLAG) + +AC_ARG_ENABLE([link-all-dependencies], + [AS_HELP_STRING([--enable-link-all-dependencies], + [link Octave and its shared libraries with all dependencies, not just those immediately referenced (should not be needed on most systems)])], + [case $enableval in + yes) link_all_deps=yes ;; + no) link_all_deps=no ;; + *) AC_MSG_ERROR([bad value $enableval for --enable-link-all-depenencies]) + ;; + esac], + [link_all_deps=no]) +AM_CONDITIONAL([AMCOND_LINK_ALL_DEPS], [test $link_all_deps = yes]) + +## Dynamic linking is now enabled only if we are building shared +## libs and some API for dynamic linking has been detected. + +## FIXME: A lot of the following duplicates the functionality of +## code generated by the dlopen option for LT_INIT. + +LD_CXX="${CXX}" +RDYNAMIC_FLAG= +DL_API_MSG="" +dlopen_api=no +shl_load_api=no +loadlibrary_api=no +dyld_api=no + +if test $SHARED_LIBS = yes || test $ENABLE_DYNAMIC_LINKING = yes; then + + case $lt_cv_dlopen in + dlopen) + dlopen_api=yes + DL_API_MSG="(dlopen)" + AC_DEFINE(HAVE_DLOPEN_API, 1, + [Define to 1 if your system has dlopen, dlsym, dlerror, and dlclose for dynamic linking.]) + OCTAVE_CXX_FLAG([-rdynamic], [RDYNAMIC_FLAG=-rdynamic]) + ;; + shl_load) + shl_load_api=yes + DL_API_MSG="(shl_load)" + AC_DEFINE(HAVE_SHL_LOAD_API, 1, + [Define to 1 if your system has shl_load and shl_findsym for dynamic linking.]) + ;; + LoadLibrary) + loadlibrary_api=yes + DL_API_MSG="(LoadLibrary)" + AC_DEFINE(HAVE_LOADLIBRARY_API, 1, + [Define to 1 if your system has LoadLibrary for dynamic linking.]) + ;; + dyld) + dyld_api=yes + DL_API_MSG="(dyld)" + AC_DEFINE(HAVE_DYLD_API, 1, + [Define to 1 if your system has dyld for dynamic linking.]) + ;; + esac + + DL_LIBS="$lt_cv_dlopen_libs" + AC_SUBST(DL_LIBS) + + ## Disable dynamic linking if capability is not present. + if test $dlopen_api = yes \ + || test $shl_load_api = yes \ + || test $loadlibrary_api = yes \ + || test $dyld_api = yes; then + # some form of dynamic linking present + ENABLE_DYNAMIC_LINKING=yes + else + ENABLE_DYNAMIC_LINKING=no + fi +fi + +if test $ENABLE_DYNAMIC_LINKING = yes; then + AC_DEFINE(ENABLE_DYNAMIC_LINKING, 1, [Define to 1 if using dynamic linking.]) +fi + +AM_CONDITIONAL([AMCOND_ENABLE_DYNAMIC_LINKING], + [test $ENABLE_DYNAMIC_LINKING = yes]) + +if test $SHARED_LIBS = yes; then + LIBOCTINTERP="-loctinterp" + LIBOCTAVE="-loctave" +else + LIBOCTINTERP="${top_builddir}/libinterp/liboctinterp.a" + LIBOCTAVE="${top_builddir}/liboctave/liboctave.a" +fi + +AC_SUBST(LD_CXX) +AC_SUBST(RDYNAMIC_FLAG) +AC_SUBST(ENABLE_DYNAMIC_LINKING) +AC_SUBST(LIBOCTINTERP) +AC_SUBST(LIBOCTAVE) + + +if test "$cross_compiling" = yes && test -n "$ac_tool_prefix"; then + CROSS_TOOL_PREFIX="$ac_tool_prefix" + MKOCTFILE_AR=`echo "$AR" | $SED "s,$CROSS_TOOL_PREFIX,,"` + MKOCTFILE_CC=`echo "$CC" | $SED "s,$CROSS_TOOL_PREFIX,,"` + MKOCTFILE_CXX=`echo "$CXX" | $SED "s,$CROSS_TOOL_PREFIX,,"` + MKOCTFILE_DL_LD=`echo "$DL_LD" | $SED "s,$CROSS_TOOL_PREFIX,,"` + MKOCTFILE_F77=`echo "$F77" | $SED "s,$CROSS_TOOL_PREFIX,,"` + MKOCTFILE_LD_CXX=`echo "$LD_CXX" | $SED "s,$CROSS_TOOL_PREFIX,,"` + MKOCTFILE_RANLIB=`echo "$RANLIB" | $SED "s,$CROSS_TOOL_PREFIX,,"` +else + MKOCTFILE_AR="$AR" + MKOCTFILE_CC="$CC" + MKOCTFILE_CXX="$CXX" + MKOCTFILE_DL_LD="$DL_LD" + MKOCTFILE_F77="$F77" + MKOCTFILE_LD_CXX="$LD_CXX" + MKOCTFILE_RANLIB="$RANLIB" +fi +AC_MSG_NOTICE([defining CROSS_TOOL_PREFIX to be $CROSS_TOOL_PREFIX]) +AC_MSG_NOTICE([defining MKOCTFILE_AR to be $MKOCTFILE_AR]) +AC_MSG_NOTICE([defining MKOCTFILE_CC to be $MKOCTFILE_CC]) +AC_MSG_NOTICE([defining MKOCTFILE_CXX to be $MKOCTFILE_CXX]) +AC_MSG_NOTICE([defining MKOCTFILE_DL_LD to be $MKOCTFILE_DL_LD]) +AC_MSG_NOTICE([defining MKOCTFILE_F77 to be $MKOCTFILE_F77]) +AC_MSG_NOTICE([defining MKOCTFILE_LD_CXX to be $MKOCTFILE_LD_CXX]) +AC_MSG_NOTICE([defining MKOCTFILE_RANLIB to be $MKOCTFILE_RANLIB]) +AC_SUBST(CROSS_TOOL_PREFIX) +AC_SUBST(MKOCTFILE_AR) +AC_SUBST(MKOCTFILE_CC) +AC_SUBST(MKOCTFILE_CXX) +AC_SUBST(MKOCTFILE_DL_LD) +AC_SUBST(MKOCTFILE_F77) +AC_SUBST(MKOCTFILE_LD_CXX) +AC_SUBST(MKOCTFILE_RANLIB) + ### Check for pthread library AX_PTHREAD @@ -1336,213 +1752,24 @@ ### GUI/Qt related tests. -QT_CPPFLAGS= -QT_LDFLAGS= -QT_LIBS= - +## Change to "5 4" once Octave works with both versions. +QT_VERSIONS="4" check_qt=yes -build_qt_gui=no -build_qt_graphics=no -use_qscintilla=no -win32_terminal=no AC_ARG_WITH([qt], - [AS_HELP_STRING([--without-qt], [don't use Qt libraries; disable Qt GUI])], + [AS_HELP_STRING([--without-qt], [don't use Qt libraries; disable Qt GUI. May also select Qt major version: --with-qt=5])], [if test x"$withval" = xno; then check_qt=no; warn_qt_disabled="--without-qt specified. The Qt GUI will be disabled." OCTAVE_CONFIGURE_WARNING([warn_qt_disabled]) + elif test -n "$withval"; then + QT_VERSIONS="$withval" fi]) if test $check_qt = yes; then - - warn_qt_libraries="" - ## Check for Qt libraries - QT_MODULES="QtCore QtGui QtNetwork QtOpenGL" - PKG_CHECK_MODULES(QT, [$QT_MODULES], - [], - [check_qt=no - warn_qt_libraries="Qt libraries not found; disabling Qt GUI"]) - - if test -n "$warn_qt_libraries"; then - OCTAVE_CONFIGURE_WARNING([warn_qt_libraries]) - fi - - if test $check_qt = yes; then - ## Retrieve Qt compilation and linker flags - QT_CPPFLAGS="`$PKG_CONFIG --cflags-only-I $QT_MODULES`" - QT_LDFLAGS="`$PKG_CONFIG --libs-only-L $QT_MODULES`" - QT_LIBS="`$PKG_CONFIG --libs-only-l $QT_MODULES`" - - case $host_os in - *darwin*) - ## Qt might be installed in framework - if test -z "$QT_LIBS"; then - QT_LDFLAGS="`$PKG_CONFIG --libs-only-other $QT_MODULES | tr ' ' '\n' | $GREP -e '-F' | uniq | tr '\n' ' '`" - QT_LIBS="`$PKG_CONFIG --libs-only-other $QT_MODULES | tr ' ' '\n' | $GREP -v -e '-F' | uniq | tr '\n' ' '`" - ## Enabling link_all_deps works around libtool's imperfect handling - ## of the -F flag - AM_CONDITIONAL([AMCOND_LINK_ALL_DEPS], - [test $link_all_deps = yes || test -n "$QT_LDFLAGS"]) - fi - ;; - esac - - ## Check for Qt4 - if ! `$PKG_CONFIG --atleast-version=4.0.0 QtCore`; then - check_qt=no - warn_qt_version="Qt >= 4.0.0 not found; disabling Qt GUI" - OCTAVE_CONFIGURE_WARNING([warn_qt_version]) - fi - fi - - if test $check_qt = yes; then - warn_qt_tools="" - AC_CHECK_TOOLS(MOC, [moc-qt4 moc]) - AC_CHECK_TOOLS(UIC, [uic-qt4 uic]) - AC_CHECK_TOOLS(RCC, [rcc-qt4 rcc]) - AC_CHECK_TOOLS(LRELEASE, [lrelease-qt4 lrelease]) - - if test -n "$MOC" && test -n "$UIC" && test -n "$RCC" && test -n "$LRELEASE"; then - AC_DEFINE(HAVE_QT, 1, - [Define to 1 if Qt is available (libraries, developer header files, utility programs (moc, uic, rcc, and lrelease))]) - else - warn_qt_tools="Qt utility programs moc, uic, rcc, and lrelease not found; disabling Qt GUI" - check_qt=no - OCTAVE_CONFIGURE_WARNING([warn_qt_tools]) - fi - fi - - if test $check_qt = yes; then - warn_qt_setlocale="" - AC_CHECK_FUNCS([setlocale], [], - [check_qt=no - warn_qt_setlocale="setlocale not found; disabling Qt GUI"]) - - if test -n "$warn_qt_setlocale"; then - OCTAVE_CONFIGURE_WARNING([warn_qt_setlocale]) - fi - fi - - if test $check_qt = yes; then - warn_qt_setvbuf="" - warn_qt_lib_fcns="" - case $host_os in - mingw* | msdosmsvc*) - AC_CHECK_FUNCS([setvbuf], [win32_terminal=yes], - [check_qt=no - warn_qt_setvbuf="setvbuf not found; disabling Qt GUI"]) - - if test -n "$warn_qt_setvbuf"; then - OCTAVE_CONFIGURE_WARNING([warn_qt_setvbuf]) - fi - ;; - *) - AC_CHECK_HEADERS([pty.h libutil.h util.h]) - AC_SEARCH_LIBS([openpty], [util], - [AC_DEFINE(HAVE_OPENPTY, [], [Define whether openpty exists])]) - AC_CHECK_FUNCS([chmod chown ftruncate mmap munmap], [], - [check_qt=no - warn_qt_lib_fcns="At least one of chmod, chown, ftruncate, mmap, and munmap not found; disabling Qt GUI"]) - - if test -n "$warn_qt_lib_fcns"; then - OCTAVE_CONFIGURE_WARNING([warn_qt_lib_fcns]) - fi - ;; - esac - fi - - if test $check_qt = yes; then - OCTAVE_CHECK_FUNC_QABSTRACTITEMMODEL_BEGINRESETMODEL - - if test $octave_cv_func_qabstractitemmodel_beginresetmodel = no; then - check_qt=no - warn_qt_abstract_item_model="QAbstractItemModel::beginResetModel not found; disabling Qt GUI" - OCTAVE_CONFIGURE_WARNING([warn_qt_abstract_item_model]) - fi - fi - - if test $check_qt = yes; then - ## We have what we need to build the Qt GUI. The remaining - ## checks below are for optional features related to the Qt GUI. - build_qt_gui=yes - fi - - if test $check_qt = yes; then - OCTAVE_CHECK_QFONT_MONOSPACE - OCTAVE_CHECK_QFONT_FORCE_INTEGER_METRICS - OCTAVE_CHECK_FUNC_QTABWIDGET_SETMOVABLE - - if test -n "$OPENGL_LIBS"; then - OCTAVE_CHECK_QT_OPENGL_OK([build_qt_graphics=yes], - [warn_qt_opengl="Qt does not work with the OpenGL libs (GL and GLU); disabling OpenGL graphics with Qt GUI"]) - - if test -n "$warn_qt_opengl"; then - OCTAVE_CONFIGURE_WARNING([warn_qt_opengl]) - fi - - if test $build_qt_graphics = yes; then - AC_DEFINE(HAVE_QT_GRAPHICS, 1, [Define to 1 if Qt works with OpenGL libs (GL and GLU)]) - fi - fi - - ## Check for Qscintilla library which is used in the Qt GUI editor. - AC_CACHE_CHECK([whether Qscintilla library is installed], - [octave_cv_lib_qscintilla], - [save_CPPFLAGS="$CPPFLAGS" - save_LDFLAGS="$LDFLAGS" - save_LIBS="$LIBS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" - LDFLAGS="$QT_LDFLAGS $LDFLAGS" - LIBS="$QT_LIBS -lqscintilla2" - AC_LANG_PUSH(C++) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ - #include - ]], [[ - QsciLexerSQL sqlLexer(0); - ]])], - octave_cv_lib_qscintilla=yes, - octave_cv_lib_qscintilla=no) - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - AC_LANG_POP([C++]) - ]) - - if test $octave_cv_lib_qscintilla = no; then - warn_qscintilla="Qscintilla library not found; disabling built-in Qt GUI editor" - OCTAVE_CONFIGURE_WARNING([warn_qscintilla]) - else - ## Let's assume Qscintilla library is at the same location as - ## other regular Qt libraries. - QT_LIBS="$QT_LIBS -lqscintilla2" - OCTAVE_CHECK_VERSION_2_6_0 - AC_DEFINE(HAVE_QSCINTILLA, 1, - [Define to 1 if the QScintilla library and header files are available]) - - save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" - AC_LANG_PUSH(C++) - AC_CHECK_HEADERS([Qsci/qscilexeroctave.h Qsci/qscilexermatlab.h]) - AC_LANG_POP(C++) - CPPFLAGS="$save_CPPFLAGS" - - OCTAVE_CHECK_FUNC_SETPLACEHOLDERTEXT - OCTAVE_CHECK_FUNC_QSCI_FINDSELECTION - use_qscintilla=yes - fi - fi + OCTAVE_CHECK_QT([$QT_VERSIONS]) fi -AC_SUBST(QT_CPPFLAGS) -AC_SUBST(QT_LDFLAGS) -AC_SUBST(QT_LIBS) - -AM_CONDITIONAL([AMCOND_BUILD_QT_GUI], [test $build_qt_gui = yes]) -AM_CONDITIONAL([AMCOND_BUILD_QT_GRAPHICS], [test $build_qt_graphics = yes]) -AM_CONDITIONAL([AMCOND_HAVE_QSCINTILLA], [test $use_qscintilla = yes]) -AM_CONDITIONAL([WIN32_TERMINAL], [test $win32_terminal = yes]) - ## Check for FLTK (www.fltk.org) library check_fltk=yes @@ -1651,50 +1878,6 @@ opengl_graphics=yes fi -### Start determination of shared vs. static libraries - -## Use -static if compiling on Alpha OSF/1 1.3 systems. -case $canonical_host_type in - alpha*-dec-osf1.3) - LD_STATIC_FLAG=-static - ;; -esac -if test -n "$LD_STATIC_FLAG"; then - AC_MSG_NOTICE([defining LD_STATIC_FLAG to be $LD_STATIC_FLAG]) -fi -AC_SUBST(LD_STATIC_FLAG) - -OCTAVE_PROG_AR - -ifdef([LT_INIT], [], [ - errprint([error: you must have libtool 2.2.2 or a more recent version -]) - m4exit([1])]) - -LT_PREREQ([2.2.2]) -LT_INIT([disable-static dlopen win32-dll]) - -if test $enable_shared = yes; then - SHARED_LIBS=yes -else - SHARED_LIBS=no -fi -AC_SUBST(SHARED_LIBS) - -if test $enable_static = yes; then - STATIC_LIBS=yes -else - STATIC_LIBS=no -fi -AC_SUBST(STATIC_LIBS) - -XTRA_CRUFT_SH_LDFLAGS= -if test $have_msvc = yes; then - FLIBS="$FLIBS -lkernel32" - XTRA_CRUFT_SH_LDFLAGS="-Wl,cruft/cruft.def" -fi -AC_SUBST(XTRA_CRUFT_SH_LDFLAGS) - ### Check for BLAS and LAPACK libraries: ## Need to adjust FFLAGS to include correct integer size. @@ -1974,378 +2157,6 @@ OCTAVE_ENABLE_READLINE -### Enable dynamic linking. --enable-shared implies this, so -### --enable-dl is only need if you are only building static libraries -### and want to try dynamic linking too (works on some systems, for -### example, OS X and Windows). - -AC_ARG_ENABLE([dl], - [AS_HELP_STRING([--disable-dl], - [disable loading of dynamically linked modules])], - [case $enableval in - yes) ENABLE_DYNAMIC_LINKING=yes ;; - no) ENABLE_DYNAMIC_LINKING=no ;; - *) AC_MSG_ERROR([bad value $enableval for --enable-dl]) ;; - esac], - [ENABLE_DYNAMIC_LINKING=no]) - -if test $STATIC_LIBS = no && test $SHARED_LIBS = no; then - AC_MSG_ERROR([You can't disable building both static AND shared libraries!]) -fi - -CPICFLAG=-fPIC -CXXPICFLAG=-fPIC -FPICFLAG=-fPIC -SH_LD="${CXX}" -SH_LDFLAGS=-shared -DL_LD="${SH_LD}" -DL_LDFLAGS="${SH_LDFLAGS}" -MKOCTFILE_DL_LDFLAGS="${DL_LDFLAGS}" -NO_OCT_FILE_STRIP=false -TEMPLATE_AR="${AR}" -TEMPLATE_ARFLAGS="$ARFLAGS" -CRUFT_DLL_DEFS= -OCTAVE_DLL_DEFS= -OCTINTERP_DLL_DEFS= -OCTGUI_DLL_DEFS= -OCTGRAPHICS_DLL_DEFS= -library_path_var=LD_LIBRARY_PATH -ldpreloadsep=" " -case $canonical_host_type in - *-*-386bsd* | *-*-netbsd*) - SH_LD=ld - SH_LDFLAGS=-Bshareable - ;; - *-*-openbsd*) - SH_LDFLAGS="-shared -fPIC" - ;; - *-*-freebsd*) - SH_LDFLAGS="-shared -Wl,-x" - ;; - alpha*-dec-osf*) - CPICFLAG= - CXXPICFLAG= - FPICFLAG= - SH_LDFLAGS="-shared -Wl,-expect_unresolved -Wl,'*'" - ;; - *-*-darwin*) - DL_LDFLAGS="-bundle -bundle_loader ${ac_top_build_prefix}libinterp/octave ${LDFLAGS}" - ## Contains variables that are defined and undefined at this point, so use - ## appropriate quoting to defer expansion of ${bindir} and ${version}. - MKOCTFILE_DL_LDFLAGS='-bundle -bundle_loader ${bindir}/octave-${version}'"${EXEEXT}" - SH_LDFLAGS="-dynamiclib -single_module ${LDFLAGS}" - case $canonical_host_type in - powerpc-*) - CXXPICFLAG= - CPICFLAG= - FPICFLAG= - ;; - esac - NO_OCT_FILE_STRIP=true - library_path_var=DYLD_LIBRARY_PATH - ;; - *-*-cygwin*) - CPICFLAG= - CXXPICFLAG= - FPICFLAG= - DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" - SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base" - ldpreloadsep=":" - ;; - *-*-mingw*) - if test $have_msvc = yes; then - DL_LDFLAGS="-shared" - CPICFLAG= - CXXPICFLAG= - FPICFLAG= - SH_LDFLAGS="-shared" - if test -n "`echo $CFLAGS | $GREP -e '-g'`" || test -n "`echo $CXXFLAGS | $GREP -e '-g'`"; then - DL_LDFLAGS="$DL_LDFLAGS -g" - SH_LDFLAGS="$SH_LDFLAGS -g" - fi - NO_OCT_FILE_STRIP=true - library_path_var=PATH - ## Extra compilation flags. - CRUFT_DLL_DEFS="-DCRUFT_DLL" - OCTAVE_DLL_DEFS="-DOCTAVE_DLL" - OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL" - OCTGUI_DLL_DEFS="-DOCTGUI_DLL" - OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL" - else - CPICFLAG= - CXXPICFLAG= - FPICFLAG= - DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" - SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base" - library_path_var=PATH - fi - ;; - - *-*-msdosmsvc) - DL_LDFLAGS="-shared" - CPICFLAG= - CXXPICFLAG= - FPICFLAG= - SH_LDFLAGS="-shared" - if test -n "`echo $CFLAGS | $GREP -e '-g'`" || test -n "`echo $CXXFLAGS | $GREP -e '-g'`"; then - DL_LDFLAGS="$DL_LDFLAGS -g" - SH_LDFLAGS="$SH_LDFLAGS -g" - fi - NO_OCT_FILE_STRIP=true - library_path_var=PATH - ## Extra compilation flags. - CRUFT_DLL_DEFS="-DCRUFT_DLL" - OCTAVE_DLL_DEFS="-DOCTAVE_DLL" - OCTGUI_DLL_DEFS="-DOCTGUI_DLL" - OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL" - ;; - *-*-linux* | *-*-gnu*) - MKOCTFILE_DL_LDFLAGS="-shared -Wl,-Bsymbolic" - ;; - i[[3456]]86-*-sco3.2v5*) - SH_LDFLAGS=-G - ;; - rs6000-ibm-aix* | powerpc-ibm-aix*) - CPICFLAG= - CXXPICFLAG= - FPICFLAG= - library_path_var=LIBPATH - ;; - hppa*-hp-hpux*) - if test $ac_cv_f77_compiler_gnu = yes; then - FPICFLAG=-fPIC - else - FPICFLAG=+Z - fi - SH_LDFLAGS="-shared -fPIC" - library_path_var=SHLIB_PATH - ;; - ia64*-hp-hpux*) - if test $ac_cv_f77_compiler_gnu = yes; then - FPICFLAG=-fPIC - else - FPICFLAG=+Z - fi - SH_LDFLAGS="-shared -fPIC" - ;; - *-sgi-*) - CPICFLAG= - CXXPICFLAG= - FPICFLAG= - ;; - sparc-sun-sunos4*) - if test $ac_cv_f77_compiler_gnu = yes; then - FPICFLAG=-fPIC - else - FPICFLAG=-PIC - fi - SH_LD=ld - SH_LDFLAGS="-assert nodefinitions" - ;; - sparc-sun-solaris2* | i386-pc-solaris2*) - if test $ac_cv_f77_compiler_gnu = yes; then - FPICFLAG=-fPIC - else - FPICFLAG=-KPIC - fi - if test "$GCC" = yes; then - CPICFLAG=-fPIC - else - CPICFLAG=-KPIC - fi - if test "$GXX" = yes; then - CXXPICFLAG=-fPIC - SH_LDFLAGS=-shared - else - CXXPICFLAG=-KPIC - SH_LDFLAGS=-G - fi - ## Template closures in archive libraries need a different mechanism. - if test "$GXX" != yes; then - TEMPLATE_AR="${CXX}" - TEMPLATE_ARFLAGS="-xar -o" - fi - ;; -esac - -AC_MSG_NOTICE([defining FPICFLAG to be $FPICFLAG]) -AC_MSG_NOTICE([defining CPICFLAG to be $CPICFLAG]) -AC_MSG_NOTICE([defining CXXPICFLAG to be $CXXPICFLAG]) -AC_MSG_NOTICE([defining SH_LD to be $SH_LD]) -AC_MSG_NOTICE([defining SH_LDFLAGS to be $SH_LDFLAGS]) -AC_MSG_NOTICE([defining DL_LD to be $DL_LD]) -AC_MSG_NOTICE([defining DL_LDFLAGS to be $DL_LDFLAGS]) -AC_MSG_NOTICE([defining MKOCTFILE_DL_LDFLAGS to be $MKOCTFILE_DL_LDFLAGS]) -AC_MSG_NOTICE([defining NO_OCT_FILE_STRIP to be $NO_OCT_FILE_STRIP]) -AC_MSG_NOTICE([defining TEMPLATE_AR to be $TEMPLATE_AR]) -AC_MSG_NOTICE([defining TEMPLATE_ARFLAGS to be $TEMPLATE_ARFLAGS]) -AC_MSG_NOTICE([defining CRUFT_DLL_DEFS to be $CRUFT_DLL_DEFS]) -AC_MSG_NOTICE([defining OCTAVE_DLL_DEFS to be $OCTAVE_DLL_DEFS]) -AC_MSG_NOTICE([defining OCTINTERP_DLL_DEFS to be $OCTINTERP_DLL_DEFS]) -AC_MSG_NOTICE([defining OCTGUI_DLL_DEFS to be $OCTGUI_DLL_DEFS]) -AC_MSG_NOTICE([defining OCTGRAPHICS_DLL_DEFS to be $OCTGRAPHICS_DLL_DEFS]) -AC_MSG_NOTICE([defining library_path_var to be $library_path_var]) -AC_SUBST(FPICFLAG) -AC_SUBST(CPICFLAG) -AC_SUBST(CXXPICFLAG) -AC_SUBST(SH_LD) -AC_SUBST(SH_LDFLAGS) -AC_SUBST(DL_LD) -AC_SUBST(DL_LDFLAGS) -AC_SUBST(MKOCTFILE_DL_LDFLAGS) -AC_SUBST(NO_OCT_FILE_STRIP) -AC_SUBST(TEMPLATE_AR) -AC_SUBST(TEMPLATE_ARFLAGS) -AC_SUBST(CRUFT_DLL_DEFS) -AC_SUBST(OCTAVE_DLL_DEFS) -AC_SUBST(OCTINTERP_DLL_DEFS) -AC_SUBST(OCTGUI_DLL_DEFS) -AC_SUBST(OCTGRAPHICS_DLL_DEFS) -AC_SUBST(library_path_var) -AC_SUBST(ldpreloadsep) -AM_SUBST_NOTMAKE(ldpreloadsep) - -### More configure argument checking related to linking - -AC_ARG_ENABLE([no-undefined], - [AS_HELP_STRING([--disable-no-undefined], - [don't pass -no-undefined to libtool when linking Octave and its shared libraries])], - [case $enableval in - yes) NO_UNDEFINED_LDFLAG="-no-undefined" ;; - no) NO_UNDEFINED_LDFLAG="" ;; - *) AC_MSG_ERROR([bad value $enableval for --disable-no-undefined]) ;; - esac], - [NO_UNDEFINED_LDFLAG="-no-undefined"]) -AC_SUBST(NO_UNDEFINED_LDFLAG) - -AC_ARG_ENABLE([link-all-dependencies], - [AS_HELP_STRING([--enable-link-all-dependencies], - [link Octave and its shared libraries with all dependencies, not just those immediately referenced (should not be needed on most systems)])], - [case $enableval in - yes) link_all_deps=yes ;; - no) link_all_deps=no ;; - *) AC_MSG_ERROR([bad value $enableval for --enable-link-all-depenencies]) - ;; - esac], - [link_all_deps=no]) -AM_CONDITIONAL([AMCOND_LINK_ALL_DEPS], [test $link_all_deps = yes]) - -## Dynamic linking is now enabled only if we are building shared -## libs and some API for dynamic linking has been detected. - -## FIXME: A lot of the following duplicates the functionality of -## code generated by the dlopen option for LT_INIT. - -LD_CXX="${CXX}" -RDYNAMIC_FLAG= -DL_API_MSG="" -dlopen_api=no -shl_load_api=no -loadlibrary_api=no -dyld_api=no - -if test $SHARED_LIBS = yes || test $ENABLE_DYNAMIC_LINKING = yes; then - - case $lt_cv_dlopen in - dlopen) - dlopen_api=yes - DL_API_MSG="(dlopen)" - AC_DEFINE(HAVE_DLOPEN_API, 1, - [Define to 1 if your system has dlopen, dlsym, dlerror, and dlclose for dynamic linking.]) - OCTAVE_CXX_FLAG([-rdynamic], [RDYNAMIC_FLAG=-rdynamic]) - ;; - shl_load) - shl_load_api=yes - DL_API_MSG="(shl_load)" - AC_DEFINE(HAVE_SHL_LOAD_API, 1, - [Define to 1 if your system has shl_load and shl_findsym for dynamic linking.]) - ;; - LoadLibrary) - loadlibrary_api=yes - DL_API_MSG="(LoadLibrary)" - AC_DEFINE(HAVE_LOADLIBRARY_API, 1, - [Define to 1 if your system has LoadLibrary for dynamic linking.]) - ;; - dyld) - dyld_api=yes - DL_API_MSG="(dyld)" - AC_DEFINE(HAVE_DYLD_API, 1, - [Define to 1 if your system has dyld for dynamic linking.]) - ;; - esac - - DL_LIBS="$lt_cv_dlopen_libs" - AC_SUBST(DL_LIBS) - - ## Disable dynamic linking if capability is not present. - if test $dlopen_api = yes \ - || test $shl_load_api = yes \ - || test $loadlibrary_api = yes \ - || test $dyld_api = yes; then - # some form of dynamic linking present - ENABLE_DYNAMIC_LINKING=yes - else - ENABLE_DYNAMIC_LINKING=no - fi -fi - -if test $ENABLE_DYNAMIC_LINKING = yes; then - AC_DEFINE(ENABLE_DYNAMIC_LINKING, 1, [Define to 1 if using dynamic linking.]) -fi - -AM_CONDITIONAL([AMCOND_ENABLE_DYNAMIC_LINKING], - [test $ENABLE_DYNAMIC_LINKING = yes]) - -if test $SHARED_LIBS = yes; then - LIBOCTINTERP="-loctinterp" - LIBOCTAVE="-loctave" -else - LIBOCTINTERP="${top_builddir}/libinterp/liboctinterp.a" - LIBOCTAVE="${top_builddir}/liboctave/liboctave.a" -fi - -AC_SUBST(LD_CXX) -AC_SUBST(RDYNAMIC_FLAG) -AC_SUBST(ENABLE_DYNAMIC_LINKING) -AC_SUBST(LIBOCTINTERP) -AC_SUBST(LIBOCTAVE) - - -if test "$cross_compiling" = yes && test -n "$ac_tool_prefix"; then - CROSS_TOOL_PREFIX="$ac_tool_prefix" - MKOCTFILE_AR=`echo "$AR" | $SED "s,$CROSS_TOOL_PREFIX,,"` - MKOCTFILE_CC=`echo "$CC" | $SED "s,$CROSS_TOOL_PREFIX,,"` - MKOCTFILE_CXX=`echo "$CXX" | $SED "s,$CROSS_TOOL_PREFIX,,"` - MKOCTFILE_DL_LD=`echo "$DL_LD" | $SED "s,$CROSS_TOOL_PREFIX,,"` - MKOCTFILE_F77=`echo "$F77" | $SED "s,$CROSS_TOOL_PREFIX,,"` - MKOCTFILE_LD_CXX=`echo "$LD_CXX" | $SED "s,$CROSS_TOOL_PREFIX,,"` - MKOCTFILE_RANLIB=`echo "$RANLIB" | $SED "s,$CROSS_TOOL_PREFIX,,"` -else - MKOCTFILE_AR="$AR" - MKOCTFILE_CC="$CC" - MKOCTFILE_CXX="$CXX" - MKOCTFILE_DL_LD="$DL_LD" - MKOCTFILE_F77="$F77" - MKOCTFILE_LD_CXX="$LD_CXX" - MKOCTFILE_RANLIB="$RANLIB" -fi -AC_MSG_NOTICE([defining CROSS_TOOL_PREFIX to be $CROSS_TOOL_PREFIX]) -AC_MSG_NOTICE([defining MKOCTFILE_AR to be $MKOCTFILE_AR]) -AC_MSG_NOTICE([defining MKOCTFILE_CC to be $MKOCTFILE_CC]) -AC_MSG_NOTICE([defining MKOCTFILE_CXX to be $MKOCTFILE_CXX]) -AC_MSG_NOTICE([defining MKOCTFILE_DL_LD to be $MKOCTFILE_DL_LD]) -AC_MSG_NOTICE([defining MKOCTFILE_F77 to be $MKOCTFILE_F77]) -AC_MSG_NOTICE([defining MKOCTFILE_LD_CXX to be $MKOCTFILE_LD_CXX]) -AC_MSG_NOTICE([defining MKOCTFILE_RANLIB to be $MKOCTFILE_RANLIB]) -AC_SUBST(CROSS_TOOL_PREFIX) -AC_SUBST(MKOCTFILE_AR) -AC_SUBST(MKOCTFILE_CC) -AC_SUBST(MKOCTFILE_CXX) -AC_SUBST(MKOCTFILE_DL_LD) -AC_SUBST(MKOCTFILE_F77) -AC_SUBST(MKOCTFILE_LD_CXX) -AC_SUBST(MKOCTFILE_RANLIB) - ### Check for existence of various libraries ## OS-specific test for dirent, opendir. @@ -3456,6 +3267,10 @@ Qt CPPFLAGS: $QT_CPPFLAGS Qt LDFLAGS: $QT_LDFLAGS Qt libraries: $QT_LIBS + Qt moc: $MOC $MOCFLAGS + Qt uic: $UIC $UICFLAGS + Qt rcc: $RCC $RCCFLAGS + Qt lrelease: $LRELEASE $LRELEASEFLAGS READLINE libraries: $READLINE_LIBS Sndfile CPPFLAGS: $SNDFILE_CPPFLAGS Sndfile LDFLAGS: $SNDFILE_LDFLAGS diff -r 60faa7c85e31 -r 66dd260512a4 libgui/module.mk --- a/libgui/module.mk Mon Aug 08 19:22:29 2016 -0400 +++ b/libgui/module.mk Tue Aug 09 14:41:52 2016 -0400 @@ -81,7 +81,7 @@ ( echo "#if defined (HAVE_CONFIG_H)"; \ echo '# include "config.h"'; \ echo "#endif"; \ - $(MOC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MOC_OCTAVE_CPPFLAGS) $(MOC_CPPFLAGS) $(libgui_liboctgui_la_CPPFLAGS) $< ) > $@-t && \ + $(MOC) $(MOCFLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MOC_OCTAVE_CPPFLAGS) $(MOC_CPPFLAGS) $(libgui_liboctgui_la_CPPFLAGS) $< ) > $@-t && \ mv $@-t $@ endef @@ -94,7 +94,7 @@ echo "#if defined (HAVE_PRAGMA_GCC_DIAGNOSTIC)"; \ echo "#pragma GCC diagnostic ignored \"-Wunused-variable\""; \ echo "#endif"; \ - $(RCC) -name $(@D) $< ) > $@-t && \ + $(RCC) $(RCCFLAGS) -name $(@D) $< ) > $@-t && \ mv $@-t $@ endef @@ -102,7 +102,7 @@ $(AM_V_GEN)$(moc-command) ui-%.h: %.ui - $(AM_V_GEN)$(UIC) -o $@ $< + $(AM_V_GEN)$(UIC) $(UICFLAGS) -o $@ $< qrc-%.cc: %.qrc $(AM_V_GEN)$(rcc-command) @@ -113,7 +113,7 @@ am__v_lrelease_1 = %.qm: %.ts | libgui/languages/$(octave_dirstamp) - $(AM_V_GEN)$(LRELEASE) $(AM_V_lrelease) -qm $@ $< + $(AM_V_GEN)$(LRELEASE) $(LRELEASEFLAGS) $(AM_V_lrelease) -qm $@ $< DIRSTAMP_FILES += \ libgui/languages/$(octave_dirstamp) diff -r 60faa7c85e31 -r 66dd260512a4 m4/acinclude.m4 --- a/m4/acinclude.m4 Mon Aug 08 19:22:29 2016 -0400 +++ b/m4/acinclude.m4 Tue Aug 09 14:41:52 2016 -0400 @@ -189,7 +189,9 @@ [octave_cv_cxsparse_version_ok], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ #if defined (HAVE_SUITESPARSE_CS_H) #include @@ -211,6 +213,7 @@ octave_cv_cxsparse_version_ok=yes, octave_cv_cxsparse_version_ok=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_cxsparse_version_ok = yes; then @@ -352,12 +355,14 @@ dnl FIXME: This test uses a version number. It potentially could dnl be re-written to actually call the function, but is it worth it? dnl -AC_DEFUN([OCTAVE_CHECK_VERSION_2_6_0], [ +AC_DEFUN([OCTAVE_CHECK_QSCINTILLA_VERSION], [ AC_CACHE_CHECK([whether Qscintilla has version 2.6.0 or later], [octave_cv_version_2_6_0], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ @@ -368,6 +373,7 @@ octave_cv_version_2_6_0=yes, octave_cv_version_2_6_0=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_version_2_6_0 = yes; then @@ -433,7 +439,9 @@ [octave_cv_decl_qfont_monospace], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ @@ -442,6 +450,7 @@ octave_cv_decl_qfont_monospace=yes, octave_cv_decl_qfont_monospace=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_decl_qfont_monospace = yes; then @@ -457,7 +466,9 @@ [octave_cv_decl_qfont_force_integer_metrics], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ @@ -466,6 +477,7 @@ octave_cv_decl_qfont_force_integer_metrics=yes, octave_cv_decl_qfont_force_integer_metrics=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_decl_qfont_force_integer_metrics = yes; then @@ -483,7 +495,9 @@ [octave_cv_func_setplaceholdertext], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ @@ -494,6 +508,7 @@ octave_cv_func_setplaceholdertext=yes, octave_cv_func_setplaceholdertext=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_func_setplaceholdertext = yes; then @@ -511,7 +526,9 @@ [octave_cv_func_qabstractitemmodel_beginresetmodel], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include class item_model : public QAbstractItemModel @@ -537,6 +554,7 @@ octave_cv_func_qabstractitemmodel_beginresetmodel=yes, octave_cv_func_qabstractitemmodel_beginresetmodel=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_func_qabstractitemmodel_beginresetmodel = yes; then @@ -553,7 +571,9 @@ [octave_cv_func_qtabwidget_setmovable], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include class tab_widget : public QTabWidget @@ -568,6 +588,7 @@ octave_cv_func_qtabwidget_setmovable=yes, octave_cv_func_qtabwidget_setmovable=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_func_qtabwidget_setmovable = yes; then @@ -584,7 +605,9 @@ [octave_cv_func_qsci_findfirstinselection], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include class qsci : public QsciScintilla @@ -600,6 +623,7 @@ octave_cv_func_qsci_findfirstinselection=yes, octave_cv_func_qsci_findfirstinselection=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_func_qsci_findfirstinselection = yes; then @@ -1250,7 +1274,9 @@ [octave_cv_qt_opengl_ok], [AC_LANG_PUSH(C++) ac_octave_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$QT_CPPFLAGS $CPPFLAGS" + ac_octave_save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #if HAVE_WINDOWS_H # include @@ -1278,6 +1304,7 @@ octave_cv_qt_opengl_ok=yes, octave_cv_qt_opengl_ok=no) CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" AC_LANG_POP(C++) ]) if test $octave_cv_qt_opengl_ok = yes; then @@ -1289,6 +1316,288 @@ fi ]) dnl +dnl Check whether Qt VERSION is present, supports QtOpenGL and +dnl QScintilla and will work for Octave. +dnl +dnl OCTAVE_CHECK_QT_VERSION(VERSION) +dnl +AC_DEFUN([OCTAVE_CHECK_QT_VERSION], [AC_MSG_CHECKING([Qt version $1]) + QT_CPPFLAGS= + QT_LDFLAGS= + QT_LIBS= + + qt_version="$1"; + + build_qt_gui=no + build_qt_graphics=no + use_qscintilla=no + win32_terminal=no + + warn_qt_libraries="" + warn_qt_version="" + warn_qt_tools="" + warn_qt_setlocale="" + warn_qt_setvbuf="" + warn_qt_lib_fcns="" + warn_qt_abstract_item_model="" + warn_qt_opengl="" + warn_qscintilla="" + + ## Check for Qt libraries + case "$qt_version" in + 4) + QT_MODULES="QtCore QtGui QtNetwork QtOpenGL" + LIBQSCINTILLA=qscintilla2 + ;; + 5) + QT_MODULES="Qt5Core Qt5Gui Qt5Network Qt5OpenGL" + LIBQSCINTILLA=qt5scintilla2 + ;; + *) + AC_MSG_ERROR([Unrecognized Qt version $qt_version]) + ;; + esac + + PKG_CHECK_MODULES(QT, [$QT_MODULES], + [], + [check_qt=no + warn_qt_libraries="Qt libraries not found; disabling Qt GUI"]) + + if test $check_qt = yes; then + ## Retrieve Qt compilation and linker flags + QT_CPPFLAGS="`$PKG_CONFIG --cflags-only-I $QT_MODULES`" + QT_LDFLAGS="`$PKG_CONFIG --libs-only-L $QT_MODULES`" + QT_LIBS="`$PKG_CONFIG --libs-only-l $QT_MODULES`" + + case $host_os in + *darwin*) + ## Qt might be installed in framework + if test -z "$QT_LIBS"; then + QT_LDFLAGS="`$PKG_CONFIG --libs-only-other $QT_MODULES | tr ' ' '\n' | $GREP -e '-F' | uniq | tr '\n' ' '`" + QT_LIBS="`$PKG_CONFIG --libs-only-other $QT_MODULES | tr ' ' '\n' | $GREP -v -e '-F' | uniq | tr '\n' ' '`" + ## Enabling link_all_deps works around libtool's imperfect handling + ## of the -F flag + AM_CONDITIONAL([AMCOND_LINK_ALL_DEPS], + [test $link_all_deps = yes || test -n "$QT_LDFLAGS"]) + fi + ;; + esac + + if test $qt_version = 4; then + ## Check for Qt4 + if ! `$PKG_CONFIG --atleast-version=4.0.0 QtCore`; then + check_qt=no + warn_qt_version="Qt >= 4.0.0 not found; disabling Qt GUI" + fi + fi + fi + + if test $check_qt = yes; then + AC_CHECK_TOOLS(MOC, [moc-qt$qt_version]) + AC_CHECK_TOOLS(UIC, [uic-qt$qt_version]) + AC_CHECK_TOOLS(RCC, [rcc-qt$qt_version]) + AC_CHECK_TOOLS(LRELEASE, [lrelease-qt$qt_version]) + + if test -z "$MOC" || test -z "$UIC" || test -z "$RCC" || test -z "$LRELEASE"; then + AC_CHECK_TOOLS(QTCHOOSER, [qtchooser]) + + if test -z "$MOC"; then + AC_CHECK_TOOLS(MOC, [moc]) + if test -n "$QTCHOOSER"; then + MOCFLAGS="-qt$qt_version" + fi + fi + if test -z "$UIC"; then + AC_CHECK_TOOLS(UIC, [uic]) + if test -n "$QTCHOOSER"; then + UICFLAGS="-qt$qt_version" + fi + fi + if test -z "$RCC"; then + AC_CHECK_TOOLS(RCC, [rcc]) + if test -n "$QTCHOOSER"; then + RCCFLAGS="-qt$qt_version" + fi + fi + if test -z "$LRELEASE"; then + AC_CHECK_TOOLS(LRELEASE, [lrelease]) + if test -n "$QTCHOOSER"; then + LRELEASEFLAGS="-qt$qt_version" + fi + fi + fi + + if test -n "$MOC" && test -n "$UIC" && test -n "$RCC" && test -n "$LRELEASE"; then + AC_DEFINE(HAVE_QT, 1, + [Define to 1 if Qt is available (libraries, developer header files, utility programs (moc, uic, rcc, and lrelease))]) + else + warn_qt_tools="one or more of the Qt utility programs moc, uic, rcc, and lrelease not found; disabling Qt GUI" + check_qt=no + fi + fi + + if test $check_qt = yes; then + AC_CHECK_FUNCS([setlocale], [], + [check_qt=no + warn_qt_setlocale="setlocale not found; disabling Qt GUI"]) + fi + + if test $check_qt = yes; then + case $host_os in + mingw* | msdosmsvc*) + AC_CHECK_FUNCS([setvbuf], [win32_terminal=yes], + [check_qt=no + warn_qt_setvbuf="setvbuf not found; disabling Qt GUI"]) + ;; + *) + AC_CHECK_HEADERS([pty.h libutil.h util.h]) + AC_SEARCH_LIBS([openpty], [util], + [AC_DEFINE(HAVE_OPENPTY, [], [Define whether openpty exists])]) + AC_CHECK_FUNCS([chmod chown ftruncate mmap munmap], [], + [check_qt=no + warn_qt_lib_fcns="At least one of chmod, chown, ftruncate, mmap, and munmap not found; disabling Qt GUI"]) + ;; + esac + fi + + if test $check_qt = yes; then + OCTAVE_CHECK_FUNC_QABSTRACTITEMMODEL_BEGINRESETMODEL + + if test $octave_cv_func_qabstractitemmodel_beginresetmodel = no; then + check_qt=no + warn_qt_abstract_item_model="QAbstractItemModel::beginResetModel not found; disabling Qt GUI" + fi + fi + + if test $check_qt = yes; then + ## We have what we need to build the Qt GUI. The remaining + ## checks below are for optional features related to the Qt GUI. + build_qt_gui=yes + fi + + if test $check_qt = yes; then + OCTAVE_CHECK_QFONT_MONOSPACE + OCTAVE_CHECK_QFONT_FORCE_INTEGER_METRICS + OCTAVE_CHECK_FUNC_QTABWIDGET_SETMOVABLE + + if test -n "$OPENGL_LIBS"; then + OCTAVE_CHECK_QT_OPENGL_OK([build_qt_graphics=yes], + [warn_qt_opengl="Qt does not work with the OpenGL libs (GL and GLU); disabling OpenGL graphics with Qt GUI"]) + + if test $build_qt_graphics = yes; then + AC_DEFINE(HAVE_QT_GRAPHICS, 1, [Define to 1 if Qt works with OpenGL libs (GL and GLU)]) + fi + fi + + ## Check for Qscintilla library which is used in the Qt GUI editor. + AC_CACHE_CHECK([whether Qscintilla library is installed], + [octave_cv_lib_qscintilla], + [save_CPPFLAGS="$CPPFLAGS" + save_CXXFLAGS="$CXXFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" + LDFLAGS="$QT_LDFLAGS $LDFLAGS" + LIBS="$QT_LIBS -l$LIBQSCINTILLA" + AC_LANG_PUSH(C++) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include + ]], [[ + QsciLexerSQL sqlLexer(0); + ]])], + octave_cv_lib_qscintilla=yes, + octave_cv_lib_qscintilla=no) + CPPFLAGS="$save_CPPFLAGS" + CXXFLAGS="$save_CXXFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + AC_LANG_POP([C++]) + ]) + + if test $octave_cv_lib_qscintilla = no; then + warn_qscintilla="Qscintilla library not found; disabling built-in Qt GUI editor" + else + ## Let's assume Qscintilla library is at the same location as + ## other regular Qt libraries. + QT_LIBS="$QT_LIBS -l$LIBQSCINTILLA" + OCTAVE_CHECK_QSCINTILLA_VERSION + AC_DEFINE(HAVE_QSCINTILLA, 1, + [Define to 1 if the QScintilla library and header files are available]) + + save_CPPFLAGS="$CPPFLAGS" + save_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS" + CXXFLAGS="$CXXPICFLAG $CXXFLAGS" + AC_LANG_PUSH(C++) + AC_CHECK_HEADERS([Qsci/qscilexeroctave.h Qsci/qscilexermatlab.h]) + AC_LANG_POP(C++) + CPPFLAGS="$save_CPPFLAGS" + CXXFLAGS="$save_CXXFLAGS" + + OCTAVE_CHECK_FUNC_SETPLACEHOLDERTEXT + OCTAVE_CHECK_FUNC_QSCI_FINDSELECTION + use_qscintilla=yes + fi + fi + AC_SUBST(MOCFLAGS) + AC_SUBST(UICFLAGS) + AC_SUBST(RCCFLAGS) + AC_SUBST(LRELEASEFLAGS) + AC_SUBST(QT_CPPFLAGS) + AC_SUBST(QT_LDFLAGS) + AC_SUBST(QT_LIBS) +]) +dnl +dnl OCTAVE_CHECK_QT +dnl +AC_DEFUN([OCTAVE_CHECK_QT], [ + octave_qt_versions="$1" + if test $check_qt = yes; then + for ver in $octave_qt_versions; do + OCTAVE_CHECK_QT_VERSION([$ver]) + if test $build_qt_gui = yes; then + break + fi + done + + if test $build_qt_gui = no; then + if test -n "$warn_qt_libraries"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_libraries]) + fi + if test -n "$warn_qt_version"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_version]) + fi + if test -n "$warn_qt_tools"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_tools]) + fi + if test -n "$warn_qt_setlocale"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_setlocale]) + fi + if test -n "$warn_qt_setvbuf"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_setvbuf]) + fi + if test -n "$warn_qt_lib_fcns"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_lib_fcns]) + fi + if test -n "$warn_qt_abstract_item_model"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_abstract_item_model]) + fi + if test -n "$warn_qt_opengl"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_opengl]) + fi + if test -n "$warn_qscintilla"; then + OCTAVE_CONFIGURE_WARNING([warn_qscintilla]) + fi + fi + fi + + AM_CONDITIONAL([AMCOND_BUILD_QT_GUI], [test $build_qt_gui = yes]) + AM_CONDITIONAL([AMCOND_BUILD_QT_GRAPHICS], [test $build_qt_graphics = yes]) + AM_CONDITIONAL([AMCOND_HAVE_QSCINTILLA], [test $use_qscintilla = yes]) + AM_CONDITIONAL([WIN32_TERMINAL], [test $win32_terminal = yes]) +]) +dnl dnl Check if the default Fortran INTEGER is 64 bits wide. dnl AC_DEFUN([OCTAVE_CHECK_SIZEOF_FORTRAN_INTEGER], [