Mercurial > molko
annotate INSTALL.md @ 646:7e1eb7f6c049 default tip @
misc: remove .clang
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 04 Feb 2024 15:24:37 +0100 |
parents | f76cada0bbb2 |
children |
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 | 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. |
613 | 12 - [SDL3][], Multimedia library. |
13 - [SDL3_image][], Image loading addon for SDL3. | |
14 - [SDL3_mixer][], Audio addon for SDL3. | |
15 - [SDL3_ttf][], Fonts addon for SDL3. | |
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 | 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 | 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 | 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 | 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* |
613 | 68 - *sdl3* |
69 - *sdl3_image* | |
70 - *sdl3_mixer* | |
71 - *sdl3_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 |
613 | 83 - *mingw-w64-clang-x86_64-SDL3* |
84 - *mingw-w64-clang-x86_64-SDL3_image* | |
85 - *mingw-w64-clang-x86_64-SDL3_mixer* | |
86 - *mingw-w64-clang-x86_64-SDL3_ttf* | |
417 | 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 | 93 Remove `clang-` prefix if you need to use gcc for some reasons. |
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 |
613 | 112 [SDL3]: http://libsdl.org |
113 [SDL3_image]: https://www.libsdl.org/projects/SDL_image | |
114 [SDL3_mixer]: https://www.libsdl.org/projects/SDL_mixer | |
115 [SDL3_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 |