# HG changeset patch # User John W. Eaton # Date 1344199435 14400 # Node ID 3735a0e783cb30c2cffc2ba884e18f427de965f5 # Parent 3d7a7ae53bbfda893f72a0a0312e96f0bf14fa03 more tweaks for the gui build * configure.ac (HAVE_QT, GUIDIR): New variables. Don't run qmake unless it is found. Don't check for moc, uic, or rcc unless qmake is available. List Qt headers and libraries in summary message. * Makefile.am (SUBDIRS): Add @GUIDIR@ to the list. * common.mk (do_subst_config_vals): Substitute OCTAVE_CONF_QT_INCDIR and OCTAVE_CONF_QT_LIBDIR. * gui/src/Makefile.am: Simplify pattern rule for moc files. (octave_gui_CPPFLAGS): = Include -I@QT_INCDIR@ in the list. (octave_gui_LDADD): Include ../../liboctave/liboctave.la and ../../libcruft/libcruft.la in the list. (libqterminal_la_CPPFLAGS): Include -I@QT_INCDIR@ in the list. * toplev.cc (octave_config_info): New struct fields, QT_INCDIR and QT_LIBDIR. * oct-conf.in.h (OCTAVE_CONF_QT_INCDIR, OCTAVE_CONF_QT_LIBDIR): New macros. diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -68,7 +68,7 @@ include m4/module.mk # Subdirectories in which to run `make all'. -SUBDIRS = libgnu libcruft liboctave src scripts @DOCDIR@ examples test +SUBDIRS = libgnu libcruft liboctave src @GUIDIR@ scripts @DOCDIR@ examples test if OCTAVE_GUI SUBDIRS += gui diff --git a/build-aux/common.mk b/build-aux/common.mk --- a/build-aux/common.mk +++ b/build-aux/common.mk @@ -569,6 +569,8 @@ -e "s|%OCTAVE_CONF_QRUPDATE_CPPFLAGS%|\"${QRUPDATE_CPPFLAGS}\"|" \ -e "s|%OCTAVE_CONF_QRUPDATE_LDFLAGS%|\"${QRUPDATE_LDFLAGS}\"|" \ -e "s|%OCTAVE_CONF_QRUPDATE_LIBS%|\"${QRUPDATE_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_QT_INCDIR%|\"${QT_INCDIR}\"|" \ + -e "s|%OCTAVE_CONF_QT_LIBDIR%|\"${QT_LIBDIR}\"|" \ -e "s|%OCTAVE_CONF_RANLIB%|\"${RANLIB}\"|" \ -e "s|%OCTAVE_CONF_RDYNAMIC_FLAG%|\"${RDYNAMIC_FLAG}\"|" \ -e "s|%OCTAVE_CONF_READLINE_LIBS%|\"${READLINE_LIBS}\"|" \ diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -2132,19 +2132,26 @@ ### GUI/Qt related tests. -AC_CHECK_PROGS(MOC, [moc moc-qt4 moc-qt5]) -AC_CHECK_PROGS(UIC, [uic uic-qt4 uic-qt5]) -AC_CHECK_PROGS(RCC, [rcc]) +HAVE_QT=false +GUIDIR= +QT_INCDIR= +QT_LIBDIR= AC_CHECK_PROGS(QMAKE, [qmake qmake-qt4 qmake-qt5]) - -AC_SUBST(MOC) -AC_SUBST(UIC) - -QT_INCDIR=`$QMAKE -query | sed -n -e 's/^QT_INSTALL_HEADERS://p'` -QT_LIBDIR=`$QMAKE -query | sed -n -e 's/^QT_INSTALL_LIBS://p'` - +if test -n "$QMAKE"; then + QT_INCDIR=`$QMAKE -query | sed -n -e 's/^QT_INSTALL_HEADERS://p'` + QT_LIBDIR=`$QMAKE -query | sed -n -e 's/^QT_INSTALL_LIBS://p'` + AC_CHECK_PROGS(MOC, [moc moc-qt4 moc-qt5]) + AC_CHECK_PROGS(UIC, [uic uic-qt4 uic-qt5]) + AC_CHECK_PROGS(RCC, [rcc]) + if test -n "$MOC" && test -n "$UIC" && test -n "$RCC"; then + HAVE_QT=true + AC_DEFINE([HAVE_QT], 1, [Define to 1 if Qt is available (must have moc, uic, and rcc programs and developer header files and libraries installed)]) + GUIDIR=gui + fi +fi AC_SUBST(QT_INCDIR) AC_SUBST(QT_LIBDIR) +AC_SUBST(GUIDIR) case "$canonical_host_type" in *-*-mingw* | *-*-msdosmsvc*) win32_terminal=yes ;; @@ -2420,6 +2427,8 @@ QHULL LDFLAGS: $QHULL_LDFLAGS QHULL libraries: $QHULL_LIBS QRUPDATE libraries: $QRUPDATE_LIBS + Qt headers: $QT_INCDIR + Qt libraries: $QT_LIBDIR READLINE libraries: $READLINE_LIBS REGEX libraries: $REGEX_LIBS TERM libraries: $TERM_LIBS diff --git a/gui/src/Makefile.am b/gui/src/Makefile.am --- a/gui/src/Makefile.am +++ b/gui/src/Makefile.am @@ -1,12 +1,9 @@ -define MOC_template = -$(1)/moc_%.cpp: $(1)/%.h - test -d $(1) || mkdir -p $(1) - @MOC@ -o$$@ $$(DEFS) $$(DEFAULT_INCLUDES) $$(INCLUDES) $$(AM_CPPFLAGS) $$(CPPFLAGS) $$(octave_gui_CPPFLAGS) $$< -endef - SRCDIRS = m-editor qtinfo octave-adapter \ ../qterminal/libqterminal/unix ../qterminal/libqterminal/win32 ../qterminal/libqterminal ../qterminal -$(foreach dir,. $(SRCDIRS),$(eval $(call MOC_template,$(dir)))) + +moc_%.cpp: %.h + test -d $(@D) || mkdir -p $(@D) + @MOC@ -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(octave_gui_CPPFLAGS) $< ui_%.h: %.ui @UIC@ -o $@ $< @@ -65,7 +62,8 @@ qtinfo/webinfo.cc nodist_octave_gui_SOURCES = $(octave_gui_MOC) $(octave_gui_RC) -octave_gui_CPPFLAGS = -I@QT_INCDIR@/QtCore \ +octave_gui_CPPFLAGS = -I@QT_INCDIR@ \ + -I@QT_INCDIR@/QtCore \ -I@QT_INCDIR@/QtGui \ -I@QT_INCDIR@/QtNetwork \ -I$(srcdir)/../qterminal/libqterminal \ @@ -84,7 +82,10 @@ -I$(srcdir)/../../src/parse-tree octave_gui_LDADD = libqterminal.la \ - ../../src/liboctinterp.la + ../../src/liboctinterp.la \ + ../../liboctave/liboctave.la \ + ../../libcruft/libcruft.la + octave_gui_LDFLAGS = -L@QT_LIBDIR@ -lQtCore -lQtGui -lQtNetwork -lqscintilla2 noinst_HEADERS = \ @@ -152,6 +153,7 @@ ../qterminal/libqterminal/unix/TerminalView.h libqterminal_la_CPPFLAGS = $(DEFS) \ + -I@QT_INCDIR@ \ -I@QT_INCDIR@/QtCore \ -I@QT_INCDIR@/QtGui \ -I$(srcdir)/../qterminal/libqterminal diff --git a/src/interpfcn/toplev.cc b/src/interpfcn/toplev.cc --- a/src/interpfcn/toplev.cc +++ b/src/interpfcn/toplev.cc @@ -1342,6 +1342,8 @@ { false, "QRUPDATE_CPPFLAGS", OCTAVE_CONF_QRUPDATE_CPPFLAGS }, { false, "QRUPDATE_LDFLAGS", OCTAVE_CONF_QRUPDATE_LDFLAGS }, { false, "QRUPDATE_LIBS", OCTAVE_CONF_QRUPDATE_LIBS }, + { false, "QT_INCDIR", OCTAVE_CONF_QT_INCDIR }, + { false, "QT_LIBDIR", OCTAVE_CONF_QT_LIBDIR }, { false, "RANLIB", OCTAVE_CONF_RANLIB }, { false, "RDYNAMIC_FLAG", OCTAVE_CONF_RDYNAMIC_FLAG }, { false, "READLINE_LIBS", OCTAVE_CONF_READLINE_LIBS }, diff --git a/src/oct-conf.in.h b/src/oct-conf.in.h --- a/src/oct-conf.in.h +++ b/src/oct-conf.in.h @@ -464,6 +464,14 @@ #define OCTAVE_CONF_QRUPDATE_LIBS %OCTAVE_CONF_QRUPDATE_LIBS% #endif +#ifndef OCTAVE_CONF_QT_INCDIR +#define OCTAVE_CONF_QT_INCDIR %OCTAVE_CONF_QT_INCDIR% +#endif + +#ifndef OCTAVE_CONF_QT_LIBDIR +#define OCTAVE_CONF_QT_LIBDIR %OCTAVE_CONF_QT_LIBDIR% +#endif + #ifndef OCTAVE_CONF_RANLIB #define OCTAVE_CONF_RANLIB %OCTAVE_CONF_RANLIB% #endif