diff --git a/tools/define_versions.sh b/tools/define_versions.sh index 37eca614f3..4726046e62 100644 --- a/tools/define_versions.sh +++ b/tools/define_versions.sh @@ -58,3 +58,9 @@ if grep -q "DEBUG = True" ../../build/c4che/_cache.py; then else DEBUG="F" fi + +if grep -q "FREEBIE=1" ../../build/c4che/_cache.py; then + FREEBI="T" +else + FREEBI="F" +fi diff --git a/tools/linux_packaging/build b/tools/linux_packaging/build index 48278cc23e..e7b57456a9 100755 --- a/tools/linux_packaging/build +++ b/tools/linux_packaging/build @@ -2,10 +2,9 @@ # script for pulling together a Linux app bundle. # -# This will create a bundle for a single architecture. -# Execute this script on both x86 and x86_64 and then use -# package to merge the 2 bundles into a final package with the -# installer. See "noderun" for a complete build script. +# This will create a bundle for a x86_64 architecture. +# Execute this script and then use `package; to build +# the installer. # where the GTK stack is installed GTKSTACK_ROOT=$HOME/gtk/inst @@ -30,8 +29,6 @@ WITH_NLS= EXTERNAL_JACK= VENDOR=Ardour ; EXENAME=ardour -GCC5ABI=false -USEWINE=false WINEEXE= BUILDTYPE="" NOSTRIP="libsuil|libserd|libsord|liblilv|libsratom|liblrdf|libardour|libpbd|libevoral" @@ -101,7 +98,7 @@ while [ $# -gt 0 ] ; do --sysdeps) PRINT_SYSDEPS=1; shift ;; --nls) WITH_NLS=1 ; shift ;; --harvid) WITH_HARVID=1 ; shift ;; - --gcc5abi) GCC5ABI=true ; shift ;; + --gcc5abi) shift ;; --chanstrip) HARRISONCHANNELSTRIP=$2 ; shift; shift ;; *) @@ -133,14 +130,6 @@ echo "Info string is $info_string" # Figure out our CPU type case `uname -m` in - i[3456789]86|x86|i86pc) - echo "Architecture is x86" - ARCH='x86' - WARCH='i386' - HARCH='linux32' - ARCH_BITS='32-bit' - MULTIARCH='i386-linux-gnu' - ;; x86_64|amd64|AMD64) echo "Architecture is x86_64" ARCH='x86_64' @@ -157,8 +146,17 @@ case `uname -m` in ;; esac +if [ "$DEBUG" = "T" ]; then + BUILDTYPE="dbg" +fi +if [ "FREEBI" = "T" ]; then + BUILDTYPE="demo" +fi +if [ "$DEBUG$FREEBI" = "TT" ]; then + BUILDTYPE="demo-dbg" +fi + if [ x$DEBUG = xT ]; then - BUILDTYPE="dbg" if [ x$STRIP = xall ] ; then echo "A debug build with --strip all makes no sense - STRIP reset to \"some\"" STRIP=some @@ -261,7 +259,7 @@ fi echo export 'PATH="/usr/local/bin:/opt/bin:$PATH"' >> $ENVIRONMENT -sed -e "/^%ENV%/r $ENVIRONMENT" -e '/^%ENV%/d' -e 's/%VER%/'"${release_version}"'/;s/%EXENAME%/'"${EXENAME}"'/;s/%WINE%/'"$WINEEXE"'/' < ardour.sh.in > $APPBIN/${EXENAME}${major_version} +sed -e "/^%ENV%/r $ENVIRONMENT" -e '/^%ENV%/d' -e 's/%VER%/'"${release_version}"'/;s/%EXENAME%/'"${EXENAME}"'/' < ardour.sh.in > $APPBIN/${EXENAME}${major_version} rm $ENVIRONMENT && chmod 775 $APPBIN/${EXENAME}${major_version} echo "Copying ardour executable ...." @@ -723,11 +721,7 @@ if test -n "$MIXBUS"; then echo "Adding Harrison Vamp Plugins" - if test "$GCC5ABI" = "true"; then - VAMPARCH="${HARCH}gcc5" - else - VAMPARCH="${HARCH}" - fi + VAMPARCH="${HARCH}gcc5" curl -s -S --fail -# \ -z "${CACHEDIR}/harrison_vamp.${VAMPARCH}.so" \ -o "${CACHEDIR}/harrison_vamp.${VAMPARCH}.so" \ @@ -856,10 +850,9 @@ chmod a+x $APPBIN/${APP_VER_NAME}.uninstall.sh # # Add the stage2.run script # -sed -e "s/%REPLACE_MAJOR_VERSION%/${major_version}/;s/%REPLACE_PGM%/${APPNAME}/;s/%REPLACE_VENDOR%/${VENDOR}/;s/%REPLACE_EXE%/${EXENAME}/;s/%REPLACE_GCC5%/${GCC5ABI}/;s/%REPLACE_WINE%/${USEWINE}/" < stage2.run.in > stage2.run +sed -e "s/%REPLACE_MAJOR_VERSION%/${major_version}/;s/%REPLACE_PGM%/${APPNAME}/;s/%REPLACE_VENDOR%/${VENDOR}/;s/%REPLACE_EXE%/${EXENAME}/" < stage2.run.in > stage2.run chmod a+x stage2.run - #Sanity Check file if [ -e $BUILD_ROOT/tools/sanity_check/sanityCheck ]; then cp $BUILD_ROOT/tools/sanity_check/sanityCheck $APPBIN diff --git a/tools/linux_packaging/package b/tools/linux_packaging/package index 1fb9fc8ade..e8d1fbf206 100755 --- a/tools/linux_packaging/package +++ b/tools/linux_packaging/package @@ -6,10 +6,6 @@ # and package them together with an installer script. BUILDTYPE="" -SINGLE_ARCH="F" -X86_BUNDLE_OK="F" -X86_64_BUNDLE_OK="F" -GCC5ABI="F" MAKESELF="" BUILD_ROOT=../../build @@ -49,9 +45,9 @@ while [ $# -gt 0 ] ; do MAKESELF=`which makeself`; shift ;; - --singlearch) SINGLE_ARCH="T" ; shift ;; + --singlearch) shift ;; - --gcc5abi) GCC5ABI="T" ; shift ;; + --gcc5abi) shift ;; --xz) MAKESELFOPTS="--xz --complevel 9" ; shift ;; @@ -70,84 +66,26 @@ done if [ x$DEBUG = xT ]; then BUILDTYPE="dbg" fi +if [ x$FREEBI = xT ]; then + BUILDTYPE="demo" +fi +if [ x$DEBUG$FREEBI = xTT ]; then + BUILDTYPE="demo-dbg" +fi -X86_BUNDLE="${APPNAME}_x86-${release_version}" X86_64_BUNDLE="${APPNAME}_x86_64-${release_version}" +PACKAGE="${APPNAME}-${release_version}-x86_64" if [ ! -z ${BUILDTYPE} ]; then - X86_BUNDLE="${X86_BUNDLE}-${BUILDTYPE}" X86_64_BUNDLE="${X86_64_BUNDLE}-${BUILDTYPE}" + PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}-x86_64" fi -if [ ! -e ${X86_BUNDLE}.tar ] ; then - echo "" - echo "Can't locate x86 bundle file ${X86_BUNDLE}.tar" - echo "" -elif [ ! -e ${X86_BUNDLE}.size ] ; then - echo "" - echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size" - echo "" -else - X86_BUNDLE_OK="T" -fi - if [ ! -e ${X86_64_BUNDLE}.tar ]; then echo "" echo "Can't locate x86_64 bundle file ${X86_64_BUNDLE}.tar" echo "" -elif [ ! -e ${X86_64_BUNDLE}.size ]; then - echo "" - echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size" - echo "" -else - X86_64_BUNDLE_OK="T" -fi - - -if [ "${X86_BUNDLE_OK}" = "F" ] || [ "${X86_64_BUNDLE_OK}" = "F" ]; then - if [ "${X86_BUNDLE_OK}" = "${X86_64_BUNDLE_OK}" ]; then - echo "" - echo "!!! ERROR !!! - Can't locate bundle files ${X86_BUNDLE} or ${X86_64_BUNDLE}" - echo "" - exit 1 - elif [ "${SINGLE_ARCH}" = "T" ]; then - echo "" - echo "!!! Warning !!! - A single architecture package has been selected" - echo "" - else - echo "" - echo "!!! ERROR !!! - Missing bundle files." - echo "" - exit 1 - fi -fi - - - -if [ -z ${BUILDTYPE} ]; then - if [ "${SINGLE_ARCH}" = "T" ]; then - if [ "${X86_BUNDLE_OK}" = "T" ]; then - PACKAGE="${APPNAME}-${release_version}-x86" - else - PACKAGE="${APPNAME}-${release_version}-x86_64" - fi - else - PACKAGE="${APPNAME}-${release_version}" - fi -else - if [ "${SINGLE_ARCH}" = "T" ]; then - if [ "${X86_BUNDLE_OK}" = "T" ]; then - PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}-x86" - else - PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}-x86_64" - fi - else - PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}" - fi -fi - -if [ "$GCC5ABI" = "T" ]; then - PACKAGE="${PACKAGE}-gcc5" + exit 1 fi echo "Cleaning up any old package files for this build" @@ -159,30 +97,13 @@ rm -rf ${PACKAGE} echo "Creating new package dir..." mkdir ${PACKAGE} -if [ "${X86_BUNDLE_OK}" = "T" ]; then - mv ${X86_BUNDLE}.tar ${PACKAGE} - mv ${X86_BUNDLE}.size ${PACKAGE}/.${X86_BUNDLE}.size -fi - -if [ "${X86_64_BUNDLE_OK}" = "T" ]; then - mv ${X86_64_BUNDLE}.tar ${PACKAGE} - mv ${X86_64_BUNDLE}.size ${PACKAGE}/.${X86_64_BUNDLE}.size -fi +mv ${X86_64_BUNDLE}.tar ${PACKAGE} +mv ${X86_64_BUNDLE}.size ${PACKAGE}/.${X86_64_BUNDLE}.size cp install.sh ${PACKAGE} cp stage2.run ${PACKAGE}/.stage2.run cp README ${PACKAGE} -# gcc4/5 ABI test tool -if [ -e $BUILD_ROOT/tools/gccabicheck/gcc-glibmm-abi-check ]; then - cp $BUILD_ROOT/tools/gccabicheck/gcc-glibmm-abi-check ${PACKAGE}/.gcc-glibmm-abi-check -else - echo "!!!ERROR !!! gcc-glibmm-abi-check program is missing. packager will exit without being complete" - rm -rf ${PACKAGE} - rm -f stage2.run - exit 1 -fi - if test -n "$MAKESELF"; then echo "Creating self-extracting installer" $MAKESELF ${MAKESELFOPTS} ${PACKAGE}/ ${PACKAGE}.run ${APPNAME} ./install.sh diff --git a/tools/linux_packaging/stage2.run.in b/tools/linux_packaging/stage2.run.in index 06f28ae9c5..ad5b5a4ea2 100755 --- a/tools/linux_packaging/stage2.run.in +++ b/tools/linux_packaging/stage2.run.in @@ -31,7 +31,6 @@ USER_NAME=$(logname) #### Global Variables #### HAS_XDG="T" -MULTABI_BUNDLE="" ######################## # Function Definitions @@ -271,12 +270,10 @@ case `uname -m` in arm|armv7l|aarch32) echo "Architecture is armhf" ARCH='armhf' - NOABICHECK=1 ;; aarch64|armv8b) echo "Architecture is arm64" ARCH='arm64' - NOABICHECK=1 ;; *) echo "" @@ -287,35 +284,14 @@ case `uname -m` in ;; esac -################### -# Determine gcc ABI -################### - -if test -n "$MULTABI_BUNDLE"; then - if ! "${PKG_PATH}/.gcc-glibmm-abi-check" --fail --gcc5; then - ABI=-gcc4 - else - ABI=-gcc5 - fi - # allow to manually override - if test "$1" = "--gcc4"; then - ABI=-gcc4 - fi - if test "$1" = "--gcc5"; then - ABI=-gcc5 - fi -else - ABI= -fi - #################################### # Check if bundle is for this system #################################### -if [ ! -e ${PGM_NAME}_${ARCH}${ABI}-*.tar ]; then +if [ ! -e ${PGM_NAME}_${ARCH}-*.tar ]; then echo "" - echo "!!! ERROR !!! Can't locate ${ARCH}${ABI} bundle file." - echo "The installer detected the system as ${ARCH}${ABI}, but this bundle" + echo "!!! ERROR !!! Can't locate ${ARCH} bundle file." + echo "The installer detected the system as ${ARCH}, but this bundle" echo "does not contain the files needed for that configuration." echo "" read -p "Press ENTER to exit installer:" BLAH @@ -331,15 +307,15 @@ fi # in case they are on different devices echo "Checking for required disk space" -if [ ! -e .${PGM_NAME}_${ARCH}${ABI}-*.size ]; then +if [ ! -e .${PGM_NAME}_${ARCH}-*.size ]; then echo "" - echo "!!! ERROR !!! Can't locate .size file for ${ARCH}${ABI} bundle." - echo "This package is broken or does not support ${ARCH}${ABI}." + echo "!!! ERROR !!! Can't locate .size file for ${ARCH} bundle." + echo "This package is broken or does not support ${ARCH}." echo "" read -p "Press ENTER to exit installer:" BLAH exit 1 else - REQUIRED_BYTES=$(cat .${PGM_NAME}_${ARCH}${ABI}-*.size) + REQUIRED_BYTES=$(cat .${PGM_NAME}_${ARCH}-*.size) #Installer needs 2x the space since the bundle is unpacked locally and then copied REQUIRED_BYTES=$(($REQUIRED_BYTES + $REQUIRED_BYTES)) @@ -371,57 +347,6 @@ else fi fi -############################### -# Determine C++11 stdlibc++ ABI -############################### - -if test -z "$ABI" -a -z "$NOABICHECK"; then - if %REPLACE_GCC5%; then - # Ardour was compiled with gcc5, warn on gcc4 systems - if ! "${PKG_PATH}/.gcc-glibmm-abi-check" --gcc5; then - echo "" - echo "WARNING: GCC4/5 libstdc++ ABI Mismatch" - echo "" - echo "${PGM_NAME} was compiled with gcc5, your system uses an older version of the" - echo "standard c++ library. Plugins on your system may not load or plugin-UIs" - echo "may cause crashes." - echo "" - ANSWER=$(VaildateYesNoQuestion "Continue anyway?") - if test "n" = $ANSWER; then - exit 1 - fi - fi - else - # Ardour was compiled with gcc4, warn on gcc5 systems - if ! "${PKG_PATH}/.gcc-glibmm-abi-check" --gcc4 ; then - echo "" - echo "WARNING: GCC4/5 libstdc++ ABI Mismatch" - echo "" - echo "${PGM_NAME} was compiled with gcc4, your system uses a newer version of the" - echo "standard c++ library. Plugins on your system may not load or plugin-UIs" - echo "may cause crashes." - echo "" - ANSWER=$(VaildateYesNoQuestion "Continue anyway?") - if test "n" = $ANSWER; then - exit 1 - fi - fi - fi -fi - -if %REPLACE_WINE%; then - if test -z "`which wine`"; then - echo "" - echo "!!! ERROR !!! - 'wine' was not found." - echo "" - echo "This version of ${PGM_NAME} with Windows VST support requires wine." - echo "https://www.winehq.org/" - echo "" - read -p "Press ENTER to exit installer:" BLAH - exit 1 - fi -fi - ##################### # Unpack the bundle ##################### @@ -430,11 +355,11 @@ FILESYSTEM_TYPE=$(df -P -T "${PKG_PATH}" | grep / | awk '{print $2}') echo "Bundle is on ${FILESYSTEM_TYPE} filesystem" # untar the correct bundle for us to install -echo "Unpacking bundle for $ARCH${ABI}" +echo "Unpacking bundle for $ARCH" -if ! tar -xf ${PGM_NAME}_${ARCH}${ABI}-*.tar; then +if ! tar -xf ${PGM_NAME}_${ARCH}-*.tar; then echo "" - echo "!!! ERROR !!! Can't unpack ${ARCH}${ABI} bundle file." + echo "!!! ERROR !!! Can't unpack ${ARCH} bundle file." echo "" read -p "Press ENTER to exit installer:" BLAH exit 1 @@ -476,54 +401,6 @@ then HAS_XDG="F" fi -################################################# -# Set up libwine.so -################################################# -if %REPLACE_WINE%; then - echo "" - echo "Searching libwine.so (Windows VST support)" - # we need to add libwine to ardour's LD_LIBRARY_PATH - # libwine itself includes paths to the various system-components - # which may be different on each platform. - # - # There's some chicken/egg here: ardour.exe.so is linked against libwine.so - # at build-time. wine/wineloader assumes a windows-application (which does not use libwine - # directly) and does not set up the LD path to libwine itself. the application terminates - # (missing libs) before it even starts.. - # - # wine itself does not provide means to find the location of libwine. - # /usr/bin/wine is usually shell-script and libwine.so can be found in - # various places on different distros. - # - # if this check were quick and easy.. it should be done in the startup-script, but it's not - # so here we go... (updating wine may require re-installing ardour) - # - # on recent Ubuntu wine does load both: - # /usr/lib/i386-linux-gnu/libwine.so.1 - # AND - # /usr/lib/x86_64-linux-gnu/libwine.so.1 - # so we need to work around this (thanks). - # (this hack break 64bit LinuxVST builds, but we don't do those anyway) - - LIBWINE=$( - LD_DEBUG=files wine `pwd`/${BUNDLE_DIR}/lib/ardour-vst-scanner.exe.so 2>&1 \ - | grep -e "calling init:.*libwine" \ - | sed 's/^.*calling init: //' \ - | grep -v x86_64-linux-gnu \ - | uniq \ - ) - if ! test -f "$LIBWINE"; then - echo "" - echo "!!! ERROR !!! - 'libwine.so*' was not found." - echo "" - read -p "Press ENTER to exit installer:" BLAH - exit 1 - fi - echo "Using: $LIBWINE" - # this replaces/overwrites the bundled libwine - cp -L "$LIBWINE" `pwd`/${BUNDLE_DIR}/lib/libwine.so.1 -fi - ################################################# # Check if system libs are OK (libc, etc) ################################################# diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build index 8684adc2e7..d3303f62d5 100755 --- a/tools/osx_packaging/osx_build +++ b/tools/osx_packaging/osx_build @@ -1012,14 +1012,20 @@ fi echo "Building DMG ..." -# UC_DMG=$APPNAME-${release_version}-UC.dmg -# FINAL_DMG=$APPNAME-${release_version}.dmg +BUILDTYPE="" if [ x$DEBUG = xT ]; then - UC_DMG=$APPNAME-$release_version-dbg${DMG_ARCH}.dmg -else - UC_DMG=$APPNAME-$release_version${DMG_ARCH}.dmg + BUILDTYPE="-dbg" fi +if [ x$FREEBI = xT ]; then + BUILDTYPE="-demo" +fi +if [ x$DEBUG$FREEBI = xTT ]; then + BUILDTYPE="-demo-dbg" +fi + +UC_DMG=$APPNAME-$release_version${BUILDTYPE}${DMG_ARCH}.dmg + VOLNAME=$APPNAME-$release_version MNTPATH=`mktemp -d -t ardourimg` diff --git a/tools/x-win/package.sh b/tools/x-win/package.sh index 08575d36db..7bfe773866 100755 --- a/tools/x-win/package.sh +++ b/tools/x-win/package.sh @@ -249,9 +249,27 @@ fi ### include static gdb - re-zipped binaries from ### http://sourceforge.net/projects/mingw/files/MinGW/Extension/gdb/gdb-7.6.1-1/gdb-7.6.1-1-mingw32-bin.tar.lzma ### http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.1/threads-win32/sjlj/x86_64-4.9.1-release-win32-sjlj-rt_v3-rev1.7z -if ! grep " using ./waf configure" build/config.log | grep -q -- "--optimize"; then + +BUILDTYPE="" +VERSIONINFO="Optimized Version." + +if [ "$DEBUG" = "T" ]; then + BUILDTYPE="-dbg" PACKAGE_GDB=1 + VERSIONINFO="Debug Build." fi +if [ "$FREEBI" = "T" ]; then + BUILDTYPE="-demo" + VERSIONINFO="Optimized Demo Version." +fi +if [ "$DEBUG$FREEBI" = "TT" ]; then + BUILDTYPE="-demo-dbg" + PACKAGE_GDB=1 + VERSIONINFO="Demo Version." +fi + +OUTFILE="${TMPDIR}/${PRODUCT_NAME}-${ARDOURVERSION}${BUILDTYPE}-${WARCH}-Setup.exe" + if test -n "$PACKAGE_GDB"; then download gdb-static-win3264.tar.xz http://robin.linuxaudio.org/gdb-static-win3264.tar.xz cd ${SRCCACHE} @@ -264,11 +282,6 @@ if test -n "$PACKAGE_GDB"; then cd bin START ..\\gdb\\bin\\gdb.exe -iex "set logging overwrite on" -iex "set height 0" -iex "set logging on %UserProfile%\\${PRODUCT_NAME}-debug.log" -iex "target exec ${PRODUCT_EXE}" -iex "run" EOF - OUTFILE="${TMPDIR}/${PRODUCT_NAME}-${ARDOURVERSION}-dbg-${WARCH}-Setup.exe" - VERSIONINFO="Debug Version." -else - OUTFILE="${TMPDIR}/${PRODUCT_NAME}-${ARDOURVERSION}-${WARCH}-Setup.exe" - VERSIONINFO="Optimized Version." fi ################################################################################ diff --git a/wscript b/wscript index 6b2979d9be..c0a8c80dc3 100644 --- a/wscript +++ b/wscript @@ -1477,7 +1477,6 @@ int main () { __int128 x = 0; return 0; } pass elif Options.options.dist_target != 'mingw': sub_config_and_use(conf, 'tools/sanity_check') - sub_config_and_use(conf, 'tools/gccabicheck') # explicitly link against libm. This is possible on all POSIX systems # and required on Linux for symbol versioning and ABI compatibility @@ -1636,7 +1635,6 @@ def build(bld): pass elif bld.env['build_target'] != 'mingw': bld.recurse('tools/sanity_check') - bld.recurse('tools/gccabicheck') obj = bld(features = 'subst') obj.source = 'tools/avahi.sh'