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

Dylan Baker dylan at pnwbakers.com
Tue Dec 4 22:31:04 UTC 2018


Quoting Eric Engestrom (2018-12-04 09:36:53)
> 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>

I believe that I've addressed all of the issues, I've pushed the patch to my
gitlab as "delete-autotools" if you want to look at it.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181204/42fc9bf1/attachment.sig>


More information about the mesa-dev mailing list