Attempt to fix rpath issues, MacOs build get complicated, added step notes
This commit is contained in:
parent
0f19a691c2
commit
c402bf5485
13
Makefile
13
Makefile
@ -61,7 +61,7 @@ endif
|
|||||||
|
|
||||||
# Library flags
|
# Library flags
|
||||||
#LIB_PATHS = -L$(DPP_BUILD_DIR) -L../sqlite3
|
#LIB_PATHS = -L$(DPP_BUILD_DIR) -L../sqlite3
|
||||||
LIB_PATHS = -L$(DPP_BUILD_DIR) -L.
|
LIB_PATHS = -L$(DPP_BUILD_DIR) -L../libssl -L.
|
||||||
LIBRARIES = -ldpp -lsqlite3 -lssl -lcrypto
|
LIBRARIES = -ldpp -lsqlite3 -lssl -lcrypto
|
||||||
|
|
||||||
# Build type specific flags
|
# Build type specific flags
|
||||||
@ -100,12 +100,12 @@ ifeq ($(PLATFORM), Darwin)
|
|||||||
fi
|
fi
|
||||||
@# Fix library paths for OpenSSL dependencies
|
@# Fix library paths for OpenSSL dependencies
|
||||||
@if [ -f $(BIN_DIR)/$(DPP_VERSIONED_FILE) ]; then \
|
@if [ -f $(BIN_DIR)/$(DPP_VERSIONED_FILE) ]; then \
|
||||||
install_name_tool -change /Users/harvey/learndir/libssl/install/lib/libssl.4.dylib @executable_path/libssl.dylib $(BIN_DIR)/$(DPP_VERSIONED_FILE); \
|
install_name_tool -change ../libssl/libssl.4.dylib @executable_path/libssl.dylib $(BIN_DIR)/$(DPP_VERSIONED_FILE); \
|
||||||
install_name_tool -change /Users/harvey/learndir/libssl/install/lib/libcrypto.4.dylib @executable_path/libcrypto.dylib $(BIN_DIR)/$(DPP_VERSIONED_FILE); \
|
install_name_tool -change ../libssl/libcrypto.4.dylib @executable_path/libcrypto.dylib $(BIN_DIR)/$(DPP_VERSIONED_FILE); \
|
||||||
fi
|
fi
|
||||||
@install_name_tool -change /Users/harvey/learndir/libssl/install/lib/libssl.4.dylib @executable_path/libssl.dylib $(OUTPUT_FILE); \
|
@install_name_tool -change ../libssl/libssl.4.dylib @executable_path/libssl.dylib $(OUTPUT_FILE); \
|
||||||
install_name_tool -change /Users/harvey/learndir/libssl/install/lib/libcrypto.4.dylib @executable_path/libcrypto.dylib $(OUTPUT_FILE); \
|
install_name_tool -change ../libssl/libcrypto.4.dylib @executable_path/libcrypto.dylib $(OUTPUT_FILE); \
|
||||||
cp libssl.dylib libcrypto.dylib $(BIN_DIR)/
|
cp ../libssl/libssl.dylib ../libssl/libcrypto.dylib $(BIN_DIR)/
|
||||||
else
|
else
|
||||||
@# Linux: Handle versioned libraries (follow standard convention)
|
@# Linux: Handle versioned libraries (follow standard convention)
|
||||||
@if [ -f $(DPP_BUILD_DIR)/$(DPP_VERSIONED_FILE) ]; then \
|
@if [ -f $(DPP_BUILD_DIR)/$(DPP_VERSIONED_FILE) ]; then \
|
||||||
@ -161,3 +161,4 @@ cleanall:
|
|||||||
rmdir obj 2>/dev/null || true
|
rmdir obj 2>/dev/null || true
|
||||||
rmdir bin 2>/dev/null || true
|
rmdir bin 2>/dev/null || true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
44
README.md
44
README.md
@ -48,23 +48,45 @@ make all -j4
|
|||||||
|
|
||||||
```
|
```
|
||||||
mkdir workdir && cd workdir
|
mkdir workdir && cd workdir
|
||||||
mkdir homebrew
|
mkdir zlib libssl DPP poomer-discord sqlite3
|
||||||
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip-components 1 -C homebrew
|
|
||||||
eval "$(homebrew/bin/brew shellenv)"
|
# Build zlib
|
||||||
brew update --force --quiet
|
cd zlib && git clone https://github.com/madler/zlib.git .
|
||||||
brew install openssl
|
./configure --static
|
||||||
git clone https://github.com/brainboxdotcc/DPP.git
|
make -j$(sysctl -n hw.ncpu)
|
||||||
cd DPP
|
|
||||||
|
# Build OpenSSL (creates dynamic .dylib libraries needed for DPP)
|
||||||
|
cd ../libssl && git clone https://github.com/openssl/openssl.git .
|
||||||
|
./Configure darwin64-arm64-cc
|
||||||
|
make -j$(sysctl -n hw.ncpu)
|
||||||
|
# Fix OpenSSL library install names for portability
|
||||||
|
# Run this after OpenSSL is built to make the libraries use @rpath instead of hardcoded paths
|
||||||
|
install_name_tool -id @rpath/libssl.dylib libssl.dylib
|
||||||
|
install_name_tool -id @rpath/libcrypto.dylib libcrypto.dylib
|
||||||
|
install_name_tool -change /tmp/openssl-install/lib/libcrypto.4.dylib @rpath/libcrypto.dylib libssl.dylib
|
||||||
|
|
||||||
|
# Build sqlite3
|
||||||
|
cd ../sqlite3
|
||||||
|
curl -LO https://www.sqlite.org/2025/sqlite-autoconf-3510100.tar.gz
|
||||||
|
tar xzf sqlite-autoconf-3510100.tar.gz --strip-components=1
|
||||||
|
./configure --enable-static --disable-shared && make -j$(sysctl -n hw.ncpu)
|
||||||
|
|
||||||
|
# Build DPP
|
||||||
|
cd ../DPP && git clone https://github.com/brainboxdotcc/DPP.git .
|
||||||
/Applications/CMake.app/Contents/bin/cmake -B ./build \
|
/Applications/CMake.app/Contents/bin/cmake -B ./build \
|
||||||
-DOPENSSL_INCLUDE_DIR="$PWD/../libssl/include" \
|
-DOPENSSL_INCLUDE_DIR="$PWD/../libssl/include" \
|
||||||
-DOPENSSL_CRYPTO_LIBRARY="$PWD/../libssl/lib/libcrypto.dylib" \
|
-DOPENSSL_CRYPTO_LIBRARY="$PWD/../libssl/libcrypto.dylib" \
|
||||||
-DOPENSSL_SSL_LIBRARY="$PWD/../libssl/lib/libssl.dylib" \
|
-DOPENSSL_SSL_LIBRARY="$PWD/../libssl/libssl.dylib" \
|
||||||
-DCMAKE_PREFIX_PATH="$PWD/../zlib"
|
-DCMAKE_PREFIX_PATH="$PWD/../zlib"
|
||||||
/Applications/CMake.app/Contents/bin/cmake --build ./build -j8
|
/Applications/CMake.app/Contents/bin/cmake --build ./build -j$(sysctl -n hw.ncpu)
|
||||||
|
|
||||||
|
# Build poomer-discord
|
||||||
cd ../poomer-discord
|
cd ../poomer-discord
|
||||||
git clone https://git.indoodle.com/oomer/poomer-discord.git .
|
git clone https://git.indoodle.com/oomer/poomer-discord.git .
|
||||||
curl -LO https://raw.githubusercontent.com/nothings/stb/master/stb_image.h
|
curl -LO https://raw.githubusercontent.com/nothings/stb/master/stb_image.h
|
||||||
curl -LO https://raw.githubusercontent.com/nothings/stb/master/stb_image_write.h
|
curl -LO https://raw.githubusercontent.com/nothings/stb/master/stb_image_write.h
|
||||||
make all -j4
|
make all -j$(sysctl -n hw.ncpu)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user