changeset 6837:6adeb47401d6

Add qt6 usage to mxe-octave * src/qt6-qtbase-1-fixes.patch, src/qt6-qtbase.mk, src/qt6-qtimageformats-1-fixes.patch, src/qt6-qtimageformats.mk, src/qt6-qtsvg.mk, src/qt6-qttools.mk, src/qt6-qttranslations.mk, src/qt6.mk, src/qt6-qt5compat.mk: new files * Makefile.in: add use of ENABLE_QT and add qt6 values * configure.ac: add --enable-qt=xxx option, remove--enable-qt5 * dist-files.mk, index.html: add refs to new files * src/blas_switch.mk, src/gnuplot.mk, src/opengl_switch.mk, src/default-octave.mk, src/qscintilla.mk, src/release-octave.mk, src/stable-octave.mk: add prrocessing of ENABLE_QT value * src/qt5.mk: dont include qt6* files in dependancies * src/gnuplot-2-qt6.patch: new patch file * binary-dist-rules.mk: include qtversion in build of octave-launch * installer-files/octave-firsttime.vbs, installer-files/octave-launch.c installer-files/octave.bat, installer-files/octave.vbs : include qt6 file paths
author John Donoghue <john.donoghue@ieee.org>
date Wed, 23 Aug 2023 08:48:00 -0400
parents 2395cc63b8df
children dada62da13c0
files Makefile.in binary-dist-rules.mk configure.ac dist-files.mk index.html installer-files/octave-firsttime.vbs installer-files/octave-launch.c installer-files/octave.bat installer-files/octave.vbs src/blas_switch.mk src/default-octave.mk src/gnuplot-2-qt6.patch src/gnuplot.mk src/opengl_switch.mk src/qscintilla.mk src/qt5.mk src/qt6-qt5compat.mk src/qt6-qtbase-1-fixes.patch src/qt6-qtbase.mk src/qt6-qtimageformats-1-fixes.patch src/qt6-qtimageformats.mk src/qt6-qtsvg.mk src/qt6-qttools.mk src/qt6-qttranslations.mk src/qt6.mk src/release-octave.mk src/stable-octave.mk
diffstat 27 files changed, 720 insertions(+), 86 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Thu Aug 17 16:44:07 2023 -0400
+++ b/Makefile.in	Wed Aug 23 08:48:00 2023 -0400
@@ -74,8 +74,8 @@
 # create and install devel tools (default no)
 ENABLE_DEVEL_TOOLS := @ENABLE_DEVEL_TOOLS@
 
-# use qt5 instead of qt4
-ENABLE_QT5 := @ENABLE_QT5@
+# which qt
+ENABLE_QT := @ENABLE_QT@
 
 # Set to "yes" to use msys2
 USE_MSYS2 := @USE_MSYS2@
@@ -447,12 +447,16 @@
     MXE_WINDRES := true
   endif
   MXE_PKG_CONFIG := '$(BUILD_TOOLS_PREFIX)/bin/pkg-config'
-  ifeq ($(ENABLE_QT5),yes)
-    MXE_QMAKE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake-qt5'
-  else
+  ifeq ($(ENABLE_QT),4)
     MXE_QMAKE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake'
   endif
-
+  ifeq ($(ENABLE_QT),5)
+    MXE_QMAKE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake-qt5'
+  endif
+  ifeq ($(ENABLE_QT),6)
+    MXE_QMAKE6 := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake-qt6'
+    MXE_QMAKE := '$(HOST_PREFIX)/qt6/bin/qmake'
+  endif
   MXE_MOC := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)moc'
   MXE_UIC := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)uic'
   MXE_LRELEASE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)lrelease'
--- a/binary-dist-rules.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/binary-dist-rules.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -105,14 +105,14 @@
 
 ## FIXME: We aren't using VPATH?
 installer-files/octave-launch.exe: $(TOP_DIR)/installer-files/octave-launch.c installer-files/octave-launch.res | installer-files/.dirstamp
-	$(MXE_CC) $< -o $@ installer-files/octave-launch.res -lshlwapi -municode -DUNICODE -D_UNICODE $(OCTAVE_LAUNCH_NO_SHORT_CPPFLAGS)
+	$(MXE_CC) $< -o $@ installer-files/octave-launch.res -lshlwapi -municode -DUNICODE -D_UNICODE -DQTVERSION=$(ENABLE_QT) $(OCTAVE_LAUNCH_NO_SHORT_CPPFLAGS)
 
 .PHONY: octave-launch-firsttime
 octave-launch-firsttime: installer-files/octave-launch-firsttime.exe
 
 ## FIXME: We aren't using VPATH?
 installer-files/octave-launch-firsttime.exe: $(TOP_DIR)/installer-files/octave-launch.c installer-files/octave-launch.res | installer-files/.dirstamp
-	$(MXE_CC) $< -o $@ installer-files/octave-launch.res -Wl,--subsystem,windows -lshlwapi -municode -DUNICODE -D_UNICODE -DFIRST_TIME $(OCTAVE_LAUNCH_NO_SHORT_CPPFLAGS)
+	$(MXE_CC) $< -o $@ installer-files/octave-launch.res -Wl,--subsystem,windows -lshlwapi -municode -DUNICODE -D_UNICODE -DFIRST_TIME -DQTVERSION=$(ENABLE_QT) $(OCTAVE_LAUNCH_NO_SHORT_CPPFLAGS)
 
 installer-files/octave-logo.ico: $(TOP_DIR)/installer-files/octave-logo.ico | installer-files/.dirstamp
 	cp -a $< $@
--- a/configure.ac	Thu Aug 17 16:44:07 2023 -0400
+++ b/configure.ac	Wed Aug 23 08:48:00 2023 -0400
@@ -360,15 +360,18 @@
    esac], [ENABLE_DEVEL_TOOLS=no])
 AC_SUBST(ENABLE_DEVEL_TOOLS)
 
