Merged r7478:7608 from michaelld/t186 into trunk. Adds ability to compile GNU Radio...
[debian/gnuradio] / config / grc_gnuradio_core.m4
index 37849929f3b394861daa54ca8f65b328e7a42e59..30a8dafff9b413958c2a28877c13a540a5a3c49a 100644 (file)
@@ -19,52 +19,88 @@ dnl Boston, MA 02110-1301, USA.
 
 AC_DEFUN([GRC_GNURADIO_CORE],[
     GRC_ENABLE([gnuradio-core])
-
-    AC_CONFIG_FILES([ \
-        gnuradio-core/Makefile
-        gnuradio-core/gnuradio-core.pc \
-        gnuradio-core/doc/Doxyfile \
-        gnuradio-core/doc/Makefile \
-        gnuradio-core/doc/other/Makefile \
-        gnuradio-core/doc/xml/Makefile \
-        gnuradio-core/src/Makefile \
-        gnuradio-core/src/gen_interpolator_taps/Makefile \
-        gnuradio-core/src/lib/Makefile \
-        gnuradio-core/src/lib/filter/Makefile \
-        gnuradio-core/src/lib/g72x/Makefile \
-        gnuradio-core/src/lib/general/Makefile \
-        gnuradio-core/src/lib/general/gr_prefix.cc \
-        gnuradio-core/src/lib/gengen/Makefile \
-        gnuradio-core/src/lib/io/Makefile \
-        gnuradio-core/src/lib/missing/Makefile \
-        gnuradio-core/src/lib/reed-solomon/Makefile \
-        gnuradio-core/src/lib/runtime/Makefile \
-        gnuradio-core/src/lib/swig/Makefile \
-        gnuradio-core/src/python/Makefile \
-        gnuradio-core/src/python/bin/Makefile \
-        gnuradio-core/src/python/gnuradio/Makefile \
-        gnuradio-core/src/python/gnuradio/blks2/Makefile \
-        gnuradio-core/src/python/gnuradio/blks2impl/Makefile \
-        gnuradio-core/src/python/gnuradio/gr/Makefile \
-        gnuradio-core/src/python/gnuradio/gr/run_tests \
-        gnuradio-core/src/python/gnuradio/gru/Makefile \
-        gnuradio-core/src/python/gnuradio/gruimpl/Makefile \
-       gnuradio-core/src/python/gnuradio/vocoder/Makefile \
-        gnuradio-core/src/tests/Makefile \
-        gnuradio-core/src/utils/Makefile \
-    ])
-    
-    passed=yes
-    # Don't do gnuradio-core if omnithread skipped
-    # There *has* to be a better way to check if a value is in a string
-    for dir in $skipped_dirs
-    do
-       if test x$dir = xomnithread; then
-           AC_MSG_RESULT([Component gnuradio-core requires omnithread, which is not being built.])
-           passed=no
+    GRC_WITH([gnuradio-core])
+    passed=no
+    if test x$with_gnuradio_core = xyes; then
+        if test x$enable_gnuradio_core = xyes; then
+           AC_MSG_ERROR([Component gnuradio-core: Cannot use both --enable and --with])
+        else
+           PKG_CHECK_MODULES(GNURADIO_CORE, gnuradio-core, passed=with,
+                  AC_MSG_RESULT([Component gnuradio-core: PKGCONFIG cannot find info]))
+            if test x$passed = xwith; then
+                gnuradio_core_INCLUDES=`$PKG_CONFIG --cflags-only-I gnuradio-core`
+               gnuradio_core_LA=$GNURADIO_CORE_LIBS
+               gnuradio_core_INCLUDEDIR=`$PKG_CONFIG --variable=includedir gnuradio-core`
+               gnuradio_core_SWIGDIRPATH="$gnuradio_core_INCLUDEDIR/swig"
+               gnuradio_core_I="$gnuradio_core_SWIGDIRPATH/gnuradio.i"
+               gnuradio_core_SWIG_INCLUDES="-I$gnuradio_core_SWIGDIRPATH"
+               gnuradio_core_LIBDIRPATH=`$PKG_CONFIG --variable=libdir gnuradio-core`
+               gnuradio_core_PYDIRPATH=$pythondir
+            fi
        fi
-    done
+    fi
+    dnl if $passed = with, then "--with" worked; ignore the "--enable" stuff
+    dnl otherwise, $passed = no; check the "--enable" stuff
+    if test x$passed = xno; then
+        AC_CONFIG_FILES([ \
+            gnuradio-core/Makefile
+            gnuradio-core/gnuradio-core.pc \
+            gnuradio-core/doc/Doxyfile \
+           gnuradio-core/doc/Makefile \
+            gnuradio-core/doc/other/Makefile \
+            gnuradio-core/doc/xml/Makefile \
+            gnuradio-core/src/Makefile \
+            gnuradio-core/src/gen_interpolator_taps/Makefile \
+            gnuradio-core/src/lib/Makefile \
+            gnuradio-core/src/lib/filter/Makefile \
+            gnuradio-core/src/lib/g72x/Makefile \
+            gnuradio-core/src/lib/general/Makefile \
+            gnuradio-core/src/lib/general/gr_prefix.cc \
+            gnuradio-core/src/lib/gengen/Makefile \
+            gnuradio-core/src/lib/io/Makefile \
+            gnuradio-core/src/lib/missing/Makefile \
+            gnuradio-core/src/lib/reed-solomon/Makefile \
+            gnuradio-core/src/lib/runtime/Makefile \
+            gnuradio-core/src/lib/swig/Makefile \
+            gnuradio-core/src/python/Makefile \
+            gnuradio-core/src/python/bin/Makefile \
+            gnuradio-core/src/python/gnuradio/Makefile \
+            gnuradio-core/src/python/gnuradio/blks2/Makefile \
+            gnuradio-core/src/python/gnuradio/blks2impl/Makefile \
+            gnuradio-core/src/python/gnuradio/gr/Makefile \
+            gnuradio-core/src/python/gnuradio/gr/run_tests \
+            gnuradio-core/src/python/gnuradio/gru/Makefile \
+            gnuradio-core/src/python/gnuradio/gruimpl/Makefile \
+           gnuradio-core/src/python/gnuradio/vocoder/Makefile \
+            gnuradio-core/src/tests/Makefile \
+           gnuradio-core/src/utils/Makefile \
+        ])
+        passed=yes
 
+        # Don't do gnuradio-core if omnithread skipped
+        if test x$omnithread_skipped = xyes; then
+            AC_MSG_RESULT([Component gnuradio-core requires omnithread, which is not being built or specified via pre-installed files.])
+           passed=no
+        fi
+        gnuradio_core_INCLUDES="-I\${abs_top_srcdir}/gnuradio-core/src/lib/runtime \
+                   -I\${abs_top_srcdir}/gnuradio-core/src/lib/general \
+                   -I\${abs_top_builddir}/gnuradio-core/src/lib/general \
+                   -I\${abs_top_srcdir}/gnuradio-core/src/lib/gengen \
+                   -I\${abs_top_builddir}/gnuradio-core/src/lib/gengen \
+                   -I\${abs_top_srcdir}/gnuradio-core/src/lib/filter \
+                   -I\${abs_top_builddir}/gnuradio-core/src/lib/filter \
+                   -I\${abs_top_srcdir}/gnuradio-core/src/lib/reed-solomon \
+                   -I\${abs_top_srcdir}/gnuradio-core/src/lib/io \
+                   -I\${abs_top_srcdir}/gnuradio-core/src/lib/g72x \
+                   -I\${abs_top_srcdir}/gnuradio-core/src/lib/swig \
+                   -I\${abs_top_builddir}/gnuradio-core/src/lib/swig \
+                   \$(FFTW3F_CFLAGS)"
+        gnuradio_core_LA="\${abs_top_builddir}/gnuradio-core/src/lib/libgnuradio-core.la"
+       gnuradio_core_I="\${abs_top_srcdir}/gnuradio-core/src/lib/swig/gnuradio.i"
+       gnuradio_core_LIBDIRPATH="\${abs_top_builddir}/gnuradio-core/src/lib:\${abs_top_builddir}/gnuradio-core/src/lib/.libs"
+       gnuradio_core_SWIGDIRPATH="\${abs_top_builddir}/gnuradio-core/src/lib/swig:\${abs_top_builddir}/gnuradio-core/src/lib/swig/.libs:\${abs_top_srcdir}/gnuradio-core/src/lib/swig"
+       gnuradio_core_PYDIRPATH="\${abs_top_srcdir}/gnuradio-core/src/python"
+    fi
     GRC_BUILD_CONDITIONAL([gnuradio-core],[
         dnl run_tests is created from run_tests.in.  Make it executable.
         AC_CONFIG_COMMANDS([run_tests_core], [chmod +x gnuradio-core/src/python/gnuradio/gr/run_tests])
@@ -78,4 +114,10 @@ AC_DEFUN([GRC_GNURADIO_CORE],[
                touch gnuradio-core/src/lib/swig/gnuradio_swig_py_io.d
                ])
     ])
+    AC_SUBST([gnuradio_core_INCLUDES])
+    AC_SUBST([gnuradio_core_LA])
+    AC_SUBST([gnuradio_core_I])
+    AC_SUBST([gnuradio_core_LIBDIRPATH])
+    AC_SUBST([gnuradio_core_SWIGDIRPATH])
+    AC_SUBST([gnuradio_core_PYDIRPATH])
 ])