From c744baf8140be7a2df5d34c972edfbfa81fe46f4 Mon Sep 17 00:00:00 2001 From: Eric Blossom Date: Thu, 30 Dec 2010 11:47:55 -0800 Subject: Rename gr-run-waveform/gr-run-waveform.cc to gr-run-waveform-binary.cc This is the first step to allow the binary and the script versions of gr-run-waveform to co-exist. --- gr-run-waveform/Makefile.am | 10 +-- gr-run-waveform/configure.ac | 2 +- gr-run-waveform/gr-run-waveform-binary.cc | 100 ++++++++++++++++++++++++++++++ gr-run-waveform/gr-run-waveform.cc | 100 ------------------------------ 4 files changed, 106 insertions(+), 106 deletions(-) create mode 100644 gr-run-waveform/gr-run-waveform-binary.cc delete mode 100644 gr-run-waveform/gr-run-waveform.cc diff --git a/gr-run-waveform/Makefile.am b/gr-run-waveform/Makefile.am index 3ab7d6fb2..903ab2246 100644 --- a/gr-run-waveform/Makefile.am +++ b/gr-run-waveform/Makefile.am @@ -27,7 +27,7 @@ EXTRA_DIST = gen-xyzzy \ guile/simple.scm # build the standalone waveform application -bin_PROGRAMS = gr-run-waveform +bin_PROGRAMS = gr-run-waveform-binary # Rather than build a library, we just use a variable so the same code # can be used in test cases, as well as the run-waveform application. @@ -64,8 +64,8 @@ test_embed_DEPENDENCIES = $(BUILT_SOURCES) noinst_HEADERS = xyzzy.h # The standalone waveform application -gr_run_waveform_SOURCES = gr-run-waveform.cc $(SRCS) -gr_run_waveform_CPPFLAGS = $(GUILE_CFLAGS) \ +gr_run_waveform_binary_SOURCES = gr-run-waveform-binary.cc $(SRCS) +gr_run_waveform_binary_CPPFLAGS = $(GUILE_CFLAGS) \ -DSRCDIR=\"$(srcdir)\" \ -DPKGLIBDIR=\"$(pkglibdir)\" \ -DDATAROOTDIR=\"$(datarootdir)\" \ @@ -73,8 +73,8 @@ gr_run_waveform_CPPFLAGS = $(GUILE_CFLAGS) \ # Uncommenting this force make to statically link in the guile library. # Note that this will fail to link it you don't have libguile.a. # run_waveform_LDFLAGS = -static -gr_run_waveform_LDADD = $(GUILE_LIBS) -gr_run_waveform_DEPENDENCIES = $(BUILT_SOURCES) +gr_run_waveform_binary_LDADD = $(GUILE_LIBS) +gr_run_waveform_binary_DEPENDENCIES = $(BUILT_SOURCES) DISTCLEANFILES = gr-run-waveform.tar.gz libpath.h filesystem.dat diff --git a/gr-run-waveform/configure.ac b/gr-run-waveform/configure.ac index e0964fa78..ea7a06128 100644 --- a/gr-run-waveform/configure.ac +++ b/gr-run-waveform/configure.ac @@ -25,7 +25,7 @@ AC_CONFIG_AUX_DIR([.]) AC_CONFIG_HEADERS([grconfig.h]) AC_CONFIG_MACRO_DIR(config) -AC_CONFIG_SRCDIR(gr-run-waveform.cc) +AC_CONFIG_SRCDIR(gr-run-waveform-binary.cc) AM_INIT_AUTOMAKE("gr-run-waveform", "0.1") AC_CANONICAL_BUILD diff --git a/gr-run-waveform/gr-run-waveform-binary.cc b/gr-run-waveform/gr-run-waveform-binary.cc new file mode 100644 index 000000000..ac81b0eaa --- /dev/null +++ b/gr-run-waveform/gr-run-waveform-binary.cc @@ -0,0 +1,100 @@ +/* -*- c++ -*- */ +/* + * 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 GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include + +#include "xyzzy.h" + +/* + * Load and run a waveform defined using define-waveform + * usage: gr-run-waveform filename.wfd [args...] + */ + +static bool +prepend_to_env(const char *name, const char *value) +{ + char *c_old = getenv(name); + std::string new_val; + if (c_old) + new_val = std::string(value) + std::string(":") + std::string(c_old); + else + new_val = std::string(value); + + return setenv(name, new_val.c_str(), 1) == 0; +} + +static const char *code = "\ +;;(set! %load-verbosely #t) \n\ + \n\ +(save-module-excursion \n\ + (lambda () \n\ + (set-current-module (resolve-module '(guile))) \n\ + (set! primitive-load xyzzy-primitive-load) \n\ + (set! primitive-load-path xyzzy-primitive-load-path) \n\ + (set! search-path xyzzy-search-path) \n\ + (set! %search-load-path %xyzzy-search-load-path))) \n\ + \n\ +(primitive-load-path \"gnuradio/run-waveform\") \n\ + \n\ +(define (main args) \n\ + (if (not (>= (length args) 2)) \n\ + (let ((port (current-error-port))) \n\ + (display \"usage: \" port) \n\ + (display (car args) port) \n\ + (display \" filename.wfd [args...]\n\" port) \n\ + (exit 1))) \n\ + (apply run-waveform (cdr args))) \n\ + \n\ +(main (command-line)) \n\ +"; + +static void +inner_main (void *data, int argc, char **argv) +{ + // Load pseudo filesystem + if (!xyzzy_init(0)) // use compiled-in install path + exit(1); + + // Initialize our gsubrs + scm_xyzzy_init(); + + // Override standard code with our gsubrs and and run our app + scm_c_eval_string(code); +} + +int +main(int argc, char *argv[]) +{ + // kill warnings + setenv("GUILE_WARN_DEPRECATED", "no", 1); + + // where to find our files and libraries + prepend_to_env("GUILE_LOAD_PATH", "/-xyzzy-"); + prepend_to_env("LTDL_LIBRARY_PATH", LIBDIR); + prepend_to_env("DYLD_LIBRARY_PATH", LIBDIR); + + scm_boot_guile (argc, argv, inner_main, 0); + + return 0; // never reached +} diff --git a/gr-run-waveform/gr-run-waveform.cc b/gr-run-waveform/gr-run-waveform.cc deleted file mode 100644 index ac81b0eaa..000000000 --- a/gr-run-waveform/gr-run-waveform.cc +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- c++ -*- */ -/* - * 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 GNU Radio; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - */ - -#include -#include -#include - -#include "xyzzy.h" - -/* - * Load and run a waveform defined using define-waveform - * usage: gr-run-waveform filename.wfd [args...] - */ - -static bool -prepend_to_env(const char *name, const char *value) -{ - char *c_old = getenv(name); - std::string new_val; - if (c_old) - new_val = std::string(value) + std::string(":") + std::string(c_old); - else - new_val = std::string(value); - - return setenv(name, new_val.c_str(), 1) == 0; -} - -static const char *code = "\ -;;(set! %load-verbosely #t) \n\ - \n\ -(save-module-excursion \n\ - (lambda () \n\ - (set-current-module (resolve-module '(guile))) \n\ - (set! primitive-load xyzzy-primitive-load) \n\ - (set! primitive-load-path xyzzy-primitive-load-path) \n\ - (set! search-path xyzzy-search-path) \n\ - (set! %search-load-path %xyzzy-search-load-path))) \n\ - \n\ -(primitive-load-path \"gnuradio/run-waveform\") \n\ - \n\ -(define (main args) \n\ - (if (not (>= (length args) 2)) \n\ - (let ((port (current-error-port))) \n\ - (display \"usage: \" port) \n\ - (display (car args) port) \n\ - (display \" filename.wfd [args...]\n\" port) \n\ - (exit 1))) \n\ - (apply run-waveform (cdr args))) \n\ - \n\ -(main (command-line)) \n\ -"; - -static void -inner_main (void *data, int argc, char **argv) -{ - // Load pseudo filesystem - if (!xyzzy_init(0)) // use compiled-in install path - exit(1); - - // Initialize our gsubrs - scm_xyzzy_init(); - - // Override standard code with our gsubrs and and run our app - scm_c_eval_string(code); -} - -int -main(int argc, char *argv[]) -{ - // kill warnings - setenv("GUILE_WARN_DEPRECATED", "no", 1); - - // where to find our files and libraries - prepend_to_env("GUILE_LOAD_PATH", "/-xyzzy-"); - prepend_to_env("LTDL_LIBRARY_PATH", LIBDIR); - prepend_to_env("DYLD_LIBRARY_PATH", LIBDIR); - - scm_boot_guile (argc, argv, inner_main, 0); - - return 0; // never reached -} -- cgit