# -*- Makefile -*-
#
# Copyright 2009 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.
# 

# Makefile.swig.gen for trellis.i

## Default install locations for these files:
##
## Default location for the Python directory is:
##  ${prefix}/lib/python${python_version}/site-packages/[category]/trellis
## Default location for the Python exec directory is:
##  ${exec_prefix}/lib/python${python_version}/site-packages/[category]/trellis
##
## The following can be overloaded to change the install location, but
## this has to be done in the including Makefile.am -before-
## Makefile.swig is included.

trellis_pythondir_category ?= gnuradio/trellis
trellis_pylibdir_category ?= $(trellis_pythondir_category)
trellis_pythondir = $(pythondir)/$(trellis_pythondir_category)
trellis_pylibdir = $(pyexecdir)/$(trellis_pylibdir_category)

# The .so libraries for the guile modules get installed whereever guile
# is installed, usually /usr/lib/guile/gnuradio/
# FIXME: determince whether these should be installed with gnuradio.
trellis_scmlibdir = @GUILE_PKLIBDIR@/gnuradio

# The scm files for the guile modules get installed where ever guile
# is installed, usually /usr/share/guile/site/trellis
# FIXME: determince whether these should be installed with gnuradio.
trellis_scmdir = @GUILE_PKDATADIR@/gnuradio

## SWIG headers are always installed into the same directory.

trellis_swigincludedir = $(swigincludedir)

## This is a template file for a "generated" Makefile addition (in
## this case, "Makefile.swig.gen").  By including the top-level
## Makefile.swig, this file will be used to generate the SWIG
## dependencies.  Assign the variable TOP_SWIG_FILES to be the list of
## SWIG .i files to generated wrappings for; there can be more than 1
## so long as the names are unique (no sorting is done on the
## TOP_SWIG_FILES list). This file explicitly assumes that a SWIG .i
## file will generate .cc, .py, and possibly .h files -- meaning that
## all of these files will have the same base name (that provided for
## the SWIG .i file).
##
## This code is setup to ensure parallel MAKE ("-j" or "-jN") does the
## right thing.  For more info, see <
## http://sources.redhat.com/automake/automake.html#Multiple-Outputs >

## Stamps used to ensure parallel make does the right thing.  These
## are removed by "make clean", but otherwise unused except during the
## parallel built.  These will not be included in a tarball, because
## the SWIG-generated files will be removed from the distribution.

STAMPS += $(DEPDIR)/trellis-generate-*

## Other cleaned files: dependency files generated by SWIG or this Makefile

MOSTLYCLEANFILES += $(DEPDIR)/*.S*

## Add the .py and .cc files to the list of SWIG built sources.  The
## .h file is sometimes built, but not always ... so that one has to
## be added manually by the including Makefile.am .

# generating the py or scm file also generates the .cc or .h files,
# but dependencies work better without the .cc ort .h files listed.
swig_built_sources += trellis.py
if GUILE
swig_built_sources += trellis.scm
endif

## Various SWIG variables.  These can be overloaded in the including
## Makefile.am by setting the variable value there, then including
## Makefile.swig .

trellis_swiginclude_HEADERS =		\
	trellis.i			\
	$(trellis_swiginclude_headers)

trellis_pylib_LTLIBRARIES =		\
	_trellis.la

_trellis_la_SOURCES = 			\
	python/trellis.cc		\
	$(trellis_la_swig_sources)

_trellis_la_LIBADD =			\
	$(STD_SWIG_LA_LIB_ADD)		\
	$(trellis_la_swig_libadd)

# _trellis_la_DEPENDENCIES = python/trellis.lo

_trellis_la_LDFLAGS =			\
	$(STD_SWIG_LA_LD_FLAGS)		\
	$(trellis_la_swig_ldflags)

_trellis_la_CXXFLAGS =			\
	$(STD_SWIG_CXX_FLAGS)		\
	-I$(top_builddir) 		\
	$(trellis_la_swig_cxxflags)

trellis_python_PYTHON =			\
	trellis.py			\
	$(trellis)

if GUILE
trellis_scmlib_LTLIBRARIES = trellis_guile.la
trellis_guile_la_SOURCES = 		\
	guile/trellis.cc			\
	$(trellis_la_swig_sources)
trellis_scm_DATA = trellis.scm

# Guile can use the same flags as python does
trellis_guile_la_LIBADD = $(_trellis_la_LIBADD)
trellis_guile_la_LDFLAGS = $(_trellis_la_LDFLAGS)
trellis_guile_la_CXXFLAGS = $(_trellis_la_CXXFLAGS)

guile/trellis.lo: trellis.lo
trellis.scm: trellis.i

endif				# end of GUILE

python/trellis.lo:
trellis.lo: trellis.py trellis.scm
trellis.py: trellis.i