mirror of
https://github.com/urbit/shrub.git
synced 2024-11-24 13:06:09 +03:00
compat: add m1brew
This commit is contained in:
parent
e7ac8c0c2a
commit
23634f66f3
@ -3,7 +3,7 @@
|
||||
"branch": "master",
|
||||
"description": "A command line tool and library for transferring data with URL syntax",
|
||||
"homepage": "http://curl.se/",
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"include": "include",
|
||||
"lib": "lib/.libs",
|
||||
"prepare": "autoreconf -vfi && ./configure --disable-shared --disable-ldap --disable-rtsp --without-brotli --without-libidn2 --without-libpsl --without-nghttp2 --with-openssl",
|
||||
@ -20,7 +20,7 @@
|
||||
"branch": "mdb.master",
|
||||
"description": "LMDB library",
|
||||
"homepage": "http://www.lmdb.tech/",
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"strip": 2,
|
||||
"make": "liblmdb.a"
|
||||
},
|
||||
@ -35,7 +35,7 @@
|
||||
"branch": "master",
|
||||
"description": "Optimized C library for ECDSA signatures and secret/public key operations on curve secp256k1.",
|
||||
"homepage": null,
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"include": "include",
|
||||
"lib": ".libs",
|
||||
"prepare": "./autogen.sh && ./configure --disable-shared --enable-module-recovery CFLAGS=-DSECP256K1_API=",
|
||||
@ -52,11 +52,14 @@
|
||||
"branch": "v1.x",
|
||||
"description": "Cross-platform asynchronous I/O",
|
||||
"homepage": "http://libuv.org/",
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"include": "include",
|
||||
"lib": ".libs",
|
||||
"prepare": "./autogen.sh && ./configure --disable-shared",
|
||||
"make": "libuv.la"
|
||||
"make": "libuv.la",
|
||||
"compat": {
|
||||
"m1brew": false
|
||||
}
|
||||
},
|
||||
"owner": "libuv",
|
||||
"repo": "libuv",
|
||||
@ -66,17 +69,22 @@
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"ent": {
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"prepare": "./configure"
|
||||
}
|
||||
},
|
||||
"ge-additions": {
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"make": "CFLAGS=-I../ed25519"
|
||||
}
|
||||
},
|
||||
"libaes_siv": {
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"compat": {
|
||||
"m1brew": {
|
||||
"make": "CFLAGS=$(pkg-config --cflags openssl)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
"branch": "master",
|
||||
"description": "With argon2u. Based off https://github.com/P-H-C/phc-winner-argon2",
|
||||
"homepage": "",
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"include": ["include", "src/blake2"],
|
||||
"make": "libargon2.a"
|
||||
},
|
||||
@ -19,7 +19,7 @@
|
||||
"branch": "master",
|
||||
"description": "Submodule included by Urbit",
|
||||
"homepage": null,
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"strip": 1,
|
||||
"make": "all"
|
||||
},
|
||||
@ -35,10 +35,15 @@
|
||||
"branch": "master",
|
||||
"description": "H2O - the optimized HTTP/1, HTTP/2, HTTP/3 server",
|
||||
"homepage": "https://h2o.examp1e.net",
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"include": "include",
|
||||
"prepare": "cmake -G\"MSYS Makefiles\" .",
|
||||
"make": "libh2o"
|
||||
"prepare": "cmake .",
|
||||
"make": "libh2o",
|
||||
"compat": {
|
||||
"mingw": {
|
||||
"prepare": "cmake -G\"MSYS Makefiles\" ."
|
||||
}
|
||||
}
|
||||
},
|
||||
"owner": "h2o",
|
||||
"repo": "h2o",
|
||||
@ -76,7 +81,7 @@
|
||||
"branch": "master",
|
||||
"description": null,
|
||||
"homepage": null,
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"make": "libscrypt.a CFLAGS_EXTRA=-ffast-math"
|
||||
},
|
||||
"owner": "urbit",
|
||||
@ -91,7 +96,7 @@
|
||||
"branch": "master",
|
||||
"description": null,
|
||||
"homepage": null,
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"make": "static"
|
||||
},
|
||||
"owner": "urbit",
|
||||
@ -130,10 +135,18 @@
|
||||
"branch": "master",
|
||||
"description": null,
|
||||
"homepage": null,
|
||||
"mingw": {
|
||||
"pmnsh": {
|
||||
"include": "source/include",
|
||||
"lib": "build/Win64-MinGW-w64",
|
||||
"make": "-C build/Win64-MinGW-w64 libsoftfloat3.a"
|
||||
"compat": {
|
||||
"m1brew": {
|
||||
"lib": "build/template-FAST_INT64",
|
||||
"make": "-C build/template-FAST_INT64 libsoftfloat3.a"
|
||||
},
|
||||
"mingw": {
|
||||
"lib": "build/Win64-MinGW-w64",
|
||||
"make": "-C build/Win64-MinGW-w64 libsoftfloat3.a"
|
||||
}
|
||||
}
|
||||
},
|
||||
"owner": "urbit",
|
||||
"repo": "berkeley-softfloat-3",
|
||||
|
7
pkg/urbit/compat/m1brew/compat.mk
Normal file
7
pkg/urbit/compat/m1brew/compat.mk
Normal file
@ -0,0 +1,7 @@
|
||||
# paths to brew packages
|
||||
CFLAGS := $(CFLAGS) -I/opt/homebrew/include
|
||||
LDFLAGS := $(LDFLAGS) -L/opt/homebrew/lib
|
||||
# force linker to use static libraries
|
||||
LDFLAGS := $(shell compat/m1brew/use-static-libs.sh $(LDFLAGS))
|
||||
# add extra osx libraries
|
||||
LDFLAGS := $(LDFLAGS) -framework SystemConfiguration
|
13
pkg/urbit/compat/m1brew/ed25519.patch
Normal file
13
pkg/urbit/compat/m1brew/ed25519.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/Makefile
|
||||
@@ -0,0 +1,8 @@
|
||||
+.PHONY: all clean
|
||||
+
|
||||
+all: *.c *.h
|
||||
+ $(CC) -c -O3 -Wall -Werror *.c
|
||||
+ $(AR) rcs libed25519.a *.o
|
||||
+
|
||||
+clean:
|
||||
+ rm -f *.o *.a
|
12
pkg/urbit/compat/m1brew/ent.patch
Normal file
12
pkg/urbit/compat/m1brew/ent.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/configure b/configure
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -15,7 +15,7 @@ do
|
||||
log "Trying IMPL=$IMPL"
|
||||
|
||||
if IMPL=$impl make >/dev/null 2>/dev/null
|
||||
- then sed -i 's|$(error IMPL must be set)|IMPL='"$impl"'|' Makefile
|
||||
+ then sed -i "" 's|$(error IMPL must be set)|IMPL='"$impl"'|' Makefile
|
||||
log "IMPL=$IMPL works"
|
||||
exit 0
|
||||
else log "IMPL=$IMPL failed"
|
17
pkg/urbit/compat/m1brew/libscrypt.patch
Normal file
17
pkg/urbit/compat/m1brew/libscrypt.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 783c537..3156ee2 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -12,10 +12,9 @@ LDFLAGS_EXTRA?=-Wl,-z,relro
|
||||
|
||||
all: reference
|
||||
|
||||
-OBJS= crypto_scrypt-nosse.o sha256.o crypto-mcf.o b64.o crypto-scrypt-saltgen.o crypto_scrypt-check.o crypto_scrypt-hash.o slowequals.o
|
||||
+OBJS= crypto_scrypt-nosse.o sha256.o crypto-mcf.o b64.o slowequals.o
|
||||
|
||||
-libscrypt.so.0: $(OBJS)
|
||||
- $(CC) $(LDFLAGS) -shared -o libscrypt.so.0 $(OBJS) -lm -lc
|
||||
+libscrypt.a: $(OBJS)
|
||||
ar rcs libscrypt.a $(OBJS)
|
||||
|
||||
reference: libscrypt.so.0 main.o crypto_scrypt-hexconvert.o
|
13
pkg/urbit/compat/m1brew/murmur3.patch
Normal file
13
pkg/urbit/compat/m1brew/murmur3.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/makefile b/makefile
|
||||
--- a/makefile
|
||||
+++ b/makefile
|
||||
@@ -12,5 +12,9 @@ shared: murmur3.c murmur3.h
|
||||
$(CC) -fPIC -O3 -c murmur3.c
|
||||
$(CC) -shared -Wl,--export-dynamic murmur3.o -o libmurmur3.so
|
||||
|
||||
+static: murmur3.c murmur3.h
|
||||
+ $(CC) -fPIC -O3 -c murmur3.c
|
||||
+ $(AR) rcs libmurmur3.a murmur3.o
|
||||
+
|
||||
clean:
|
||||
rm -rf example *.o *.so
|
85
pkg/urbit/compat/m1brew/softfloat3.patch
Normal file
85
pkg/urbit/compat/m1brew/softfloat3.patch
Normal file
@ -0,0 +1,85 @@
|
||||
diff --git a/build/template-FAST_INT64/Makefile b/build/template-FAST_INT64/Makefile
|
||||
--- a/build/template-FAST_INT64/Makefile
|
||||
+++ b/build/template-FAST_INT64/Makefile
|
||||
@@ -34,28 +34,27 @@
|
||||
#
|
||||
#=============================================================================
|
||||
|
||||
-# Edit lines marked with `==>'. See "SoftFloat-source.html".
|
||||
+SOURCE_DIR ?= ../../source
|
||||
+SPECIALIZE_TYPE ?= 8086-SSE
|
||||
|
||||
-==> SOURCE_DIR ?= ../../source
|
||||
-==> SPECIALIZE_TYPE ?= 8086
|
||||
+SOFTFLOAT_OPTS ?= \
|
||||
+ -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
|
||||
+ -DSOFTFLOAT_FAST_DIV64TO32
|
||||
|
||||
-==> SOFTFLOAT_OPTS ?= \
|
||||
-==> -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
|
||||
-==> -DSOFTFLOAT_FAST_DIV64TO32
|
||||
+DELETE = rm -f
|
||||
+C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
|
||||
+COMPILE_C = \
|
||||
+ cc -c -DSOFTFLOAT_FAST_INT64 $(SOFTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
|
||||
+MAKELIB = ar crs $@
|
||||
+LIBNAME = libsoftfloat3
|
||||
|
||||
-==> DELETE = rm -f
|
||||
-==> C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
|
||||
-==> COMPILE_C = \
|
||||
-==> cc -c -DSOFTFLOAT_FAST_INT64 $(SOFTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
|
||||
-==> MAKELIB = ar crs $@
|
||||
+OBJ = .o
|
||||
+LIB = .a
|
||||
|
||||
-==> OBJ = .o
|
||||
-==> LIB = .a
|
||||
-
|
||||
-==> OTHER_HEADERS =
|
||||
+OTHER_HEADERS =
|
||||
|
||||
.PHONY: all
|
||||
-all: softfloat$(LIB)
|
||||
+all: $(LIBNAME)$(LIB)
|
||||
|
||||
OBJS_PRIMITIVES = \
|
||||
s_eq128$(OBJ) \
|
||||
@@ -381,11 +380,11 @@ $(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
|
||||
$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
|
||||
$(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
|
||||
|
||||
-softfloat$(LIB): $(OBJS_ALL)
|
||||
+$(LIBNAME)$(LIB): $(OBJS_ALL)
|
||||
$(DELETE) $@
|
||||
$(MAKELIB) $^
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
- $(DELETE) $(OBJS_ALL) softfloat$(LIB)
|
||||
+ $(DELETE) $(OBJS_ALL) $(LIBNAME)$(LIB)
|
||||
|
||||
diff --git a/build/template-FAST_INT64/platform.h b/build/template-FAST_INT64/platform.h
|
||||
--- a/build/template-FAST_INT64/platform.h
|
||||
+++ b/build/template-FAST_INT64/platform.h
|
||||
@@ -34,17 +34,15 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
=============================================================================*/
|
||||
|
||||
-// Edit lines marked with `==>'. See "SoftFloat-source.html".
|
||||
-
|
||||
/*----------------------------------------------------------------------------
|
||||
*----------------------------------------------------------------------------*/
|
||||
-==> #define LITTLEENDIAN 1
|
||||
+#define LITTLEENDIAN 1
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
*----------------------------------------------------------------------------*/
|
||||
-==> #define INLINE inline
|
||||
+#define INLINE inline
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
*----------------------------------------------------------------------------*/
|
||||
-==> #define THREAD_LOCAL _Thread_local
|
||||
+#define THREAD_LOCAL _Thread_local
|
||||
|
23
pkg/urbit/compat/m1brew/use-static-libs.sh
Executable file
23
pkg/urbit/compat/m1brew/use-static-libs.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
declare -a ldirs
|
||||
for i in $@
|
||||
do
|
||||
case $i in
|
||||
-L*) ldirs+=(${i:2});;
|
||||
esac
|
||||
done
|
||||
for i in $@
|
||||
do
|
||||
case $i in
|
||||
-l*)
|
||||
lib=$(find ${ldirs[@]} -name lib${i:2}.a)
|
||||
if [ "$lib" != "" ]
|
||||
then
|
||||
echo $lib
|
||||
else
|
||||
echo $i
|
||||
fi;;
|
||||
*) echo $i;;
|
||||
esac
|
||||
done
|
@ -1,12 +1,10 @@
|
||||
# ensure required mingw packages are installed
|
||||
mpkgs=(cmake curl gcc jq libuv make wslay)
|
||||
pacman -S --needed autoconf automake-wrapper libtool patch ${mpkgs[@]/#/mingw-w64-x86_64-}
|
||||
|
||||
declare -a cdirs
|
||||
declare -a ldirs
|
||||
declare -A hdeps
|
||||
sources=(../../nix/sources.json ../../nix/sources-mingw.json)
|
||||
deriver=urbit-mingw-build
|
||||
sources=(../../nix/sources.json ../../nix/sources-pmnsh.json)
|
||||
patches=compat/$1
|
||||
deriver=urbit-$1-build
|
||||
markfil=.$1~
|
||||
depdirs=
|
||||
nixpath=${NIX_STORE-../build}
|
||||
|
||||
@ -50,7 +48,7 @@ buildnixdep () {
|
||||
then
|
||||
hash=${hdeps[$key]}
|
||||
dir=$nixpath/$hash-$key
|
||||
if [ -e $dir/.mingw~ ]
|
||||
if [ -e $dir/$markfil ]
|
||||
then
|
||||
# dependency present, don't reupload
|
||||
hash=
|
||||
@ -79,14 +77,14 @@ buildnixdep () {
|
||||
fi
|
||||
|
||||
# patch and build the dependency if necessary
|
||||
if [ ! -e $dir/.mingw~ ]
|
||||
if [ ! -e $dir/$markfil ]
|
||||
then
|
||||
local patch=compat/mingw/$key.patch
|
||||
local patch=$patches/$key.patch
|
||||
[ -e $patch ] && patch -d $dir -p 1 <$patch
|
||||
pushd $dir
|
||||
eval "$cmdprep"
|
||||
eval make "$cmdmake"
|
||||
touch .mingw~
|
||||
touch $markfil
|
||||
popd
|
||||
fi
|
||||
|
||||
@ -118,30 +116,30 @@ EOF
|
||||
|
||||
# I have to go over the sources files several times
|
||||
# because jq does not have a way to invoke external programs
|
||||
jqprep='add|to_entries|.[]|.value.pmnsh as $p|select($p and $p.compat.'$1' != false)|(($p + $p.compat.'$1')|del(.compat)) as $o|'
|
||||
|
||||
# list external dependencies, create hash map and directory replacement regex
|
||||
# use -j and \u0000 to work around https://github.com/stedolan/jq/issues/1870
|
||||
while read -rd "" key json
|
||||
do
|
||||
# create 'store hash' from sources.json data and patch
|
||||
patch=compat/mingw/$key.patch
|
||||
patch=$patches/$key.patch
|
||||
read hash _ < <((
|
||||
echo -n $json
|
||||
[ -e $patch ] && cat $patch)|sha256sum)
|
||||
hash=$(hex2nixbase32 $hash)
|
||||
hdeps[$key]=$hash
|
||||
# NB: this path substitution works only in local dependencies
|
||||
depdirs="$depdirs|gsub(\"\\\\.\\\\./$key\";\"$nixpath/$hash-$key\")"
|
||||
done < <(jq --arg deriver "$deriver" -Sscrj 'add|to_entries|.[]|select(.value.mingw)|select(.value.url)|.key," ",{($deriver):(.value)},"\u0000"' ${sources[@]})
|
||||
depdirs="$depdirs|gsub(\"\\\\.\\\\./$key\";\"\\(\$d)/$hash-$key\")"
|
||||
done < <(jq --arg deriver "$deriver" -Sscrj "$jqprep"'select(.value.url)|.key," ",{($deriver):(.value|del(.pmnsh) + ({'$1':$o}))},"\u0000"' ${sources[@]})
|
||||
|
||||
# build dependencies, create include and library directory arrays
|
||||
. <(jq -sr 'add|to_entries|.[]|select(.value.mingw)|"
|
||||
. <(jq --arg nixpath "$nixpath" -sr "$jqprep"'(if .value.url then ".." else $nixpath end) as $d|"
|
||||
unset dir
|
||||
key=\(.key|@sh) \\
|
||||
url=\(.value.url//""|@sh) \\
|
||||
strip=\(.value.mingw.strip+1) \\
|
||||
cmdprep=\(.value.mingw.prepare//""'"$depdirs"'|@sh) \\
|
||||
cmdmake=\(.value.mingw.make//""'"$depdirs"'|@sh) \\
|
||||
strip=\($o.strip+1) \\
|
||||
cmdprep=\($o.prepare//""'"$depdirs"'|@sh) \\
|
||||
cmdmake=\($o.make//""'"$depdirs"'|@sh) \\
|
||||
buildnixdep # sets dir
|
||||
\(.value.mingw.include//"."|if type == "array" then . else [.] end|map("cdirs+=(-I$dir/\(.))")|join("\n"))
|
||||
\(.value.mingw.lib//"."|if type == "array" then . else [.] end|map("ldirs+=(-L$dir/\(.))")|join("\n"))"' ${sources[@]})
|
||||
\($o.include//"."|if type == "array" then . else [.] end|map("cdirs+=(-I$dir/\(.))")|join("\n"))
|
||||
\($o.lib//"."|if type == "array" then . else [.] end|map("ldirs+=(-L$dir/\(.))")|join("\n"))"' ${sources[@]})
|
57
pkg/urbit/configure
vendored
57
pkg/urbit/configure
vendored
@ -19,7 +19,7 @@ defmacro () {
|
||||
echo "#define $1 $2" >>include/config.h
|
||||
}
|
||||
|
||||
xxd () {
|
||||
poor_mans_xxd () {
|
||||
cch=0
|
||||
echo "unsigned char $2[] = {"
|
||||
while IFS='' read line
|
||||
@ -93,14 +93,18 @@ esac
|
||||
# TODO Determine if the target cpu is little or big endian.
|
||||
case $(tr A-Z a-z <<< $os) in
|
||||
*mingw*)
|
||||
# ensure required mingw packages are installed
|
||||
mpkgs=(cmake curl gcc jq make)
|
||||
pacman -S --needed autoconf automake-wrapper libtool patch ${mpkgs[@]/#/mingw-w64-x86_64-}
|
||||
|
||||
# set up dependencies and create cdirs and ldirs arrays
|
||||
. compat/mingw/poor-mans-nix-shell.sh
|
||||
. compat/poor-mans-nix-shell.sh mingw
|
||||
|
||||
# support running off a tarball that doesn't contain binary pills
|
||||
(( $(stat -c %s ../../bin/ivory.pill) > 512 )) || curl -L https://github.com/urbit/urbit/raw/urbit-v$URBIT_VERSION/bin/ivory.pill > ../../bin/ivory.pill
|
||||
|
||||
[ -e include/ca-bundle.h ] || xxd /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt include_ca_bundle_crt >include/ca-bundle.h
|
||||
[ -e include/ivory.h ] || xxd ../../bin/ivory.pill u3_Ivory_pill >include/ivory.h
|
||||
[ -e include/ca-bundle.h ] || poor_mans_xxd /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt include_ca_bundle_crt >include/ca-bundle.h
|
||||
[ -e include/ivory.h ] || poor_mans_xxd ../../bin/ivory.pill u3_Ivory_pill >include/ivory.h
|
||||
|
||||
defmacro U3_OS_mingw 1
|
||||
|
||||
@ -115,7 +119,45 @@ case $(tr A-Z a-z <<< $os) in
|
||||
compat="${compat-} mingw"
|
||||
CFLAGS="${CFLAGS-} ${cdirs[@]}"
|
||||
LDFLAGS="${LDFLAGS-} ${ldirs[@]} -static"
|
||||
PKG_CONFIG=">/dev/null echo"
|
||||
PKG_CONFIG=false
|
||||
;;
|
||||
m1brew)
|
||||
# ensure required packages are installed
|
||||
brew install -q autoconf automake bash cmake coreutils gmp jq libsigsegv libtool libuv openssl pkgconfig
|
||||
|
||||
if (( ${BASH_VERSION%%.*} < 5 ))
|
||||
then
|
||||
echo Running bash version $BASH_VERSION is too low, please restart bash to use freshly installed one
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# for some reason pkg-config does not pick up openssl
|
||||
export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:${PKG_CONFIG_PATH-}"
|
||||
|
||||
# set up dependencies and create cdirs and ldirs arrays
|
||||
. compat/poor-mans-nix-shell.sh m1brew
|
||||
|
||||
# support running off a tarball that doesn't contain binary pills
|
||||
(( $(stat -f %z ../../bin/ivory.pill) > 512 )) || curl -L https://github.com/urbit/urbit/raw/urbit-v$URBIT_VERSION/bin/ivory.pill > ../../bin/ivory.pill
|
||||
|
||||
[ -e include/ca-bundle.h ] || poor_mans_xxd /etc/ssl/cert.pem include_ca_bundle_crt >include/ca-bundle.h
|
||||
[ -e include/ivory.h ] || poor_mans_xxd ../../bin/ivory.pill u3_Ivory_pill >include/ivory.h
|
||||
|
||||
defmacro U3_OS_osx 1
|
||||
|
||||
deps="${deps/ssl/openssl}"
|
||||
deps="${deps/uv/libuv}"
|
||||
if ((opt_debug))
|
||||
then
|
||||
CFLAGS="${CFLAGS-} -O0 -g"
|
||||
else
|
||||
# clang hangs on noun/allocate.c if -g is specified
|
||||
CFLAGS="${CFLAGS-} -O3"
|
||||
fi
|
||||
|
||||
compat="${compat-} posix m1brew"
|
||||
CFLAGS="${CFLAGS-} ${cdirs[@]}"
|
||||
LDFLAGS="${LDFLAGS-} ${ldirs[@]}"
|
||||
;;
|
||||
*linux*)
|
||||
defmacro U3_OS_linux 1
|
||||
@ -143,8 +185,9 @@ case $(tr A-Z a-z <<< $os) in
|
||||
esac
|
||||
|
||||
for dep in ${osdeps-} $deps
|
||||
do LDFLAGS="${LDFLAGS-} -l$dep"
|
||||
${PKG_CONFIG-pkg-config} --cflags --libs $dep 2>/dev/null || true
|
||||
do
|
||||
LDFLAGS="${LDFLAGS-} $(${PKG_CONFIG-pkg-config} --libs $dep 2>/dev/null || echo -l$dep)"
|
||||
CFLAGS="${CFLAGS-} $(${PKG_CONFIG-pkg-config} --cflags $dep 2>/dev/null || true)"
|
||||
done
|
||||
|
||||
for header in $headers
|
||||
|
@ -116,6 +116,9 @@
|
||||
# define U3_OS_LoomBase 0x36000000
|
||||
# endif
|
||||
# define U3_OS_LoomBits 29 // ie, 2^29 words == 2GB
|
||||
# elif defined(U3_OS_osx) && defined(U3_CPU_aarch64) || defined(U3_OS_mingw)
|
||||
# define U3_OS_LoomBase 0x28000000000
|
||||
# define U3_OS_LoomBits 29 // ie, 2^29 words == 2GB
|
||||
# elif defined(U3_OS_osx) || defined(U3_OS_bsd)
|
||||
# ifdef __LP64__
|
||||
# define U3_OS_LoomBase 0x200000000
|
||||
@ -123,9 +126,6 @@
|
||||
# define U3_OS_LoomBase 0x4000000
|
||||
# endif
|
||||
# define U3_OS_LoomBits 29 // ie, 2^29 words == 2GB
|
||||
# elif defined(U3_OS_mingw)
|
||||
# define U3_OS_LoomBase 0x28000000000
|
||||
# define U3_OS_LoomBits 29 // ie, 2^29 words == 2GB
|
||||
# else
|
||||
# error "port: LoomBase"
|
||||
# endif
|
||||
|
Loading…
Reference in New Issue
Block a user