summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-run-waveform/config/Makefile.am27
-rw-r--r--gr-run-waveform/config/gr_lib64.m485
-rw-r--r--gr-run-waveform/configure.ac3
-rwxr-xr-xgr-run-waveform/run_waveform.scm64
4 files changed, 115 insertions, 64 deletions
diff --git a/gr-run-waveform/config/Makefile.am b/gr-run-waveform/config/Makefile.am
new file mode 100644
index 000000000..6eedc33b8
--- /dev/null
+++ b/gr-run-waveform/config/Makefile.am
@@ -0,0 +1,27 @@
+#
+# Copyright 2010 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+EXTRA_DIST = \
+ gr_guile.m4 \
+ gr_lib64.m4 \
+ libtool.m4 \
+ ltoptions.m4 \
+ ltsugar.m4 \
+ ltversion.m4 \
+ lt~obsolete.m4
diff --git a/gr-run-waveform/config/gr_lib64.m4 b/gr-run-waveform/config/gr_lib64.m4
new file mode 100644
index 000000000..751f774b4
--- /dev/null
+++ b/gr-run-waveform/config/gr_lib64.m4
@@ -0,0 +1,85 @@
+dnl
+dnl Copyright 2005,2008 Free Software Foundation, Inc.
+dnl
+dnl This file is part of GNU Radio
+dnl
+dnl GNU Radio is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 3, or (at your option)
+dnl any later version.
+dnl
+dnl GNU Radio is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with GNU Radio; see the file COPYING. If not, write to
+dnl the Free Software Foundation, Inc., 51 Franklin Street,
+dnl Boston, MA 02110-1301, USA.
+dnl
+
+dnl GR_LIB64()
+dnl
+dnl Checks to see if we're on a x86_64 or powerpc64 machine, and if so, determine
+dnl if libdir should end in "64" or not.
+dnl
+dnl Sets gr_libdir_suffix to "" or "64" and calls AC_SUBST(gr_libdir_suffix)
+dnl May append "64" to libdir.
+dnl
+dnl The current heuristic is:
+dnl if the host_cpu isn't x86_64 or powerpc64, then ""
+dnl if the host_os isn't linux, then ""
+dnl if we're cross-compiling, ask the linker, by way of the selected compiler
+dnl if we're x86_64 and there's a /lib64 and it's not a symlink, then "64", else ""
+dnl else ask the compiler
+dnl
+AC_DEFUN([GR_LIB64],[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_PROG_CXX])
+
+ AC_MSG_CHECKING([gr_libdir_suffix])
+ gr_libdir_suffix=""
+ AC_SUBST(gr_libdir_suffix)
+
+ case "$host_os" in
+ linux*) is_linux=yes ;;
+ *) is_linux=no ;;
+ esac
+
+ if test "$is_linux" = no || test "$host_cpu" != "x86_64" && test "$host_cpu" != "powerpc64"; then
+ gr_libdir_suffix=""
+ elif test "$cross_compiling" = yes; then
+ _GR_LIB64_ASK_COMPILER
+ elif test "$host_cpu" = "x86_64"; then
+ if test -d /lib64 && test ! -L /lib64; then
+ gr_libdir_suffix=64
+ fi
+ else
+ _GR_LIB64_ASK_COMPILER
+ fi
+ AC_MSG_RESULT([$gr_libdir_suffix])
+
+
+ AC_MSG_CHECKING([whether to append 64 to libdir])
+ t=${libdir##*/lib}
+ if test "$t" != 64 && test "$gr_libdir_suffix" = "64"; then
+ libdir=${libdir}64
+ AC_MSG_RESULT([yes. Setting libdir to $libdir])
+ else
+ AC_MSG_RESULT([no])
+ fi
+])
+
+dnl If we're using g++, extract the first SEARCH_DIR("...") entry from the linker script
+dnl and see if it contains a suffix after the final .../lib part of the path.
+dnl (This works because the linker script varies depending on whether we're generating
+dnl 32-bit or 64-bit executables)
+dnl
+AC_DEFUN([_GR_LIB64_ASK_COMPILER],[
+ if test "$ac_cv_cxx_compiler_gnu" = "yes";
+ then
+ gr_libdir_suffix=`$CXX -Wl,--verbose 2>/dev/null | sed -n -e '/SEARCH_DIR/{s/;.*$//; s,^.*/,,; s/".*$//; s/^lib//; p}'`
+ fi
+])
+
diff --git a/gr-run-waveform/configure.ac b/gr-run-waveform/configure.ac
index 752a99886..b2968a06c 100644
--- a/gr-run-waveform/configure.ac
+++ b/gr-run-waveform/configure.ac
@@ -36,6 +36,8 @@ dnl Find the the C++ compiler
AC_PROG_CXX
AM_PROG_CC_C_O
+GR_LIB64 dnl check for lib64 suffix after choosing compilers
+
dnl Checks for standard header files.
AC_HEADER_STDC
@@ -47,6 +49,7 @@ AC_SUBST(PYTHON)
AC_CONFIG_FILES([\
Makefile \
+ config/Makefile \
])
AC_OUTPUT
diff --git a/gr-run-waveform/run_waveform.scm b/gr-run-waveform/run_waveform.scm
deleted file mode 100755
index a8d1d0389..000000000
--- a/gr-run-waveform/run_waveform.scm
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/guile \
--e main -s
-!#
-;;;
-;;; Copyright 2010 Free Software Foundation, Inc.
-;;;
-;;; This file is part of GNU Radio
-;;;
-;;; GNU Radio is free software; you can redistribute it and/or modify
-;;; it under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3, or (at your option)
-;;; any later version.
-;;;
-;;; GNU Radio is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-;;;
-
-;;; Load and run a waveform defined with define-waveform
-;;;
-;;; usage: gr-run-waveform filename.wfd
-
-
-(use-modules (oop goops)
- (gnuradio core)
- (gnuradio waveform))
-
-
-(define (enable-debug-mode)
- (display %load-path)
- (newline)
- (set! %load-verbosely #t)
- (debug-enable 'backtrace 'debug))
-
-(define (usage args)
- (let ((port (current-error-port)))
- (display "usage: " port)
- (display (car args) port)
- (newline port)
- (exit 1)))
-
-
-(define (main args)
- (if (not (>= (length args) 2))
- (usage args))
- (enable-debug-mode)
- (let ((filename (cadr args)))
- ;; Probably ought to handle errors here
- (load filename)
- (let ((f (waveform-last-registered)))
- (if (not f)
- (begin
- (format 1 "No define-waveform found in file '~A'\n" filename)
- (exit 1)))
- (gr:run (f (cdr args))))))
-
-
-;;; Local Variables:
-;;; mode: scheme
-;;; End: