1From 1ef6bdaeb0463a208a14e5d90646ce337df738fc Mon Sep 17 00:00:00 2001
2From: Romain Naour <romain.naour@smile.fr>
3Date: Sun, 1 Apr 2018 15:38:55 +0200
4Subject: [PATCH] configure.in: convert AC_RUN_IFELSE to AC_CHECK_MEMBERS
5
6With AC_CHECK_MEMBERS, we don't need to compile and run a test program
7to check if a daq structure element is defined.
8
9Also check DAQ_Data_Channel_Params_t with params.flags
10
11typedef struct _DAQ_Data_Channel_Params_t
12{
13    unsigned flags;     /* DAQ_DATA_CHANNEL_* flags*/
14    unsigned timeout_ms;/* timeout of the data channel in milliseconds */
15    unsigned length;    /* [Future] length of the data associated with the data channel */
16    uint8_t* data;      /* [Future] opaque data blob to return with the data channel */
17} DAQ_Data_Channel_Params_t;
18
19https://github.com/Xiche/libdaq/blob/master/api/daq_common.h
20
21Signed-off-by: Romain Naour <romain.naour@smile.fr>
22Cc: Sergio Prado <sergio.prado@e-labworks.com>
23---
24 configure.in | 143 +++++++++++++++++------------------------------------------
25 1 file changed, 41 insertions(+), 102 deletions(-)
26
27diff --git a/configure.in b/configure.in
28index 938409f..571322b 100644
29--- a/configure.in
30+++ b/configure.in
31@@ -718,17 +718,11 @@ fi
32 AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta] [daq_dp_add_dc])
33
34 AC_MSG_CHECKING([for daq real addresses])
35-AC_RUN_IFELSE(
36-[AC_LANG_PROGRAM(
37-[[
38-#include <daq.h>
39-]],
40-[[
41-   DAQ_PktHdr_t hdr;
42-   hdr.n_real_dPort = 0;
43-]])],
44-[have_daq_real_addresses="yes"],
45-[have_daq_real_addresses="no"])
46+
47+AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.n_real_dPort],
48+    [have_daq_real_addresses="yes"],
49+    [have_daq_real_addresses="no"],
50+    [[#include <daq.h>]])
51 AC_MSG_RESULT($have_daq_real_addresses)
52 if test "x$have_daq_real_addresses" = "xyes"; then
53     AC_DEFINE([HAVE_DAQ_REAL_ADDRESSES],[1],
54@@ -756,17 +750,11 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then
55 fi
56
57 AC_MSG_CHECKING([for daq address space ID])
58-AC_RUN_IFELSE(
59-[AC_LANG_PROGRAM(
60-[[
61-#include <daq.h>
62-]],
63-[[
64-   DAQ_PktHdr_t hdr;
65-   hdr.address_space_id = 0;
66-]])],
67-[have_daq_address_space_id="yes"],
68-[have_daq_address_space_id="no"])
69+
70+AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.address_space_id],
71+    [have_daq_address_space_id="yes"],
72+    [have_daq_address_space_id="no"],
73+    [[#include <daq.h>]])
74 AC_MSG_RESULT($have_daq_address_space_id)
75 if test "x$have_daq_address_space_id" = "xyes"; then
76     AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
77@@ -774,17 +762,10 @@ if test "x$have_daq_address_space_id" = "xyes"; then
78 fi
79
80 AC_MSG_CHECKING([for daq flow ID])
81-AC_RUN_IFELSE(
82-[AC_LANG_PROGRAM(
83-[[
84-#include <daq.h>
85-]],
86-[[
87-   DAQ_PktHdr_t hdr;
88-   hdr.flow_id = 0;
89-]])],
90-[have_daq_flow_id="yes"],
91-[have_daq_flow_id="no"])
92+AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.flow_id],
93+    [have_daq_flow_id="yes"],
94+    [have_daq_flow_id="no"],
95+    [[#include <daq.h>]])
96 AC_MSG_RESULT($have_daq_flow_id)
97 if test "x$have_daq_flow_id" = "xyes"; then
98     AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
99@@ -792,19 +773,10 @@ if test "x$have_daq_flow_id" = "xyes"; then
100 fi
101
102 AC_MSG_CHECKING([for daq extended flow modifiers])
103-AC_RUN_IFELSE(
104-[AC_LANG_PROGRAM(
105-[[
106-#include <daq.h>
107-]],
108-[[
109-   DAQ_ModFlow_t mod;
110-   mod.type = 0;
111-   mod.length = 0;
112-   mod.value = NULL;
113-]])],
114-[have_daq_ext_modflow="yes"],
115-[have_daq_ext_modflow="no"])
116+AC_CHECK_MEMBERS([DAQ_ModFlow_t mod.type, DAQ_ModFlow_t mod.length, DAQ_ModFlow_t mod.value],
117+    [have_daq_ext_modflow="yes"],
118+    [have_daq_ext_modflow="no"],
119+    [[#include <daq.h>]])
120 AC_MSG_RESULT($have_daq_ext_modflow)
121 if test "x$have_daq_ext_modflow" = "xyes"; then
122     CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_EXT_MODFLOW"
123@@ -813,19 +785,11 @@ if test "x$have_daq_ext_modflow" = "xyes"; then
124 fi
125
126 AC_MSG_CHECKING([for daq query flow])
127-AC_RUN_IFELSE(
128-[AC_LANG_PROGRAM(
129-[[
130-#include <daq.h>
131-]],
132-[[
133-   DAQ_QueryFlow_t mod;
134-   mod.type = 0;
135-   mod.length = 0;
136-   mod.value = NULL;
137-]])],
138-[have_daq_queryflow="yes"],
139-[have_daq_queryflow="no"])
140+
141+AC_CHECK_MEMBERS([DAQ_QueryFlow_t mod.type, DAQ_QueryFlow_t mod.length, DAQ_QueryFlow_t mod.value],
142+    [have_daq_queryflow="yes"],
143+    [have_daq_queryflow="no"],
144+    [[#include <daq.h>]])
145 AC_MSG_RESULT($have_daq_queryflow)
146 if test "x$have_daq_queryflow" = "xyes"; then
147     CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_QUERYFLOW"
148@@ -834,16 +798,11 @@ if test "x$have_daq_queryflow" = "xyes"; then
149 fi
150
151 AC_MSG_CHECKING([for daq data channel flags])
152-AC_RUN_IFELSE(
153-[AC_LANG_PROGRAM(
154-[[
155-#include <daq.h>
156-]],
157-[[
158-   DAQ_Data_Channel_Params_t params;
159-]])],
160-[have_daq_data_channel_flags="yes"],
161-[have_daq_data_channel_flags="no"])
162+
163+AC_CHECK_MEMBERS([DAQ_Data_Channel_Params_t params.flags],
164+    [have_daq_data_channel_flags="yes"],
165+    [have_daq_data_channel_flags="no"],
166+    [[#include <daq.h>]])
167 AC_MSG_RESULT($have_daq_data_channel_flags)
168 if test "x$have_daq_data_channel_flags" = "xyes"; then
169     CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_PARAMS"
170@@ -852,17 +811,10 @@ if test "x$have_daq_data_channel_flags" = "xyes"; then
171 fi
172
173 AC_MSG_CHECKING([for separate IP versions on pinhole endpoints])
174-AC_RUN_IFELSE(
175-[AC_LANG_PROGRAM(
176-[[
177-#include <daq.h>
178-]],
179-[[
180-   DAQ_DP_key_t dpKey;
181-   dpKey.src_af = 0;
182-]])],
183-[have_daq_data_channel_separate_ip_versions="yes"],
184-[have_daq_data_channel_separate_ip_versions="no"])
185+AC_CHECK_MEMBERS([DAQ_DP_key_t dpKey.src_af],
186+    [have_daq_data_channel_separate_ip_versions="yes"],
187+    [have_daq_data_channel_separate_ip_versions="no"],
188+    [[#include <daq.h>]])
189 AC_MSG_RESULT($have_daq_data_channel_separate_ip_versions)
190 if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then
191     CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_SEPARATE_IP_VERSIONS"
192@@ -889,17 +841,10 @@ if test "x$have_daq_verdict_retry" = "xyes"; then
193 fi
194
195 AC_MSG_CHECKING([for daq packet trace])
196-AC_RUN_IFELSE(
197-[AC_LANG_PROGRAM(
198-[[
199-#include <daq.h>
200-]],
201-[[
202-   DAQ_PktHdr_t hdr;
203-   hdr.flags = DAQ_PKT_FLAG_TRACE_ENABLED;
204-]])],
205-[have_daq_packet_trace="yes"],
206-[have_daq_packet_trace="no"])
207+AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.flags],
208+    [have_daq_packet_trace="yes"],
209+    [have_daq_packet_trace="no"],
210+    [[#include <daq.h>]])
211 AC_MSG_RESULT($have_daq_packet_trace)
212 if test "x$have_daq_packet_trace" = "xyes"; then
213     AC_DEFINE([HAVE_DAQ_PKT_TRACE],[1],
214@@ -909,17 +854,11 @@ else
215 fi
216
217 AC_MSG_CHECKING([for daq verdict reason])
218-AC_RUN_IFELSE(
219-[AC_LANG_PROGRAM(
220-[[
221-#include <daq.h>
222-]],
223-[[
224-   DAQ_ModFlow_t fl;
225-   fl.type = DAQ_MODFLOW_TYPE_VER_REASON;
226-]])],
227-[have_daq_verdict_reason="yes"],
228-[have_daq_verdict_reason="no"])
229+
230+AC_CHECK_MEMBERS([DAQ_ModFlow_t fl.type],
231+    [have_daq_verdict_reason="yes"],
232+    [have_daq_verdict_reason="no"],
233+    [[#include <daq.h>]])
234 AC_MSG_RESULT($have_daq_verdict_reason)
235 if test "x$have_daq_verdict_reason" = "xyes"; then
236     AC_DEFINE([HAVE_DAQ_VERDICT_REASON],[1],
237--
2382.14.3
239
240