# -*- Makefile -*- # # Copyright 2004,2006,2007,2008,2009,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. # # Make rebuilds less verbose with stuff we can safely ignore # about GNU make only extensions. AUTOMAKE += -Wno-portability -Wnone AM_CFLAGS = @autoconf_default_CFLAGS@ @lf_CFLAGS@ AM_CXXFLAGS = @autoconf_default_CXXFLAGS@ @lf_CXXFLAGS@ # Sets ABI version in SONAME and appends -LIBVER to filename LTVERSIONFLAGS = -version-info 0:0:0 -release $(LIBVER) # includes grincludedir = $(includedir)/gnuradio # swig includes swigincludedir = $(grincludedir)/swig # Guile scheme code ends up under here: guiledir = $(prefix)/share/guile/site grguiledir = $(guiledir)/gnuradio if PYTHON # Install the gnuradio stuff in the appropriate subdirectory # This usually ends up at: # ${prefix}/lib/python${python_version}/site-packages/gnuradio grpythondir = $(pythondir)/gnuradio grpyexecdir = $(pyexecdir)/gnuradio # Install the non-gnuradio usrp stuff in the appropriate subdirectory # This usually ends up at: # ${prefix}/lib/python${python_version}/site-packages/usrpm usrppythondir = $(pythondir)/usrpm usrppyexecdir = $(pyexecdir)/usrpm endif # gcell includes gcellincludedir = $(includedir)/gcell gcellspuincludedir = $(includedir)/gcell/spu # Cell spu libs libspudir = $(libdir)spu # This used to be set in configure.ac but is now defined here for all # Makefiles when this fragment is included. STD_DEFINES_AND_INCLUDES = $(DEFINES) $(GNURADIO_INCLUDES) \ $(GRUEL_INCLUDES) $(BOOST_CPPFLAGS) # when including for compilation from pre-installed libraries and such, # need to make sure those are put last on the compile command WITH_INCLUDES = @with_INCLUDES@ WITH_SWIG_INCLUDES = @with_SWIG_INCLUDES@ # Where to find gnuradio include files in the current build tree # top_srcdir for original stuff, top_builddir for generated files GNURADIO_INCLUDES = @gnuradio_core_INCLUDES@ # How to link in GNU Radio core library from inside the tree GNURADIO_CORE_LA = @gnuradio_core_LA@ # How to link in the USRP library from inside the tree GRUEL_INCLUDES = @gruel_INCLUDES@ GRUEL_LA = @gruel_LA@ # How to link in the USRP library from inside the tree USRP_INCLUDES = @usrp_INCLUDES@ USRP_LA = @usrp_LA@ # How to link the gcell library from inside the tree (the PPU part) GCELL_INCLUDES = @gcell_INCLUDES@ GCELL_LA = @gcell_LA@ # How to link the gcell library from inside the tree (the SPU part) GCELL_SPU_INCLUDES = @gcell_spu_INCLUDES@ GCELL_SPU_LA = @gcell_spu_LA@ # libtool aware wrapper for ppu-embedspu GCELL_EMBEDSPU_LIBTOOL = @abs_top_srcdir@/gcell/lib/runtime/gcell-embedspu-libtool # Fix for BSD make not defining $(RM). We define it now in configure.ac # using AM_PATH_PROG, but now here have to add a -f to be like GNU make RM=$(RM_PROG) -f RUN_GUILE = GUILE_LOAD_PATH="@abs_top_srcdir@/gruel/src/scheme" @GUILE@ -e main -s # Base directory for example applications exampledir = $(datadir)/gnuradio/examples # Base directory for documentation (docdir undefined in autoconf < 1.60) docdir ?= $(datadir)/doc/$(PACKAGE) gr_docdir = $(docdir)-$(DOCVER) # System configuration files gr_prefsdir = $(GR_PREFSDIR) # Data directory for grc block wrappers grc_blocksdir = $(pkgdatadir)/grc/blocks # Other common defines; use "+=" to add to these STAMPS = MOSTLYCLEANFILES = $(BUILT_SOURCES) $(STAMPS) *.pyc *.pyo *~ *.tmp *.loT ## SWIG suffixes for automake to know about SUFFIXES = .i .scm .py if GUILE # Compile a .i to what guile needs. We use -o to set the output file name, # or even with -outdir guile in SWIG_GUILE_ARGS, swig keeps putting a # gnuradio_core_*_wrap.cxx in the source directory. gnuradio/%.scm : %.i @echo "Compile .i to .scm" @test -d "guile" || $(mkinstalldirs) "guile" @test -d "gnuradio" || $(mkinstalldirs) "gnuradio" $(SWIG) $(STD_SWIG_GUILE_ARGS) $($*_swig_args) \ -MD -MF guile/$*.Std \ -module $* -o guile/$*.cc $< $(SED) -e 's|guile/\(.*\)\.cc:|gnuradio/\1.scm:|' guile/$*.Std > guile/$*.d $(SED) -i -e 's/<--dummy-[0-9]\+-->//g' gnuradio/$*.scm $(SED) -i -e 's/^(export /(export-safely /' gnuradio/$*.scm $(RM) guile/$*.Std endif # Compile a .i file to what python needs .i.py: @echo "Compile .i to .py" @test -d "python" || $(mkinstalldirs) "python" $(SWIG) $(STD_SWIG_PYTHON_ARGS) $($*_swig_args) \ -MD -MF python/$*.Std \ -module $* -o python/$*.cc -oh python/$*.h $< $(SED) -e 's|python/\(.*\)\.cc:|\1.py:|' python/$*.Std > python/$*.d $(RM) python/$*.Std # Don't distribute the files defined in the variable 'no_dist_files' no_dist_dirs = python gnuradio guile dist-hook: @for dir in $(no_dist_dirs); do \ echo $(RM) -fr $(distdir)/$$dir; \ $(RM) -fr $(distdir)/$$dir; \ done; @for file in $(no_dist_files); do \ echo $(RM) $(distdir)/$$file; \ $(RM) $(distdir)/$$file; \ done;