-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfig.in
587 lines (493 loc) · 21.5 KB
/
Config.in
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
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
# Configuration file for MarkedRain
mainmenu "MarkedRain $(MRAIN_VERSION) Configuration"
menu "Makefile customizations"
config bool_show_cmd
bool "Display all commands being sent to the terminal"
default n
help
Removes the '@' symbol from the start of every command,
effectively showing them in the terminal screen. Enable
this if you want to debug something or just need to have
a more verbose building process.
config bool_show_cmd_out
bool "Display normal output of commands"
default y
help
If not checked, this adds "> /dev/null" to the end of all
commands, making the output redirect to void & showing them.
Enable it so you can see what the stuff called by make
are doing.
config bool_show_cmd_out_err
bool "Display important messages of commands"
default y
depends on !bool_show_cmd_out
help
If not checked, this adds "> /dev/null 2>&1" to the end of all
commands, hiding every possible output of a command, including
error messages. Enable it so you can see these important messages.
config val_unmain_sect
string "Targets to exclude from global code"
default "run clean cleanall imagerun ir "
help
Specify targets that will skip over the global variable
declarations and exportings. This is a space-separated list of
target names. If a target in this list is detected in MAKECMDGOALS,
'global' will not execute code other than bool_show_cmd and
bool_show_cmd_out.
config bool_use_old_headings
bool "Use legacy style for headings"
default n
help
Set this option to true if you want to replace the
newer style of showing headings as "---[]---"
with the older style "// //" (Does not have old
versions for newer features, like " -[]- ").
menu "Message ANSI escape sequence"
depends on !bool_use_old_headings
config col_HEADING
string "Heading"
default "\\e[1;37;45m"
config col_SUBHEADING
string "Sub-heading"
default "\\e[1;35;40m"
config col_INFOHEADING
string "Informative Heading"
default "\\e[37;44m"
config col_INFO
string "Regular Information"
default "\\e[36m"
config col_TRUE
string "Variable is TRUE"
default "\\e[32m"
config col_FALSE
string "Variable is FALSE"
default "\\e[91m"
config col_DONE
string "OK Message"
default "\\e[92m"
config col_ERROR
string "Error Message"
default "\\e[1;91m"
config col_IMP
string "Important Message"
default "\\e[1;37;41m"
config col_NORMAL
string "Default terminal color"
default "\\e[0m"
endmenu
endmenu
menu "Source configuration"
config src_dir
string "Project's source directory"
default "source"
help
The source directory contains all the files used to
build MarkedRain OS. If you renamed the folder, or
want to switch up the source files a bit, rename
this value too. Remember, the new source directory
must contain all of the stuff as the old one, like
"buildroot" and "configs".
config src_dir_buildroot
string "Buildroot source directory"
default "$[src_dir]/buildroot"
help
The buildroot source directory contains source
code for various buildroot utilites.
config src_dir_conf
string "Configurations directory"
default "$[src_dir]/configs"
help
The configurations directory contains files
that are used for the compiling and using
procedures of the operating system.
config src_dir_initramfs
string "Initramfs source directory"
default "$[src_dir]/initramfs"
help
The initramfs is a compressed, temporary root filesystem
loaded into memory during boot which provides some
necessary items for mounting the real root filesystem.
config src_dir_linux
string "Linux kernel directory (bzImage file)"
default "$[src_dir]/kernel/bzImage"
help
The linux kernel directory contains the kernel
image that's used in MRain OS. If you renamed
the kernel directory or the bzImage file,
change this value to point to that file.
config src_dir_media
string "Media directory"
default "$[src_dir]/media"
help
The media directory contains pictures, videos,
and audio items used by MRain OS.
config src_dir_modules
string "Modules directory"
default "$[src_dir]/kernel/modules"
help
The linux kernel modules are drivers-like thing that can be loaded on-demand
using 'insmod' or 'modprobe'. The specified modules directory will be copied
over to the squashFS image, and everything ending in *.ko will be loaded at
bootup.
config src_dir_scripts
string "Scripting directory"
default "$[src_dir]/scripts"
help
The scripting directory has scripts that are
used while making the operating system.
config src_dir_mktext
string "Text-creating scripts directory"
default "$[src_dir]/mktext"
help
The text creating-scripts directory has scripts
that generate text files while substituting
Makefile variables within the new file.
endmenu
menu "Destination configuration"
config bin_dir
string "Memory-based output directory"
default "bin"
help
The memory-based output directory is a directory
in which the contents are not directly saved to
disk, but rather onto the memory. This is mainly
an effort to increase performance and reduce any
disk degradation.
It does this by creating a symlink to
'/dev/shm/mrain-bin'.
Any contents stored within it will be lost when the
computer loses power.
This directory would contain the latest ISO image
made, and its extracted contents (if bool_clean_dir_tmp
is disabled).
The name of the ISO image would be 'boot.iso'.
config bin_dir_iso
string "Location & name to output the ISO image"
default "builds/latest.iso"
help
This is the location of the regular ISO Image that
is saved to disk.
This will only be used if 'ISO=y' is passed to make.
config bin_dir_tmp
string "Location to put temporary contents/mount onto"
default "$[bin_dir]/temp"
help
This variable contains the location where
temporary files will reside. This location
is mostly used to put the stuff in it into
the iso image.
It is located within the memory-based folder
located in variable bin_dir by default.
On portable images, this folder will be used
for mounting the image to copy stuff into it.
config bin_dir_tmp_squashfs
string "Location to put SquashFS archive/System contents"
default "$[bin_dir]/squashfs"
help
This variable contains the location where
the files used to create the SquashFS image
specified in sys_dir_squashfs reside.
It is located within the memory-based folder
located in variable bin_dir by default.
On portable images, this folder will contain
an extracted version of the image.
config bool_clean_dir_tmp
bool "Clean the directory of temporary contents"
default y
help
Enable this if you want MRain to automatically
remove all contents of bin_dir_tmp &
bin_dir_tmp_squashfs, which may free up some memory.
If you are trying to diagnose any issues of the final
product, then you may want to set this to N.
config val_portable_size_extension
int "Additional file size to extend portable image (MB)"
default 50
help
Specify how much the portable image (built using make ir
or make image) will extend. This will give the image
free space of the amount specified.
Usually, the image will be of the total size of the
contents in bin_dir_tmp_squashfs with an additional
1MB added onto it. This variable extends that in order
to provide free space the user can write onto.
The unit is Megabytes (MB).
config sys_dir_apps
string "Programs directory"
default "/Program Files"
depends on hide_this_funct
help
Enter the location of the users directory.
This value can be used in Makefile using
$[sys_dir_usr]. This directory houses the
user's files and customizations.
config sys_dir_usr
string "Users directory"
default "/Users"
depends on hide_this_funct
help
Enter the location of the users directory.
This value can be used in Makefile using
$[sys_dir_usr]. This directory houses the
user's files and customizations.
config sys_dir_sys
string "System directory"
default "/System"
depends on hide_this_funct
help
Enter the location of the system directory.
This value can be used in Makefile using
$[sys_dir_sys]. This directory houses many
important files that are used by MRain OS.
config sys_dir_linux
string "Linux kernel location"
default "/boot/bzImage"
help
Enter the location to copy the linux kernel into in the iso
image. This value would also be used to determine the kernel's
location from the grub or extlinux config file.
config sys_dir_initramfs
string "Initramfs location"
default "/boot/init.cpio.zst"
help
Enter the location to copy the initramfs into in the iso
image.
config sys_dir_squashfs
string "SquashFS archive location"
default "/boot/system.squashfs"
help
Enter the location to create the SquashFS archive in the iso
image. SquashFS is a compressed read-only format that serves
as the lower layer for overlayfs, which is used to create a
system that is stored on memory.
config bool_move_root
bool "Move root directories into system directory"
default y
depends on hide_this_funct
help
Enable this option to move essential root directories like
'/usr/lib' into a specified directory.
When enabled, the init program will be set to where preinit
is located. It will create the necessary symlinks to those
directories and start the main init process.
menu "New paths for root directories"
depends on bool_move_root
config sys_dir_newroot_etc
string "/etc"
default "$[sys_dir_sys]/sysconf"
config sys_dir_newroot_opt
string "/opt"
default "$[sys_dir_sys]/addons"
config sys_dir_newroot_root
string "/root"
default "$[sys_dir_usr]/Administrator"
config sys_dir_newroot_tmp
string "/tmp"
default "$[sys_dir_sys]/temp"
config sys_dir_newroot_bin
string "/usr/bin"
default "$[sys_dir_apps]/system"
config sys_dir_newroot_lib
string "/usr/lib"
default "$[sys_dir_sys]/library"
config sys_dir_newroot_lib_modules
string "/usr/lib/modules"
default "$[sys_dir_sys]/base/modules"
config sys_dir_newroot_libexec
string "/usr/libexec"
default "$[sys_dir_sys]/library/services"
config sys_dir_newroot_share
string "/usr/share"
default "$[sys_dir_sys]/shared"
config sys_dir_newroot_sbin
string "/usr/sbin"
default "$[sys_dir_sys]/sysapps"
config sys_dir_newroot_var
string "/var"
default "$[sys_dir_sys]/variable"
endmenu
endmenu
menu "Operating System configuration"
menu "Bootloader configuration"
config val_grub-boot_default
int "Default entry to boot"
default 0
help
Specifies the default entry to be booted into in
GRUB and Extlinux. The iso image is probably
only going to have MRain in it, so set this to 0.
config val_grub-boot_timeout
int "Seconds before booting automatically"
default 5
help
Specifies the amount of time to wait in seconds
before automatically booting the entry specified
in "val_grub-boot_default".
config val_grub-boot_resolution
string "Screen resolution to use on boot"
default "1024x768"
help
The string entered in the format <width>x<height> is
used as the screen resolution for linux in the booting process.
Beware, there are only a handful of resolutions supported,
"1024x768" being one of them.
You can view supported modes by running 'vbeinfo' in the grub
commandline (press 'c' at grub prompt).
config val_grub-entry-one_name
string "Distribution name in bootloader"
default "MarkedRain Linux"
help
The name that gets displayed on booting as the first entry's
name. Will not get seen if timeout is zero, or the menu is
hidden for whatever reason.
config val_grub-entry-one_li_params
string "Additional parameters to pass to kernel"
default "rw"
help
The options here will get passed into kernel,
after everything before it like "root=/dev".
Seperate all options with spaces, like
"init=/sbin/init rw"
endmenu
config bool_include_aliases
bool "Include convenient commands"
default y
help
Enable this option to include convenient aliases & functions
such as 'del' for 'rm', 'ren' for renaming files,
'ls --color' for colored directory listings, and others.
config bool_tty_expansion
bool "Spawn login prompts (getty) on tty2 - tty6"
default y
help
Enable this option to install an OpenRC service that enables the use
of tty2, tty3, tty4, tty5, and tty6 by executing the agetty service.
config bool_use_drive_letters
bool "Use drive letters for partitions (zsh) [Experimental]"
default y
help
This option enables the use of drive letters for partitions in the shell.
When enabled, the user can switch to mountpoints by typing a drive letter
followed by a colon (e.g., 'C:'), provided that a corresponding folder
exists in /boot/disks. This allows a simplified method of navigating
mountpoints using familiar drive letter notation.
Example:
If the user types "C:" and the folder "/boot/disks/C:" exists, the shell
will automatically change the current directory to "/boot/disks/C:".
Only works with ZSH.
Note: To remove drive letters fully, you MUST re-compile the linux kernel
without applying the namei.c patch, because the kernel is the one
who transforms stuff like 'nano c:/log.txt' into
'nano /boot/disks/C:/log.txt'
menu "System version information"
config VERSION
int "Major release number [VERSION]"
default 0
help
This variable contains the major version of the version string,
which looks like "<major>.<minor>.<sub-minor>.<count>-<tag>".
config PATCHLEVEL
int "Minor release number [PATCHLEVEL]"
default 0
help
This variable contains the minor version of the version string,
which looks like "<major>.<minor>.<sub-minor>.<count>-<tag>".
config SUBLEVEL
int "Sub-minor release number [SUBLEVEL]"
default 3
help
This variable contains the sub-minor version of the version string,
which looks like "<major>.<minor>.<sub-minor>.<count>-<tag>".
comment "'count' is set by 'LATEST_NEXT' in bcount.txt"
config RELEASE_TAG
string "Version release tag"
default "ColdStar"
help
This variable contains the release 'tag' of the version string,
which looks like "<major>.<minor>.<sub-minor>.<count>-<tag>".
endmenu
endmenu
menu "OS Applications configuration"
config src_dir_apps
string "Applications source directory"
default "$[src_dir]/applications"
help
Specify the source directory where all the applications to be
added are located.
comment "-------------------------------------------"
comment "To not include an app, leave its dir blank."
comment "-------------------------------------------"
config app_dir_microwindows
string "Nano-X/Microwindows"
default "$[src_dir_apps]/microwindows"
help
Microwindows or Nano-X is a small graphical windowing system that implements
both Win32 and Nano-X (X11-like) APIs for clipped graphics drawing in windows
on Linux, Mac OS X, EMSCRIPTEN, Android and other platforms. It is Open Source
and licenced under the the Mozilla Public License. For creating GUIs, the
Nuklear immediate mode GUI, Win32 builtin controls, and TinyWidget's controls
based on Nano-X are included. FLTK can be used with the X11 compability
library NX11.
config app_dir_setup
string "Setup application"
default "$[src_dir_apps]/setup"
help
Setup is a utility used to install MarkedRain Linux.
This program also displays the custom bootup screen.
This program requires Microwindows/Nano-X.
config app_dir_v86d
string "v86d"
default "$[src_dir_apps]/v86d"
help
v86d provides a backend for kernel drivers that need to execute
x86 BIOS code. The code is executed in a controlled environment
and the results are passed back to the kernel via the netlink
interface.
endmenu
menu "Utilities"
config CC
string "C code compiler w/ arguments"
default "gcc"
help
Specify the C code compiler and its arguments. This can be used to
define the compiler and options used during the build process.
The default value is "gcc".
config util_vm
string "Virtualization software"
default "qemu-system-x86_64"
help
The VM software is used to run the iso image created with
make. If you change this to anything other than QEMU, change
the parameters too to make it work with that software.
config bool_use_qemu_kvm
bool "Use QEMU KVM Acceleration"
default y
help
Enabling the QEMU KVM acceleration can give exceptional performance to
the VM launched. You may enable this ONLY if the VM software is QEMU,
as it passes the parameters '-enable-kvm -cpu host'.
This only works if KVM itself is enabled and used on your computer.
Makefile automatically runs 'kvm-ok'.
config util_vm_params
string "Parameters to be sent to the Virtualization software"
default "-m 256M -serial stdio"
help
These parameters will be directly sent to the VM software
by appending it to the end of its filename. Different
VM software may have different ways of interpreting the
same thing, so do your research before modifying this.
endmenu
menu "Other configurations"
menu "Buildroot (placeholder)"
endmenu
config val_remake_br_pack
string "BR Packages to remake upon version change"
default "openrc"
help
This variable contains the package names in buildroot
that uses a fixed version string when compiling and
does not change dynamically according to a version
file, found in their package makefiles.
Leave blank to not remake any packages automatically.
Makefiles edited: gcc perl openrc swupdate
endmenu