Signed-off-by: falkTX <falktx@falktx.com>pull/28/head
@@ -15,19 +15,6 @@ if [ -z "${target}" ]; then | |||||
exit 1 | exit 1 | ||||
fi | fi | ||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# TODO check for depedencies: | |||||
# - curl | |||||
# - cmake | |||||
# - make | |||||
# - jq | |||||
# - patch | |||||
# - pkg-config (linux only) | |||||
# - python (waf, meson) | |||||
# - sed | |||||
# - tar | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# source setup code | # source setup code | ||||
@@ -36,6 +23,49 @@ source setup/env.sh | |||||
source setup/functions.sh | source setup/functions.sh | ||||
source setup/versions.sh | source setup/versions.sh | ||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# check for depedencies | |||||
if ! command -v curl >/dev/null; then | |||||
echo "missing 'curl' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if ! command -v make >/dev/null; then | |||||
echo "missing 'make' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if ! command -v patch >/dev/null; then | |||||
echo "missing 'patch' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if ! command -v python3 >/dev/null; then | |||||
echo "missing 'python3' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if ! command -v sed >/dev/null; then | |||||
echo "missing 'sed' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if ! command -v tar >/dev/null; then | |||||
echo "missing 'tar' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if [ "${LINUX}" -eq 1 ] && ! command -v pkg-config >/dev/null; then | |||||
echo "missing 'pkg-config' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if [ -z "${cmake}" ]; then | |||||
echo "missing 'cmake' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# create common directories | # create common directories | ||||
@@ -170,7 +200,7 @@ FLAC_EXTRAFLAGS+=" --disable-xmms-plugin" | |||||
if [ -n "${PAWPAW_NOSIMD}" ] && [ "${PAWPAW_NOSIMD}" -ne 0 ]; then | if [ -n "${PAWPAW_NOSIMD}" ] && [ "${PAWPAW_NOSIMD}" -ne 0 ]; then | ||||
FLAC_EXTRAFLAGS+=" ac_cv_header_x86intrin_h=no ac_cv_header_arm_neon_h=no asm_opt=no" | FLAC_EXTRAFLAGS+=" ac_cv_header_x86intrin_h=no ac_cv_header_arm_neon_h=no asm_opt=no" | ||||
elif [ "${WASM}" -eq 1 ]; then | |||||
elif [ "${MACOS_UNIVERSAL}" -eq 1 ] || [ "${WASM}" -eq 1 ]; then | |||||
# FIXME | # FIXME | ||||
FLAC_EXTRAFLAGS+=" ac_cv_header_x86intrin_h=no ac_cv_header_arm_neon_h=no asm_opt=no" | FLAC_EXTRAFLAGS+=" ac_cv_header_x86intrin_h=no ac_cv_header_arm_neon_h=no asm_opt=no" | ||||
else | else | ||||
@@ -35,6 +35,24 @@ source setup/env.sh | |||||
source setup/functions.sh | source setup/functions.sh | ||||
source setup/versions.sh | source setup/versions.sh | ||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# check for depedencies | |||||
if [ -z "${autoconf}" ]; then | |||||
echo "missing 'autoconf' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if [ -z "${meson}" ]; then | |||||
echo "missing 'meson' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
if [ -z "${ninja}" ]; then | |||||
echo "missing 'ninja' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# libpng | # libpng | ||||
@@ -19,12 +19,21 @@ shift | |||||
# TODO check that bootstrap.sh has been run | # TODO check that bootstrap.sh has been run | ||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# source setup code | |||||
source setup/check_target.sh | source setup/check_target.sh | ||||
source setup/env.sh | source setup/env.sh | ||||
source setup/functions.sh | source setup/functions.sh | ||||
source setup/versions.sh | source setup/versions.sh | ||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# check for depedencies | |||||
if [ -z "${jq}" ]; then | |||||
echo "missing 'jq' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
LV2DIR="${PAWPAW_PREFIX}/lib/lv2" | LV2DIR="${PAWPAW_PREFIX}/lib/lv2" | ||||
@@ -100,18 +109,18 @@ for plugin in ${@}; do | |||||
exit 2 | exit 2 | ||||
fi | fi | ||||
name=$(jq -crM .name ${pfile}) | |||||
version=$(jq -crM .version ${pfile}) | |||||
buildtype=$(jq -crM .buildtype ${pfile}) | |||||
dlbaseurl=$(jq -crM .dlbaseurl ${pfile}) | |||||
lv2bundles=($(jq -crM .lv2bundles[] ${pfile})) | |||||
name=$(${jq} -crM .name ${pfile}) | |||||
version=$(${jq} -crM .version ${pfile}) | |||||
buildtype=$(${jq} -crM .buildtype ${pfile}) | |||||
dlbaseurl=$(${jq} -crM .dlbaseurl ${pfile}) | |||||
lv2bundles=($(${jq} -crM .lv2bundles[] ${pfile})) | |||||
# optional args | # optional args | ||||
buildargs=$(echo -e $(jq -ecrM .buildargs ${pfile} || echo '\n\n') | tail -n 1) | |||||
dlext=$(echo -e $(jq -ecrM .dlext ${pfile} || echo '\n\n') | tail -n 1) | |||||
dlmethod=$(echo -e $(jq -ecrM .dlmethod ${pfile} || echo '\n\n') | tail -n 1) | |||||
dlname=$(echo -e $(jq -ecrM .dlname ${pfile} || echo '\n\n') | tail -n 1) | |||||
combinedbundles=$(echo -e $(jq -ecrM .combinedbundles ${pfile} || echo '\n\n') | tail -n 1) | |||||
buildargs=$(echo -e $(${jq} -ecrM .buildargs ${pfile} || echo '\n\n') | tail -n 1) | |||||
dlext=$(echo -e $(${jq} -ecrM .dlext ${pfile} || echo '\n\n') | tail -n 1) | |||||
dlmethod=$(echo -e $(${jq} -ecrM .dlmethod ${pfile} || echo '\n\n') | tail -n 1) | |||||
dlname=$(echo -e $(${jq} -ecrM .dlname ${pfile} || echo '\n\n') | tail -n 1) | |||||
combinedbundles=$(echo -e $(${jq} -ecrM .combinedbundles ${pfile} || echo '\n\n') | tail -n 1) | |||||
download "${name}" "${version}" "${dlbaseurl}" "${dlext}" "${dlmethod}" "${dlname}" | download "${name}" "${version}" "${dlbaseurl}" "${dlext}" "${dlmethod}" "${dlname}" | ||||
@@ -1,6 +1,5 @@ | |||||
#!/bin/bash | #!/bin/bash | ||||
PAWPAW_ROOT="${PWD}" | |||||
SOURCING_FILES=1 | SOURCING_FILES=1 | ||||
target="${1}" | target="${1}" | ||||
@@ -19,10 +19,19 @@ shift | |||||
VERSION=$(cat VERSION) | VERSION=$(cat VERSION) | ||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# source setup code | |||||
source setup/check_target.sh | source setup/check_target.sh | ||||
source setup/env.sh | source setup/env.sh | ||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# check for depedencies | |||||
if [ -z "${jq}" ]; then | |||||
echo "missing 'jq' program, cannot continue!" | |||||
exit 2 | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
function download_and_install_innosetup { | function download_and_install_innosetup { | ||||
@@ -78,10 +87,10 @@ for plugin in ${@}; do | |||||
exit 2 | exit 2 | ||||
fi | fi | ||||
name=$(jq -crM .name ${pfile}) | |||||
name=$(${jq} -crM .name ${pfile}) | |||||
sname=$(echo ${name} | tr -ds '-' '_') | sname=$(echo ${name} | tr -ds '-' '_') | ||||
description=$(jq -crM .description ${pfile}) | |||||
lv2bundles=($(jq -crM .lv2bundles[] ${pfile})) | |||||
description=$(${jq} -crM .description ${pfile}) | |||||
lv2bundles=($(${jq} -crM .lv2bundles[] ${pfile})) | |||||
if [ "${WIN32}" -eq 1 ]; then | if [ "${WIN32}" -eq 1 ]; then | ||||
echo "Name: ${sname}; Description: \"${name}\"; Types: full;" >> /tmp/pawpaw/components.iss | echo "Name: ${sname}; Description: \"${name}\"; Types: full;" >> /tmp/pawpaw/components.iss | ||||
@@ -212,6 +212,43 @@ if [ -n "${PAWPAW_SKIP_STRIPPING}" ] && [ "${PAWPAW_SKIP_STRIPPING}" -eq 1 ]; th | |||||
TARGET_STRIP="true" | TARGET_STRIP="true" | ||||
fi | fi | ||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# find needed programs | |||||
if [ -z "${SOURCING_FILES}" ]; then | |||||
set +e | |||||
fi | |||||
autoconf=$(command -v autoconf) | |||||
cmake=$(command -v cmake) | |||||
jq=$(command -v jq) | |||||
meson=$(command -v meson) | |||||
ninja=$(command -v meson) | |||||
if [ -z "${SOURCING_FILES}" ]; then | |||||
set -e | |||||
fi | |||||
if [ -z "${autoconf}" ] && [ -e "/opt/homebrew/bin/autoconf" ]; then | |||||
autoconf="/opt/homebrew/bin/autoconf" | |||||
fi | |||||
if [ -z "${cmake}" ] && [ -e "/opt/homebrew/bin/cmake" ]; then | |||||
cmake="/opt/homebrew/bin/cmake" | |||||
fi | |||||
if [ -z "${jq}" ] && [ -e "/opt/homebrew/bin/jq" ]; then | |||||
jq="/opt/homebrew/bin/jq" | |||||
fi | |||||
if [ -z "${meson}" ] && [ -e "/opt/homebrew/bin/meson" ]; then | |||||
meson="/opt/homebrew/bin/meson" | |||||
fi | |||||
if [ -z "${ninja}" ] && [ -e "/opt/homebrew/bin/ninja" ]; then | |||||
ninja="/opt/homebrew/bin/ninja" | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# other | # other | ||||
@@ -28,7 +28,7 @@ function download() { | |||||
rm -rf "${tmprepodir}" | rm -rf "${tmprepodir}" | ||||
git clone --recursive "${dlbaseurl}" "${tmprepodir}" | git clone --recursive "${dlbaseurl}" "${tmprepodir}" | ||||
git -C "${tmprepodir}" checkout "${version}" | git -C "${tmprepodir}" checkout "${version}" | ||||
git -C "${tmprepodir}" submodule update | |||||
git -C "${tmprepodir}" submodule update --recursive --init | |||||
tar --exclude=".git" -czf "${dlfile}" -C "${PAWPAW_TMPDIR}" "${dlname}-${version}" | tar --exclude=".git" -czf "${dlfile}" -C "${PAWPAW_TMPDIR}" "${dlname}-${version}" | ||||
rm -rf "${tmprepodir}" | rm -rf "${tmprepodir}" | ||||
else | else | ||||
@@ -96,7 +96,7 @@ function git_clone() { | |||||
rm -rf "${tmprepodir}" | rm -rf "${tmprepodir}" | ||||
git clone --recursive "${repourl}" "${tmprepodir}" | git clone --recursive "${repourl}" "${tmprepodir}" | ||||
git -C "${tmprepodir}" checkout "${hash}" | git -C "${tmprepodir}" checkout "${hash}" | ||||
git -C "${tmprepodir}" submodule update | |||||
git -C "${tmprepodir}" submodule update --recursive --init | |||||
tar --exclude=".git" -czf "${dlfile}" -C "${PAWPAW_TMPDIR}" "${dlname}-${hash}" | tar --exclude=".git" -czf "${dlfile}" -C "${PAWPAW_TMPDIR}" "${dlname}-${hash}" | ||||
rm -rf "${tmprepodir}" | rm -rf "${tmprepodir}" | ||||
fi | fi | ||||
@@ -257,7 +257,7 @@ function build_autoconfgen() { | |||||
if [ -f utils/autogen.sh ]; then | if [ -f utils/autogen.sh ]; then | ||||
./utils/autogen.sh | ./utils/autogen.sh | ||||
else | else | ||||
autoconf | |||||
${autoconf} | |||||
fi | fi | ||||
touch .stamp_preconfigured | touch .stamp_preconfigured | ||||
popd | popd | ||||
@@ -355,7 +355,7 @@ function build_cmake() { | |||||
if [ ! -f "${pkgdir}/.stamp_configured" ]; then | if [ ! -f "${pkgdir}/.stamp_configured" ]; then | ||||
pushd "${pkgdir}/build" | pushd "${pkgdir}/build" | ||||
${CMAKE_EXE_WRAPPER} cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_PREFIX="${PAWPAW_PREFIX}" ${extraconfrules} .. | |||||
${CMAKE_EXE_WRAPPER} ${cmake} -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_PREFIX="${PAWPAW_PREFIX}" ${extraconfrules} .. | |||||
touch ../.stamp_configured | touch ../.stamp_configured | ||||
popd | popd | ||||
fi | fi | ||||
@@ -420,21 +420,21 @@ function build_meson() { | |||||
if [ ! -f "${pkgdir}/.stamp_configured" ]; then | if [ ! -f "${pkgdir}/.stamp_configured" ]; then | ||||
pushd "${pkgdir}" | pushd "${pkgdir}" | ||||
meson build --buildtype release --prefix "${PAWPAW_PREFIX}" --libdir lib ${extraconfrules} | |||||
env NINJA="${ninja}" ${meson} build --buildtype release --prefix "${PAWPAW_PREFIX}" --libdir lib ${extraconfrules} | |||||
touch .stamp_configured | touch .stamp_configured | ||||
popd | popd | ||||
fi | fi | ||||
if [ ! -f "${pkgdir}/.stamp_built" ]; then | if [ ! -f "${pkgdir}/.stamp_built" ]; then | ||||
pushd "${pkgdir}" | pushd "${pkgdir}" | ||||
ninja -v -C build | |||||
${ninja} -v -C build | |||||
touch .stamp_built | touch .stamp_built | ||||
popd | popd | ||||
fi | fi | ||||
if [ ! -f "${pkgdir}/.stamp_installed" ]; then | if [ ! -f "${pkgdir}/.stamp_installed" ]; then | ||||
pushd "${pkgdir}" | pushd "${pkgdir}" | ||||
ninja -C build install | |||||
${ninja} -C build install | |||||
touch .stamp_installed | touch .stamp_installed | ||||
popd | popd | ||||
fi | fi | ||||