howto: make versioned libraries
[debian/gnuradio] / gr-howto-write-a-block / Makefile.common
index 6b62f25f84884799088f0e68621c2176cf869d09..8423671a378f37c291971dd560f5ab24e5cdd282 100644 (file)
@@ -1,6 +1,6 @@
 # -*- Makefile -*-
 #
-# Copyright 2004,2006 Free Software Foundation, Inc.
+# Copyright 2004,2006,2009,2010 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio
 # 
 # Boston, MA 02110-1301, USA.
 # 
 
+# The name of this "out-of-tree" module
+modname = howto
+
+# these flags are used when compiling non-SWIG-wrapper files
+# when going in to non-SWIG libraries
+AM_CXXFLAGS = @autoconf_default_CXXFLAGS@
+
+# Sets ABI version in SONAME and appends -LIBVER to filename
+LTVERSIONFLAGS = -version-info 0:0:0 -release $(LIBVER)
+
+# these flags are used when compiling any CXX file
+AM_CPPFLAGS = \
+       $(STD_DEFINES_AND_INCLUDES) \
+       $(PYTHON_CPPFLAGS) \
+       $(CPPUNIT_INCLUDES) \
+       $(GNURADIO_CORE_CPPFLAGS)
+
+# these are used by both SWIG and CXX
+STD_DEFINES_AND_INCLUDES = \
+       $(DEFINES) \
+       -I$(abs_top_srcdir)/include \
+       -I$(GNURADIO_CORE_INCLUDEDIR) \
+       -I$(GNURADIO_CORE_INCLUDEDIR)/swig
+
 # includes
-grincludedir   = $(includedir)/gnuradio
+modincludedir = $(includedir)/$(modname)
 
 # swig includes 
-swigincludedir = $(grincludedir)/swig
+swigincludedir = $(modincludedir)/swig
 
 # Install this stuff in the appropriate subdirectory
 # This usually ends up at:
-#   ${prefix}/lib/python${python_version}/site-packages/gnuradio
+#   ${prefix}/lib/python${python_version}/site-packages/$(modname)
 
-grpythondir = $(pythondir)/gnuradio
-grpyexecdir = $(pyexecdir)/gnuradio
+modpythondir = $(pythondir)/$(modname)
+modpyexecdir = $(pyexecdir)/$(modname)
 
-# swig flags
-SWIGPYTHONFLAGS = -fvirtual -python -modern
-SWIGGRFLAGS = -I$(GNURADIO_CORE_INCLUDEDIR)/swig -I$(GNURADIO_CORE_INCLUDEDIR)
+# Data directory for grc block wrappers
+grc_blocksdir = $(prefix)/share/gnuradio/grc/blocks
 
 # Don't assume that make predefines $(RM), because BSD make does
 # not. 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
+
+# Other common defines; use "+=" to add to these
+STAMPS =
+MOSTLYCLEANFILES = $(BUILT_SOURCES) $(STAMPS) *.pyc *.pyo *~ *.tmp *.loT
+
+# Don't distribute the files defined in the variable 'no_dist_files'
+dist-hook:
+       @for file in $(no_dist_files); do \
+               echo $(RM) $(distdir)/$$file; \
+               $(RM) $(distdir)/$$file; \
+       done;