# Compiling MariaDB From Source

- [Compiling MariaDB From Source: The Master Guide](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/compiling-mariadb-from-source-the-master-guide.md): Complete step-by-step guide for compiling and building MariaDB from source on various flavors of Linux and on macOS.
- [Building MariaDB on Windows](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/building_mariadb_on_windows.md): Guide to building MariaDB on Windows using Visual Studio, CMake, and Git, including creating ZIP and MSI packages.
- [Cross-compiling MariaDB](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/cross-compiling-mariadb.md): Instructions for cross-compiling MariaDB for different architectures, including using Buildroot and CMake toolchain files.
- [Compiling MariaDB with Extra Modules/Options](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/compiling-mariadb-with-extra-modulesoptions.md): Compile MariaDB Server with extra modules and options. This section details how to customize your build from source, enabling specific features or optimizations for your deployment.
- [Specifying Which Plugins to Build](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/compiling-mariadb-with-extra-modulesoptions/specifying-which-plugins-to-build.md): Explains how to use CMake options like \`PLUGIN\_xxx\` to control which plugins are built statically, dynamically, or not at all during compilation.
- [Using MariaDB with TCMalloc or jemalloc](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/compiling-mariadb-with-extra-modulesoptions/using-mariadb-with-tcmalloc-or-jemalloc.md): Instructions on building and configuring MariaDB to use alternative memory allocators like TCMalloc or jemalloc for improved performance and profiling.
- [Legacy Guides](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides.md): This section holds building-MariaDB-from-source instructions for building old versions of MariaDB. Recent instructions are in the Compiling MariaDB From Source: The Master Guide page.
- [Build Environment Setup for macOS](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/build_environment_setup_for_mac.md): Instructions for setting up the build environment on macOS, including installing dependencies via Homebrew and configuring CMake.
- [Building MariaDB on Gentoo](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building_mariadb_on_gentoo.md): Instructions for building MariaDB on Gentoo Linux using the \`emerge\` command.
- [Creating a Debian Repository](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/creating_a_debian_repository.md): Instructions on how to create a custom Debian repository for MariaDB packages using \`dpkg-scanpackages\`.
- [Creating the MariaDB Source Tarball](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/creating_the_mariadb_source_tarball.md): Explains how to generate a source tarball from the MariaDB build environment using \`automake\` and \`make dist\`.
- [Build Environment Setup for Linux](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/build-environment-setup-for-linux.md): Lists required tools and dependencies for building MariaDB on Linux, and how to install them using package managers.
- [Building MariaDB from a Source RPM](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building-mariadb-from-a-source-rpm.md): Instructions for building MariaDB binaries from a source RPM package using tools like \`rpmbuild\`, \`yum\`, or \`dnf\`.
- [Building MariaDB From Source Using musl-based GNU/Linux](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building-mariadb-from-source-using-musl-based-gnulinux.md): Guide for compiling MariaDB on Alpine Linux or other musl-based systems, noting limitations like TokuDB support.
- [Building MariaDB on CentOS](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/source-building-mariadb-on-centos.md): Instructions for building MariaDB on CentOS, including installing build dependencies with \`yum-builddep\`.
- [Building MariaDB on Debian](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building-mariadb-on-debian.md): Step-by-step guide for compiling MariaDB on Debian, including installing build dependencies via \`apt-get\` and using \`autobake-deb.sh\`.
- [Building MariaDB on Fedora](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building-mariadb-on-fedora.md): Instructions for building MariaDB on Fedora, using \`dnf builddep\` to install dependencies and CMake to configure the build.
- [Building MariaDB on FreeBSD](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building-mariadb-on-freebsd.md): Instructions for building MariaDB on FreeBSD using Ports or Poudriere, including configuring build options.
- [Building MariaDB on Solaris and OpenSolaris](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building-mariadb-on-solaris-and-opensolaris.md): Notes and configuration tips for building MariaDB on Solaris and OpenSolaris platforms, including buildbot setup.
- [Building MariaDB on Ubuntu](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building-mariadb-on-ubuntu.md): Step-by-step guide for compiling MariaDB on Ubuntu, covering build dependencies installation and using source repositories.
- [Building RPM Packages From Source](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/building-rpm-packages-from-source.md): Explains how to generate RPM packages from the MariaDB source code using CMake with the \`-DRPM\` flag.
- [Compile and Using MariaDB with Sanitizers (ASAN, UBSAN, TSAN, MSAN)](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/compile-and-using-mariadb-with-sanitizers-asan-ubsan-tsan-msan.md): Guide on compiling MariaDB with various sanitizers like ASAN and UBSAN for debugging and error detection.
- [Creating the MariaDB Binary Tarball](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/creating-the-mariadb-binary-tarball.md): How to generate a binary tarball from compiled source using \`make package\`, enabling portable distribution.
- [Compiling with the InnoDB Plugin from Oracle](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/compiling-with-the-innodb-plugin-from-oracle.md): Historical guide on compiling older MariaDB versions with the original Oracle InnoDB plugin instead of XtraDB.
- [Compiling MariaDB with Vanilla XtraDB](/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/legacy-guides/compiling-mariadb-with-vanilla-xtradb.md): A guide for compiling older versions of MariaDB (specifically 5.3) with the original XtraDB engine from Percona Server, useful for testing purposes.
