diff options
Diffstat (limited to 'Makefile.swig')
-rw-r--r-- | Makefile.swig | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/Makefile.swig b/Makefile.swig deleted file mode 100644 index 87e918c35..000000000 --- a/Makefile.swig +++ /dev/null @@ -1,209 +0,0 @@ -# -*- Makefile -*- -# -# Copyright 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. -# - -## This makefile should be included using -## include $(top_srcdir)/Makefile.swig -## in Makefile.am's which require SWIG wrapping / compilation. -## For just installing .i files, this Makefile is not required. - - -## include the built Makefile.swig.gen, always the one from the srcdir -include $(srcdir)/Makefile.swig.gen - - -## swig flags -## -w511 turns off keyword argument warning -## "-outdir $(builddir)" writes all generated output files to -## the local builddir (which should always be '.') -## In some older autotools, $(builddir) is not defined, so -## just use '.' instead. - -SWIG_PYTHON_FLAGS = \ - -fvirtual \ - -python \ - -modern \ - -keyword \ - -w511 \ - -outdir . - -STD_SWIG_PYTHON_ARGS = \ - $(SWIG_PYTHON_FLAGS) \ - $(STD_DEFINES_AND_INCLUDES) \ - $(WITH_SWIG_INCLUDES) \ - $(WITH_INCLUDES) - -# NOTE: -Linkage passive and -Linkage module don't define SWIG_init() -SWIG_GUILE_FLAGS = \ - -guile \ - -scm \ - -scmstub \ - -package gnuradio \ - -Linkage module \ - -proxy \ - -goopsprefix gr: \ - -emit-slot-accessors \ - -emit-setters \ - -outdir . - -## standard swig flags used by most components - -STD_SWIG_GUILE_ARGS = \ - $(SWIG_GUILE_FLAGS) \ - $(STD_DEFINES_AND_INCLUDES) \ - $(WITH_SWIG_INCLUDES) \ - $(WITH_INCLUDES) - -## standard SWIG LD flags for library creation - -STD_SWIG_LA_LD_FLAGS = \ - $(PYTHON_LDFLAGS) \ - -module \ - -avoid-version \ - $(NO_UNDEFINED) - -## standard SWIG library additions for library creation - -STD_SWIG_LA_LIB_ADD = -lstdc++ - -## standard SWIG CXXFLAGS -## This allows for code to be compiled with "-O1" instead of "-g -O2" -## for some systems, avoiding some optimization issues. - -STD_SWIG_CXX_FLAGS = @swig_CXXFLAGS@ - -# We drive the dependencies off of swig_built_sources. This variable -# ends up containing only the generated .py and/or .scm files, not the .h -# or .cc files. This allows us to use the pattern rules defined -# below to generate all the pieces without the parallel make -# problems that occur when both the .py's and .cc's are in swig_built_sources. - -swig_built_sources = - -# swig_all_built_sources contains swig_built_sources plus the .cc and .h files. -# It contains the files to remove from the distribution and the files to -# remove for make clean. - -swig_all_built_sources = - -if PYTHON -# Create a list of .py files based on the top level .i files. -PYTHON_GEN = $(foreach IFILE,$(TOP_SWIG_IFILES), $(subst .i,.py,$(IFILE))) -swig_built_sources += $(PYTHON_GEN) -swig_all_built_sources += $(PYTHON_GEN) - -# Now add .h, .cc to _all_ -swig_all_built_sources += $(foreach IFILE,$(TOP_SWIG_IFILES), $(patsubst %.i,python/%.h,$(IFILE))) -swig_all_built_sources += $(foreach IFILE,$(TOP_SWIG_IFILES), $(patsubst %.i,python/%.cc,$(IFILE))) -endif - -if GUILE -# Create a list of .scm files based on the top level .i files. -GUILE_GEN = $(foreach IFILE,$(TOP_SWIG_IFILES), $(patsubst %.i,gnuradio/%.scm,$(IFILE))) -swig_built_sources += $(GUILE_GEN) -swig_all_built_sources += $(GUILE_GEN) - -# Now add -primitive.scm, .cc to _all_ -swig_all_built_sources += $(foreach IFILE,$(TOP_SWIG_IFILES), $(patsubst %.i,gnuradio/%-primitive.scm,$(IFILE))) -swig_all_built_sources += $(foreach IFILE,$(TOP_SWIG_IFILES), $(patsubst %.i,guile/%.cc,$(IFILE))) -endif - -# N.B. Only $(swig_built_sources), not $(swig_all_built_sources) -BUILT_SOURCES += $(swig_built_sources) - -# Don't distribute any of the swig generated files -no_dist_files = $(swig_all_built_sources) - -CLEANFILES += $(swig_all_built_sources) -CLEANFILES += python/*.lo python/*.o python/*.d -CLEANFILES += guile/*.lo guile/*.o guile/*.d - - -## SWIG suffixes for automake to know about -SUFFIXES = .i .scm .py - -# 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]\+-->/<top>/g' gnuradio/$*.scm - $(SED) -i -e 's/^(export /(export-safely /' gnuradio/$*.scm - $(RM) guile/$*.Std - -# 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 - -## ------------------------------------------------------------------------ -## Rule that (re)generates Makefile.swig.gen using TOP_SWIG_IFILES and -## Makefile.swig.gen.t -## - -## Create $(srcdir)/Makefile.swig.gen, containing all of the rules -## for running SWIG to generate or re-generate outputs. SWIG file -## names are to be defined in TOP_SWIG_IFILES, and must include the -## full path to the file and full filename including extension. This -## Makefile addition will be made only if either it does not exist or -## if the top-level template has been modified. - -generate-makefile-swig $(srcdir)/Makefile.swig.gen: $(top_srcdir)/Makefile.swig.gen.t -## recreate $(srcdir)/Makefile.swig.gen only if ... - @do_recreate=0; \ - if test -f $(srcdir)/Makefile.swig.gen; then \ -## the file exists and can be removed; or ... - if $(RM) $(srcdir)/Makefile.swig.gen 2>/dev/null; then \ - if touch $(srcdir)/Makefile.swig.gen 2>/dev/null; then \ - do_recreate=1; \ - fi; \ - fi; \ - else \ -## the file doesn't exist, but can be created (e.g., by touching it). - if touch $(srcdir)/Makefile.swig.gen 2>/dev/null; then \ - do_recreate=1; \ - fi; \ - fi; \ - if test "$$do_recreate" == "1"; then \ - echo "Regenerating $(srcdir)/Makefile.swig.gen"; \ - for TFILE in $(TOP_SWIG_IFILES); do \ -## retrieve just the filename, without path or extension - TNAME=`python -c "import os.path as op; (dN, fN) = op.split ('$$TFILE'); (fbN, fE) = op.splitext (fN); print fbN;"`; \ -## Replace the @-named strings in the template Makefile for SWIG. - $(SED) -e 's|@NAME@|'$$TNAME'|g;' < $(top_srcdir)/Makefile.swig.gen.t >> $(srcdir)/Makefile.swig.gen; \ - echo "" >> $(srcdir)/Makefile.swig.gen; \ - done; \ - else \ - echo "Cannot recreate $(srcdir)/Makefile.swig.gen because the directory or file is write-protected."; \ - exit -1; \ - fi; - |