@@ -57,8 +57,7 @@ install: | |||||
- bash ${TRAVIS_BUILD_DIR}/.travis/install.sh | - bash ${TRAVIS_BUILD_DIR}/.travis/install.sh | ||||
script: | script: | ||||
- bash ${TRAVIS_BUILD_DIR}/bootstrap.sh ${TARGET} | |||||
- bash ${TRAVIS_BUILD_DIR}/build-jack.sh ${TARGET} | |||||
- bash ${TRAVIS_BUILD_DIR}/bootstrap-plugins.sh ${TARGET} | |||||
- bash ${TRAVIS_BUILD_DIR}/build-plugins.sh ${TARGET} ${PLUGINS} | - bash ${TRAVIS_BUILD_DIR}/build-plugins.sh ${TARGET} ${PLUGINS} | ||||
before_deploy: | before_deploy: | ||||
@@ -0,0 +1,36 @@ | |||||
#!/bin/bash | |||||
set -e | |||||
cd $(dirname ${0}) | |||||
PAWPAW_ROOT="${PWD}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
target="${1}" | |||||
if [ -z "${target}" ]; then | |||||
echo "usage: ${0} <target>" | |||||
exit 1 | |||||
fi | |||||
./bootstrap-common.sh "${target}" | |||||
./bootstrap-plugins.sh "${target}" | |||||
./bootstrap-qt.sh "${target}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
source setup/check_target.sh | |||||
source setup/env.sh | |||||
source setup/functions.sh | |||||
source setup/versions.sh | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# file/magic (posix only) | |||||
# if [ "${WIN32}" -eq 0 ]; then | |||||
# download file "${FILE_VERSION}" "ftp://ftp.astron.com/pub/file" | |||||
# build_autoconf file "${FILE_VERSION}" | |||||
# fi | |||||
# --------------------------------------------------------------------------------------------------------------------- |
@@ -0,0 +1,92 @@ | |||||
#!/bin/bash | |||||
set -e | |||||
cd $(dirname ${0}) | |||||
PAWPAW_ROOT="${PWD}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
target="${1}" | |||||
if [ -z "${target}" ]; then | |||||
echo "usage: ${0} <target>" | |||||
exit 1 | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# TODO check for depedencies: | |||||
# - curl | |||||
# - cmake | |||||
# - make | |||||
# - jq | |||||
# - patch | |||||
# - python (waf, meson) | |||||
# - sed | |||||
# - tar | |||||
source setup/check_target.sh | |||||
source setup/env.sh | |||||
source setup/functions.sh | |||||
source setup/versions.sh | |||||
mkdir -p "${PAWPAW_BUILDDIR}" | |||||
mkdir -p "${PAWPAW_DOWNLOADDIR}" | |||||
mkdir -p "${PAWPAW_PREFIX}" | |||||
mkdir -p "${PAWPAW_TMPDIR}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# let's use native glib for linux builds | |||||
if [ "${LINUX}" -eq 1 ] && [ ! -e "${TARGET_PKG_CONFIG_PATH}/glib-2.0.pc" ]; then | |||||
mkdir -p ${TARGET_PKG_CONFIG_PATH} | |||||
ln -s $(pkg-config --variable=pcfiledir glib-2.0)/g{io,lib,module,object,thread}-2.0.pc ${TARGET_PKG_CONFIG_PATH}/ | |||||
ln -s $(pkg-config --variable=pcfiledir libpcre)/libpcre.pc ${TARGET_PKG_CONFIG_PATH}/ | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# pkgconfig | |||||
download pkg-config "${PKG_CONFIG_VERSION}" "https://pkg-config.freedesktop.org/releases" | |||||
build_host_autoconf pkg-config "${PKG_CONFIG_VERSION}" "--enable-indirect-deps --with-internal-glib --with-pc-path=${TARGET_PKG_CONFIG_PATH}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# libogg | |||||
download libogg "${LIBOGG_VERSION}" "https://ftp.osuosl.org/pub/xiph/releases/ogg" | |||||
patch_file libogg "${LIBOGG_VERSION}" "include/ogg/os_types.h" 's/__MACH__/__MACH_SKIP__/' | |||||
build_autoconf libogg "${LIBOGG_VERSION}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# libvorbis | |||||
download libvorbis "${LIBVORBIS_VERSION}" "https://ftp.osuosl.org/pub/xiph/releases/vorbis" | |||||
build_autoconf libvorbis "${LIBVORBIS_VERSION}" "--disable-examples" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# flac | |||||
FLAC_EXTRAFLAGS="--disable-doxygen-docs --disable-examples --disable-thorough-tests" | |||||
if [ "${MACOS_OLD}" -eq 1 ]; then | |||||
FLAC_EXTRAFLAGS="${FLAC_EXTRAFLAGS} --disable-asm-optimizations" | |||||
fi | |||||
download flac "${FLAC_VERSION}" "https://ftp.osuosl.org/pub/xiph/releases/flac" "tar.xz" | |||||
build_autoconf flac "${FLAC_VERSION}" "${FLAC_EXTRAFLAGS}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# libsamplerate | |||||
download libsamplerate "${LIBSAMPLERATE_VERSION}" "http://www.mega-nerd.com/SRC" | |||||
build_autoconf libsamplerate "${LIBSAMPLERATE_VERSION}" "--disable-fftw --disable-sndfile" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# libsndfile | |||||
download libsndfile "${LIBSNDFILE_VERSION}" "http://www.mega-nerd.com/libsndfile/files" | |||||
patch_file libsndfile "${LIBSNDFILE_VERSION}" "configure" 's/ -Wvla//' | |||||
build_autoconf libsndfile "${LIBSNDFILE_VERSION}" "--disable-full-suite --disable-alsa --disable-sqlite" | |||||
# --------------------------------------------------------------------------------------------------------------------- |
@@ -17,13 +17,11 @@ if [ -z "${target}" ]; then | |||||
exit 1 | exit 1 | ||||
fi | fi | ||||
if [ -n "${2}" ]; then | |||||
PACKAGING_BUILD="y" | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# TODO check that bootstrap.sh has been run | |||||
./bootstrap-common.sh "${target}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
source setup/check_target.sh | source setup/check_target.sh | ||||
source setup/env.sh | source setup/env.sh | ||||
@@ -146,123 +144,3 @@ if [ "${WIN32}" -eq 1 ]; then | |||||
fi | fi | ||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# stop here if CI test build | |||||
if [ -n "${TRAVIS_BUILD_DIR}" ]; then | |||||
exit 0 | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# and finally jack2 | |||||
jack2_repo="https://github.com/jackaudio/jack2.git" | |||||
jack2_prefix="${PAWPAW_PREFIX}-jack2" | |||||
jack2_args="--prefix=${jack2_prefix}" | |||||
# if [ "${MACOS_OLD}" -eq 1 ] || [ "${WIN64}" -eq 1 ]; then | |||||
# jack2_args="${jack2_args} --mixed" | |||||
# fi | |||||
if [ "${CROSS_COMPILING}" -eq 1 ]; then | |||||
if [ "${LINUX}" -eq 1 ]; then | |||||
jack2_args+=" --platform=linux" | |||||
elif [ "${MACOS}" -eq 1 ]; then | |||||
jack2_args+=" --platform=darwin" | |||||
elif [ "${WIN32}" -eq 1 ]; then | |||||
jack2_args+=" --platform=win32" | |||||
fi | |||||
fi | |||||
if [ "${MACOS}" -eq 1 ]; then | |||||
jack2_extra_prefix="/usr/local" | |||||
jack2_args+=" --prefix=${jack2_extra_prefix}" | |||||
jack2_args+=" --destdir="${jack2_prefix}"" | |||||
fi | |||||
if [ "${MACOS_OLD}" -eq 1 ]; then | |||||
patch_file jack2 "git" "wscript" '/-std=gnu++11/d' | |||||
patch_file jack2 "git" "wscript" '/-Wno-deprecated-register/d' | |||||
fi | |||||
if [ "${JACK2_VERSION}" = "git" ]; then | |||||
if [ ! -d jack2 ]; then | |||||
git clone --recursive "${jack2_repo}" | |||||
fi | |||||
if [ ! -e "${PAWPAW_BUILDDIR}/jack2-git" ]; then | |||||
ln -sf "$(pwd)/jack2" "${PAWPAW_BUILDDIR}/jack2-git" | |||||
fi | |||||
rm -f "${PAWPAW_BUILDDIR}/jack2-git/.stamp_built" | |||||
else | |||||
download jack2 "${JACK2_VERSION}" "${jack2_repo}" "" "git" | |||||
fi | |||||
build_waf jack2 "${JACK2_VERSION}" "${jack2_args}" | |||||
# remove useless dbus-specific file | |||||
rm -f "${jack2_prefix}${jack2_extra_prefix}/bin/jack_control" | |||||
# copy jack pkg-config file to main system, so qjackctl can find it | |||||
if [ ! -e "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc" ]; then | |||||
cp -v "${jack2_prefix}${jack2_extra_prefix}/lib/pkgconfig/jack.pc" "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc" | |||||
# patch pkg-config file for static win32 builds in regular prefix | |||||
if [ "${WIN32}" -eq 1 ]; then | |||||
if [ "${WIN64}" -eq 1 ]; then | |||||
s="64" | |||||
else | |||||
s="" | |||||
fi | |||||
# FIXME rule that works for server lib too, maybe ignoring suffix even | |||||
sed -i -e "s/lib -ljack${s}/lib -Wl,-Bdynamic -ljack${s} -Wl,-Bstatic/" "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc" | |||||
fi | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# if qt is available, build qjackctl | |||||
if [ -f "${PAWPAW_PREFIX}/bin/moc" ]; then | |||||
download qjackctl ${QJACKCTL_VERSION} https://download.sourceforge.net/qjackctl | |||||
if [ "${WIN64}" -eq 1 ]; then | |||||
patch_file qjackctl "${QJACKCTL_VERSION}" "configure" 's/-ljack /-Wl,-Bdynamic -ljack64 -Wl,-Bstatic /' | |||||
elif [ "${WIN32}" -eq 1 ]; then | |||||
patch_file qjackctl "${QJACKCTL_VERSION}" "configure" 's/-ljack /-Wl,-Bdynamic -ljack -Wl,-Bstatic /' | |||||
elif [ "${MACOS}" -eq 1 ]; then | |||||
qjackctl_extra_args="--with-jack="${jack2_prefix}${jack2_extra_prefix}"" | |||||
fi | |||||
build_autoconf qjackctl "${QJACKCTL_VERSION}" "--enable-jack-version ${qjackctl_extra_args}" | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
if [ -n "${PACKAGING_BUILD}" ]; then | |||||
if [ "${MACOS}" -eq 1 ]; then | |||||
for f in $(ls "${jack2_prefix}${jack2_extra_prefix}/bin"/* \ | |||||
"${jack2_prefix}${jack2_extra_prefix}/lib"/*.dylib \ | |||||
"${jack2_prefix}${jack2_extra_prefix}/lib/jack"/*); do | |||||
patch_osx_binary_libs "${f}" | |||||
done | |||||
if [ ! -e jack2 ]; then | |||||
ln -s "${PAWPAW_BUILDDIR}/jack2-${JACK2_VERSION}" jack2 | |||||
fi | |||||
./jack2/macosx/generate-pkg.sh "${jack2_prefix}${jack2_extra_prefix}/" | |||||
qjackctl_app="${PAWPAW_PREFIX}/bin/qjackctl.app" | |||||
qjackctl_dir="${qjackctl_app}/Contents/MacOS" | |||||
patch_osx_qtapp qjackctl "${QJACKCTL_VERSION}" "${qjackctl_app}" | |||||
patch_osx_binary_libs "${qjackctl_dir}/qjackctl" | |||||
rm -rf jack2/macosx/qjackctl.app | |||||
cp -rv "${PAWPAW_PREFIX}/bin/qjackctl.app" jack2/macosx/ | |||||
rm -f jack2-macOS-${JACK2_VERSION}.tar.gz | |||||
tar czf jack2-macOS-${JACK2_VERSION}.tar.gz -C jack2/macosx jack2-osx-*.pkg qjackctl.app | |||||
elif [ "${WIN32}" -eq 1 ]; then | |||||
copy_file qjackctl "${QJACKCTL_VERSION}" "src/release/qjackctl.exe" "${jack2_prefix}/bin/qjackctl.exe" | |||||
fi | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- |
@@ -16,48 +16,46 @@ fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# TODO check for depedencies: | |||||
# - curl | |||||
# - cmake | |||||
# - make | |||||
# - jq | |||||
# - patch | |||||
# - python (waf, meson) | |||||
# - sed | |||||
# - tar | |||||
./bootstrap-common.sh "${target}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
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 | ||||
mkdir -p "${PAWPAW_BUILDDIR}" | |||||
mkdir -p "${PAWPAW_DOWNLOADDIR}" | |||||
mkdir -p "${PAWPAW_PREFIX}" | |||||
mkdir -p "${PAWPAW_TMPDIR}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# let's use native glib for linux builds | |||||
# fftw | |||||
FFTW_EXTRAFLAGS="--enable-sse2 --disable-alloca --disable-fortran --with-our-malloc" | |||||
# if [ "${WIN32}" -eq 0 ]; then | |||||
# FFTW_EXTRAFLAGS="${FFTW_EXTRAFLAGS} --enable-threads" | |||||
# fi | |||||
if [ "${LINUX}" -eq 1 ] && [ ! -e "${TARGET_PKG_CONFIG_PATH}/glib-2.0.pc" ]; then | |||||
mkdir -p ${TARGET_PKG_CONFIG_PATH} | |||||
ln -s $(pkg-config --variable=pcfiledir glib-2.0)/g{io,lib,module,object,thread}-2.0.pc ${TARGET_PKG_CONFIG_PATH}/ | |||||
ln -s $(pkg-config --variable=pcfiledir libpcre)/libpcre.pc ${TARGET_PKG_CONFIG_PATH}/ | |||||
download fftw "${FFTW_VERSION}" "http://www.fftw.org" | |||||
if [ "${MACOS_OLD}" -eq 1 ]; then | |||||
patch_file fftw "${FFTW_VERSION}" "configure" 's/CFLAGS="$CFLAGS -Wl,-no_compact_unwind"/CFLAGS="$CFLAGS"/' | |||||
patch_file fftw "${FFTW_VERSION}" "libbench2/timer.c" 's/#if defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_TIMER)/#ifndef HAVE_TIMER/' | |||||
fi | fi | ||||
build_autoconf fftw "${FFTW_VERSION}" "${FFTW_EXTRAFLAGS}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# pkgconfig | |||||
# fftwf | |||||
download pkg-config "${PKG_CONFIG_VERSION}" "https://pkg-config.freedesktop.org/releases" | |||||
build_host_autoconf pkg-config "${PKG_CONFIG_VERSION}" "--enable-indirect-deps --with-internal-glib --with-pc-path=${TARGET_PKG_CONFIG_PATH}" | |||||
FFTWF_EXTRAFLAGS="${FFTW_EXTRAFLAGS} --enable-single" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# file/magic (posix only) | |||||
copy_download fftw fftwf "${FFTW_VERSION}" | |||||
# if [ "${WIN32}" -eq 0 ]; then | |||||
# download file "${FILE_VERSION}" "ftp://ftp.astron.com/pub/file" | |||||
# build_autoconf file "${FILE_VERSION}" | |||||
# fi | |||||
if [ "${MACOS_OLD}" -eq 1 ]; then | |||||
patch_file fftwf "${FFTW_VERSION}" "configure" 's/CFLAGS="$CFLAGS -Wl,-no_compact_unwind"/CFLAGS="$CFLAGS"/' | |||||
patch_file fftwf "${FFTW_VERSION}" "libbench2/timer.c" 's/#if defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_TIMER)/#ifndef HAVE_TIMER/' | |||||
fi | |||||
build_autoconf fftwf "${FFTW_VERSION}" "${FFTWF_EXTRAFLAGS}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# glib | # glib | ||||
@@ -94,76 +92,6 @@ fi | |||||
download liblo "${LIBLO_VERSION}" "http://download.sourceforge.net/liblo" | download liblo "${LIBLO_VERSION}" "http://download.sourceforge.net/liblo" | ||||
build_autoconf liblo "${LIBLO_VERSION}" "--enable-threads --disable-examples --disable-tests --disable-tools" | build_autoconf liblo "${LIBLO_VERSION}" "--enable-threads --disable-examples --disable-tests --disable-tools" | ||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# libogg | |||||
download libogg "${LIBOGG_VERSION}" "https://ftp.osuosl.org/pub/xiph/releases/ogg" | |||||
patch_file libogg "${LIBOGG_VERSION}" "include/ogg/os_types.h" 's/__MACH__/__MACH_SKIP__/' | |||||
build_autoconf libogg "${LIBOGG_VERSION}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# libvorbis | |||||
download libvorbis "${LIBVORBIS_VERSION}" "https://ftp.osuosl.org/pub/xiph/releases/vorbis" | |||||
build_autoconf libvorbis "${LIBVORBIS_VERSION}" "--disable-examples" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# flac | |||||
FLAC_EXTRAFLAGS="--disable-doxygen-docs --disable-examples --disable-thorough-tests" | |||||
if [ "${MACOS_OLD}" -eq 1 ]; then | |||||
FLAC_EXTRAFLAGS="${FLAC_EXTRAFLAGS} --disable-asm-optimizations" | |||||
fi | |||||
download flac "${FLAC_VERSION}" "https://ftp.osuosl.org/pub/xiph/releases/flac" "tar.xz" | |||||
build_autoconf flac "${FLAC_VERSION}" "${FLAC_EXTRAFLAGS}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# fftw | |||||
FFTW_EXTRAFLAGS="--enable-sse2 --disable-alloca --disable-fortran --with-our-malloc" | |||||
# if [ "${WIN32}" -eq 0 ]; then | |||||
# FFTW_EXTRAFLAGS="${FFTW_EXTRAFLAGS} --enable-threads" | |||||
# fi | |||||
download fftw "${FFTW_VERSION}" "http://www.fftw.org" | |||||
if [ "${MACOS_OLD}" -eq 1 ]; then | |||||
patch_file fftw "${FFTW_VERSION}" "configure" 's/CFLAGS="$CFLAGS -Wl,-no_compact_unwind"/CFLAGS="$CFLAGS"/' | |||||
patch_file fftw "${FFTW_VERSION}" "libbench2/timer.c" 's/#if defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_TIMER)/#ifndef HAVE_TIMER/' | |||||
fi | |||||
build_autoconf fftw "${FFTW_VERSION}" "${FFTW_EXTRAFLAGS}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# fftwf | |||||
FFTWF_EXTRAFLAGS="${FFTW_EXTRAFLAGS} --enable-single" | |||||
copy_download fftw fftwf "${FFTW_VERSION}" | |||||
if [ "${MACOS_OLD}" -eq 1 ]; then | |||||
patch_file fftwf "${FFTW_VERSION}" "configure" 's/CFLAGS="$CFLAGS -Wl,-no_compact_unwind"/CFLAGS="$CFLAGS"/' | |||||
patch_file fftwf "${FFTW_VERSION}" "libbench2/timer.c" 's/#if defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_TIMER)/#ifndef HAVE_TIMER/' | |||||
fi | |||||
build_autoconf fftwf "${FFTW_VERSION}" "${FFTWF_EXTRAFLAGS}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# libsamplerate | |||||
download libsamplerate "${LIBSAMPLERATE_VERSION}" "http://www.mega-nerd.com/SRC" | |||||
build_autoconf libsamplerate "${LIBSAMPLERATE_VERSION}" "--disable-fftw --disable-sndfile" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# libsndfile | |||||
download libsndfile "${LIBSNDFILE_VERSION}" "http://www.mega-nerd.com/libsndfile/files" | |||||
patch_file libsndfile "${LIBSNDFILE_VERSION}" "configure" 's/ -Wvla//' | |||||
build_autoconf libsndfile "${LIBSNDFILE_VERSION}" "--disable-full-suite --disable-alsa --disable-sqlite" | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# lv2 | # lv2 | ||||
@@ -16,13 +16,31 @@ fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# TODO check that bootstrap.sh has been run | |||||
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 | ||||
mkdir -p "${PAWPAW_BUILDDIR}" | |||||
mkdir -p "${PAWPAW_DOWNLOADDIR}" | |||||
mkdir -p "${PAWPAW_PREFIX}" | |||||
mkdir -p "${PAWPAW_TMPDIR}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# let's use native glib for linux builds | |||||
if [ "${LINUX}" -eq 1 ] && [ ! -e "${TARGET_PKG_CONFIG_PATH}/glib-2.0.pc" ]; then | |||||
mkdir -p ${TARGET_PKG_CONFIG_PATH} | |||||
ln -s $(pkg-config --variable=pcfiledir glib-2.0)/g{io,lib,module,object,thread}-2.0.pc ${TARGET_PKG_CONFIG_PATH}/ | |||||
ln -s $(pkg-config --variable=pcfiledir libpcre)/libpcre.pc ${TARGET_PKG_CONFIG_PATH}/ | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# pkgconfig | |||||
download pkg-config "${PKG_CONFIG_VERSION}" "https://pkg-config.freedesktop.org/releases" | |||||
build_host_autoconf pkg-config "${PKG_CONFIG_VERSION}" "--enable-indirect-deps --with-internal-glib --with-pc-path=${TARGET_PKG_CONFIG_PATH}" | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
qtsuffix="-opensource-src" | qtsuffix="-opensource-src" |
@@ -0,0 +1,113 @@ | |||||
#!/bin/bash | |||||
set -e | |||||
cd $(dirname ${0}) | |||||
PAWPAW_ROOT="${PWD}" | |||||
JACK2_VERSION=${JACK2_VERSION:=git} | |||||
QJACKCTL_VERSION=${QJACKCTL_VERSION:=0.6.2} | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
target="${1}" | |||||
if [ -z "${target}" ]; then | |||||
echo "usage: ${0} <target> [package-build?]" | |||||
exit 1 | |||||
fi | |||||
# TODO check that bootstrap-jack.sh has been run | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
source setup/check_target.sh | |||||
source setup/env.sh | |||||
source setup/functions.sh | |||||
source setup/versions.sh | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# jack2 | |||||
jack2_repo="https://github.com/jackaudio/jack2.git" | |||||
jack2_prefix="${PAWPAW_PREFIX}-jack2" | |||||
jack2_args="--prefix=${jack2_prefix}" | |||||
# if [ "${MACOS_OLD}" -eq 1 ] || [ "${WIN64}" -eq 1 ]; then | |||||
# jack2_args="${jack2_args} --mixed" | |||||
# fi | |||||
if [ "${CROSS_COMPILING}" -eq 1 ]; then | |||||
if [ "${LINUX}" -eq 1 ]; then | |||||
jack2_args+=" --platform=linux" | |||||
elif [ "${MACOS}" -eq 1 ]; then | |||||
jack2_args+=" --platform=darwin" | |||||
elif [ "${WIN32}" -eq 1 ]; then | |||||
jack2_args+=" --platform=win32" | |||||
fi | |||||
fi | |||||
if [ "${MACOS}" -eq 1 ]; then | |||||
jack2_extra_prefix="/usr/local" | |||||
jack2_args+=" --prefix=${jack2_extra_prefix}" | |||||
jack2_args+=" --destdir="${jack2_prefix}"" | |||||
fi | |||||
if [ "${MACOS_OLD}" -eq 1 ]; then | |||||
patch_file jack2 "git" "wscript" '/-std=gnu++11/d' | |||||
patch_file jack2 "git" "wscript" '/-Wno-deprecated-register/d' | |||||
fi | |||||
if [ "${JACK2_VERSION}" = "git" ]; then | |||||
if [ ! -d jack2 ]; then | |||||
git clone --recursive "${jack2_repo}" | |||||
fi | |||||
if [ ! -e "${PAWPAW_BUILDDIR}/jack2-git" ]; then | |||||
ln -sf "$(pwd)/jack2" "${PAWPAW_BUILDDIR}/jack2-git" | |||||
fi | |||||
rm -f "${PAWPAW_BUILDDIR}/jack2-git/.stamp_built" | |||||
else | |||||
download jack2 "${JACK2_VERSION}" "${jack2_repo}" "" "git" | |||||
fi | |||||
build_waf jack2 "${JACK2_VERSION}" "${jack2_args}" | |||||
# remove useless dbus-specific file | |||||
rm -f "${jack2_prefix}${jack2_extra_prefix}/bin/jack_control" | |||||
# copy jack pkg-config file to main system, so qjackctl can find it | |||||
if [ ! -e "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc" ]; then | |||||
cp -v "${jack2_prefix}${jack2_extra_prefix}/lib/pkgconfig/jack.pc" "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc" | |||||
# patch pkg-config file for static win32 builds in regular prefix | |||||
if [ "${WIN32}" -eq 1 ]; then | |||||
if [ "${WIN64}" -eq 1 ]; then | |||||
s="64" | |||||
else | |||||
s="" | |||||
fi | |||||
# FIXME rule that works for server lib too, maybe ignoring suffix even | |||||
sed -i -e "s/lib -ljack${s}/lib -Wl,-Bdynamic -ljack${s} -Wl,-Bstatic/" "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc" | |||||
fi | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# qjackctl (if qt is available) | |||||
if [ -f "${PAWPAW_PREFIX}/bin/moc" ]; then | |||||
download qjackctl ${QJACKCTL_VERSION} https://download.sourceforge.net/qjackctl | |||||
if [ "${WIN64}" -eq 1 ]; then | |||||
patch_file qjackctl "${QJACKCTL_VERSION}" "configure" 's/-ljack /-Wl,-Bdynamic -ljack64 -Wl,-Bstatic /' | |||||
elif [ "${WIN32}" -eq 1 ]; then | |||||
patch_file qjackctl "${QJACKCTL_VERSION}" "configure" 's/-ljack /-Wl,-Bdynamic -ljack -Wl,-Bstatic /' | |||||
elif [ "${MACOS}" -eq 1 ]; then | |||||
qjackctl_extra_args="--with-jack="${jack2_prefix}${jack2_extra_prefix}"" | |||||
fi | |||||
build_autoconf qjackctl "${QJACKCTL_VERSION}" "--enable-jack-version ${qjackctl_extra_args}" | |||||
if [ "${WIN32}" -eq 1 ]; then | |||||
copy_file qjackctl "${QJACKCTL_VERSION}" "src/release/qjackctl.exe" "${jack2_prefix}/bin/qjackctl.exe" | |||||
fi | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- |
@@ -0,0 +1,61 @@ | |||||
#!/bin/bash | |||||
set -e | |||||
cd $(dirname ${0}) | |||||
PAWPAW_ROOT="${PWD}" | |||||
JACK2_VERSION=${JACK2_VERSION:=git} | |||||
QJACKCTL_VERSION=${QJACKCTL_VERSION:=0.6.2} | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
target="${1}" | |||||
if [ -z "${target}" ]; then | |||||
echo "usage: ${0} <target> [package-build?]" | |||||
exit 1 | |||||
fi | |||||
if [ -n "${2}" ]; then | |||||
PACKAGING_BUILD="y" | |||||
fi | |||||
# TODO check that bootstrap-jack.sh has been run | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
source setup/check_target.sh | |||||
source setup/env.sh | |||||
source setup/functions.sh | |||||
source setup/versions.sh | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
# final steps for packaging, if needed | |||||
if [ "${MACOS}" -eq 1 ]; then | |||||
for f in $(ls "${jack2_prefix}${jack2_extra_prefix}/bin"/* \ | |||||
"${jack2_prefix}${jack2_extra_prefix}/lib"/*.dylib \ | |||||
"${jack2_prefix}${jack2_extra_prefix}/lib/jack"/*); do | |||||
patch_osx_binary_libs "${f}" | |||||
done | |||||
if [ ! -e jack2 ]; then | |||||
ln -s "${PAWPAW_BUILDDIR}/jack2-${JACK2_VERSION}" jack2 | |||||
fi | |||||
./jack2/macosx/generate-pkg.sh "${jack2_prefix}${jack2_extra_prefix}/" | |||||
qjackctl_app="${PAWPAW_PREFIX}/bin/qjackctl.app" | |||||
qjackctl_dir="${qjackctl_app}/Contents/MacOS" | |||||
patch_osx_qtapp qjackctl "${QJACKCTL_VERSION}" "${qjackctl_app}" | |||||
patch_osx_binary_libs "${qjackctl_dir}/qjackctl" | |||||
rm -rf jack2/macosx/qjackctl.app | |||||
cp -rv "${PAWPAW_PREFIX}/bin/qjackctl.app" jack2/macosx/ | |||||
rm -f jack2-macOS-${JACK2_VERSION}.tar.gz | |||||
tar czf jack2-macOS-${JACK2_VERSION}.tar.gz -C jack2/macosx jack2-osx-*.pkg qjackctl.app | |||||
fi | |||||
# --------------------------------------------------------------------------------------------------------------------- |