mirror of
https://github.com/luanti-org/luanti.git
synced 2025-12-15 19:45:21 +01:00
Add LibGMP
Uses system provided libgmp if found, if not it falls back to mini-gmp.
This commit is contained in:
@@ -118,6 +118,13 @@ CURL_TIMESTAMP = $(CURL_DIR)/timestamp
|
||||
CURL_TIMESTAMP_INT = $(ROOT)/deps/curl_timestamp
|
||||
CURL_URL_HTTP = http://curl.haxx.se/download/curl-${CURL_VERSION}.tar.bz2
|
||||
|
||||
GMP_VERSION = 6.0.0
|
||||
GMP_DIR = $(ROOT)/deps/gmp-$(GMP_VERSION)
|
||||
GMP_LIB = $(GMP_DIR)/usr/lib/libgmp.la
|
||||
GMP_TIMESTAMP = $(GMP_DIR)/timestamp
|
||||
GMP_TIMESTAMP_INT = $(ROOT)/deps/gmp_timestamp
|
||||
GMP_URL_HTTP = https://gmplib.org/download/gmp/gmp-$(GMP_VERSION).tar.bz2
|
||||
|
||||
FREETYPE_DIR = $(ROOT)/deps/freetype2-android/
|
||||
FREETYPE_LIB = $(FREETYPE_DIR)/Android/obj/local/$(TARGET_ABI)/libfreetype2-static.a
|
||||
FREETYPE_TIMESTAMP = $(FREETYPE_DIR)timestamp
|
||||
@@ -148,14 +155,14 @@ endif
|
||||
$(IRRLICHT_TIMESTAMP) $(CURL_TIMESTAMP) \
|
||||
$(OPENSSL_TIMESTAMP) curl_binary \
|
||||
$(ROOT)/jni/src/android_version.h
|
||||
|
||||
|
||||
debug : $(PATHCFGFILE)
|
||||
export NDEBUG=; \
|
||||
export BUILD_TYPE=debug; \
|
||||
$(MAKE) apk
|
||||
|
||||
|
||||
all : debug release
|
||||
|
||||
|
||||
release : $(PATHCFGFILE)
|
||||
@export NDEBUG=1; \
|
||||
export BUILD_TYPE=release; \
|
||||
@@ -194,7 +201,7 @@ $(OPENAL_TIMESTAMP) : openal_download
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
touch ${OPENAL_TIMESTAMP}; \
|
||||
fi
|
||||
|
||||
|
||||
openal_download :
|
||||
@if [ ! -d ${OPENAL_DIR} ] ; then \
|
||||
echo "openal sources missing, downloading..."; \
|
||||
@@ -202,7 +209,7 @@ openal_download :
|
||||
cd ${ROOT}/deps ; \
|
||||
git clone ${OPENAL_URL_GIT} || exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
openal : $(OPENAL_LIB)
|
||||
|
||||
$(OPENAL_LIB): $(OPENAL_TIMESTAMP)
|
||||
@@ -227,16 +234,16 @@ $(OPENAL_LIB): $(OPENAL_TIMESTAMP)
|
||||
else \
|
||||
echo "nothing to be done for openal"; \
|
||||
fi
|
||||
|
||||
|
||||
clean_openal :
|
||||
$(RM) -rf ${OPENAL_DIR}
|
||||
|
||||
|
||||
$(OGG_TIMESTAMP) : ogg_download
|
||||
@LAST_MODIF=$$(find ${OGG_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
touch ${OGG_TIMESTAMP}; \
|
||||
fi
|
||||
|
||||
|
||||
ogg_download :
|
||||
@if [ ! -d ${OGG_DIR} ] ; then \
|
||||
echo "ogg sources missing, downloading..."; \
|
||||
@@ -246,7 +253,7 @@ ogg_download :
|
||||
cd libvorbis-libogg-android ; \
|
||||
patch -p1 < ../../libvorbis-libogg-fpu.patch || exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
ogg : $(OGG_LIB)
|
||||
|
||||
$(OGG_LIB): $(OGG_TIMESTAMP)
|
||||
@@ -275,13 +282,13 @@ $(OGG_LIB): $(OGG_TIMESTAMP)
|
||||
|
||||
clean_ogg :
|
||||
$(RM) -rf ${OGG_DIR}
|
||||
|
||||
|
||||
$(OPENSSL_TIMESTAMP) : openssl_download
|
||||
@LAST_MODIF=$$(find ${OPENSSL_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
touch ${OPENSSL_TIMESTAMP}; \
|
||||
fi
|
||||
|
||||
|
||||
openssl_download :
|
||||
@if [ ! -d ${OPENSSL_DIR} ] ; then \
|
||||
echo "openssl sources missing, downloading..."; \
|
||||
@@ -292,7 +299,7 @@ openssl_download :
|
||||
cd ${OPENSSL_BASEDIR}; \
|
||||
patch -p1 < ../../openssl_arch.patch; \
|
||||
fi
|
||||
|
||||
|
||||
openssl : $(OPENSSL_LIB)
|
||||
|
||||
$(OPENSSL_LIB): $(OPENSSL_TIMESTAMP)
|
||||
@@ -340,7 +347,7 @@ leveldb_download :
|
||||
cd ${ROOT}/deps ; \
|
||||
git clone ${LEVELDB_URL_GIT} || exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
leveldb : $(LEVELDB_LIB)
|
||||
|
||||
$(LEVELDB_LIB): $(LEVELDB_TIMESTAMP)
|
||||
@@ -374,10 +381,10 @@ $(LEVELDB_LIB): $(LEVELDB_TIMESTAMP)
|
||||
else \
|
||||
echo "nothing to be done for leveldb"; \
|
||||
fi
|
||||
|
||||
|
||||
clean_leveldb :
|
||||
$(RM) -rf deps/leveldb
|
||||
|
||||
|
||||
$(FREETYPE_TIMESTAMP) : freetype_download
|
||||
@LAST_MODIF=$$(find ${FREETYPE_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
@@ -391,13 +398,13 @@ freetype_download :
|
||||
cd deps; \
|
||||
git clone ${FREETYPE_URL_GIT} || exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
$(IRRLICHT_TIMESTAMP) : irrlicht_download
|
||||
@LAST_MODIF=$$(find ${IRRLICHT_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
touch ${IRRLICHT_TIMESTAMP}; \
|
||||
fi
|
||||
|
||||
|
||||
freetype : $(FREETYPE_LIB)
|
||||
|
||||
$(FREETYPE_LIB) : $(FREETYPE_TIMESTAMP)
|
||||
@@ -426,7 +433,7 @@ $(FREETYPE_LIB) : $(FREETYPE_TIMESTAMP)
|
||||
else \
|
||||
echo "nothing to be done for freetype"; \
|
||||
fi
|
||||
|
||||
|
||||
clean_freetype :
|
||||
$(RM) -rf ${FREETYPE_DIR}
|
||||
|
||||
@@ -475,10 +482,10 @@ $(IRRLICHT_LIB): $(IRRLICHT_TIMESTAMP) $(FREETYPE_LIB)
|
||||
else \
|
||||
echo "nothing to be done for irrlicht"; \
|
||||
fi
|
||||
|
||||
|
||||
clean_irrlicht :
|
||||
$(RM) -rf deps/irrlicht
|
||||
|
||||
|
||||
$(CURL_TIMESTAMP) : curl_download
|
||||
@LAST_MODIF=$$(find ${CURL_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
@@ -535,13 +542,13 @@ $(CURL_LIB): $(CURL_TIMESTAMP) $(OPENSSL_LIB)
|
||||
else \
|
||||
echo "nothing to be done for curl"; \
|
||||
fi
|
||||
|
||||
|
||||
clean_curl :
|
||||
$(RM) -rf deps/curl-${CURL_VERSION} \
|
||||
$(RM) -f deps/curl
|
||||
|
||||
|
||||
curl_binary:
|
||||
|
||||
|
||||
curl_binary:
|
||||
@if [ ! -d "deps/curl-${CURL_VERSION_BINARY}" ] ; then \
|
||||
echo "curl sources missing, downloading..."; \
|
||||
mkdir -p ${ROOT}/deps; \
|
||||
@@ -552,6 +559,62 @@ curl_binary:
|
||||
rm curl-7.34.0-rtmp-ssh2-ssl-zlib-static-bin-android.tar.gz; \
|
||||
fi
|
||||
|
||||
$(GMP_TIMESTAMP) : gmp_download
|
||||
@LAST_MODIF=$$(find ${GMP_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
touch ${GMP_TIMESTAMP}; \
|
||||
fi
|
||||
|
||||
gmp_download :
|
||||
@if [ ! -d "${GMP_DIR}" ] ; then \
|
||||
echo "gmp sources missing, downloading..."; \
|
||||
mkdir -p ${ROOT}/deps; \
|
||||
cd deps; \
|
||||
wget ${GMP_URL_HTTP} || exit 1; \
|
||||
tar -xjf gmp-${GMP_VERSION}.tar.bz2 || exit 1; \
|
||||
rm gmp-${GMP_VERSION}.tar.bz2; \
|
||||
ln -s gmp-${GMP_VERSION} gmp; \
|
||||
fi
|
||||
|
||||
gmp : $(GMP_LIB)
|
||||
|
||||
$(GMP_LIB): $(GMP_TIMESTAMP)
|
||||
@REFRESH=0; \
|
||||
if [ ! -e ${GMP_TIMESTAMP_INT} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ ! -e ${GMP_LIB} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ ${GMP_TIMESTAMP} -nt ${GMP_TIMESTAMP_INT} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ $$REFRESH -ne 0 ] ; then \
|
||||
mkdir -p ${GMP_DIR}; \
|
||||
export PATH="$${PATH}:${SDKFOLDER}/platform-tools:${ANDROID_NDK}"; \
|
||||
echo "changed timestamp for gmp detected building..."; \
|
||||
cd deps/gmp-${GMP_VERSION}; \
|
||||
export CROSS_PREFIX=${CROSS_PREFIX}; \
|
||||
export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-gmp; \
|
||||
${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \
|
||||
--toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \
|
||||
--install-dir=$${TOOLCHAIN}; \
|
||||
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
|
||||
export CC=${CROSS_PREFIX}gcc; \
|
||||
export CXX=${CROSS_PREFIX}g++; \
|
||||
./configure --disable-static --host=${TARGET_HOST} --prefix=/usr; \
|
||||
$(MAKE) install DESTDIR=/${GMP_DIR} || exit 1; \
|
||||
touch ${GMP_TIMESTAMP}; \
|
||||
touch ${GMP_TIMESTAMP_INT}; \
|
||||
$(RM) -rf $${TOOLCHAIN}; \
|
||||
else \
|
||||
echo "nothing to be done for gmp"; \
|
||||
fi
|
||||
|
||||
clean_gmp:
|
||||
$(RM) -rf deps/gmp-${GMP_VERSION} \
|
||||
$(RM) -f deps/gmp
|
||||
|
||||
sqlite3_download: deps/${SQLITE3_FOLDER}/sqlite3.c
|
||||
|
||||
deps/${SQLITE3_FOLDER}/sqlite3.c :
|
||||
@@ -559,7 +622,7 @@ deps/${SQLITE3_FOLDER}/sqlite3.c :
|
||||
wget ${SQLITE3_URL}; \
|
||||
unzip ${SQLITE3_FOLDER}.zip; \
|
||||
ln -s ${SQLITE3_FOLDER} sqlite
|
||||
|
||||
|
||||
clean_sqlite3:
|
||||
cd deps && $(RM) -rf ${SQLITE3_FOLDER} && $(RM) -f ${SQLITE3_FOLDER}.zip && \
|
||||
$(RM) -f sqlite
|
||||
@@ -622,7 +685,7 @@ $(ASSETS_TIMESTAMP) : $(IRRLICHT_LIB)
|
||||
if [ ! -e $(ASSETS_TIMESTAMP) ] ; then \
|
||||
touch $(ASSETS_TIMESTAMP); \
|
||||
fi
|
||||
|
||||
|
||||
assets : $(ASSETS_TIMESTAMP)
|
||||
@REFRESH=0; \
|
||||
if [ ! -e ${ASSETS_TIMESTAMP}.old ] ; then \
|
||||
@@ -670,8 +733,8 @@ assets : $(ASSETS_TIMESTAMP)
|
||||
|
||||
clean_assets :
|
||||
@$(RM) -r assets
|
||||
|
||||
apk: $(PATHCFGFILE) assets $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_TARGET) \
|
||||
|
||||
apk: $(PATHCFGFILE) assets $(IRRLICHT_LIB) $(CURL_LIB) $(GMP_LIB) $(LEVELDB_TARGET) \
|
||||
$(OPENAL_LIB) $(OGG_LIB) prep_srcdir $(ROOT)/jni/src/android_version.h \
|
||||
sqlite3_download
|
||||
@export NDEBUG=$$NDEBUG; $(MAKE) manifest; \
|
||||
@@ -689,32 +752,32 @@ apk: $(PATHCFGFILE) assets $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_TARGET) \
|
||||
echo "++ Success!" && \
|
||||
echo "APK: bin/Minetest-$$BUILD_TYPE.apk" && \
|
||||
echo "You can install it with \`adb install -r bin/Minetest-$$BUILD_TYPE.apk\`"
|
||||
|
||||
|
||||
prep_srcdir :
|
||||
@rm ${ROOT}/jni/src; \
|
||||
ln -s ${ROOT}/../../src ${ROOT}/jni/src
|
||||
|
||||
|
||||
clean_apk : manifest
|
||||
@export PATH=$$PATH:${SDKFOLDER}platform-tools:${ANDROID_NDK}; \
|
||||
export ANDROID_HOME=${SDKFOLDER}; \
|
||||
ant clean
|
||||
|
||||
install_debug :
|
||||
|
||||
install_debug :
|
||||
@export PATH=$$PATH:${SDKFOLDER}platform-tools:${ANDROID_NDK}; \
|
||||
adb install -r ${ROOT}/bin/Minetest-debug.apk
|
||||
|
||||
|
||||
install :
|
||||
@export PATH=$$PATH:${SDKFOLDER}platform-tools:${ANDROID_NDK}; \
|
||||
adb install -r ${ROOT}/bin/Minetest-release.apk
|
||||
|
||||
|
||||
envpaths :
|
||||
@echo "export PATH=$$PATH:${SDKFOLDER}platform-tools:${ANDROID_NDK}" > and_env;\
|
||||
echo "export ANDROID_HOME=${SDKFOLDER}" >> and_env;
|
||||
|
||||
clean_all :
|
||||
|
||||
clean_all :
|
||||
@$(MAKE) clean_apk; \
|
||||
$(MAKE) clean_assets clean_irrlicht clean_leveldb clean_curl clean_openssl \
|
||||
clean_openal clean_ogg clean_manifest; \
|
||||
clean_openal clean_ogg clean_gmp clean_manifest; \
|
||||
sleep 1; \
|
||||
$(RM) -r gen libs obj deps bin Debug and_env
|
||||
|
||||
@@ -762,7 +825,7 @@ manifest :
|
||||
sed s/###BASE_VERSION###/$$BASE_VERSION/g | \
|
||||
sed -e "s@###DEBUG_BUILD###@$$DBG@g" | \
|
||||
sed -e "s@###DEBUG_FLAG###@$$DBG_FLAG@g" >${ROOT}/AndroidManifest.xml
|
||||
|
||||
|
||||
clean_manifest :
|
||||
rm -rf ${ROOT}/AndroidManifest.xml
|
||||
|
||||
|
||||
Reference in New Issue
Block a user