# Compiling MariaDB From Source

- [Compiling MariaDB From Source: The Master Guide](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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)](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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](https://mariadb.com/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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
