mirror of
https://github.com/meteor/meteor.git
synced 2026-01-08 15:24:00 -05:00
101 lines
2.4 KiB
Bash
101 lines
2.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
set -u
|
|
|
|
UNAME=$(uname)
|
|
ARCH=$(uname -m)
|
|
NODE_VERSION=22.18.0
|
|
MONGO_VERSION_64BIT=7.0.16
|
|
MONGO_VERSION_32BIT=3.2.22
|
|
NPM_VERSION=10.9.3
|
|
|
|
|
|
if [ "$UNAME" == "Linux" ] ; then
|
|
NODE_BUILD_NUMBER=
|
|
if [[ "$ARCH" != "i686" && "$ARCH" != "x86_64" && "$ARCH" != "aarch64" ]] ; then
|
|
echo "Unsupported architecture: $ARCH"
|
|
echo "Meteor only supports i686, x86_64 and aarch64 for now."
|
|
exit 1
|
|
fi
|
|
|
|
OS="linux"
|
|
|
|
stripBinary() {
|
|
strip --remove-section=.comment --remove-section=.note $1
|
|
}
|
|
elif [ "$UNAME" == "Darwin" ] ; then
|
|
if [ "$ARCH" != "arm64" ] ; then
|
|
NODE_BUILD_NUMBER=
|
|
SYSCTL_64BIT=$(sysctl -n hw.cpu64bit_capable 2>/dev/null || echo 0)
|
|
if [ "$ARCH" == "i386" -a "1" != "$SYSCTL_64BIT" ] ; then
|
|
# some older macos returns i386 but can run 64 bit binaries.
|
|
# Probably should distribute binaries built on these machines,
|
|
# but it should be OK for users to run.
|
|
ARCH="x86_64"
|
|
fi
|
|
|
|
if [ "$ARCH" != "x86_64" ] ; then
|
|
echo "Unsupported architecture: $ARCH"
|
|
echo "Meteor only supports x86_64 for now."
|
|
exit 1
|
|
fi
|
|
else
|
|
NODE_BUILD_NUMBER="${NODE_BUILD_NUMBER:="187"}"
|
|
fi
|
|
|
|
OS="macos"
|
|
|
|
# We don't strip on Mac because we don't know a safe command. (Can't strip
|
|
# too much because we do need node to be able to load objects like
|
|
# fibers.node.)
|
|
stripBinary() {
|
|
true
|
|
}
|
|
else
|
|
echo "This OS not yet supported"
|
|
exit 1
|
|
fi
|
|
|
|
PLATFORM="${UNAME}_${ARCH}"
|
|
|
|
if [ "$UNAME" == "Linux" ]
|
|
then
|
|
if [ "$ARCH" == "i686" ]
|
|
then
|
|
NODE_TGZ="node-v${NODE_VERSION}-linux-x86.tar.gz"
|
|
elif [ "$ARCH" == "x86_64" ]
|
|
then
|
|
NODE_TGZ="node-v${NODE_VERSION}-linux-x64.tar.gz"
|
|
elif [ "$ARCH" == "aarch64" ]
|
|
then
|
|
NODE_TGZ="node-v${NODE_VERSION}-linux-arm64.tar.gz"
|
|
else
|
|
echo "Unknown architecture: $UNAME $ARCH"
|
|
exit 1
|
|
fi
|
|
elif [ "$UNAME" == "Darwin" ]
|
|
then
|
|
if [ "$ARCH" == "arm64" ] ; then
|
|
NODE_TGZ="node-v${NODE_VERSION}-darwin-arm64.tar.gz"
|
|
else
|
|
NODE_TGZ="node-v${NODE_VERSION}-darwin-x64.tar.gz"
|
|
fi
|
|
else
|
|
echo "Unknown architecture: $UNAME $ARCH"
|
|
exit 1
|
|
fi
|
|
|
|
SCRIPTS_DIR=$(dirname $0)
|
|
cd "$SCRIPTS_DIR/.."
|
|
CHECKOUT_DIR=$(pwd)
|
|
|
|
DIR=$(mktemp -d -t generate-dev-bundle-XXXXXXXX)
|
|
trap 'rm -rf "$DIR" >/dev/null 2>&1' 0
|
|
|
|
cd "$DIR"
|
|
chmod 755 .
|
|
umask 022
|
|
mkdir build
|
|
cd build
|