diff gui/src/octave-gui.cc @ 15139:bfc220d1de67 gui

include gui in default Octave binary * Makefile.am (GUIDIR): New variable. (SUBDIRS): Use it in the list instead of @GUIDIR@. List $(GUIDIR) before src. * gui/src/Makefile.am (bin_PROGRAMS): Delete. (octlib_LTLIBRARIES): New variable. (liboctgui_la_SOURCES): Rename from octave_gui_SOURCES. (liboctgui_la_CPPFLAGS): Rename from octave_gui_CPPFLAGS. (liboctgui_la_LIBADD): Rename from octave_gui_LDADD. Don't include Octave libraries in the list. Do include Qt libraries in the list. (liboctgui_la_LDFLAGS): Rename from octave_gui_LDFLAGS. Only include -L@QT_LIBDIR@ option in the list. (moc_%.cpp): Use $(liboctgui_la_CPPFLAGS) in rules, not $(octave_gui_CPPFLAGS). * octave-gui.h: New file. * octave-gui.cc: Include it. (dissociate_terminal): In parent, wait for child process and exit with exit status of child. (octave_start_gui): Rename from main. * run-octave.in: Start with GUI by default. Rename -gui option -cli to allow running octave-cli binary. * main.cc, main-cli.cc: New files. * main.c: Delete. * src/Makefile (bin_PROGRAMS): Include octave-cli in the list. (OCTAVE_CORE_LIBS): New variable. (octave_cli_SOURCES, octave_cli_LDADD, octave_cli_LDFLAGS): New variables. (octave_SOURCES): Define to main.cc, not main.c. (octave_CPPFLAGS): New variable. (octave_LDFLAGS): Include -DENABLE_GUI=1 in the list. (octave_LDADD): Use $(OCTAVE_CORE_LIBS) and link with GUI lib. * octave.cc (force_gui_option, no_gui_option): New static variables. (octave_starting_gui): New function. (usage_string): Update for new options. (FORCE_GUI_OPTION, NO_GUI_OPTION): New macros. (long_opts): Include "force-gui" and "no-gui" options in the list. (octave_main): Handle FORCE_GUI_OPTION and NO_GUI_OPTION cases. Error if both --force-gui and --no-gui are used. * octave.h (octave_starting_gui): Provide decl.
author John W. Eaton <jwe@octave.org>
date Fri, 10 Aug 2012 10:27:32 -0400
parents 16a6b0a6855d
children 9e62d5a3a45e
line wrap: on
line diff
--- a/gui/src/octave-gui.cc
+++ b/gui/src/octave-gui.cc
@@ -21,6 +21,7 @@
 #include "welcome-wizard.h"
 #include "resource-manager.h"
 #include "main-window.h"
+#include "octave-gui.h"
 
 // Dissociate from the controlling terminal, if any.
 
@@ -28,6 +29,7 @@
 dissociate_terminal (void)
 {
 #if ! defined (Q_OS_WIN32) || defined (Q_OS_CYGWIN)
+
   pid_t pid = fork ();
 
   if (pid < 0)
@@ -46,15 +48,22 @@
         }
     }
   else
-    exit (0);
+    {
+      // Parent
+
+      int status;
+
+      waitpid (pid, &status, 0);
+
+      exit (WIFEXITED (status) ? WEXITSTATUS (status) : 127);
+    }
+
 #endif
 }
 
 int
-main (int argc, char *argv[])
+octave_start_gui (int argc, char *argv[])
 {
-  octave_initialize_interpreter (argc, argv, 0);
-
   dissociate_terminal ();
 
   QApplication application (argc, argv);