Skip to content

Commit 8ec69be

Browse files
authored
Merge pull request #3208 from eduar-hte/macos-apple-silicon
Build on macOS with Apple silicon (arm64)
2 parents f04dcc0 + e31ff7e commit 8ec69be

File tree

4 files changed

+60
-24
lines changed

4 files changed

+60
-24
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
runs-on: ${{ matrix.os }}
7979
strategy:
8080
matrix:
81-
os: [macos-12]
81+
os: [macos-14]
8282
configure:
8383
- {label: "with parser generation", opt: "--enable-parser-generation" }
8484
- {label: "wo curl", opt: "--without-curl" }
@@ -91,10 +91,12 @@ jobs:
9191
- {label: "with pcre2", opt: "--with-pcre2" }
9292
steps:
9393
- name: Setup Dependencies
94-
# autoconf, curl, pcre2 not installed because they're already
94+
# curl, pcre2 not installed because they're already
9595
# included in the image
9696
run: |
97-
brew install automake \
97+
brew install autoconf \
98+
automake \
99+
libtool \
98100
yajl \
99101
lmdb \
100102
lua \

build/pcre.m4

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,41 @@ else
2727
2828
AC_MSG_CHECKING([for libpcre config script])
2929
30-
for x in ${test_paths}; do
31-
dnl # Determine if the script was specified and use it directly
32-
if test ! -d "$x" -a -e "$x"; then
33-
PCRE_CONFIG=$x
34-
pcre_path="no"
35-
break
36-
fi
30+
AC_CHECK_PROG([PCRE_CONFIG_IN_ENV], [pcre-config], [yes], [no])
31+
32+
if test "$PCRE_CONFIG_IN_ENV" = "yes"; then
33+
AC_MSG_NOTICE([pcre-config found in envinronment])
34+
35+
PCRE_CONFIG=pcre-config
36+
pcre_path="no"
37+
else
38+
AC_MSG_NOTICE([pcre-config not found in environment. checking known paths])
3739
38-
dnl # Try known config script names/locations
39-
for PCRE_CONFIG in pcre-config; do
40-
if test -e "${x}/bin/${PCRE_CONFIG}"; then
41-
pcre_path="${x}/bin"
40+
for x in ${test_paths}; do
41+
dnl # Determine if the script was specified and use it directly
42+
if test ! -d "$x" -a -e "$x"; then
43+
PCRE_CONFIG=$x
44+
pcre_path="no"
4245
break
43-
elif test -e "${x}/${PCRE_CONFIG}"; then
44-
pcre_path="${x}"
46+
fi
47+
48+
dnl # Try known config script names/locations
49+
for PCRE_CONFIG in pcre-config; do
50+
if test -e "${x}/bin/${PCRE_CONFIG}"; then
51+
pcre_path="${x}/bin"
52+
break
53+
elif test -e "${x}/${PCRE_CONFIG}"; then
54+
pcre_path="${x}"
55+
break
56+
else
57+
pcre_path=""
58+
fi
59+
done
60+
if test -n "$pcre_path"; then
4561
break
46-
else
47-
pcre_path=""
4862
fi
4963
done
50-
if test -n "$pcre_path"; then
51-
break
52-
fi
53-
done
64+
fi
5465
5566
if test -n "${pcre_path}"; then
5667
if test "${pcre_path}" != "no"; then

build/yajl.m4

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,29 @@ else
7878
# fi
7979
fi
8080
81+
# FIX: if the include directory in CFLAGS ends with "include/yajl",
82+
# remove the suffix "/yajl". the library header files are included
83+
# using the prefix (for example, #include <yajl/yajl_tree.h>), and
84+
# this is even the case for the library itself (for example,
85+
# yajl_tree.h includes yajl/yajl_common.h).
86+
87+
new_cflags=""
88+
89+
for flag in $YAJL_CFLAGS; do
90+
case "$flag" in
91+
-I*/include/yajl)
92+
new_flag="${flag%/yajl}"
93+
new_cflags="$new_cflags $new_flag"
94+
;;
95+
*)
96+
new_cflags="$new_cflags $flag"
97+
;;
98+
esac
99+
done
100+
101+
YAJL_CFLAGS="$new_cflags"
102+
103+
81104
if test -z "${YAJL_LDADD}"; then
82105
if test -z "${YAJL_MANDATORY}"; then
83106
if test -z "${YAJL_DISABLED}"; then

configure.ac

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,8 @@ AC_CHECK_HEADERS([iostream])
164164
AC_CHECK_HEADERS([sys/utsname.h])
165165

166166

167-
# ??
168-
LT_INIT([dlopen])
167+
# Initialize libtool
168+
LT_INIT
169169

170170
# Identify platform
171171
AC_CANONICAL_HOST

0 commit comments

Comments
 (0)