client-root/third_party/build_jemalloc.sh
2019-12-07 19:18:46 +01:00

67 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
[[ -z "${build_helper_file}" ]] && {
echo "Missing build helper file. Please define \"build_helper_file\""
exit 1
}
source ${build_helper_file}
[[ $build_helpers_defined -ne 1 ]] && {
echo "Failed to include build helpers."
exit 1
}
library_path="jemalloc"
requires_rebuild ${library_path}
[[ $? -eq 0 ]] && exit 0
generate_build_path ${library_path}
cd jemalloc/
if ! [[ -f configure ]]; then
autoconf
if [[ $? -ne 0 ]]; then
echo "Failed to create configure file"
exit 1
fi
if ! [[ -f configure ]]; then
echo "Failed to create configure file"
exit 1
fi
fi
if [[ -d ${build_path} ]]; then
rm -r ${build_path}
check_err_exit ${library_path} "Failed to remove build path!"
fi
mkdir -p ${build_path}
check_err_exit ${library_path} "Failed to create build path!"
cd ${build_path}
check_err_exit ${library_path} "Failed to enter build path!"
../../configure --enable-munmap --prefix=`pwd`
if [[ $? -ne 0 ]]; then
echo "Failed to create makefile"
exit 1
fi
(cat Makefile | sed 's/.*$(CC) $(DSO_LDFLAGS) $(call RPATH,$(RPATH_EXTRA)) $(LDTARGET) $+ $(LDFLAGS) $(LIBS) $(EXTRA_LDFLAGS).*/ $(CXX) $(DSO_LDFLAGS) $(call RPATH,$(RPATH_EXTRA)) $(LDTARGET) $+ $(LDFLAGS) $(LIBS) $(EXTRA_LDFLAGS)/') > tmp
rm Makefile
mv tmp Makefile
make -j 12 LIBS="-pthread -static-libgcc -static-libstdc++ -fPIC" CFLAGS="-static-libgcc -static-libstdc++ -fPIC" CXXFLAGS="-static-libgcc -static-libstdc++ -fPIC"
#make -j 12 LIBS="-pthread -static-libgcc -static-libstdc++" CFLAGS="-fPIC" CXXFLAGS="-fPIC"
#make -j 12 LIBS="-pthread -lm -l/usr/lib/gcc/x86_64-linux-gnu/5/libstdc++.a" ${MAKE_OPTIONS} CFLAGS="-shared -static-libstdc++ -static-libgcc -fPIC" CXXFLAGS="-static-libstdc++ -static-libgcc -shared -fPIC"
if [[ $? -ne 0 ]]; then
echo "Failed to build jemalloc"
exit 1
fi
make install &>/dev/null
if [[ $? -ne 0 ]]; then #Workaround because the install fails
#exit 0
echo "" &> /dev/null
fi
cd ../../../
set_build_successful ${library_path}