-AC_ARG_ENABLE([qt5],
-  [AS_HELP_STRING([--disable-qt5],
-    [Build GNU Octave using Qt 4 instead of the default Qt 5 (default: enable, i.e. use Qt5)])],
+AC_ARG_ENABLE([qt],
+  [AS_HELP_STRING([--enable-qt=VER],
+    [Build GNU Octave using a spacified Qt version])],
   [case "$enableval" in
-     no) ENABLE_QT5=no ;;
-     yes) ENABLE_QT5=yes ;;
-     *) AC_MSG_ERROR([bad value "$enableval" for --enable-qt5]) ;;
-   esac], [ENABLE_QT5=yes])
-AC_SUBST(ENABLE_QT5)
+     no) ENABLE_QT=5 ;;
+     yes) ENABLE_QT=5 ;;
+     4) ENABLE_QT=4 ;;
+     5) ENABLE_QT=5 ;;
+     6) ENABLE_QT=6 ;;
+     *) AC_MSG_ERROR([bad value "$enableval" for --enable-qt]) ;;
+   esac], [ENABLE_QT=5])
+AC_SUBST(ENABLE_QT)
 
 # install documentation of build dependency packages (or not to save space)
 AC_ARG_ENABLE([dep-docs],
--- a/dist-files.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/dist-files.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -150,6 +150,7 @@
   glu.mk \
   gmp.mk \
   gnuplot-1-fixes.patch \
+  gnuplot-2-qt6.patch \
   gnuplot.mk \
   gnutls-1-fixes.patch \
   gnutls-test.c \
@@ -649,6 +650,15 @@
   qttranslations.mk \
   qttools-1.patch \
   qttools.mk \
+  qt6.mk \
+  qt6-qt5compat.mk \
+  qt6-qtbase-1-fixes.patch \
+  qt6-qtbase.mk \
+  qt6-qtimageformats-1-fixes.patch \
+  qt6-qtimageformats.mk \
+  qt6-qtsvg.mk \
+  qt6-qttranslations.mk \
+  qt6-qttools.mk \
   qwt-1-fixes.patch \
   qwt.mk \
   qwtplot3d-1-fixes.patch \
--- a/index.html	Thu Aug 17 16:44:07 2023 -0400
+++ b/index.html	Wed Aug 23 08:48:00 2023 -0400
@@ -2706,6 +2706,34 @@
         <td class="website"><a href="http://qt.nokia.com/">Qt5 imageformats</a></td>
     </tr>
     <tr>
+        <td class="package">qt6</td>
+        <td class="website"><a href="http://qt.nokia.com/">Qt6</a></td>
+    </tr>
+    <tr>
+        <td class="package">qt6-qt5compat</td>
+        <td class="website"><a href="http://qt.nokia.com/">Qt6 qt5compat</a></td>
+    </tr>
+    <tr>
+        <td class="package">qt6-qtbase</td>
+        <td class="website"><a href="http://qt.nokia.com/">Qt6 base</a></td>
+    </tr>
+    <tr>
+        <td class="package">qt6-qttranslations</td>
+        <td class="website"><a href="http://qt.nokia.com/">Qt6 qttranslations</a></td>
+    </tr>
+    <tr>
+        <td class="package">qt6-qttools</td>
+        <td class="website"><a href="http://qt.nokia.com/">Qt6 tools</a></td>
+    </tr>
+    <tr>
+        <td class="package">qt6-qtsvg</td>
+        <td class="website"><a href="http://qt.nokia.com/">Qt6 svg</a></td>
+    </tr>
+    <tr>
+        <td class="package">qt6-qtimageformats</td>
+        <td class="website"><a href="http://qt.nokia.com/">Qt6 imageformats</a></td>
+    </tr>
+    <tr>
         <td class="package">qwt</td>
         <td class="website"><a href="http://qwt.sourceforge.net/">Qwt</a></td>
     </tr>
--- a/installer-files/octave-firsttime.vbs	Thu Aug 17 16:44:07 2023 -0400
+++ b/installer-files/octave-firsttime.vbs	Wed Aug 23 08:48:00 2023 -0400
@@ -60,7 +60,10 @@
 End If
 
 ' set Qt plugin directory and path 
-If objFSO.FolderExists(OctavePath & "\qt5\bin") Then
+If objFSO.FolderExists(OctavePath & "\qt6\bin") Then
+  wshSystemEnv("PATH") = OctavePath & "\qt6\bin;" & wshSystemEnv("PATH")
+  wshSystemEnv("QT_PLUGIN_PATH") = OctavePath & "\qt6\plugins"
+ElseIf objFSO.FolderExists(OctavePath & "\qt5\bin") Then
   wshSystemEnv("PATH") = OctavePath & "\qt5\bin;" & wshSystemEnv("PATH")
   wshSystemEnv("QT_PLUGIN_PATH") = OctavePath & "\qt5\plugins"
 Else
--- a/installer-files/octave-launch.c	Thu Aug 17 16:44:07 2023 -0400
+++ b/installer-files/octave-launch.c	Wed Aug 23 08:48:00 2023 -0400
@@ -189,11 +189,11 @@
 #endif
 
   /* qt paths
-   * either %OCT_HOME%\qt5\plugins
+   * either %OCT_HOME%\qtX\plugins
    * or %OCT_HOME\plugins
    */
   nSize = lstrlenW (path);
-  StringCchCatW (path, PATH_SZ, L"\\qt5\\plugins");
+  StringCchPrintfW (&path[nSize], PATH_SZ-nSize, L"\\qt%d\\plugins", QTVERSION);
   SetEnvironmentVariableW (L"QT_PLUGIN_PATH", path);
 
   path[nSize] = L'\0';
--- a/installer-files/octave.bat	Thu Aug 17 16:44:07 2023 -0400
+++ b/installer-files/octave.bat	Wed Aug 23 08:48:00 2023 -0400
@@ -26,7 +26,7 @@
  
 Rem   Set up PATH.  Make sure the octave bin dir comes first.
 
-set PATH=%OCT_HOME%qt5\bin;%OCT_HOME%bin;%MSYSPATH%bin;%PATH%
+set PATH=%OCT_HOME%bin;%MSYSPATH%bin;%PATH%
 
 Rem   Set up any environment vars we may need.
 
@@ -35,8 +35,12 @@
 set GS=gs.exe
 
 Rem QT_PLUGIN_PATH must be set to avoid segfault (bug #53419).
-IF EXIST "%OCT_HOME%\qt5\bin\" (
+IF EXIST "%OCT_HOME%\qt6\bin\" (
+  set QT_PLUGIN_PATH=%OCT_HOME%\qt6\plugins
+  set PATH=%OCT_HOME%qt6\bin;%PATH%
+) ELSE IF EXIST "%OCT_HOME%\qt5\bin\" (
   set QT_PLUGIN_PATH=%OCT_HOME%\qt5\plugins
+  set PATH=%OCT_HOME%qt5\bin;%PATH%
 ) ELSE (
   set QT_PLUGIN_PATH=%OCT_HOME%\plugins
 )
--- a/installer-files/octave.vbs	Thu Aug 17 16:44:07 2023 -0400
+++ b/installer-files/octave.vbs	Wed Aug 23 08:48:00 2023 -0400
@@ -60,7 +60,10 @@
 End If
 
 ' set Qt plugin directory and path 
-If objFSO.FolderExists(OctavePath & "\qt5\bin") Then
+If objFSO.FolderExists(OctavePath & "\qt6\bin") Then
+  wshSystemEnv("PATH") = OctavePath & "\qt6\bin;" & wshSystemEnv("PATH")
+  wshSystemEnv("QT_PLUGIN_PATH") = OctavePath & "\qt6\plugins"
+ElseIf objFSO.FolderExists(OctavePath & "\qt5\bin") Then
   wshSystemEnv("PATH") = OctavePath & "\qt5\bin;" & wshSystemEnv("PATH")
   wshSystemEnv("QT_PLUGIN_PATH") = OctavePath & "\qt5\plugins"
 Else
--- a/src/blas_switch.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/src/blas_switch.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -9,11 +9,14 @@
 $(PKG)_FILE     := $($(PKG)_SUBDIR).tar.gz
 $(PKG)_URL      := https://github.com/lostbard/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz
 
-
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+      $(PKG)_DEPS     := qt
+endif
+ifeq ($(ENABLE_QT),5)
       $(PKG)_DEPS     := qt5
-else
-      $(PKG)_DEPS     := qt
+endif
+ifeq ($(ENABLE_QT),6)
+      $(PKG)_DEPS     := qt6
 endif
 
 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
@@ -26,12 +29,19 @@
     $(call GITHUB_PKG_UPDATE,lostbard,blas_switch,v)
 endef
 
+$(PKG)_QMAKE_FLAGS := 
 ifneq ($(MXE_NATIVE_BUILD),yes)
   ifeq ($(MXE_SYSTEM),mingw)
