From 88256c9ddad271427153d0cbc3db397345d372e0 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Mon, 7 Oct 2019 11:46:05 +1000 Subject: build: Check for inline support To ensure that linenoise.c can build, even for strict c89 Add cc-check-inline in autosetup/jim-misc.auto Signed-off-by: Steve Bennett --- auto.def | 3 +++ autosetup/jim-misc.auto | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 autosetup/jim-misc.auto diff --git a/auto.def b/auto.def index 615f157..d6ab2ec 100644 --- a/auto.def +++ b/auto.def @@ -297,6 +297,9 @@ if {[opt-bool-or-full lineedit]} { define USE_LINENOISE define-append PARSE_UNIDATA_FLAGS -width lappend extra_objs linenoise.o + if {[cc-check-inline] && [is-defined inline]} { + define-append CCOPTS -Dinline=[get-define inline] + } } } if {[opt-bool references]} { diff --git a/autosetup/jim-misc.auto b/autosetup/jim-misc.auto new file mode 100644 index 0000000..cf13592 --- /dev/null +++ b/autosetup/jim-misc.auto @@ -0,0 +1,33 @@ +# @cc-check-inline +# +# The equivalent of the 'AC_C_INLINE' macro. +# +# defines 'HAVE_INLINE' if inline is available, +# and defines 'inline' to be __inline__ or __inline if necessary +# or to "" if not available. +# +# Returns 1 if 'inline' is available or 0 otherwise +# +proc cc-check-inline {} { + msg-checking "Checking for inline support..." + set ok 0 + foreach i {inline __inline__ __inline} { + if {[cctest -declare "#ifndef __cplusplus\nstatic $i void testfunc__(void);\n#endif"]} { + incr ok + break + } + } + if {$ok} { + if {$i eq "inline"} { + msg-result yes + } else { + msg-result $i + define inline $i + } + } else { + define inline "" + msg-result no + } + define-feature inline $ok + return $ok +} -- cgit v1.1