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

config.h.in « src - github.com/dosbox-staging/dosbox-staging.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: df120abc47af2811d172096c51e0029074f0adcf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
/*
 *  SPDX-License-Identifier: GPL-2.0-or-later
 *
 *  Copyright (C) 2020-2022  The DOSBox Staging Team
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */

#ifndef DOSBOX_CONFIG_H
#define DOSBOX_CONFIG_H

/* Version and branding tweaks
 */

// Name of project, lower-case without spaces
#define CANONICAL_PROJECT_NAME "@project_name@"

// Emulator Semantic Version (MAJOR.MINOR.PATCH), incremented as follows:
//  - MAJOR version when you make incompatible API changes
//  - MINOR version when you add functionality in a backwards compatible manner
//  - PATCH version when you make backwards compatible bug fixes
// Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
// Ref: https://semver.org/

#define VERSION "@version@"

/* Operating System
 */

// Defined if compiling for OS from BSD family
#mesondefine BSD

// Defined if compiling for Linux (non-Android)
#mesondefine LINUX

// Defined if compiling for macOS
#mesondefine MACOSX

// Defined if compiling for Windows (any option)
#ifndef WIN32
#mesondefine WIN32
#endif

/* CPU and FPU emulation
 *
 * These defines are mostly relevant to modules src/cpu/ and src/fpu/
 */

// The type of cpu this target has
#mesondefine C_TARGETCPU

// Define to 1 if target CPU supports unaligned memory access
#mesondefine C_UNALIGNED_MEMORY

// Define to 1 to use x86/x86_64 dynamic cpu core
// Can not be used together with C_DYNREC
#mesondefine C_DYNAMIC_X86

// Define to 1 to use recompiling cpu core
// Can not be used together with C_DYNAMIC_X86
#mesondefine C_DYNREC

// Define to 1 to enable floating point emulation
#mesondefine C_FPU

// Define to 1 to use  fpu core implemented in x86 assembler
#mesondefine C_FPU_X86

// TODO Define to 1 to use inlined memory functions in cpu core
#define C_CORE_INLINE 1

/* Emulator features
 *
 * Turn on or off optional emulator features that depend on external libraries.
 * This way it's easier to port or package on a new platform, where these
 * libraries might be missing.
 */

// Define to 1 to enable internal modem emulation (using SDL2_net)
#mesondefine C_MODEM

// Define to 1 to enable IPX over Internet networking (using SDL2_net)
#mesondefine C_IPX

// Enable serial port passthrough support
#mesondefine C_DIRECTSERIAL

// Define to 1 to use opengl display output support
#mesondefine C_OPENGL

// Define to 1 to enable FluidSynth integration (built-in MIDI synth)
#mesondefine C_FLUIDSYNTH

// Define to 1 to enable libslirp Ethernet support
#mesondefine C_SLIRP

// Define to 1 to enable Novell NE 2000 NIC emulation
#mesondefine C_NE2000

// Define to 1 to enable screenshots in .png format
#mesondefine C_SSHOT

// Define to 1 to enable the Tracy profiling server
#mesondefine C_TRACY

// Define to 1 to enable internal debugger (using ncurses or pdcurses)
#mesondefine C_DEBUG

// Define to 1 to enable heavy debugging (requires C_DEBUG)
#mesondefine C_HEAVY_DEBUG

// Define to 1 to enable MT-32 emulator
#mesondefine C_MT32EMU

// Define to 1 to enable mouse mapping support
#mesondefine C_MANYMOUSE

// Compiler supports Core Audio headers
#mesondefine C_COREAUDIO

// Compiler supports Core MIDI headers
#mesondefine C_COREMIDI

// Compiler supports Core Foundation headers
#mesondefine C_COREFOUNDATION

// Compiler supports Core Services headers
#mesondefine C_CORESERVICES

// Define to 1 to enable ALSA MIDI support
#mesondefine C_ALSA

/* Compiler features and extensions
 *
 * These are defines for compiler features we can't reliably verify during
 * compilation time.
 */

#mesondefine C_HAS_BUILTIN_EXPECT

/* Defines for checking availability of standard functions and structs.
 *
 * Sometimes available functions, structs, or struct fields differ slightly
 * between operating systems.
 */

// Defined if function clock_gettime is available
#mesondefine HAVE_CLOCK_GETTIME

// Defined if function __builtin_available is available
#mesondefine HAVE_BUILTIN_AVAILABLE

// Defined if function __builtin___clear_cache is available
#mesondefine HAVE_BUILTIN_CLEAR_CACHE

// Defined if function mprotect is available
#mesondefine HAVE_MPROTECT

// Defined if function mmap is available
#mesondefine HAVE_MMAP

// Defined if mmap flag MAPJIT is available
#mesondefine HAVE_MAP_JIT

// Defined if function pthread_jit_write_protect_np is available
#mesondefine HAVE_PTHREAD_WRITE_PROTECT_NP

// Defined if function sys_icache_invalidate is available
#mesondefine HAVE_SYS_ICACHE_INVALIDATE

// Defined if function pthread_setname_np is available
#mesondefine HAVE_PTHREAD_SETNAME_NP

// Defined if function realpath is available
#mesondefine HAVE_REALPATH

// Defind if function setpriority is available
#mesondefine HAVE_SETPRIORITY

// field d_type in struct dirent is not defined in POSIX
// Some OSes do not implement it (e.g. Haiku)
#mesondefine HAVE_STRUCT_DIRENT_D_TYPE

/* Available headers
 *
 * Checks for non-POSIX headers and POSIX headers not supported on Windows.
 */

#mesondefine HAVE_NETINET_IN_H
#mesondefine HAVE_PWD_H
#define HAVE_STDLIB_H 1
#mesondefine HAVE_STRINGS_H
#mesondefine HAVE_SYS_SOCKET_H
#define HAVE_SYS_TYPES_H 1

/* Hardware-related defines
 */

// Define to 1 when host/target processor uses big endian byte ordering
#mesondefine WORDS_BIGENDIAN

// Non-4K page size (only on selected architectures)
#mesondefine PAGESIZE

/* Windows-related defines
 */

// Prevent <windows.h> from clobbering std::min and std::max
#mesondefine NOMINMAX

// Enables mathematical constants (such as M_PI) in Windows math.h header
// https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants
#mesondefine _USE_MATH_DEFINES

// Holds the "--datadir" specified during project setup. This can
// be used as a fallback if the user hasn't populated their
// XDG_DATA_HOME or XDG_DATA_DIRS to include the --datadir.
#mesondefine CUSTOM_DATADIR

/* Loguru-related defines
 */

// Prevent loguru from parsing command-line arguments with
// with the hosts's locale-applied, because this can foul up
// ncurses. (DOSBox also doesn't have foreign-language arguments).
//
#define LOGURU_USE_LOCALE 0

#endif