58 lines
1.2 KiB
Bash
Executable File
58 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
echo "==================================="
|
|
echo "Bluehound Build Script"
|
|
echo "==================================="
|
|
echo
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# vendored simpleble static lib
|
|
if [ ! -f "${SCRIPT_DIR}/simpleble/simpleble/build/lib/libsimpleble.a" ]; then
|
|
echo "❌ vendored SimpleBLE not found at simpleble/simpleble/build/lib/libsimpleble.a"
|
|
exit 1
|
|
fi
|
|
|
|
# vendored cpp-httplib header
|
|
if [ ! -f "${SCRIPT_DIR}/third_party/httplib.h" ]; then
|
|
echo "❌ vendored httplib.h not found at third_party/httplib.h"
|
|
exit 1
|
|
fi
|
|
|
|
# cmake toolchain
|
|
if ! command -v cmake >/dev/null 2>&1; then
|
|
echo "❌ cmake not found (need >= 3.15)"
|
|
echo " macOS: brew install cmake"
|
|
echo " Ubuntu/Debian: sudo apt-get install cmake"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Dependencies found"
|
|
echo
|
|
|
|
# Create build directory
|
|
mkdir -p build
|
|
cd build
|
|
|
|
# Configure
|
|
echo "Configuring..."
|
|
cmake ..
|
|
|
|
# Build
|
|
echo "Building..."
|
|
make -j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
|
|
|
|
echo
|
|
echo "==================================="
|
|
echo "✓ Build complete!"
|
|
echo "==================================="
|
|
echo
|
|
echo "Run the scanner:"
|
|
echo " ./build/bluehound"
|
|
echo
|
|
echo "Install system-wide:"
|
|
echo " sudo make install"
|
|
echo
|