Start developing LibreOffice! Download the source code, and build on Linux

(This post was originally written in Hungarian by Adam Kovacs for his blog. Thanks Adam!)

In the previous part of this tutorial series, we showed how to register with Git and Gerrit, to prepare your setup for building LibreOffice and submitting patches.

Today, we describe the steps you need to download and compile the LibreOffice source code on Linux. You can, of course, modify the source code you have downloaded and, if you compile it, you can make sure your changes are working well after the compilation.

In this guide, we are using GNU/Linux distributions (typically Debian and Ubuntu-based distributions) with the apt package management frontend. Those who do not use these distributions need to run apt-get install and similar commands instead.

(In you see errors when trying to compile, checking these wiki pages might help: Linux Build Dependencies and Building on Linux. Note: an internet connection is required during the compilation, after the build-nocheck command.)

Step 1: Install some required programs and packages

Open a terminal (In Ubuntu, Ctrl+Alt+t) and run this command:

Then enter the password for your username. (If you do not have administrator privileges, you cannot do these steps.)

Step 2: Specify update manager sources

In the file /etc/apt/sources.list, add one of the following lines depending on your distribution:

  • Debian 9:
  • Ubuntu 16.04:
  • Ubuntu 18.04:
  • Ubuntu 18.10:
  • Ubuntu 19.04:

You can edit the file using:

In Nano, to exit and save: Ctrl+x, then y, then enter. The exact version and codename of the Linux distribution can be found by running the uname -a and lsb_release -a commands.

Step 3: Download available updates and build dependencies

Enter these commands to ensure you get the latest packages, and everything required to build LibreOffice from the source code:

Step 4: Download the LibreOffice source code

Create a new directory somewhere for LibreOffice. For example, in your own directory:

Go to this directory and run this command there:

Step 5: Setting up the autogen.input file

Create an autogen.input file in the LibreOffice directory, with this content:

You may also need these:

If you still need some settings in autogen.input, you can use the ./ –help command to list all possible settings.

For multi-core processors, you might want to add:

Note: if you start compiling and miss any of these options, eg the –enable-debug line, and then add the missing line to autogen.input, the next compilation process will not replace the existing files. If you want the newly inserted line in autogen.input to be valid for the newer compilation, you must delete the results of the old compilation using the make clean command.

Step 6: Build the code

Run these commands:

If you would like to compile without unit tests (for example, if you don’t want to check that what you have changed in the source code will cause regressions), use the build-nocheck parameter instead:

Step 7: Run the new build

When the code is compiled, you can start it from the LibreOffice directory:

At this point, a lot of information is written to the command line while running LibreOffice. We can turn them off like this:

Now only SAL_DEBUG type values will be written to the command line (if they are already placed in the code somewhere).

If you just want to convert a file (for example, to fix export errors), you can do so. The converted file is then created in the LibreOffice directory (it is therefore advisable not to place the files to be converted in the LibreOffice directory, to avoid confusing them with the files that have already been converted). For instance:

Additional information

When the compilation is finished, and we modify the contents of one of the source files, we will start the compilation again. But this will not compile the entire codebase from scratch (unless we run the make clean command), but it only compiles the files we modified, which is a significant time saving.

If we forget to include a setting in autogen.input, but the compilation has already been done, then it is not enough to add the setting and start the compilation again – we also need to run make clean before.

For example, if we compiled without –enable-debug, add –enable-debug to the autogen.input file, then run make clean, followed by make or make build-nocheck.

You can also compile specific modules of LibreOffice:


These are the names of the modules:

  • sw: Writer (formerly StarWriter)
  • sc: the spreadsheet (Calc)
  • sd: Impress and Draw
  • dbaccess: database manager (Base)
  • starmath: formula editor
  • oox: source code files for importing and exporting Office Open XML files (docx, xlsx, pptx, …)
  • chart2: source code files for managing charts

For more modules, see here.

Keep watching the blog for more guides and tips for LibreOffice development!


  1. By Escuelas Linux


Leave a Reply

Your email address will not be published. Required fields are marked *