diff options
-rw-r--r-- | gr-run-waveform/config/Makefile.am | 27 | ||||
-rw-r--r-- | gr-run-waveform/config/gr_lib64.m4 | 85 | ||||
-rw-r--r-- | gr-run-waveform/configure.ac | 3 | ||||
-rwxr-xr-x | gr-run-waveform/run_waveform.scm | 64 |
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: |