-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathconfigure.ac.in
More file actions
167 lines (139 loc) · 5.51 KB
/
configure.ac.in
File metadata and controls
167 lines (139 loc) · 5.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([libosal], [PACKAGE_VERSION], [Robert Burger <robert.burger@dlr.de>])
AC_CANONICAL_TARGET
# Automake initialization
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
#AM_INIT_AUTOMAKE([-Wall -Werror foreign silent-rules subdir-objects])
#m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
AC_CONFIG_SRCDIR([src])
AC_CONFIG_HEADERS([config.h include/libosal/osal.h])
AC_CONFIG_MACRO_DIR([m4])
AX_PREFIX_CONFIG_H(include/libosal/config.h) # prep mylib/_config.h from it..
# Checks for programs.
AC_PROG_CC
# we test the posix API with gtest, which requires C++
AC_PROG_CXX
AC_PROG_LIBTOOL
LT_INIT
LIBOSAL_BUILD_POSIX=false
LIBOSAL_BUILD_MINGW32=false
LIBOSAL_BUILD_VXWORKS=false
LIBOSAL_BUILD_PIKEOS=false
LIBOSAL_BUILD_WIN32=false
case $target_os in
mingw32*)
LIBOSAL_BUILD_POSIX=true
LIBOSAL_BUILD_MINGW32=true
AC_DEFINE([LIBOSAL_BUILD_POSIX], [true], [Use POSIX build on windows mingw32])
AC_DEFINE([LIBOSAL_BUILD_MINGW32], [true], [Use MINGW32 build on windows mingw32])
AX_APPEND_FLAG([-DPTW32_STATIC_LIB], [CFLAGS])
;;
linux*)
LIBOSAL_BUILD_POSIX=true
AC_DEFINE([LIBOSAL_BUILD_POSIX], [true], [Use POSIX build on linux])
;;
vxworks*)
LIBOSAL_BUILD_VXWORKS=true
AC_DEFINE([LIBOSAL_BUILD_VXWORKS], [true], [Use VxWorks build])
;;
pikeos*)
LIBOSAL_BUILD_PIKEOS=true
AC_DEFINE([LIBOSAL_BUILD_PIKEOS], [true], [Use PikeOS build])
CFLAGS="$CFLAGS -Wno-suggest-attribute=format -Wno-error=suggest-attribute=format"
;;
esac
if test x$LIBOSAL_BUILD_POSIX == xtrue; then
AC_DEFINE([HAVE_ENOTRECOVERABLE], [], [Check if errno ENOTRECOVERABLE is present.])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
#include <errno.h>
],[
int ret = ENOTRECOVERABLE;
])], [AC_DEFINE([HAVE_ENOTRECOVERABLE], [1])],
[AC_DEFINE([HAVE_ENOTRECOVERABLE], [0])])
AC_DEFINE([HAVE_SIGSTOP], [], [Check if signal SIGSTOP is present.])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
#include <signal.h>
],[
int ret = SIGSTOP;
])], [AC_DEFINE([HAVE_SIGSTOP], [1])],
[AC_DEFINE([HAVE_SIGSTOP], [0])])
AC_DEFINE([HAVE_SIGCONT], [], [Check if signal SIGCONT is present.])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
#include <signal.h>
],[
int ret = SIGCONT;
])], [AC_DEFINE([HAVE_SIGCONT], [1])],
[AC_DEFINE([HAVE_SIGCONT], [0])])
PTHREAD_LIBS=""
RT_LIBS=""
AC_DEFINE([HAVE_PTHREAD_MUTEXATTR_SETROBUST], [], [Check if posix function pthread_mutexattr_setrobust present.])
AC_CHECK_LIB(pthread, pthread_mutexattr_setrobust,
[AC_DEFINE([HAVE_PTHREAD_MUTEXATTR_SETROBUST], [1])
PTHREAD_LIBS="-lpthread"],
[AC_DEFINE([HAVE_PTHREAD_MUTEXATTR_SETROBUST], [0])])
AC_DEFINE([HAVE_PTHREAD_SETAFFINITY_NP], [], [Check if posix function pthread_setaffinity_np present.])
AC_CHECK_LIB(pthread, pthread_setaffinity_np,
[AC_DEFINE([HAVE_PTHREAD_SETAFFINITY_NP], [1])
PTHREAD_LIBS="-lpthread"],
[AC_DEFINE([HAVE_PTHREAD_SETAFFINITY_NP], [0])])
AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIBS="-lpthread")
AC_CHECK_LIB(rt, clock_gettime, RT_LIBS="-lrt")
AC_SUBST(PTHREAD_LIBS)
AC_SUBST(RT_LIBS)
fi
AC_CHECK_LIB(m, sqrt, MATH_LIBS="-lm")
AC_SUBST(MATH_LIBS)
AM_CONDITIONAL([LIBOSAL_BUILD_POSIX], [ test x$LIBOSAL_BUILD_POSIX = xtrue])
AM_CONDITIONAL([LIBOSAL_BUILD_MINGW32], [ test x$LIBOSAL_BUILD_MINGW32 = xtrue])
AM_CONDITIONAL([LIBOSAL_BUILD_VXWORKS], [ test x$LIBOSAL_BUILD_VXWORKS = xtrue])
AM_CONDITIONAL([LIBOSAL_BUILD_PIKEOS], [ test x$LIBOSAL_BUILD_PIKEOS = xtrue])
AM_CONDITIONAL([LIBOSAL_BUILD_WIN32], [ test x$LIBOSAL_BUILD_WIN32 = xtrue])
# Checks for libraries.
# Checks for header files.
AC_CHECK_HEADERS([stdint.h])
AC_CHECK_HEADERS([math.h])
AC_CHECK_HEADERS([sys/mman.h], HAVE_SYS_MMAN_H=true, HAVE_SYS_MMAN_H=false)
AC_CHECK_HEADERS([mqueue.h], HAVE_MQUEUE_H=true, HAVE_MQUEUE_H=false)
dnl check for sys/prctl for setting thread name on Linux
AC_CHECK_HEADERS([sys/prctl.h], [], [], [AC_INCLUDES_DEFAULT])
# Checks for header files.
AC_CHECK_HEADERS([p4ext_threads.h])
# Check support for -mrdseed
AS_IF([test "$ac_cv_header_p4ext_threads_h" = "yes"], [
AC_DEFINE([HAVE_P4_MUTEX_INIT_EXT], [], [Check if pikeos support p4_mutext_init_ext.])
CFLAGS_save=$CFLAGS
CFLAGS="$CFLAGS -Werror"
XXX_PROGRAM="
#include <p4ext_threads.h>
int main(void) {
P4_mutex_t pikeos_mtx;
P4_uint32_t flags = 0u;
P4_prio_t ceil_prio = 0u;
p4_mutex_init_ext(&pikeos_mtx, flags, ceil_prio);
return 0;
}
"
AC_MSG_CHECKING([whether pikeos support for p4_mutex_init_ext])
AC_COMPILE_IFELSE(
[AC_LANG_SOURCE([$XXX_PROGRAM])],
[
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_P4_MUTEX_INIT_EXT], [1])
],
[
AC_MSG_RESULT([no])
AC_DEFINE([HAVE_P4_MUTEX_INIT_EXT], [0])
]
)
CFLAGS=$CFLAGS_save
])
AM_CONDITIONAL([HAVE_SYS_MMAN_H], [ test x$HAVE_SYS_MMAN_H = xtrue])
AM_CONDITIONAL([HAVE_MQUEUE_H], [ test x$HAVE_MQUEUE_H = xtrue])
# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_UINT32_T
# Checks for library functions.
AC_CONFIG_FILES([Makefile src/Makefile src/tools/logger/Makefile src/tools/shmtest/Makefile tests/Makefile tests/posix/Makefile libosal.pc])
AC_OUTPUT