Skip to content

Commit

Permalink
Make swig directory not recursive, but in parallel.
Browse files Browse the repository at this point in the history
  • Loading branch information
Guillaume Marcais committed Oct 23, 2015
1 parent adc7919 commit 623eafa
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 44 deletions.
6 changes: 5 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
SUBDIRS = . $(MAYBE_SWIG)
ACLOCAL_AMFLAGS = -I m4

EXTRA_DIST = doc/jellyfish.pdf doc/jellyfish.man README LICENSE # jellyfish.spec
Expand Down Expand Up @@ -209,6 +208,11 @@ bin_test_all_LDADD = libgtest.la $(LDADD)
YAGGO_SOURCES += unit_tests/test_main_cmdline.hpp
noinst_HEADERS += unit_tests/test_main.hpp

#################
# SWIG bindings #
#################
include swig/Makefile.am

include gtest.mk
-include $(srcdir)/development.mk

Expand Down
26 changes: 10 additions & 16 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -108,35 +108,29 @@ AC_ARG_ENABLE([swig],
AS_IF([test x$enable_swig = xyes],
[AX_PKG_SWIG([3.0.0], [], [AC_MSG_ERROR([SWIG version 3 is required])])])
AS_IF([test -n "$SWIG"],
[SWIG_ENABLE_CXX]
[maybe_swig=swig])
[SWIG_ENABLE_CXX])
AM_CONDITIONAL([HAVE_SWIG], [test -n "$SWIG"])

# Python binding setup
AM_CONDITIONAL(PYTHON_BINDING, [test -n "$enable_python_binding" -a x$enable_python_binding != xno])
AM_COND_IF([PYTHON_BINDING],
[AS_IF([test x$enable_python_binding != xyes], [PYTHON_SITE_PKG=$enable_python_binding])]
[AX_PYTHON_DEVEL]
[maybe_swig=swig])
[AS_IF([test x$enable_python_binding != xyes], [PYTHON_SITE_PKG=$enable_python_binding],
[test "x$prefix" != xNONE], [PYTHON_SITE_PKG=$libdir/python])]
[AX_PYTHON_DEVEL])

# Ruby binding setup
AM_CONDITIONAL([RUBY_BINDING], [test -n "$enable_ruby_binding" -a x$enable_ruby_binding != xno])
AM_COND_IF([RUBY_BINDING],
[AS_IF([test x$enable_ruby_binding != xyes], [RUBY_EXT_LIB=$enable_ruby_binding])]
[AX_RUBY_EXT]
[maybe_swig=swig])
[AS_IF([test x$enable_ruby_binding != xyes], [RUBY_EXT_LIB=$enable_ruby_binding],
[test "x$prefix" != xNONE], [RUBY_EXT_LIB=$libdir/ruby])]
[AX_RUBY_EXT])

# Perl binding setup
AM_CONDITIONAL([PERL_BINDING], [test -n "$enable_perl_binding" -a x$enable_perl_binding != xno])
AM_COND_IF([PERL_BINDING],
[AS_IF([test x$enable_perl_binding != xyes], [PERL_EXT_LIB=$enable_perl_binding])]
[AX_PERL_EXT]
[maybe_swig=swig])

# Enable compilation of SWIG and bindings
AC_SUBST([MAYBE_SWIG], [$maybe_swig])
AS_IF([test -n "$maybe_swig"],
[AC_CONFIG_FILES([swig/Makefile])])
[AS_IF([test x$enable_perl_binding != xyes], [PERL_EXT_LIB=$enable_perl_binding],
[test "x$prefix" != xNONE], [PERL_EXT_LIB=$libdir/perl])]
[AX_PERL_EXT])

AC_OUTPUT

Expand Down
52 changes: 25 additions & 27 deletions swig/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
# SWIG
BUILT_SOURCES =
CLEANFILES =
EXTRA_DIST =
SWIG_SRC = jellyfish.i hash_counter.i hash_set.i mer_dna.i mer_file.i string_mers.i
SWIG_SRC = swig/jellyfish.i swig/hash_counter.i swig/hash_set.i \
swig/mer_dna.i swig/mer_file.i swig/string_mers.i

if HAVE_SWIG
SWIG_V_GEN = $(swig_v_GEN_$(V))
swig_v_GEN_ = $(swig_v_GEN_$(AM_DEFAULT_VERBOSITY))
swig_v_GEN_0 = @echo " SWIG " $@;
%/swig_wrap.cpp: $(SWIG_SRC)
$(SWIG_V_GEN)$(SWIG) -$* -I$(srcdir)/../include -o $@ $<
$(SWIG_V_GEN)$(SWIG) -$(notdir $*) -I$(srcdir)/../include -o $@ $<
else
%/swig_wrap.cc:
@echo >&2 SWIG >= 3.x.x not found. Make sure it is install and rerun configure
Expand All @@ -18,51 +16,51 @@ endif

# Python support
if PYTHON_BINDING
PYTHON_BUILT = python/swig_wrap.cpp python/jellyfish.py
PYTHON_BUILT = swig/python/swig_wrap.cpp swig/python/jellyfish.py
BUILT_SOURCES += $(PYTHON_BUILT)

