[Mesa-dev] [PATCH v2] build: remove autotools

Eric Engestrom eric.engestrom at intel.com
Tue Dec 4 17:36:53 UTC 2018


On Tuesday, 2018-12-04 09:16:18 -0800, Dylan Baker wrote:
> There are now no known distributions using autotools, meson has all of
> the features that autotools does. We don't need two build systems to do
> exactly the same thing, meson is faster, easier to maintain, and used by
> more devs than autotools. Let's reduce the ongoing burden of maintaining
> autotools.
> 
> This removes the following:
>  - configure.ac
>  - autogen.sh
>  - Makefile.*.am
>  - Makefile.am
>  - Makefile.sources (which are used only by autotools)
>  - travis jobs for autotools
>  - docs for autotools
>  - .gitignore
> 
> v2: - remove stray no-op change in .travis.yml
> ---
[snip]
> diff --git a/.travis.yml b/.travis.yml
> index 6b50d49e143..66be44ffc21 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -74,240 +74,13 @@ matrix:
>              - python3.5
>              - python3-pip
>      - env:
> -        - LABEL="make loaders/classic DRI"
> -        - BUILD=make
> -        - MAKEFLAGS="-j4"
> -        - MAKE_CHECK_COMMAND="make check"
> -        - DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
> -        - DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
> -        - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> -        - GALLIUM_DRIVERS=""
> -        - VULKAN_DRIVERS=""
> -        - LIBUNWIND_FLAGS="--disable-libunwind"
> -      addons:
> -        apt:
> -          packages:
> -            - xz-utils
> -            - x11proto-xf86vidmode-dev
> -            - libexpat1-dev
> -            - libx11-xcb-dev
> -            - libxdamage-dev
> -            - libxfixes-dev
> -            - python3-pip
> -    - env:
> -        # NOTE: Building SWR is 2x (yes two) times slower than all the other
> -        # gallium drivers combined.
> -        # Start this early so that it doesn't hunder the run time.
> -        - LABEL="make Gallium Drivers SWR"
> -        - BUILD=make
> -        - MAKEFLAGS="-j4"
> -        - MAKE_CHECK_COMMAND="true"
> -        - LLVM_VERSION=6.0
> -        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
> -        - DRI_DRIVERS=""
> -        - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> -        - GALLIUM_DRIVERS="swr"
> -        - VULKAN_DRIVERS=""
> -        - LIBUNWIND_FLAGS="--enable-libunwind"
> -      addons:
> -        apt:
> -          sources:
> -            - llvm-toolchain-trusty-6.0
> -            # llvm-6 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
> -          packages:
> -            # From sources above
> -            - llvm-6.0-dev
> -            # Common
> -            - xz-utils
> -            - libexpat1-dev
> -            - libx11-xcb-dev
> -            - libelf-dev
> -            - libunwind8-dev
> -            - python3-pip
> -    - env:
> -        - LABEL="make Gallium Drivers RadeonSI"
> -        - BUILD=make
> -        - MAKEFLAGS="-j4"
> -        - MAKE_CHECK_COMMAND="true"
> -        - LLVM_VERSION=6.0
> -        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
> -        - DRI_DRIVERS=""
> -        - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> -        - GALLIUM_DRIVERS="radeonsi"
> -        - VULKAN_DRIVERS=""
> -        - LIBUNWIND_FLAGS="--enable-libunwind"
> -      addons:
> -        apt:
> -          sources:
> -            - llvm-toolchain-trusty-6.0
> -            # llvm-6 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
> -          packages:
> -            # From sources above
> -            - llvm-6.0-dev
> -            # Common
> -            - xz-utils
> -            - libexpat1-dev
> -            - libx11-xcb-dev
> -            - libelf-dev
> -            - libunwind8-dev
> -            - python3-pip
> -    - env:
> -        - LABEL="make Gallium Drivers Other"
> -        - BUILD=make
> -        - MAKEFLAGS="-j4"
> -        - MAKE_CHECK_COMMAND="true"
> -        - LLVM_VERSION=3.9
> -        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        # New binutils linker is required for llvm-3.9
> -        - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
> -        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
> -        - DRI_DRIVERS=""
> -        - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> -        - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
> -        - VULKAN_DRIVERS=""
> -        - LIBUNWIND_FLAGS="--enable-libunwind"
> -      addons:
> -        apt:
> -          sources:
> -            - llvm-toolchain-trusty-3.9
> -          packages:
> -            - binutils-2.26
> -            # LLVM packaging is broken and misses these dependencies
> -            - libedit-dev
> -            # From sources above
> -            - llvm-3.9-dev
> -            # Common
> -            - xz-utils
> -            - libexpat1-dev
> -            - libx11-xcb-dev
> -            - libelf-dev
> -            - libunwind8-dev
> -            - python3-pip
> -    - env:
> -        - LABEL="make Gallium ST Clover LLVM-3.9"
> -        - BUILD=make
> -        - MAKEFLAGS="-j4"
> -        - MAKE_CHECK_COMMAND="true"
> -        - LLVM_VERSION=3.9
> -        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        - OVERRIDE_CC=gcc-4.7
> -        - OVERRIDE_CXX=g++-4.7
> -        # New binutils linker is required for llvm-3.9
> -        - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
> -        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
> -        - DRI_DRIVERS=""
> -        - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> -        - GALLIUM_DRIVERS="r600"
> -        - VULKAN_DRIVERS=""
> -        - LIBUNWIND_FLAGS="--enable-libunwind"
> -      addons:
> -        apt:
> -          sources:
> -            - llvm-toolchain-trusty-3.9
> -          packages:
> -            - binutils-2.26
> -            - libclc-dev
> -            # LLVM packaging is broken and misses these dependencies
> -            - libedit-dev
> -            - g++-4.7
> -            # From sources above
> -            - llvm-3.9-dev
> -            - clang-3.9
> -            - libclang-3.9-dev
> -            # Common
> -            - xz-utils
> -            - libexpat1-dev
> -            - libx11-xcb-dev
> -            - libelf-dev
> -            - libunwind8-dev
> -            - python3-pip
> -    - env:
> -        - LABEL="make Gallium ST Clover LLVM-4.0"
> -        - BUILD=make
> -        - MAKEFLAGS="-j4"
> -        - MAKE_CHECK_COMMAND="true"
> -        - LLVM_VERSION=4.0
> -        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        - OVERRIDE_CC=gcc-4.8
> -        - OVERRIDE_CXX=g++-4.8
> -        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
> -        - DRI_DRIVERS=""
> -        - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> -        - GALLIUM_DRIVERS="r600"
> -        - VULKAN_DRIVERS=""
> -        - LIBUNWIND_FLAGS="--enable-libunwind"
> -      addons:
> -        apt:
> -          sources:
> -            - llvm-toolchain-trusty-4.0
> -          packages:
> -            - libclc-dev
> -            # LLVM packaging is broken and misses these dependencies
> -            - libedit-dev
> -            - g++-4.8
> -            # From sources above
> -            - llvm-4.0-dev
> -            - clang-4.0
> -            - libclang-4.0-dev
> -            # Common
> -            - xz-utils
> -            - libexpat1-dev
> -            - libx11-xcb-dev
> -            - libelf-dev
> -            - libunwind8-dev
> -            - python3-pip
> -    - env:
> -        - LABEL="make Gallium ST Clover LLVM-5.0"
> -        - BUILD=make
> -        - MAKEFLAGS="-j4"
> -        - MAKE_CHECK_COMMAND="true"
> -        - LLVM_VERSION=5.0
> -        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        - OVERRIDE_CC=gcc-4.8
> -        - OVERRIDE_CXX=g++-4.8
> -        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
> +        - LABEL="meson Gallium Drivers"
> +        - BUILD=meson
>          - DRI_DRIVERS=""
> -        - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> -        - GALLIUM_DRIVERS="r600"
>          - VULKAN_DRIVERS=""
> -        - LIBUNWIND_FLAGS="--enable-libunwind"
> -      addons:
> -        apt:
> -          sources:
> -            - llvm-toolchain-trusty-5.0
> -          packages:
> -            - libclc-dev
> -            # LLVM packaging is broken and misses these dependencies
> -            - libedit-dev
> -            - g++-4.8
> -            # From sources above
> -            - llvm-5.0-dev
> -            - clang-5.0
> -            - libclang-5.0-dev
> -            # Common
> -            - xz-utils
> -            - libexpat1-dev
> -            - libx11-xcb-dev
> -            - libelf-dev
> -            - libunwind8-dev
> -            - python3-pip
> -    - env:
> -        - LABEL="make Gallium ST Clover LLVM-6.0"
> -        - BUILD=make
> -        - MAKEFLAGS="-j4"
> -        - MAKE_CHECK_COMMAND="true"
> -        - LLVM_VERSION=6.0
> +        - GALLIUM_DRIVERS="swrast,swr,r300,r600,radeonsi,nouveau,i915,vc4,v3d,pl111,freedreno,etnaviv,imx,tegra,svga,virgl"
> +        # TODO: clover, nine
>          - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"