-    ifeq ($(ENABLE_QT5),yes)
+    ifeq ($(ENABLE_QT),4)
+       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++'
+    endif
+    ifeq ($(ENABLE_QT),5)
        $(PKG)_QMAKE_SPEC_OPTION := -spec '$(BUILD_TOOLS_PREFIX)/mkspecs/win32-g++'
-    else
-       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++'
+       $(PKG)_QMAKE_FLAGS += QMAKE_CXXFLAGS='-std=c++11'
+    endif
+    ifeq ($(ENABLE_QT),6)
+       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/qt6/mkspecs/win32-g++'
+       $(PKG)_QMAKE_FLAGS += QMAKE_CXXFLAGS='-std=c++17'
     endif
   endif
   ifeq ($(MXE_SYSTEM),msvc)
@@ -44,16 +54,16 @@
     cd '$(1)' && \
       '$(MXE_QMAKE)' -makefile \
         $($(PKG)_QMAKE_SPEC_OPTION) \
+	$($(PKG)_QMAKE_FLAGS) \
         QMAKE_UIC='$(MXE_UIC)' \
         QMAKE_MOC='$(MXE_MOC)' \
-        QMAKE_LFLAGS=$(MXE_LDFLAGS) \
-        QMAKE_CXXFLAGS='-std=c++11'
+        QMAKE_LFLAGS=$(MXE_LDFLAGS)
 
     $(MAKE) -C '$(1)' -j '$(JOBS)'
     $(MAKE) -C '$(1)' -j 1 install INSTALL_ROOT='$($(PKG)_INSTALL_ROOT)'
 
     if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
       $(INSTALL) -d '$(HOST_BINDIR)'; \
-      mv '$(HOST_PREFIX)/qt5/bin/blas_switch.exe' '$(HOST_BINDIR)/blas_switch.exe'; \
+      mv '$(HOST_PREFIX)/qt$(ENABLE_QT)/bin/blas_switch.exe' '$(HOST_BINDIR)/blas_switch.exe'; \
     fi
 endef
--- a/src/default-octave.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/src/default-octave.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -23,10 +23,14 @@
 endif
 $(PKG)_DEPS     := blas arpack curl epstool fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack libsndfile pcre2 portaudio pstoedit qhull qrupdate qscintilla rapidjson readline sundials-ida suitesparse texinfo zlib
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+    $(PKG)_DEPS += qt
+endif
+ifeq ($(ENABLE_QT),5)
     $(PKG)_DEPS += qt5
-else
-    $(PKG)_DEPS += qt
+endif
+ifeq ($(ENABLE_QT),6)
+    $(PKG)_DEPS += qt6
 endif
 
 ifeq ($(USE_SYSTEM_OPENGL),no)
@@ -74,17 +78,22 @@
   RCC_QTVER=$(MXE_RCC) \
   LRELEASE_QTVER=$(MXE_LRELEASE)
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+  $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_QTDIR := $(HOST_PREFIX)
+  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4"
+endif
+ifeq ($(ENABLE_QT),5)
   #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
   $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt5/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig"
   $(PKG)_QTDIR := $(HOST_PREFIX)/qt5
   $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt5"
-else
-  $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
-  $(PKG)_QTDIR := $(HOST_PREFIX)
-  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4"
 endif
