Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dosbox-staging/dosbox-staging.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatryk Obara <dreamer.tan@gmail.com>2020-12-14 06:14:08 +0300
committerPatryk Obara <patryk.obara@gmail.com>2020-12-17 00:10:27 +0300
commit57d8062b1346383d00ab0f1a27284cae7cda3d58 (patch)
tree105c4a8987d4ad29302deb3e598307d2cd7c1dfe /CONTRIBUTING.md
parent8ce19a732e2aeb818a8646332b6a2b7b47436a37 (diff)
Start migration to meson buildsystem
As of right now, new buildsystem is capable of creating clean, featureful builds on Linux x86_64 - but these are not equivalent of all that are exposed via autoconf yet. As new features will be added, it will gradually replace Autotools and build.sh. Preserve our existing structure of building a static library per "module", and then linking them together to create dosbox binary. Unlike automake, we don't need to create a library per subdirectory - it's entirely our pragmatic choice. As a result, we don't have multiple sub-libraries for e.g. hardware module: all files inside are handled by a single meson.build file (we can simplify this even further and make the project structure even flatter or deeper as needed. Create config.h.in template file - meson turns it into our new config.h file, filling it with information detected in meson.build scripts. Create new file for main function - this way it'll be easier to ignore this file for gtest builds (which will have their own main functions). Old main was renamed to sdl_main and is now declared as the very first function in dosbox.h file. Update elementary build documentation in README.md and CONTRIBUTING.md. Remove majority of content in the INSTALL file. Information in that file was either outdated or is now automatically verified by meson.build script.
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md23
1 files changed, 14 insertions, 9 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4e928a843..f64da7050 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -77,21 +77,26 @@ for other build systems by running script `./scripts/list-build-dependencies.sh`
Detailed build instructions are in [BUILD.md][build-doc] file.
+For ongoing development it's recommended to install `ccache` (meson will pick
+it up automatically for speeding up builds).
+
Example build instructions appropriate for development:
``` shell
-./autogen.sh
-./configure CFLAGS="-g -fdiagnostics-color -O0 -Wall -Weffc++" \
- CXXFLAGS="-g -fdiagnostics-color -O0 -Wall -Weffc++"
-make -j$(nproc) |& tee build.log
-./scripts/count-warnings.py build.log
+meson setup build
+cd build
+ninja
```
-You can also use `./scripts/build.sh` script, which includes configurations
-for various build types and operating systems.
+With the new meson versions you can run:
+
+``` shell
+meson setup build
+meson compile -C build
+```
-For development, it's recommended to use `ccache` - it can speed up your clean
-builds by up to 60x.
+Command `meson configure` summarizes all configuration options you can pass to
+`meson setup` (or describe how build directory is currently configured).
[readme-b]: https://github.com/dosbox-staging/dosbox-staging#build-instructions
[install]: https://github.com/dosbox-staging/dosbox-staging/blob/master/INSTALL