I didn't apply the patch to verify, but I think LLVM_VERSION will be
undefined here? Might need to keep the assignment 4 lines above.

> -        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
> -        - DRI_DRIVERS=""
> -        - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> -        - GALLIUM_DRIVERS="r600,radeonsi"
> -        - VULKAN_DRIVERS=""
> -        - LIBUNWIND_FLAGS="--enable-libunwind"
>        addons:
>          apt:
>            sources:
[snip]
> diff --git a/docs/relnotes/19.0.0.html b/docs/relnotes/19.0.0.html
> index 1b839b0a485..8e96fb323c2 100644
> --- a/docs/relnotes/19.0.0.html
> +++ b/docs/relnotes/19.0.0.html
> @@ -51,7 +51,7 @@ TBD.
>  <h2>Changes</h2>
>  
>  <ul>
> -<li>TBD</li>
> +<li>Autotools has been dropped, use meson instead.</li>

I think it would be good to link to our meson page and point to our
mailing list as well, as I expect the ones who still hadn't moved on
will need help :)

>  </ul>
>  
>  </div>
> diff --git a/docs/submittingpatches.html b/docs/submittingpatches.html
> index 3f97c941aa5..4a9a983b43a 100644
> --- a/docs/submittingpatches.html
> +++ b/docs/submittingpatches.html
[snip]
> @@ -370,7 +370,7 @@ within the commit summary.
>  </pre>
>  <li>Test for build breakage between patches e.g last 8 commits.
>  <pre>
> -    git rebase -i --exec="make -j4" HEAD~8
> +    git rebase -i --exec="ninja" HEAD~8