-
+ifeq ($(ENABLE_QT),6)
+  $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt6/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_QTDIR := $(HOST_PREFIX)/qt6
+  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt6"
+endif
 
 ifneq ($(ENABLE_DOCS),yes)
   $(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS := --disable-docs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gnuplot-2-qt6.patch	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,126 @@
+diff -ur gnuplot-5.2.8.orig/config/mingw/Makefile gnuplot-5.2.8/config/mingw/Makefile
+--- gnuplot-5.2.8.orig/config/mingw/Makefile	2023-08-18 15:53:34.185447448 -0400
++++ gnuplot-5.2.8/config/mingw/Makefile	2023-08-18 16:03:31.492411188 -0400
+@@ -463,11 +463,13 @@
+ endif
+ 
+ ifdef QT
+-	QT_LIBS = -lQt5Core -lQt5Gui -lQt5Network -lQt5Svg -lQt5Widgets -lQt5PrintSupport -lqtmain
++	QT_VERSION ?= 5
++	QT_EXTRA_LIBS ?= -lqtmain
++	QT_LIBS = -lQt$(QT_VERSION)Core -lQt$(QT_VERSION)Gui -lQt$(QT_VERSION)Network -lQt$(QT_VERSION)Svg -lQt$(QT_VERSION)Widgets -lQt$(QT_VERSION)PrintSupport $(QT_EXTRA_LIBS)
+ 	QT_CXXFLAGS =  -I$(QT_DIR)/include -I$(QT_DIR)/include/Qt -I$(QT_DIR)/include/QtCore -I$(QT_DIR)/include/QtGui
+ 	QT_CXXFLAGS += -I$(QT_DIR)/include/QtWidgets -I$(QT_DIR)/include/QtNetwork
+-	QT_CXXFLAGS += -I$(QT_DIR)/include/QtSvg -DQTGNUPLOT_DATA_DIR=\"$(GNUPLOT_QT_DIR)\"
+-	QT_LDFLAGS = -L$(QT_DIR)/lib
++	QT_CXXFLAGS += -I$(QT_DIR)/include/QtSvg -DQTGNUPLOT_DATA_DIR=\"$(GNUPLOT_QT_DIR)\" $(QT_EXTRA_CXXFLAGS)
++	QT_LDFLAGS = -L$(QT_DIR)/lib $(QT_EXTRA_LDFLAGS)
+ #
+ 	CFLAGS += -DQTTERM -DQT_NO_OPENGL
+ 	TERMLIBS += $(QT_LIBS)
+diff -ur gnuplot-5.2.8.orig/src/qtterminal/qt_term.cpp gnuplot-5.2.8/src/qtterminal/qt_term.cpp
+--- gnuplot-5.2.8.orig/src/qtterminal/qt_term.cpp	2023-08-18 15:53:34.166446304 -0400
++++ gnuplot-5.2.8/src/qtterminal/qt_term.cpp	2023-08-18 16:05:08.522243654 -0400
+@@ -76,6 +76,7 @@
+ #include "qt_term.h"
+ #include "QtGnuplotEvent.h"
+ #include "QtGnuplotApplication.h"
++#include <QTextCodec>
+ #include "qt_conversion.cpp"
+ 
+ void qt_atexit();
+diff -ur gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotScene.cpp gnuplot-5.2.8/src/qtterminal/QtGnuplotScene.cpp
+--- gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotScene.cpp	2023-08-19 07:00:17.830930697 -0400
++++ gnuplot-5.2.8/src/qtterminal/QtGnuplotScene.cpp	2023-08-19 07:29:58.464228586 -0400
+@@ -649,7 +649,7 @@
+ 	{
+ 		QFontMetrics metrics(m_font);
+ 		int par1 = (metrics.ascent() + metrics.descent());
+-		int par2 = metrics.width("0123456789")/10.;
++		int par2 = metrics.horizontalAdvance("0123456789")/10.;
+ 		m_eventHandler->postTermEvent(GE_fontprops, 0, 0, par1, par2, m_widget);
+ 	}
+ 	else if (type == GEDone)
+@@ -803,7 +803,7 @@
+ 
+ 	int button = 0;
+ 	     if (event->button()== Qt::LeftButton)  button = 1;
+-	else if (event->button()== Qt::MidButton)   button = 2;
++	else if (event->button()== Qt::MiddleButton)   button = 2;
+ 	else if (event->button()== Qt::RightButton) button = 3;
+ 
+ 	m_eventHandler->postTermEvent(GE_buttonpress, 
+@@ -892,7 +892,7 @@
+ 
+ 	int button = 0;
+ 	     if (event->button()== Qt::LeftButton)  button = 1;
+-	else if (event->button()== Qt::MidButton)   button = 2;
++	else if (event->button()== Qt::MiddleButton)   button = 2;
+ 	else if (event->button()== Qt::RightButton) button = 3;
+ 
+ 	qint64 time = 301;	/* Only used the first time in, when timer not yet running */
+diff -ur gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotScene.h gnuplot-5.2.8/src/qtterminal/QtGnuplotScene.h
+--- gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotScene.h	2023-08-19 07:00:17.831930754 -0400
++++ gnuplot-5.2.8/src/qtterminal/QtGnuplotScene.h	2023-08-19 07:31:27.261363017 -0400
+@@ -51,7 +51,7 @@
+ 
+ #include <QGraphicsScene>
+ #include <QGraphicsItemGroup>
+-#include <QTime>
++#include <QElapsedTimer>
+ 
+ class QtGnuplotEnhanced;
+ class QtGnuplotWidget;
+@@ -106,7 +106,7 @@
+ 	QPoint  m_currentBoxOrigin;
+ 	QPoint  m_textOffset;
+ 	double  m_currentZ;
+-	QTime   m_watches[4];
++	QElapsedTimer   m_watches[4];
+ 	int     m_currentPlotNumber;
+ 	bool    m_inKeySample;
+ 	bool    m_preserve_visibility;
+diff -ur gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotWidget.cpp gnuplot-5.2.8/src/qtterminal/QtGnuplotWidget.cpp
+--- gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotWidget.cpp	2023-08-19 07:00:17.831930754 -0400
++++ gnuplot-5.2.8/src/qtterminal/QtGnuplotWidget.cpp	2023-08-19 07:16:25.518277987 -0400
+@@ -128,7 +128,7 @@
+ 
+ void QtGnuplotWidget::setViewMatrix()
+ {
+-	m_view->resetMatrix();
++	m_view->resetTransform();
+ }
+ 
+ void QtGnuplotWidget::processEvent(QtGnuplotEventType type, QDataStream& in)
+@@ -146,7 +146,7 @@
+ 		QSize s;
+ 		in >> s;
+ 		m_lastSizeRequest = s;
+-		m_view->resetMatrix();
++		m_view->resetTransform();
+ 		QWidget* viewport = m_view->viewport();
+ /*		qDebug() << "QtGnuplotWidget::processEvent Size request" << s << size() << " / viewport" << m_view->maximumViewportSize();
+ 		qDebug() << " widget size   " << size();
+@@ -291,8 +291,8 @@
+ 	QPrinter printer;
+ 	printer.setOutputFormat(QPrinter::PdfFormat);
+ 	printer.setOutputFileName(fileName);
+-	printer.setPaperSize(QSizeF(m_scene->width(), m_scene->height()), QPrinter::Point);
+-	printer.setPageMargins(0, 0, 0, 0, QPrinter::Point);
++	printer.setPageSize(QPageSize(QSizeF(m_scene->width(), m_scene->height()), QPageSize::Point));
++	printer.setPageMargins(QMarginsF(0,0,0,0), QPageLayout::Unit(QPrinter::Point));
+ 	QPainter painter(&printer);
+ 	painter.setRenderHints(renderHints());
+ 	m_scene->render(&painter);
+diff -ur gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotItems.cpp gnuplot-5.2.8/src/qtterminal/QtGnuplotItems.cpp
+--- gnuplot-5.2.8.orig/src/qtterminal/QtGnuplotItems.cpp	2023-08-19 07:54:01.475635227 -0400
++++ gnuplot-5.2.8/src/qtterminal/QtGnuplotItems.cpp	2023-08-19 07:56:36.531724069 -0400
+@@ -111,7 +111,7 @@
+ qreal QtGnuplotEnhancedFragment::width() const
+ {
+ 	QFontMetricsF metrics(m_font);
+-	return metrics.width(m_text);
++	return metrics.horizontalAdvance(m_text);
+ }
+ 
+ void QtGnuplotEnhancedFragment::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
--- a/src/gnuplot.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/src/gnuplot.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -18,9 +18,15 @@
     $(PKG)_EXTRAFLAGS += WXT=1 WX_CONFIG=$(MXE_TOOL_PREFIX)wx-config
 endif
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),5)
   $(PKG)_DEPS     += qt5
   $(PKG)_EXTRAFLAGS += QT=1 QT_DIR="$(HOST_PREFIX)/qt5" QT_BIN_DIR="$(BUILD_TOOLS_PREFIX)/bin"
+  $(PKG)_STDVER := -std=gnu++11
+endif
+ifeq ($(ENABLE_QT),6)
+  $(PKG)_DEPS     += qt6
+  $(PKG)_EXTRAFLAGS += QT=1 QT_VERSION=6 QT_DIR="$(HOST_PREFIX)/qt6" QT_EXTRA_CXXFLAGS="-I$(HOST_INCDIR)/QtCore5Compat" QT_BIN_DIR="$(BUILD_TOOLS_PREFIX)/bin" QT_EXTRA_LIBS=-lQt6Core5Compat UIC=$(MXE_UIC) MOC=$(MXE_MOC) QMAKE=$(MXE_QMAKE) RCC=$(MXE_RCC)
+  $(PKG)_STDVER := -std=gnu++17
 endif
 
 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
@@ -35,16 +41,16 @@
 
 ifeq ($(MXE_SYSTEM),mingw)
 define $(PKG)_BUILD
-    make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) -std=gnu++11' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=gnuplot.exe gnuplot.exe
-    make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) -std=gnu++11' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=wgnuplot.exe wgnuplot.exe
+    make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) $($(PKG)_STDVER)' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=gnuplot.exe gnuplot.exe
+    make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) $($(PKG)_STDVER)' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=wgnuplot.exe wgnuplot.exe
 
     $(INSTALL) -d '$(3)$(HOST_BINDIR)'
     $(INSTALL) -m755 '$(1)/config/mingw/gnuplot.exe' '$(3)$(HOST_BINDIR)'
     $(INSTALL) -m755 '$(1)/config/mingw/wgnuplot.exe' '$(3)$(HOST_BINDIR)'
     $(INSTALL) -m644 '$(1)/src/win/wgnuplot.mnu' '$(3)$(HOST_BINDIR)'
 
-    if [ "$(ENABLE_QT5)" == "yes" ]; then \
-      make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) -std=gnu++11' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=gnuplot_qt.exe gnuplot_qt.exe; \
+    if [ "$(ENABLE_QT)" != "4" ]; then \
+      make -C '$(1)/config/mingw' $($(PKG)_EXTRAFLAGS) CC='$(MXE_CC)' CXX='$(MXE_CXX) $($(PKG)_STDVER)' RC='$(MXE_WINDRES)' -j '$(JOBS)' TARGET=gnuplot_qt.exe gnuplot_qt.exe; \
       $(INSTALL) -m755 '$(1)/config/mingw/gnuplot_qt.exe' '$(3)$(HOST_BINDIR)'; \
     fi
 
--- a/src/opengl_switch.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/src/opengl_switch.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -10,10 +10,14 @@
 $(PKG)_URL      := https://github.com/lostbard/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz
 
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+      $(PKG)_DEPS     := qt
+endif
+ifeq ($(ENABLE_QT),5)
       $(PKG)_DEPS     := qt5
-else
-      $(PKG)_DEPS     := qt
+endif
+ifeq ($(ENABLE_QT),6)
+      $(PKG)_DEPS     := qt6
 endif
 
 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
@@ -26,12 +30,19 @@
     $(call GITHUB_PKG_UPDATE,lostbard,opengl_switch,v)
 endef
 
+$(PKG)_QMAKE_FLAGS := 
 ifneq ($(MXE_NATIVE_BUILD),yes)
   ifeq ($(MXE_SYSTEM),mingw)
-    ifeq ($(ENABLE_QT5),yes)
+    ifeq ($(ENABLE_QT),4)
+       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++'
+    endif
+    ifeq ($(ENABLE_QT),5)
        $(PKG)_QMAKE_SPEC_OPTION := -spec '$(BUILD_TOOLS_PREFIX)/mkspecs/win32-g++'
-    else
-       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++'
+       $(PKG)_QMAKE_FLAGS += QMAKE_CXXFLAGS='-std=c++11'
+    endif
+    ifeq ($(ENABLE_QT),6)
+       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/qt6/mkspecs/win32-g++'
+       $(PKG)_QMAKE_FLAGS += QMAKE_CXXFLAGS='-std=c++17'
     endif
   endif
   ifeq ($(MXE_SYSTEM),msvc)
@@ -44,16 +55,16 @@
     cd '$(1)' && \
       '$(MXE_QMAKE)' -makefile \
         $($(PKG)_QMAKE_SPEC_OPTION) \
+	$($(PKG)_QMAKE_FLAGS) \
         QMAKE_UIC='$(MXE_UIC)' \
         QMAKE_MOC='$(MXE_MOC)' \
-        QMAKE_LFLAGS=$(MXE_LDFLAGS) \
-        QMAKE_CXXFLAGS='-std=c++11'
+        QMAKE_LFLAGS=$(MXE_LDFLAGS)
 
     $(MAKE) -C '$(1)' -j '$(JOBS)'
     $(MAKE) -C '$(1)' -j 1 install INSTALL_ROOT='$($(PKG)_INSTALL_ROOT)'
 
     if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
       $(INSTALL) -d '$(HOST_BINDIR)'; \
-      mv '$(HOST_PREFIX)/qt5/bin/opengl_switch.exe' '$(HOST_BINDIR)/opengl_switch.exe'; \
+      mv '$(HOST_PREFIX)/qt$(ENABLE_QT)/bin/opengl_switch.exe' '$(HOST_BINDIR)/opengl_switch.exe'; \
     fi
 endef
--- a/src/qscintilla.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/src/qscintilla.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -10,10 +10,14 @@
 $(PKG)_URL      := https://www.riverbankcomputing.com/static/Downloads/QScintilla/$($(PKG)_VERSION)/$($(PKG)_FILE)
 
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+      $(PKG)_DEPS     := qt
+endif
+ifeq ($(ENABLE_QT),5)
       $(PKG)_DEPS     := qt5
-else
-      $(PKG)_DEPS     := qt
+endif
+ifeq ($(ENABLE_QT),6)
+      $(PKG)_DEPS     := qt6
 endif
 
 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
@@ -30,10 +34,14 @@
 
 ifneq ($(MXE_NATIVE_BUILD),yes)
   ifeq ($(MXE_SYSTEM),mingw)
-    ifeq ($(ENABLE_QT5),yes)
+    ifeq ($(ENABLE_QT),4)
+       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++'
+    endif
+    ifeq ($(ENABLE_QT),5)
        $(PKG)_QMAKE_SPEC_OPTION := -spec '$(BUILD_TOOLS_PREFIX)/mkspecs/win32-g++'
-    else
-       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/mkspecs/win32-g++'
+    endif
+    ifeq ($(ENABLE_QT),6)
+       $(PKG)_QMAKE_SPEC_OPTION := -spec '$(HOST_PREFIX)/qt6/mkspecs/win32-g++'
     endif
   endif
   ifeq ($(MXE_SYSTEM),msvc)
@@ -43,13 +51,15 @@
 endif
 
 define $(PKG)_BUILD
+    if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \
+      '$(MXE_QMAKE)' -set CROSS_COMPILE $(MXE_TOOL_PREFIX); \
+    fi
     cd '$(1)/src' && \
-      '$(MXE_QMAKE)' -makefile \
+      '$(MXE_QMAKE)' -makefile  \
         $($(PKG)_QMAKE_SPEC_OPTION) \
         QMAKE_UIC='$(MXE_UIC)' \
         QMAKE_MOC='$(MXE_MOC)' \
-        QMAKE_LFLAGS=$(MXE_LDFLAGS) \
-        QMAKE_CXXFLAGS='-std=c++11'
+        QMAKE_LFLAGS=$(MXE_LDFLAGS)
 
     if [ $(MXE_SYSTEM) = msvc ]; then \
         mkdir -p '$(3)' && \
@@ -64,8 +74,10 @@
 
     if [ $(MXE_SYSTEM) = mingw ]; then \
       $(INSTALL) -d '$($(PKG)_INSTALL_ROOT)$(HOST_BINDIR)'; \
-      if [ $(ENABLE_QT5) = yes ]; then \
+      if [ "$(ENABLE_QT)" = "5" ]; then \
         mv '$($(PKG)_INSTALL_ROOT)$(HOST_PREFIX)/qt5/lib/qscintilla2_qt5.dll' '$($(PKG)_INSTALL_ROOT)$(HOST_BINDIR)'; \
+      elif [ "$(ENABLE_QT)" = "6" ]; then \
+        mv '$($(PKG)_INSTALL_ROOT)$(HOST_PREFIX)/qt6/lib/qscintilla2_qt6.dll' '$($(PKG)_INSTALL_ROOT)$(HOST_BINDIR)'; \
       else \
         mv '$($(PKG)_INSTALL_ROOT)$(HOST_LIBDIR)/qscintilla2_qt4.dll' '$($(PKG)_INSTALL_ROOT)$(HOST_BINDIR)/'; \
       fi; \
@@ -79,5 +91,5 @@
         $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$(CMAKE_HOST_PREFIX)/lib/$(LIBRARY_PREFIX)qscintilla2$(LIBRARY_SUFFIX).dll' '$($(PKG)_INSTALL_ROOT)$(CMAKE_HOST_PREFIX)/bin/'; \
         rm -f '$($(PKG)_INSTALL_ROOT)$(CMAKE_HOST_PREFIX)/lib/$(LIBRARY_PREFIX)qscintilla2$(LIBRARY_SUFFIX).dll'; \
     fi
+endef
 
-endef
--- a/src/qt5.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/src/qt5.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -5,7 +5,7 @@
 $(PKG)_VERSION   = $(qtbase_VERSION)
 $(PKG)_DEPS     := $(patsubst $(TOP_DIR)/src/%.mk,%,\
                         $(shell grep -l 'qtbase_VERSION' \
-                                $(TOP_DIR)/src/qt*.mk \
+                                $(TOP_DIR)/src/qt[^6]*.mk \
                                 --exclude '$(TOP_DIR)/src/qt5.mk'))
 $(PKG)_FILE      =
 $(PKG)_URL       =
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6-qt5compat.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,25 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := qt6-qt5compat
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION   = $(qt6-qtbase_VERSION)
+$(PKG)_CHECKSUM := 7b7f0614b4ae3736a8c1b19f7be3353493170c36
+$(PKG)_SUBDIR    = $(subst qtbase,qt5compat,$(qt6-qtbase_SUBDIR))
+$(PKG)_FILE      = $(subst qtbase,qt5compat,$(qt6-qtbase_FILE))
+$(PKG)_URL       = $(subst qtbase,qt5compat,$(qt6-qtbase_URL))
+$(PKG)_DEPS     := qt6-qtbase
+
+define $(PKG)_UPDATE
+    echo $(qt6-qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD
+    cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6'
+    cmake --build $(1) -j '$(JOBS)'
+    cmake --install $(1)
+    if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
+      $(INSTALL) -d '$(HOST_BINDIR)'; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Core5Compat.dll '$(HOST_BINDIR)'/Qt6Core5Compat.dll; \
+    fi
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6-qtbase-1-fixes.patch	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,49 @@
+This file is part of MXE. See LICENSE.md for licensing information.
+
+Contains ad hoc patches for cross building.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Mon, 14 Dec 2020 15:09:00 +1100
+Subject: [PATCH 1/2] optionally build docs
+
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1111111..2222222 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -173,7 +173,9 @@ if(NOT QT_BUILD_STANDALONE_TESTS)
+     qt_internal_set_up_config_optimizations_like_in_qmake()
+ 
+     ## Setup documentation
+-    add_subdirectory(doc)
++    if(QT_BUILD_DOCS)
++        add_subdirectory(doc)
++    endif()
+ 
+     ## Visit all the directories:
+     add_subdirectory(src)
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 3 Apr 2023 13:12:47 +0200
+Subject: [PATCH 2/2] add missing oleaut32 dependency for networklistmanager
+
+Required for symbols VariantInit and VariantClear.
+
+diff --git a/src/plugins/networkinformation/networklistmanager/CMakeLists.txt b/src/plugins/networkinformation/networklistmanager/CMakeLists.txt
+index 1111111..2222222 100644
+--- a/src/plugins/networkinformation/networklistmanager/CMakeLists.txt
++++ b/src/plugins/networkinformation/networklistmanager/CMakeLists.txt
+@@ -14,6 +14,11 @@ qt_internal_add_plugin(QNLMNIPlugin
+         Qt::NetworkPrivate
+ )
+ 
++qt_internal_extend_target(QNLMNIPlugin CONDITION WIN32
++    LIBRARIES
++        oleaut32
++)
++
+ qt_internal_extend_target(QNLMNIPlugin CONDITION WIN32 AND MSVC AND NOT CLANG
+     LIBRARIES
+         runtimeobject
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6-qtbase.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,135 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := qt6-qtbase
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION  := 6.5.2
+$(PKG)_CHECKSUM := b4c8bf859199a994c59dc3f1e77abeef61649e9c
+$(PKG)_SUBDIR   := qtbase-everywhere-src-$($(PKG)_VERSION)
+$(PKG)_FILE     := qtbase-everywhere-src-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL      := https://download.qt.io/official_releases/qt/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+ifeq ($(USE_SYSTEM_FONTCONFIG),no)
+  $(PKG)_FONTCONFIG := fontconfig
+endif
+$(PKG)_DEPS     := dbus double-conversion freetds freetype $($(PKG)_FONTCONFIG) icu4c jpeg libjbig libpng libproxy pcre2 postgresql sqlite zlib zstd
+
+$(PKG)_CMAKE_OPTS :=
+$(PKG)_CONFIGURE_ENV :=
+$(PKG)_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
+
+ifeq ($(USE_SYSTEM_OPENGL),no)
+  $(PKG)_DEPS += mesa
+  $(PKG)_CMAKE_OPTS += -DFEATURE_egl=OFF
+endif
+ifeq ($(MXE_WINDOWS_BUILD),yes)
+  $(PKG)_DEPS += uuid
+  $(PKG)_CONFIGURE_ENV := PSQL_LIBS="-lpq -lsecur32 -lws2_32"
+  $(PKG)_CMAKE_OPTS += \
+    -DFEATURE_sql_mysql=OFF \
+    -DFEATURE_sql_odbc=ON \
+    -DFEATURE_sql_psql=ON \
+    -DFEATURE_sql_sqlite=ON \
+    -DFEATURE_system_sqlite=ON
+ 
+  ifeq ($(ENABLE_WINDOWS_64),yes)
+    $(PKG)_DEPS += icu4c
+    $(PKG)_CMAKE_OPTS += -DFEATURE_icu=ON
+  else
+    $(PKG)_CMAKE_OPTS += -DFEATURE_icu=OFF
+  endif
+else
+  $(PKG)_DEPS += icu4c
+  $(PKG)_CMAKE_OPTS += -DFEATURE_icu=ON
+  $(PKG)_CMAKE_OPTS += \
+    -DFEATURE_system_sqlite=ON
+ 
+  ifeq ($(USE_SYSTEM_X11_LIBS),no)
+    $(PKG)_DEPS += xdamage xdmcp xext xfixes xi xrender xt xxf86vm x11 xcb xcb-util xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xkbcommon
+  endif
+endif
+
+define $(PKG)_UPDATE
+    $(WGET) -q -O- http://download.qt-project.org/official_releases/qt/$(call SHORT_PKG_VERSION,$(PKG))/ | \
+    $(SED) -n 's,.*href="\(6\.[0-9]\+\.[^/]*\)/".*,\1,p' | \
+    grep -iv -- '-rc' | \
+    sort |
+    tail -1
+endef
+
+ifeq ($(MXE_NATIVE_BUILD),no)
+  $(PKG)_CMAKE_OPTS += -DQT_QMAKE_DEVICE_OPTIONS=CROSS_COMPILE=$(MXE_TOOL_PREFIX)
+  $(PKG)_CMAKE_OPTS += -DQT_HOST_PATH='$(BUILD_TOOLS_PREFIX)/qt6'
+  ifeq ($(MXE_WINDOWS_BUILD),yes)
+    $(PKG)_CMAKE_OPTS += -DQT_QMAKE_TARGET_MKSPEC=win32-g++
+  endif
+endif
+
+$(PKG)_CONFIGURE_ENV += \
+    PKG_CONFIG="$(MXE_PKG_CONFIG)" \
+    PKG_CONFIG_SYSROOT_DIR="/" \
+    PKG_CONFIG_LIBDIR=$($(PKG)_PKG_CONFIG_PATH)
+
+define $(PKG)_BUILD
+    if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \
+      mkdir '$(1).native'; \
+      cmake -S '$(1)' -B '$(1).native' \
+        -G Ninja \
+        -DCMAKE_INSTALL_PREFIX='$(BUILD_TOOLS_PREFIX)/qt6' \
+        -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)' \
+        -DQT_BUILD_{TESTS,EXAMPLES,DOCS}=OFF \
+        -DFEATURE_pkg_config=OFF \
+        -DBUILD_WITH_PCH=OFF \
+        -DFEATURE_{eventfd,glib,gui,icu,openssl,zstd,thread,pcre2,sql,xml,testlib,backtrace}=OFF; \
+      cmake --build '$(1).native' -j '$(JOBS)'; \
+      cmake --install '$(1).native'; \
+    fi
+
+    mkdir '$(1).build'
+    $($(PKG)_CONFIGURE_ENV) \
+    'cmake' -S '$(1)' -B '$(1).build' \
+        -G Ninja \
+        $(CMAKE_CCACHE_FLAGS) \
+        -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' \
+        -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+        -DQT_BUILD_EXAMPLES=OFF \
+        -DQT_BUILD_TESTS=OFF \
+        -DBUILD_WITH_PCH=OFF \
+        -DFEATURE_accessibility=ON \
+        -DFEATURE_dbus=OFF \
+        -DFEATURE_fontconfig=OFF \
+        -DFEATURE_system_freetype=ON \
+        -DFEATURE_glib=OFF \
+        -DFEATURE_system_harfbuzz=OFF \
+        -DFEATURE_opengl_dynamic=ON \
+        -DFEATURE_openssl=OFF \
+        -DFEATURE_system_pcre2=ON \
+        -DFEATURE_pkg_config=ON \
+        -DFEATURE_system_zlib=ON \
+        -DFEATURE_use_gold_linker_alias=OFF \
+	$($(PKG)_CMAKE_OPTS)
+
+    'cmake' --build '$(1).build' -j '$(JOBS)'
+    'cmake' --install '$(1).build'
+
+    if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
+      $(INSTALL) -d '$(HOST_BINDIR)'; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Concurrent.dll '$(HOST_BINDIR)'/Qt6Concurrent.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Core.dll '$(HOST_BINDIR)'/Qt6Core.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Gui.dll '$(HOST_BINDIR)'/Qt6Gui.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Network.dll '$(HOST_BINDIR)'/Qt6Network.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6OpenGL.dll '$(HOST_BINDIR)'/Qt6OpenGL.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6OpenGLWidgets.dll '$(HOST_BINDIR)'/Qt6OpenGLWidgets.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6PrintSupport.dll '$(HOST_BINDIR)'/Qt6PrintSupport.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Sql.dll '$(HOST_BINDIR)'/Qt6Sql.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt5Test.dll '$(HOST_BINDIR)'/Qt6Test.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Widgets.dll '$(HOST_BINDIR)'/Qt6Widgets.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Xml.dll '$(HOST_BINDIR)'/Qt6Xml.dll; \
+    fi
+
+    if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \
+        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/qmake6' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qmake-qt6; \
+        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/moc' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'moc; \
+        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/uic' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'uic; \
+        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/rcc' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'rcc; \
+    fi
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6-qtimageformats-1-fixes.patch	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,43 @@
+This file is part of MXE. See LICENSE.md for licensing information.
+
+Contains ad hoc patches for cross building.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sun, 13 Feb 2022 17:30:59 +0100
+Subject: [PATCH 1/2] try to fix linking to libtiff's transitive dependencies
+
+
+diff --git a/src/imageformats/configure.cmake b/src/imageformats/configure.cmake
+index 1111111..2222222 100644
+--- a/src/imageformats/configure.cmake
++++ b/src/imageformats/configure.cmake
+@@ -19,6 +19,8 @@ set_property(CACHE INPUT_webp PROPERTY STRINGS undefined no qt system)
+ 
+ qt_find_package(WrapJasper PROVIDED_TARGETS WrapJasper::WrapJasper MODULE_NAME imageformats QMAKE_LIB jasper)
+ qt_find_package(TIFF PROVIDED_TARGETS TIFF::TIFF MODULE_NAME imageformats QMAKE_LIB tiff)
++### <sigh>
++target_link_libraries(TIFF::TIFF INTERFACE -ltiff -lwebp -lsharpyuv -lzstd -llzma -ljpeg -lz)
+ # Threads::Threads might be brought in via a top-level CMakeLists.txt find_package dependency
+ # in which case if the system WebpConfig.cmake depends Threads, it shouldn't try to promote it to
+ # global to avoid a 'global promotion of a target in a different subdirectory' error.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 6 Apr 2023 17:27:28 +0200
+Subject: [PATCH 2/2] explicit -lsharpyuv for -lwebp
+
+
+diff --git a/cmake/FindWrapWebP.cmake b/cmake/FindWrapWebP.cmake
+index 1111111..2222222 100644
+--- a/cmake/FindWrapWebP.cmake
++++ b/cmake/FindWrapWebP.cmake
+@@ -51,7 +51,7 @@ mark_as_advanced(WebP_INCLUDE_DIR WebP_LIBRARY WebP_demux_INCLUDE_DIR WebP_demux
+ if(WrapWebP_FOUND)
+     set(WebP_FOUND ON)
+     add_library(WrapWebP::WrapWebP INTERFACE IMPORTED)
+-    target_link_libraries(WrapWebP::WrapWebP INTERFACE ${WebP_LIBRARY} ${WebP_demux_LIBRARY} ${WebP_mux_LIBRARY})
++    target_link_libraries(WrapWebP::WrapWebP INTERFACE ${WebP_LIBRARY} ${WebP_demux_LIBRARY} ${WebP_mux_LIBRARY} -lsharpyuv)
+     target_include_directories(WrapWebP::WrapWebP
+                                INTERFACE ${WebP_INCLUDE_DIR} ${WebP_demux_INCLUDE_DIR} ${WebP_mux_INCLUDE_DIR})
+ endif()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6-qtimageformats.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,21 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := qt6-qtimageformats
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION   = $(qt6-qtbase_VERSION)
+$(PKG)_CHECKSUM := dc3a5c32f2a6f3185bddae39e7799c08bf4221df
+$(PKG)_SUBDIR    = $(subst qtbase,qtimageformats,$(qt6-qtbase_SUBDIR))
+$(PKG)_FILE      = $(subst qtbase,qtimageformats,$(qt6-qtbase_FILE))
+$(PKG)_URL       = $(subst qtbase,qtimageformats,$(qt6-qtbase_URL))
+$(PKG)_DEPS     := jasper libmng qt6-qtbase tiff
+
+define $(PKG)_UPDATE
+    echo $(qt6-qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD
+    cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6'
+    cmake --build $(1) -j '$(JOBS)'
+    cmake --install $(1)
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6-qtsvg.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,26 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := qt6-qtsvg
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION   = $(qt6-qtbase_VERSION)
+$(PKG)_CHECKSUM := 41ad618e9ba176f5d77b9043777c0bd23437422e
+$(PKG)_SUBDIR    = $(subst qtbase,qtsvg,$(qt6-qtbase_SUBDIR))
+$(PKG)_FILE      = $(subst qtbase,qtsvg,$(qt6-qtbase_FILE))
+$(PKG)_URL       = $(subst qtbase,qtsvg,$(qt6-qtbase_URL))
+$(PKG)_DEPS     := qt6-qtbase
+
+define $(PKG)_UPDATE
+    echo $(qt6-qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD
+    cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6'
+    cmake --build $(1) -j '$(JOBS)'
+    cmake --install $(1)
+    if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
+      $(INSTALL) -d '$(HOST_BINDIR)'; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Svg.dll '$(HOST_BINDIR)'/Qt6Svg.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6SvgWidgets.dll '$(HOST_BINDIR)'/Qt6SvgWidgets.dll; \
+    fi
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6-qttools.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,51 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := qt6-qttools
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION   = $(qt6-qtbase_VERSION)
+$(PKG)_CHECKSUM := 2e25b0d40c1bea00b9a1f5dcecf83472d9353190
+$(PKG)_SUBDIR    = $(subst qtbase,qttools,$(qt6-qtbase_SUBDIR))
+$(PKG)_FILE      = $(subst qtbase,qttools,$(qt6-qtbase_FILE))
+$(PKG)_URL       = $(subst qtbase,qttools,$(qt6-qtbase_URL))
+$(PKG)_DEPS     := qt6-qtbase
+
+define $(PKG)_UPDATE
+    echo $(qt6-qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD
+    # native tools
+    mkdir '$(1).native' && cd '$(1).native' && \
+       '$(BUILD_TOOLS_PREFIX)/qt6/bin/qt-cmake' -S '$(1)' -DCMAKE_INSTALL_PREFIX='$(BUILD_TOOLS_PREFIX)/qt6' \
+       -DFEATURE_linguist=ON \
+       -DFEATURE_designer=OFF
+
+    cmake --build $(1).native -j '$(JOBS)'
+    cmake --install '$(1).native'
+
+    if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \
+        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/lconvert' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'lconvert; \
+        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/lrelease' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'lrelease; \
+	echo -e "#!/bin/sh\necho $$0 $$*" > '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qhelpgenerator && chmod a+rx '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qhelpgenerator; \
+	echo -e "#!/bin/sh\necho $$0 $$*" > '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qcollectiongenerator && chmod a+rx '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qcollectiongenerator; \
+    fi
+
+    mkdir '$(1).build' && cd '$(1).build' && \
+       '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON -S '$(1)' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' 
+
+    # not built for some reason. make dummy so install won't fail
+    touch '$(1).build/bin/qhelpgenerator.exe'
+
+    cmake --build $(1).build -j '$(JOBS)'
+    cmake --install '$(1).build'
+
+    if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
+      $(INSTALL) -d '$(HOST_BINDIR)'; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6UiTools.dll '$(HOST_BINDIR)'/Qt6UiTools.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Help.dll '$(HOST_BINDIR)'/Qt6Help.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6Designer.dll '$(HOST_BINDIR)'/Qt6Designer.dll; \
+      cp '$(HOST_PREFIX)'/qt6/bin/Qt6DesignerComponents.dll '$(HOST_BINDIR)'/Qt6DesignerComponents.dll; \
+    fi
+endef
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6-qttranslations.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,21 @@
+# This file is part of MXE. See LICENSE.md for licensing information.
+
+PKG             := qt6-qttranslations
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION   = $(qt6-qtbase_VERSION)
+$(PKG)_CHECKSUM := fb301261a5277253d2e5e2bc9d7dd6059bdd1bfc
+$(PKG)_SUBDIR    = $(subst qtbase,qttranslations,$(qt6-qtbase_SUBDIR))
+$(PKG)_FILE      = $(subst qtbase,qttranslations,$(qt6-qtbase_FILE))
+$(PKG)_URL       = $(subst qtbase,qttranslations,$(qt6-qtbase_URL))
+$(PKG)_DEPS     := qt6-qtbase qt6-qttools
+
+define $(PKG)_UPDATE
+    echo $(qt6-qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD
+    cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' -DQT_HOST_PATH='$(BUILD_TOOLS_PREFIX)/qt6'
+    cmake --build $(1) -j '$(JOBS)'
+    cmake --install $(1)
+endef
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt6.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -0,0 +1,14 @@
+PKG             := qt6
+$(PKG)_VERSION   = $(qtbase_VERSION)
+$(PKG)_DEPS     := $(patsubst $(TOP_DIR)/src/%.mk,%,\
+                        $(shell grep -l 'qt6-qtbase_VERSION' \
+                                $(TOP_DIR)/src/qt6-*.mk))
+$(PKG)_FILE      =
+$(PKG)_URL       =
+$(PKG)_CHECKSUM := #No checksum
+
+define $(PKG)_UPDATE
+    echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2;
+    echo $($(PKG)_VERSION)
+endef
+
--- a/src/release-octave.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/src/release-octave.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -12,7 +12,7 @@
 ##   --enable-octave=release
 ##   --enable-binary-packages
 ##   --enable-devel-tools
-##   --enable-qt5
+##   --enable-qt=5
 ##   --disable-system-opengl
 ##
 ## and one of the following
@@ -44,10 +44,14 @@
 endif
 $(PKG)_DEPS     := blas arpack curl epstool fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack libsndfile pcre portaudio pstoedit qhull qrupdate qscintilla rapidjson readline sundials-ida suitesparse texinfo zlib
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+    $(PKG)_DEPS += qt
+endif
+ifeq ($(ENABLE_QT),5)
     $(PKG)_DEPS += qt5
-else
-    $(PKG)_DEPS += qt
+endif
+ifeq ($(ENABLE_QT),6)
+    $(PKG)_DEPS += qt6
 endif
 
 ifeq ($(USE_SYSTEM_OPENGL),no)
@@ -95,17 +99,23 @@
   RCC_QTVER=$(MXE_RCC) \
   LRELEASE_QTVER=$(MXE_LRELEASE)
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+  $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_QTDIR := $(HOST_PREFIX)
+  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4"
+endif
+ifeq ($(ENABLE_QT),5)
   #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
   $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt5/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig"
   $(PKG)_QTDIR := $(HOST_PREFIX)/qt5
   $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt5"
-else
-  $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
-  $(PKG)_QTDIR := $(HOST_PREFIX)
-  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4"
 endif
-
+ifeq ($(ENABLE_QT),6)
+  #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt6/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_QTDIR := $(HOST_PREFIX)/qt6
+  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt6"
+endif
 
 ifneq ($(ENABLE_DOCS),yes)
   $(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS := --disable-docs
--- a/src/stable-octave.mk	Thu Aug 17 16:44:07 2023 -0400
+++ b/src/stable-octave.mk	Wed Aug 23 08:48:00 2023 -0400
@@ -23,10 +23,14 @@
 endif
 $(PKG)_DEPS     := blas arpack curl epstool fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack libsndfile pcre portaudio pstoedit qhull qrupdate qscintilla rapidjson readline sundials-ida suitesparse texinfo zlib
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+    $(PKG)_DEPS += qt
+endif
+ifeq ($(ENABLE_QT),5)
     $(PKG)_DEPS += qt5
-else
-    $(PKG)_DEPS += qt
+endif
+ifeq ($(ENABLE_QT),6)
+    $(PKG)_DEPS += qt6
 endif
 
 ifeq ($(USE_SYSTEM_OPENGL),no)
@@ -74,17 +78,23 @@
   RCC_QTVER=$(MXE_RCC) \
   LRELEASE_QTVER=$(MXE_LRELEASE)
 
-ifeq ($(ENABLE_QT5),yes)
+ifeq ($(ENABLE_QT),4)
+  $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_QTDIR := $(HOST_PREFIX)
+  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4"
+endif
+ifeq ($(ENABLE_QT),5)
   #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
   $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt5/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig"
   $(PKG)_QTDIR := $(HOST_PREFIX)/qt5
   $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt5"
-else
-  $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
-  $(PKG)_QTDIR := $(HOST_PREFIX)
-  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4"
 endif
-
+ifeq ($(ENABLE_QT),6)
+  #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt6/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_QTDIR := $(HOST_PREFIX)/qt6
+  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt6"
+endif
 
 ifneq ($(ENABLE_DOCS),yes)
   $(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS := --disable-docs