From 24a7890cd29ceaaddad3fbf1295e091b14d5e9cd Mon Sep 17 00:00:00 2001 From: ice0 Date: Aug 15 2018 06:27:06 +0000 Subject: The dependency installing has been moved to a separate script. gcc color flag --- diff --git a/.travis.yml b/.travis.yml index 1bec314..c3d602b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,7 @@ matrix: sudo: required dist: xenial cache: ccache + before_install: autobuild/install-reqirements-linux.sh before_script: ccache -s script: autobuild/synfigstudio-linux-build.sh after_script: ccache -s # show ccache stats diff --git a/ETL/configure.ac b/ETL/configure.ac index fc75c69..f211626 100644 --- a/ETL/configure.ac +++ b/ETL/configure.ac @@ -92,7 +92,7 @@ AC_OUTPUT echo " $PACKAGE_NAME v.$VERSION Configuration Summary -- - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - Install Prefix -------------------> $prefix Target Platform ------------------> $host diff --git a/autobuild/install-requirements-linux.sh b/autobuild/install-requirements-linux.sh new file mode 100755 index 0000000..106d941 --- /dev/null +++ b/autobuild/install-requirements-linux.sh @@ -0,0 +1,227 @@ +#!/bin/bash + +# Make sure we have all dependencies installed +echo "Checking dependencies..." +DEB_LIST_MINIMAL="\ + build-essential \ + autoconf automake \ + shared-mime-info \ + libltdl3-dev \ + libtool \ + intltool \ + gettext \ + libpng-dev \ + libfftw3-dev \ + fontconfig \ + libfreetype6-dev \ + libfontconfig1-dev \ + libxml2-dev \ + libtiff5-dev \ + libmlt-dev libmlt++-dev \ + libjasper-dev \ + x11proto-xext-dev libdirectfb-dev libxfixes-dev libxinerama-dev libxdamage-dev libxcomposite-dev libxcursor-dev libxft-dev libxrender-dev libxt-dev libxrandr-dev libxi-dev libxext-dev libx11-dev \ + libatk1.0-dev \ + libgl1-mesa-dev \ + imagemagick \ + bzip2" +if which dnf >/dev/null; then + # + # Fedora >= 22 + # + PKG_LIST="git" + if [[ $MODE == 'package' ]]; then + PKG_LIST="${PKG_LIST} \ + debootstrap \ + rsync" + else + PKG_LIST="${PKG_LIST} \ + intltool \ + libpng-devel \ + libjpeg-devel \ + fftw-devel \ + freetype-devel \ + fontconfig-devel \ + atk-devel \ + pango-devel \ + cairo-devel \ + gtk3-devel \ + gettext-devel \ + libxml2-devel \ + libxml++-devel \ + gcc-c++ \ + autoconf \ + automake \ + libtool \ + libtool-ltdl-devel \ + boost-devel \ + boost-program-options \ + shared-mime-info \ + OpenEXR-devel \ + libmng-devel \ + ImageMagick-c++-devel \ + jack-audio-connection-kit-devel \ + mlt-devel \ + ocl-icd-devel \ + opencl-headers \ + gtkmm30-devel \ + glibmm24-devel" + fi + if ! ( rpm -qv $PKG_LIST ); then + echo "Running dnf (you need root privelegies to do that)..." + su -c "dnf install $PKG_LIST" || true + fi +elif which yum >/dev/null; then + # + # Fedora + # + PKG_LIST="git" + if [[ $MODE == 'package' ]]; then + PKG_LIST="${PKG_LIST} \ + debootstrap \ + rsync" + else + PKG_LIST="${PKG_LIST} \ + intltool \ + libpng-devel \ + libjpeg-devel \ + fftw-devel \ + freetype-devel \ + fontconfig-devel \ + atk-devel \ + pango-devel \ + cairo-devel \ + gtk3-devel \ + gettext-devel \ + libxml2-devel \ + libxml++-devel \ + gcc-c++ \ + autoconf \ + automake \ + libtool \ + libtool-ltdl-devel \ + boost-devel \ + boost-program-options \ + shared-mime-info \ + OpenEXR-devel \ + libmng-devel \ + ImageMagick-c++-devel \ + jack-audio-connection-kit-devel \ + mlt-devel \ + ocl-icd-devel \ + opencl-headers \ + gtkmm30-devel \ + glibmm24-devel" + fi + if ! ( rpm -qv $PKG_LIST ); then + echo "Running yum (you need root privelegies to do that)..." + su -c "yum install $PKG_LIST" || true + fi +elif which zypper >/dev/null; then + # + # OpenSUSE + # + PKG_LIST="git" + if [[ $MODE == 'package' ]]; then + PKG_LIST="${PKG_LIST} \ + debootstrap \ + rsync" + else + PKG_LIST="${PKG_LIST} libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel boost-devel boost-program-options shared-mime-info" + PKG_LIST="${PKG_LIST} OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm3-devel glibmm2-devel" + fi + if ! ( rpm -qv $PKG_LIST ); then + echo "Running zypper (you need root privelegies to do that)..." + su -c "zypper install $PKG_LIST" || true + fi +elif which apt-get >/dev/null; then + if [[ $MODE == 'package' ]]; then + if [[ `cat /etc/chroot.id` == "Synfig Packages Buildroot v${BUILDROOT_VERSION}" ]]; then + #we are inside of chroot + PKG_LIST="$DEB_LIST_MINIMAL rpm alien xsltproc wget python" + else + #we have to prepare chroot + PKG_LIST="git-core debootstrap rsync" + fi + else + if ( cat /etc/altlinux-release | egrep "ALT Linux" ); then + # + # ALT Linux case + # + PKG_LIST=" \ + rpm-build \ + boost-program_options-devel \ + git-core \ + shared-mime-info \ + libltdl3-devel \ + intltool \ + gettext \ + libpng12-devel \ + libjpeg-devel \ + fontconfig \ + libfreetype-devel \ + fontconfig-devel \ + libxml2-devel \ + libtiff-devel \ + libjasper-devel \ + libdirectfb-devel \ + libfftw3-dev \ + libXfixes-devel \ + libXinerama-devel \ + libXdamage-devel \ + libXcomposite-devel \ + libXcursor-devel \ + libXft-devel \ + libXrender-devel \ + libXt-devel \ + libXrandr-devel \ + libXi-devel \ + libXext-devel \ + libX11-devel \ + libatk-devel \ + bzip2 \ + libmng-devel \ + libgtkmm3-devel \ + libglibmm-devel \ + libsigc++2-devel \ + libxml++2-devel \ + " + else + # + # Ubuntu/Debian case + # + PKG_LIST=" \ + ${DEB_LIST_MINIMAL} \ + git-core \ + libmng-dev \ + libjack-jackd2-dev \ + libgtkmm-3.0-dev \ + libglibmm-2.4-dev \ + libsigc++-2.0-dev \ + libxml++2.6-dev \ + libboost-program-options-dev \ + libboost-system-dev \ + libboost-filesystem-dev \ + libboost-chrono-dev \ + libmagick++-dev \ + " + fi + fi + echo "Running apt-get (you need root privelegies to do that)..." + echo + sudo apt-get update || true + sudo apt-get install -y $PKG_LIST + sudo apt-get install -y autopoint || true # Ubuntu special case +else + if [[ $MODE == 'package' ]]; then + if ! ( which git && which debootstrap ) ; then + echo "ERROR: Please install 'git' and 'debootstrap'." + exit; + fi + else + echo "WARNING: This build script does not works with package mangement systems other than yum, zypper or apt! You should install dependent packages manually." + echo "REQUIRED PACKAGES: libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel shared-mime-info OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm30-devel glibmm24-devel" + echo "" + read + fi +fi +echo "Done." diff --git a/autobuild/synfigstudio-linux-build.sh b/autobuild/synfigstudio-linux-build.sh index 33c473a..1c9289b 100755 --- a/autobuild/synfigstudio-linux-build.sh +++ b/autobuild/synfigstudio-linux-build.sh @@ -47,19 +47,6 @@ RELEASE=8 -# enable ccache for speedup -if which ccache > /dev/null; then - echo "ccache found! Enabling ccache..." - export CC="ccache $CC" - export CXX="ccache $CXX" - echo "CC=$CC" - echo "CXX=$CXX" -else - echo "ccache not found..." -fi - -MAKE_SILENT=--silent LIBTOOLFLAGS=--silent - if [ -z "$PREFIX" ]; then PREFIX=$HOME/synfig/ fi @@ -128,6 +115,32 @@ if [ -f "./synfigstudio-build.conf" ] ; then . "./synfigstudio-build.conf" fi +# enable ccache for speedup +if which ccache > /dev/null; then + echo "ccache found! Enabling ccache..." + + # set CC/CXX variables if it is not already + if [ -z $CC ]; then + export CC=gcc + fi + if [ -z $CXX ]; then + export CXX=g++ + fi + + export CC="ccache $CC" + export CXX="ccache $CXX" + echo "CC=$CC" + echo "CXX=$CXX" +else + echo "ccache not found..." +fi + +MAKE_OPTIONS="-j$MAKE_THREADS --silent LIBTOOLFLAGS=--silent" +CFLAGS="-fdiagnostics-color=always $CFLAGS" +CXXFLAGS="-fdiagnostics-color=always $CXXFLAGS" + + + set -e if (test "$2"); then @@ -500,10 +513,9 @@ if [[ $MODE != 'quick' ]]; then echo "Going to configure..." rm -f aclocal.m4 autoreconf --install --force - /bin/sh ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include $DEBUG + ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include $DEBUG CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS fi - -make -j$MAKE_THREADS +make $MAKE_OPTIONS sed -i "s|^Cflags: -I\\\${includedir}|Cflags: -I$REPO_DIR\/ETL -I\\\${includedir}|" ETL.pc make install @@ -539,7 +551,9 @@ if [[ $MODE != 'quick' ]]; then --without-libavcodec \ --without-included-ltdl \ $BOOST_CONFIGURE_OPTIONS \ - $DEBUG + $DEBUG \ + CFLAGS=$CFLAGS \ + CXXFLAGS=$CXXFLAGS fi #It looks like mod_libavcodec causes segfault on synfig-core when rendering to png. @@ -552,8 +566,7 @@ fi # export CFLAGS='' # export LDFLAGS='' #fi - -make -j$MAKE_THREADS $MAKE_SILENT +make $MAKE_OPTIONS sed -i "s|^includedir=.*$|includedir=$SYNFIG_REPO_DIR\/synfig-core\/src|" synfig.pc make install @@ -578,10 +591,10 @@ fi if [[ $MODE != 'quick' ]]; then /bin/sh ./bootstrap.sh - /bin/sh ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared --enable-jack --enable-warnings=max $DEBUG $CONFIGURE_PACKAGE_OPTIONS + /bin/sh ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared --enable-jack --enable-warnings=max $DEBUG $CONFIGURE_PACKAGE_OPTIONS CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS fi -make -j$MAKE_THREADS $MAKE_SILENT +make $MAKE_OPTIONS make install for n in AUTHORS COPYING NEWS README @@ -866,235 +879,6 @@ EOF popd } -get_dependencies() -{ - # Make sure we have all dependencies installed - echo "Checking dependencies..." - DEB_LIST_MINIMAL="\ - build-essential \ - autoconf automake \ - shared-mime-info \ - libltdl3-dev \ - libtool \ - intltool \ - gettext \ - libpng-dev \ - libfftw3-dev \ - fontconfig \ - libfreetype6-dev \ - libfontconfig1-dev \ - libxml2-dev \ - libtiff5-dev \ - libmlt-dev libmlt++-dev \ - libjasper-dev \ - x11proto-xext-dev libdirectfb-dev libxfixes-dev libxinerama-dev libxdamage-dev libxcomposite-dev libxcursor-dev libxft-dev libxrender-dev libxt-dev libxrandr-dev libxi-dev libxext-dev libx11-dev \ - libatk1.0-dev \ - libgl1-mesa-dev \ - imagemagick \ - bzip2" - if which dnf >/dev/null; then - # - # Fedora >= 22 - # - PKG_LIST="git" - if [[ $MODE == 'package' ]]; then - PKG_LIST="${PKG_LIST} \ - debootstrap \ - rsync" - else - PKG_LIST="${PKG_LIST} \ - intltool \ - libpng-devel \ - libjpeg-devel \ - fftw-devel \ - freetype-devel \ - fontconfig-devel \ - atk-devel \ - pango-devel \ - cairo-devel \ - gtk3-devel \ - gettext-devel \ - libxml2-devel \ - libxml++-devel \ - gcc-c++ \ - autoconf \ - automake \ - libtool \ - libtool-ltdl-devel \ - boost-devel \ - boost-program-options \ - shared-mime-info \ - OpenEXR-devel \ - libmng-devel \ - ImageMagick-c++-devel \ - jack-audio-connection-kit-devel \ - mlt-devel \ - ocl-icd-devel \ - opencl-headers \ - gtkmm30-devel \ - glibmm24-devel" - fi - if ! ( rpm -qv $PKG_LIST ); then - echo "Running dnf (you need root privelegies to do that)..." - su -c "dnf install $PKG_LIST" || true - fi - elif which yum >/dev/null; then - # - # Fedora - # - PKG_LIST="git" - if [[ $MODE == 'package' ]]; then - PKG_LIST="${PKG_LIST} \ - debootstrap \ - rsync" - else - PKG_LIST="${PKG_LIST} \ - intltool \ - libpng-devel \ - libjpeg-devel \ - fftw-devel \ - freetype-devel \ - fontconfig-devel \ - atk-devel \ - pango-devel \ - cairo-devel \ - gtk3-devel \ - gettext-devel \ - libxml2-devel \ - libxml++-devel \ - gcc-c++ \ - autoconf \ - automake \ - libtool \ - libtool-ltdl-devel \ - boost-devel \ - boost-program-options \ - shared-mime-info \ - OpenEXR-devel \ - libmng-devel \ - ImageMagick-c++-devel \ - jack-audio-connection-kit-devel \ - mlt-devel \ - ocl-icd-devel \ - opencl-headers \ - gtkmm30-devel \ - glibmm24-devel" - fi - if ! ( rpm -qv $PKG_LIST ); then - echo "Running yum (you need root privelegies to do that)..." - su -c "yum install $PKG_LIST" || true - fi - elif which zypper >/dev/null; then - # - # OpenSUSE - # - PKG_LIST="git" - if [[ $MODE == 'package' ]]; then - PKG_LIST="${PKG_LIST} \ - debootstrap \ - rsync" - else - PKG_LIST="${PKG_LIST} libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel boost-devel boost-program-options shared-mime-info" - PKG_LIST="${PKG_LIST} OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm3-devel glibmm2-devel" - fi - if ! ( rpm -qv $PKG_LIST ); then - echo "Running zypper (you need root privelegies to do that)..." - su -c "zypper install $PKG_LIST" || true - fi - elif which apt-get >/dev/null; then - if [[ $MODE == 'package' ]]; then - if [[ `cat /etc/chroot.id` == "Synfig Packages Buildroot v${BUILDROOT_VERSION}" ]]; then - #we are inside of chroot - PKG_LIST="$DEB_LIST_MINIMAL rpm alien xsltproc wget python" - else - #we have to prepare chroot - PKG_LIST="git-core debootstrap rsync" - fi - else - if ( cat /etc/altlinux-release | egrep "ALT Linux" ); then - # - # ALT Linux case - # - PKG_LIST=" \ - rpm-build \ - boost-program_options-devel \ - git-core \ - shared-mime-info \ - libltdl3-devel \ - intltool \ - gettext \ - libpng12-devel \ - libjpeg-devel \ - fontconfig \ - libfreetype-devel \ - fontconfig-devel \ - libxml2-devel \ - libtiff-devel \ - libjasper-devel \ - libdirectfb-devel \ - libfftw3-dev \ - libXfixes-devel \ - libXinerama-devel \ - libXdamage-devel \ - libXcomposite-devel \ - libXcursor-devel \ - libXft-devel \ - libXrender-devel \ - libXt-devel \ - libXrandr-devel \ - libXi-devel \ - libXext-devel \ - libX11-devel \ - libatk-devel \ - bzip2 \ - libmng-devel \ - libgtkmm3-devel \ - libglibmm-devel \ - libsigc++2-devel \ - libxml++2-devel \ - " - else - # - # Ubuntu/Debian case - # - PKG_LIST=" \ - ${DEB_LIST_MINIMAL} \ - git-core \ - libmng-dev \ - libjack-jackd2-dev \ - libgtkmm-3.0-dev \ - libglibmm-2.4-dev \ - libsigc++-2.0-dev \ - libxml++2.6-dev \ - libboost-program-options-dev \ - libboost-system-dev \ - libboost-filesystem-dev \ - libboost-chrono-dev \ - libmagick++-dev \ - " - fi - fi - echo "Running apt-get (you need root privelegies to do that)..." - echo - sudo apt-get update || true - sudo apt-get install -y $PKG_LIST - sudo apt-get install -y autopoint || true # Ubuntu special case - else - if [[ $MODE == 'package' ]]; then - if ! ( which git && which debootstrap ) ; then - echo "ERROR: Please install 'git' and 'debootstrap'." - exit; - fi - else - echo "WARNING: This build script does not works with package mangement systems other than yum, zypper or apt! You should install dependent packages manually." - echo "REQUIRED PACKAGES: libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel shared-mime-info OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm30-devel glibmm24-devel" - echo "" - read - fi - fi - echo "Done." -} - initialize() { if [[ $DEBUG == 1 ]]; then @@ -1185,7 +969,7 @@ initialize() mk() { - get_dependencies + #get_dependencies initialize if [[ $WORKDIR_IS_REPO == 0 ]]; then @@ -1372,8 +1156,9 @@ case $ARG in mk exit;; package) - MODE='package' - get_dependencies + export MODE='package' + #get_dependencies + ./install-requirements-linux.sh initialize mk$ARG exit;;