octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Last commit may break your builds


From: John W. Eaton
Subject: Re: Last commit may break your builds
Date: Fri, 3 Aug 2012 22:02:04 -0400

On  3-Aug-2012, John W. Eaton wrote:

| On  3-Aug-2012, Michael Goffioul wrote:
| 
| | Any chance to get that fixed? I'd like to keep to abilty to build outside
| | source directory.
| 
| I'm going to take a look and try to fix this.

With the attached changes, I'm able to do the following to build the
gui in a build tree separates from the sources.

  * in the source tree, run ./autogen.sh

  * in the build tree, run $srcdir/configure and make

  * cd to the gui directory in the build tree (create it if it doesn't
    exist) and run

      qmake $srcdir/gui
      make

  * to run the resulting bin/octave-gui binary, have to use

      
LD_LIBRARY_PATH=$builddir/src/.libs:$builddir/liboctave/.libs:$builddir/libcruft/.libs
 bin/octave

I hope these changes will make it possible for you to build again.
However, I don't plan to polish this any further as it isn't really
the right approach for Octave.  Some of the things that need to be
fixed are

  * We should be compiling and linking with libtool so that we can let
    libtool take care of setting LD_LIBRARY_PATH when we run in the
    build tree.

  * We need some way for the dist target to work.  It seems easiest to
    me to do that consistently for Octave if we are using automake for
    all the Makefiles.

  * We should not be generating the src.pro file in the source tree,
    but I don't know how to tell qmake to properly set up paths if the
    src.pro file is in the build tree, separate from the source tree.

  * Things like CXXFLAGS should be handled consistently throughout the
    Octave build.  Currently, doing "make CXXFLAGS=-g" will not work
    in the gui directory.

  * Dependency tracking should be handled consistently and
    automatically throughout the Octave build.  It looks like
    dependency rules are stored directly in the Makefiles generated by
    qmake, so they have to be updated by running qmake again if
    anything changes.  Automake handles dependencies automatically.

jwe

diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -2814,6 +2814,7 @@
   doc/liboctave/Makefile
   doc/refcard/Makefile
   examples/Makefile
+  $srcdir/gui/src/src.pro
   libcruft/Makefile
   libcruft/mkf77def
   libgnu/Makefile
diff --git a/gui/src/src.pro b/gui/src/src.pro.in
rename from gui/src/src.pro
rename to gui/src/src.pro.in
--- a/gui/src/src.pro
+++ b/gui/src/src.pro.in
@@ -30,12 +30,12 @@
 
 win32-msvc*: include(msvc.pri)
 
-LIBS                += -lreadline -lqscintilla2  \
-                       -L../qterminal/libqterminal/$$LIBDIR_SUFFIX -lqterminal 
-lm \
-                       -L../../libcruft/.libs -lcruft \
-                       -L../../liboctave/.libs -loctave \
-                       -L../../src/.libs -loctinterp
-
+LIBS                += @abs_top_builddir@/src/.libs/liboctinterp.so \
+                       @abs_top_builddir@/liboctave/.libs/liboctave.so \
+                       @abs_top_builddir@/libcruft/.libs/libcruft.so \
+                       -L../qterminal/libqterminal/$$LIBDIR_SUFFIX \
+                       -lqterminal -lreadline -lqscintilla2 -lm
+                       
 mac {
     CONFIG -= app_bundle
 }
@@ -47,19 +47,22 @@
                        qtinfo \
                        ../qterminal/libqterminal \
                        /usr/include/qt4 \
-                       ../.. \
-                       ../../src \
-                       ../../liboctave \
-                       ../../libcruft/misc
-
-#QMAKE_LIBDIR        += $$system(octave-config -p OCTLIBDIR)
-#unix {
-#    QMAKE_RPATHDIR += $$system(octave-config -p OCTLIBDIR)
-#}
-
-mac {
-    LFLAGS += -L/opt/local/lib
-}
+                       @abs_top_builddir@ \
+                       @top_srcdir@/libcruft/misc \
+                       @top_srcdir@/liboctave \
+                       @abs_top_builddir@/liboctave \
+                       @top_srcdir@/src \
+                       @abs_top_builddir@/src \
+                       @top_srcdir@/src/octave-value \
+                       @abs_top_builddir@/src/parse-tree \
+                       @top_srcdir@/src/parse-tree \
+                       @abs_top_builddir@/src/octave-value \
+                       @top_srcdir@/src/interp-core \
+                       @abs_top_builddir@/src/interp-core \
+                       @top_srcdir@/src/interpfcn \
+                       @abs_top_builddir@/src/interpfcn \
+                       @abs_top_builddir@/src/operators \
+                       @top_srcdir@/src/operators
 
 unix {
     LIBS += -lutil

reply via email to

[Prev in Thread] Current Thread [Next in Thread]