blob: 2c73af66d55810df2906bc0a5c001a9e7641c8f6 [file] [log] [blame]
Pau Espin Pedrold4c3dc82023-01-18 17:04:04 +01001# This is _NOT_ the library release version, it's an API version.
2# Please read chapter "Library interface versions" of the libtool documentation
3# before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html
4LIBVERSION=19:0:0
5
6AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
7AM_CFLAGS = -Wall $(TALLOC_CFLAGS) $(PTHREAD_CFLAGS) $(LIBSCTP_CFLAGS) $(LIBMNL_CFLAGS)
8
9if ENABLE_PSEUDOTALLOC
10AM_CPPFLAGS += -I$(top_srcdir)/src/pseudotalloc
11endif
12
13lib_LTLIBRARIES = libosmocore.la
14
15libosmocore_la_LIBADD = $(BACKTRACE_LIB) $(TALLOC_LIBS) $(LIBRARY_RT) $(PTHREAD_LIBS) $(LIBSCTP_LIBS)
16libosmocore_la_SOURCES = context.c timer.c timer_gettimeofday.c timer_clockgettime.c \
17 select.c signal.c msgb.c bits.c \
18 bitvec.c bitcomp.c counter.c fsm.c \
19 write_queue.c utils.c socket.c \
20 logging.c logging_syslog.c logging_gsmtap.c rate_ctr.c \
21 gsmtap_util.c crc16.c panic.c backtrace.c \
22 conv.c application.c rbtree.c strrb.c \
23 loggingrb.c crc8gen.c crc16gen.c crc32gen.c crc64gen.c \
24 macaddr.c stat_item.c stats.c stats_statsd.c prim.c \
25 stats_tcp.c \
26 conv_acc.c conv_acc_generic.c sercomm.c prbs.c \
27 isdnhdlc.c \
28 tdef.c \
29 thread.c \
30 time_cc.c \
31 sockaddr_str.c \
32 use_count.c \
33 exec.c \
34 it_q.c \
35 probes.d \
36 base64.c \
37 $(NULL)
38
39if HAVE_SSSE3
40libosmocore_la_SOURCES += conv_acc_sse.c
41if HAVE_SSE4_1
42conv_acc_sse.lo : AM_CFLAGS += -mssse3 -msse4.1
43else
44conv_acc_sse.lo : AM_CFLAGS += -mssse3
45endif
46
47if HAVE_AVX2
48libosmocore_la_SOURCES += conv_acc_sse_avx.c
49if HAVE_SSE4_1
50conv_acc_sse_avx.lo : AM_CFLAGS += -mssse3 -mavx2 -msse4.1
51else
52conv_acc_sse_avx.lo : AM_CFLAGS += -mssse3 -mavx2
53endif
54endif
55endif
56
57if HAVE_NEON
58libosmocore_la_SOURCES += conv_acc_neon.c
59# conv_acc_neon.lo : AM_CFLAGS += -mfpu=neon no, could as well be vfp with neon
60endif
61
62BUILT_SOURCES = crc8gen.c crc16gen.c crc32gen.c crc64gen.c
63
64EXTRA_DIST = \
65 conv_acc_sse_impl.h \
66 conv_acc_neon_impl.h \
67 crcXXgen.c.tpl \
68 stat_item_internal.h \
69 $(NULL)
70
71libosmocore_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined
72
73if ENABLE_PLUGIN
74libosmocore_la_SOURCES += plugin.c
75libosmocore_la_LIBADD += $(LIBRARY_DLOPEN)
76endif
77
78if ENABLE_MSGFILE
79libosmocore_la_SOURCES += msgfile.c
80endif
81
82if ENABLE_SERIAL
83libosmocore_la_SOURCES += serial.c
84endif
85
86if ENABLE_SYSTEMD_LOGGING
87libosmocore_la_SOURCES += logging_systemd.c
88libosmocore_la_LIBADD += $(SYSTEMD_LIBS)
89endif
90
91if ENABLE_LIBMNL
92libosmocore_la_SOURCES += mnl.c
93libosmocore_la_LIBADD += $(LIBMNL_LIBS)
94endif
95
96if ENABLE_SYSTEMTAP
97probes.h: probes.d
98 $(DTRACE) -C -h -s $< -o $@
99
100probes.lo: probes.d
101 $(LIBTOOL) --mode=compile $(AM_V_lt) --tag=CC env CFLAGS="$(CFLAGS)" $(DTRACE) -C -G -s $< -o $@
102
103BUILT_SOURCES += probes.h probes.lo
104libosmocore_la_LIBADD += probes.lo
105endif
106
107crc%gen.c: crcXXgen.c.tpl
108 $(AM_V_GEN)sed -e's/XX/$*/g' $< > $@