pythonextdir = $(PYTHON_SITE_PKG)/jellyfish
pythonext_SCRIPTS = python/__init__.pyc
pythonext_LTLIBRARIES = python/_jellyfish.la
python__jellyfish_la_SOURCES = python/swig_wrap.cpp $(SWIG_SRC)
python__jellyfish_la_CPPFLAGS = $(PYTHON_CPPFLAGS) -I$(srcdir)/../include
python__jellyfish_la_LDFLAGS = -module
python__jellyfish_la_LIBADD = ../libjellyfish-2.0.la
pythonext_SCRIPTS = swig/python/__init__.pyc
pythonext_LTLIBRARIES = swig/python/_jellyfish.la
swig_python__jellyfish_la_SOURCES = swig/python/swig_wrap.cpp $(SWIG_SRC)
swig_python__jellyfish_la_CPPFLAGS = $(PYTHON_CPPFLAGS) -I$(srcdir)/include
swig_python__jellyfish_la_LDFLAGS = -module
swig_python__jellyfish_la_LIBADD = libjellyfish-2.0.la
CLEANFILES += $(PYTHON_BUILT) $(pythonext_SCRIPTS)
PYTHONC_V_GEN = $(pythonc_v_GEN_$(V))
pythonc_v_GEN_ = $(pythonc_v_GEN_$(AM_DEFAULT_VERBOSITY))
pythonc_v_GEN_0 = @echo " PYTHONC " $@;
%/__init__.pyc: %/jellyfish.py
$(PYTHONC_V_GEN)$(PYTHON) -c 'import py_compile, sys; py_compile.compile(sys.argv[1], sys.argv[2])' $< $@
python/jellyfish.py: python/swig_wrap.cpp
swig/python/jellyfish.py: swig/python/swig_wrap.cpp
EXTRA_DIST += $(PYTHON_BUILT)
endif

# Ruby support
if RUBY_BINDING
RUBY_BUILT = ruby/swig_wrap.cpp
RUBY_BUILT = swig/ruby/swig_wrap.cpp
BUILT_SOURCES += $(RUBY_BUILT)
rubyextdir = $(RUBY_EXT_LIB)
rubyext_LTLIBRARIES = ruby/jellyfish.la
ruby_jellyfish_la_SOURCES = ruby/swig_wrap.cpp $(SWIG_SRC)
ruby_jellyfish_la_CPPFLAGS = $(RUBY_EXT_CFLAGS) -I$(srcdir)/../include
ruby_jellyfish_la_LDFLAGS = -module
ruby_jellyfish_la_LIBADD = ../libjellyfish-2.0.la
rubyext_LTLIBRARIES = swig/ruby/jellyfish.la
swig_ruby_jellyfish_la_SOURCES = swig/ruby/swig_wrap.cpp $(SWIG_SRC)
swig_ruby_jellyfish_la_CPPFLAGS = $(RUBY_EXT_CFLAGS) -I$(srcdir)/include
swig_ruby_jellyfish_la_LDFLAGS = -module
swig_ruby_jellyfish_la_LIBADD = libjellyfish-2.0.la
CLEANFILES += $(RUBY_BUILT)
endif

# Perl5 support
if PERL_BINDING
PERL_BUILT = perl5/swig_wrap.cpp perl5/jellyfish.pm
PERL_BUILT = swig/perl5/swig_wrap.cpp swig/perl5/jellyfish.pm
BUILT_SOURCES += $(PERL_BUILT)
perlextdir = $(PERL_EXT_LIB)
perlext_SCRIPTS = perl5/jellyfish.pm
perlext_LTLIBRARIES = perl5/jellyfish.la
perl5_jellyfish_la_SOURCES = perl5/swig_wrap.cpp $(SWIG_SRC)
perl5_jellyfish_la_CPPFLAGS = $(PERL_EXT_CPPFLAGS) -I$(PERL_EXT_INC) -I$(srcdir)/../include
perl5_jellyfish_la_LDFLAGS = -module
perl5_jellyfish_la_LIBADD = ../libjellyfish-2.0.la
perlext_SCRIPTS = swig/perl5/jellyfish.pm
perlext_LTLIBRARIES = swig/perl5/jellyfish.la
swig_perl5_jellyfish_la_SOURCES = swig/perl5/swig_wrap.cpp $(SWIG_SRC)
swig_perl5_jellyfish_la_CPPFLAGS = $(PERL_EXT_CPPFLAGS) -I$(PERL_EXT_INC) -I$(srcdir)/include
swig_perl5_jellyfish_la_LDFLAGS = -module
swig_perl5_jellyfish_la_LIBADD = libjellyfish-2.0.la
CLEANFILES += $(PERL5_BUILT)
perl5/jellyfish.pm: perl5/swig_wrap.cpp
swig/perl5/jellyfish.pm: swig/perl5/swig_wrap.cpp
EXTRA_DIST += $(PERL_BUILT)
endif

0 comments on commit 623eafa

Please sign in to comment.