diff --git a/configure.ac b/configure.ac index 43fe79fab..a052706b0 100644 --- a/configure.ac +++ b/configure.ac @@ -278,6 +278,8 @@ AC_DEFINE([SAI_GIT_REVISION], "[m4_esyscmd([echo -n $(cd SAI && git rev-parse --short HEAD || echo 0000000)])]", [SAI git revision information]) +AM_CONDITIONAL(CXX_IS_GCC, test x$CXX = xg++) + AC_OUTPUT(Makefile meta/Makefile lib/Makefile diff --git a/pyext/py2/Makefile.am b/pyext/py2/Makefile.am index 6c6ed8ef6..3bed9920c 100644 --- a/pyext/py2/Makefile.am +++ b/pyext/py2/Makefile.am @@ -4,11 +4,27 @@ SOURCES=../pysairedis.h ../pysairedis.cpp pkgpython_PYTHON = pysairedis.py __init__.py pkgpyexec_LTLIBRARIES = _pysairedis.la +# +# -fno-var-tracking-assignments is set for the GCC compiler +# suite to improve build performance. pysairedis_wrap.cpp is +# automatically generated by SWIG, so it's not a big loss. +# +if CXX_IS_GCC +CXXFLAGS_COMPILER = "-fno-var-tracking-assignments" +else +CXXFLAGS_COMPILER = "" +endif + AM_CXXFLAGS = $(SAIINC) -I$(top_srcdir)/lib -I.. BUILT_SOURCES = pysairedis_wrap.cpp -_pysairedis_la_SOURCES = pysairedis_wrap.cpp $(SOURCES) +libpysairedis_wrap_la_SOURCES = pysairedis_wrap.cpp +libpysairedis_wrap_la_CXXFLAGS = $(PYTHON2_CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS_COMMON) \ + -Wno-cast-qual -Wno-shadow -Wno-redundant-decls -Wno-conversion $(CXXFLAGS_COMPILER) $(NO_CAST_FUNCTION_TYPE) + +noinst_LTLIBRARIES = libpysairedis_wrap.la +_pysairedis_la_SOURCES = $(SOURCES) _pysairedis_la_CXXFLAGS = $(PYTHON2_CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS_COMMON) \ -Wno-cast-qual -Wno-shadow -Wno-redundant-decls -Wno-conversion $(NO_CAST_FUNCTION_TYPE) @@ -18,7 +34,7 @@ _pysairedis_la_LDFLAGS = -module \ -L$(top_srcdir)/meta/.libs -lsaimetadata -lsaimeta \ -lzmq -_pysairedis_la_LIBADD = $(PYTHON2_LIBS) +_pysairedis_la_LIBADD = $(PYTHON2_LIBS) libpysairedis_wrap.la SWIG_FLAG = -Wall -c++ -python -keyword if ARCH64 diff --git a/pyext/py3/Makefile.am b/pyext/py3/Makefile.am index e3b936499..5e5e369b5 100644 --- a/pyext/py3/Makefile.am +++ b/pyext/py3/Makefile.am @@ -4,11 +4,28 @@ SOURCES=../pysairedis.h ../pysairedis.cpp pkgpython3_PYTHON = pysairedis.py __init__.py pkgpy3exec_LTLIBRARIES = _pysairedis.la +# +# -fno-var-tracking-assignments is set for the GCC compiler +# suite to improve build performance. pysairedis_wrap.cpp is +# automatically generated by SWIG, so it's not a big loss. +# +if CXX_IS_GCC +CXXFLAGS_COMPILER = "-fno-var-tracking-assignments" +else +CXXFLAGS_COMPILER = "" +endif + AM_CXXFLAGS = $(SAIINC) -I$(top_srcdir)/lib -I.. BUILT_SOURCES = pysairedis_wrap.cpp -_pysairedis_la_SOURCES = pysairedis_wrap.cpp $(SOURCES) + +libpysairedis_wrap_la_SOURCES = pysairedis_wrap.cpp +libpysairedis_wrap_la_CXXFLAGS = $(PYTHON3_CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS_COMMON) \ + -Wno-cast-qual -Wno-shadow -Wno-redundant-decls -Wno-conversion $(CXXFLAGS_COMPILER) $(NO_CAST_FUNCTION_TYPE) + +noinst_LTLIBRARIES = libpysairedis_wrap.la +_pysairedis_la_SOURCES = $(SOURCES) _pysairedis_la_CXXFLAGS = $(PYTHON3_CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS_COMMON) \ -Wno-cast-qual -Wno-shadow -Wno-redundant-decls -Wno-conversion $(NO_CAST_FUNCTION_TYPE) @@ -18,7 +35,7 @@ _pysairedis_la_LDFLAGS = -module \ -L$(top_srcdir)/meta/.libs -lsaimetadata -lsaimeta \ -lzmq -_pysairedis_la_LIBADD = $(PYTHON3_BLDLIBRARY) +_pysairedis_la_LIBADD = $(PYTHON3_BLDLIBRARY) libpysairedis_wrap.la SWIG_FLAG = -Wall -c++ -python -keyword if ARCH64