annotate INSTALL.md @ 594:e070fdcc592b

misc: various cleanups
author David Demelier <markand@malikania.fr>
date Fri, 24 Mar 2023 15:15:31 +0100
parents 67b52de5d3c0
children f76cada0bbb2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
366
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
1 Molko's Engine INSTALL
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 326
diff changeset
2 ======================
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
3
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 Installation instructions.
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
5
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 Requirements
417
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
7 ============
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
8
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
9 - C23 compliant compiler.
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
10 - [CMake][], Make build system.
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
11 - [Jansson][], JSON parsing library.
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
12 - [SDL2][], Multimedia library.
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
13 - [SDL2_image][], Image loading addon for SDL2.
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
14 - [SDL2_mixer][], Audio addon for SDL2.
417
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
15 - [SDL2_ttf][], Fonts addon for SDL2.
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
16
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
17 Molko's Engine is mostly written in C23 with a very limited POSIX extensions
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
18 (including `stat`, `strlcpy`, `fmemopen`) but where support is missing fallback
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
19 implementations are provided.
326
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
20
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
21 Supported platforms
417
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
22 ===================
326
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
23
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
24 The project was successfully tested on the following platforms and their
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
25 architectures.
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
26
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
27 - Windows (MinGW-w64, VS2019).
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
28 - Linux (musl/amd64, musl/aarch64, glibc/amd64).
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
29 - FreeBSD (amd64).
417
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
30 - OpenBSD (amd64).
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
31 - NetBSD (amd64).
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
32 - macOS (Monterey, Ventura).
326
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
33
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 Basic installation
417
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
35 ==================
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 Quick install.
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
39 $ tar -xvf molko-x.y.z-tar.xz
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 $ cd molko-x.y.z
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
41 $ cmake -S. -Bbuild
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
42 $ cmake --build build
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
43 $ cmake --install build
90
a6d6497adb60 make: cleanup a bit and add appropriate dependencies
David Demelier <markand@malikania.fr>
parents: 89
diff changeset
44
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
45 Available options
417
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
46 =================
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
47
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
48 The following cmake options as available:
326
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
49
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
50 - `MLK_WITH_DOXYGEN`: enable doxygen documentation (default: On, requires
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
51 doxygen).
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
52 - `MLK_WITH_EXAMPLES`: enable examples (default: on).
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
53 - `MLK_WITH_NLS`: enable i18n (default: on, requires gettext).
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
54 - `MLK_WITH_TESTS`: enable unit tests (default: on).
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
55 - `MLK_WITH_TESTS_GRAPHICAL`: enable unit tests that require a window
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
56 context(default: on).
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
57 - `MLK_WITH_CMAKEDIR`: root directory for CMake files (default: LIBDIR/cmake).
326
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
58
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
59 Platform: macOS
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
60 ---------------
305
3675021fa6e5 make: add fakeroot support
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
61
326
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
62 The recommended way to build under macOS is to install dependencies through
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
63 [brew][] and compile using XCode or command line generated makefiles.
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
64
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
65 You will need the following packages:
06782f7888f3 misc: update meta files
David Demelier <markand@malikania.fr>
parents: 315
diff changeset
66
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
67 - *jansson*
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
68 - *sdl2*
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
69 - *sdl2_image*
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
70 - *sdl2_mixer*
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
71 - *sdl2_ttf*
307
363024b76da7 make: create install-data rather than fakeroot
David Demelier <markand@malikania.fr>
parents: 305
diff changeset
72
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 Platform: Windows
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 -----------------
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
76 On Windows, [MSYS2][] and Visual Studio are supported.
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
78 ### MSYS2
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
79
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 Once you have MSYS2 installed, simply install the following packages from the
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 appropriate MinGW shell prior to the chapter above.
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
417
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
83 - *mingw-w64-clang-x86_64-SDL2*
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
84 - *mingw-w64-clang-x86_64-SDL2_image*
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
85 - *mingw-w64-clang-x86_64-SDL2_mixer*
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
86 - *mingw-w64-clang-x86_64-SDL2_ttf*
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
87 - *mingw-w64-clang-x86_64-jansson*
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
89
30baadb6f6a2 core: add a panic_state in the adventure, continue #2484 @2h
David Demelier <markand@malikania.fr>
parents: 84
diff changeset
89 Note: replace `x86_64` with `i686` if you have a deprecated system or if you
30baadb6f6a2 core: add a panic_state in the adventure, continue #2484 @2h
David Demelier <markand@malikania.fr>
parents: 84
diff changeset
90 have issues while debugging (MinGW-w64 and/or gdb have known issues in
30baadb6f6a2 core: add a panic_state in the adventure, continue #2484 @2h
David Demelier <markand@malikania.fr>
parents: 84
diff changeset
91 this area).
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
417
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
93 Remove `clang-` prefix if you need to use gcc for some reasons.
7ac4b10eedbe misc: update INSTALL
David Demelier <markand@malikania.fr>
parents: 366
diff changeset
94
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
95 ### Visual Studio
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
96
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
97 On Visual Studio you will need to download or build libraries yourself. It is
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
98 recommended to install all of them in a same directory and hierarchy as
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
99 following:
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
100
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
101 - *dir/bin*
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
102 - *dir/lib*
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
103 - *dir/include*
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
104
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
105 Make sure *dir/bin* is in your `PATH` and adjust `CMAKE_PREFIX_PATH` before
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
106 running `cmake`.
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
107
594
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
108 [brew]: http://brew.sh
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
109 [CMake]: http://cmake.org
e070fdcc592b misc: various cleanups
David Demelier <markand@malikania.fr>
parents: 429
diff changeset
110 [Jansson]: http://www.digip.org/jansson
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
111 [MSYS2]: http://www.msys2.org
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 [SDL2]: http://libsdl.org
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 [SDL2_image]: https://www.libsdl.org/projects/SDL_image
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
114 [SDL2_mixer]: https://www.libsdl.org/projects/SDL_mixer
13
c188e9603faf misc: add basic documentation files
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 [SDL2_ttf]: https://www.libsdl.org/projects/SDL_ttf
315
3bfaaf5342a9 cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents: 308
diff changeset
116 [gettext]: https://www.gnu.org/software/gettext