IIRC git rebase will CWD to the git root, so you will need
`ninja -C builddir/` here.

>  </pre>
>  <li>Sets the default mailing address for your repo.
>  <pre>
> diff --git a/docs/vmware-guest.html b/docs/vmware-guest.html
> index 4e0932e781f..0c7bcbed59d 100644
> --- a/docs/vmware-guest.html
> +++ b/docs/vmware-guest.html
> @@ -106,13 +106,14 @@ On the host, all you're doing is running VMware
>  
>  <h2>Prerequisites</h2>
>  
> +  sudo apt-get install automake libtool libpthread-stubs0-dev

I'm assuming this is a rebase mistake?

>  <ul>
>  <li>Kernel version at least 2.6.25 
>  <li>Xserver version at least 1.7 
>  <li>Ubuntu: For ubuntu you need to install a number of build dependencies. 
>    <pre>
>    sudo apt-get install git-core
> -  sudo apt-get install automake libtool libpthread-stubs0-dev
> +  sudo apt-get install automake libtool meson libpthread-stubs0-dev
>    sudo apt-get install xserver-xorg-dev x11proto-xinerama-dev libx11-xcb-dev
>    sudo apt-get install libxcb-glx0-dev libxrender-dev
>    sudo apt-get build-dep libgl1-mesa-dri libxcb-glx0-dev
[snip]

Other than that, it looks all good to me!

Assuming the release managers are ok with your changes to
docs/releasing.html, this is:
Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>


More information about the mesa-dev mailing list