55
66lib_LTLIBRARIES =
77noinst_PROGRAMS =
8+ check_PROGRAMS =
89
910# ###############################################################################
1011# Global flags
@@ -34,9 +35,14 @@ AM_CXXFLAGS = \
3435# ###############################################################################
3536# AdafruitBBIO library
3637# ###############################################################################
37- lib_LTLIBRARIES += libadafruit-bbio.la
38+ # libadafruit-bbio1 - c++11 ABI
39+ # libadafruit-bbio0 - c++98 ABI
3840
39- libadafruit_bbio_la_SOURCES = \
41+ lib_LTLIBRARIES += \
42+ libadafruit-bbio1.la \
43+ libadafruit-bbio0.la
44+
45+ LIBSOURCES = \
4046 c_adc.c \
4147 c_pinmux.c \
4248 c_pwm.c \
@@ -47,19 +53,45 @@ libadafruit_bbio_la_SOURCES = \
4753 library/gpio.cpp \
4854 library/pwm.cpp
4955
50- libadafruit_bbio_la_LDFLAGS = $(AM_LDFLAGS ) -shared
56+ libadafruit_bbio1_la_SOURCES = $(LIBSOURCES )
57+ libadafruit_bbio0_la_SOURCES = $(LIBSOURCES )
58+
59+ libadafruit_bbio1_la_CXXFLAGS = $(AM_CXXFLAGS ) -D_GLIBCXX_USE_CXX11_ABI=1
60+ libadafruit_bbio0_la_CXXFLAGS = $(AM_CXXFLAGS ) -D_GLIBCXX_USE_CXX11_ABI=0
61+
62+ libadafruit_bbio1_la_LDFLAGS = $(AM_LDFLAGS ) -shared
63+ libadafruit_bbio0_la_LDFLAGS = $(AM_LDFLAGS ) -shared
5164
5265# ###############################################################################
5366# Examples
5467# ###############################################################################
5568noinst_PROGRAMS += examples/cpp/pwm
5669
5770examples_cpp_pwm_SOURCES = examples/cpp/pwm.cpp
58- examples_cpp_pwm_LDADD = libadafruit-bbio .la
71+ examples_cpp_pwm_LDADD = libadafruit-bbio1 .la
5972examples_cpp_pwm_LDFLAGS = $(AM_LDFLAGS ) -lpthread -static
6073
6174noinst_PROGRAMS += examples/cpp/gpio
6275
6376examples_cpp_gpio_SOURCES = examples/cpp/gpio.cpp
64- examples_cpp_gpio_LDADD = libadafruit-bbio .la
77+ examples_cpp_gpio_LDADD = libadafruit-bbio1 .la
6578examples_cpp_gpio_LDFLAGS = $(AM_LDFLAGS ) -lpthread -static
79+
80+ # ###############################################################################
81+ # Tests
82+ # ###############################################################################
83+ TESTS = $(check_PROGRAMS )
84+
85+ check_PROGRAMS += test/cpp/abi-old
86+
87+ test_cpp_abi_old_SOURCES = test/cpp/abi.cpp
88+ test_cpp_abi_old_CXXFLAGS = $(AM_CXXFLAGS ) -pthread -D_GLIBCXX_USE_CXX11_ABI=0
89+ test_cpp_abi_old_LDADD = libadafruit-bbio0.la
90+ test_cpp_abi_old_LDFLAGS = $(AM_LDFLAGS ) -lpthread -static
91+
92+ check_PROGRAMS += test/cpp/abi-new
93+
94+ test_cpp_abi_new_SOURCES = test/cpp/abi.cpp
95+ test_cpp_abi_new_CXXFLAGS = $(AM_CXXFLAGS ) -pthread -D_GLIBCXX_USE_CXX11_ABI=1
96+ test_cpp_abi_new_LDADD = libadafruit-bbio1.la
97+ test_cpp_abi_new_LDFLAGS = $(AM_LDFLAGS ) -lpthread -static
0 commit comments