1 | # Read variables from config file generated by config.py,
|
---|
2 | # and version information from repository.
|
---|
3 |
|
---|
4 | _config_file = files(meson.build_root() / 'Makefile.config')
|
---|
5 | _version_file = files(meson.source_root() / 'version')
|
---|
6 |
|
---|
7 | _config_variables = [
|
---|
8 | # Uspace and kernel
|
---|
9 | 'CONFIG_BAREBONE',
|
---|
10 | 'CONFIG_BUILD_SHARED_LIBS',
|
---|
11 | 'CONFIG_DEBUG',
|
---|
12 | 'CONFIG_DEVEL_FILES',
|
---|
13 | 'CONFIG_FPU',
|
---|
14 | 'CONFIG_LINE_DEBUG',
|
---|
15 | 'CONFIG_LTO',
|
---|
16 | 'CONFIG_PCUT_SELF_TESTS',
|
---|
17 | 'CONFIG_PCUT_TESTS',
|
---|
18 | 'CONFIG_RTLD',
|
---|
19 | 'CONFIG_STRIP_BINARIES',
|
---|
20 | 'CONFIG_UBSAN',
|
---|
21 | 'CONFIG_USE_SHARED_LIBS',
|
---|
22 | 'CROSS_TARGET',
|
---|
23 | 'OPTIMIZATION',
|
---|
24 | 'PROCESSOR',
|
---|
25 | 'QUADFLOAT',
|
---|
26 | 'RDFMT',
|
---|
27 |
|
---|
28 | # Kernel only
|
---|
29 | 'CONFIG_ACPI',
|
---|
30 | 'CONFIG_AM335X_TIMERS',
|
---|
31 | 'CONFIG_ASID',
|
---|
32 | 'CONFIG_ASID_FIFO',
|
---|
33 | 'CONFIG_AT_KBD',
|
---|
34 | 'CONFIG_BCM2835_MAILBOX',
|
---|
35 | 'CONFIG_DSRLNIN',
|
---|
36 | 'CONFIG_DSRLNOUT',
|
---|
37 | 'CONFIG_EGA',
|
---|
38 | 'CONFIG_FB',
|
---|
39 | 'CONFIG_GICV2',
|
---|
40 | 'CONFIG_I8042',
|
---|
41 | 'CONFIG_I8259',
|
---|
42 | 'CONFIG_IOMAP_BITMAP',
|
---|
43 | 'CONFIG_IOMAP_DUMMY',
|
---|
44 | 'CONFIG_KCONSOLE',
|
---|
45 | 'CONFIG_MAC_KBD',
|
---|
46 | 'CONFIG_MULTIBOOT',
|
---|
47 | 'CONFIG_NS16550',
|
---|
48 | 'CONFIG_OFW_PCI',
|
---|
49 | 'CONFIG_OFW_TREE',
|
---|
50 | 'CONFIG_OMAP_UART',
|
---|
51 | 'CONFIG_PAGE_HT',
|
---|
52 | 'CONFIG_PAGE_PT',
|
---|
53 | 'CONFIG_PC_KBD',
|
---|
54 | 'CONFIG_PL011_UART',
|
---|
55 | 'CONFIG_PL050',
|
---|
56 | 'CONFIG_S3C24XX_IRQC',
|
---|
57 | 'CONFIG_S3C24XX_UART',
|
---|
58 | 'CONFIG_SMP',
|
---|
59 | 'CONFIG_SOFTINT',
|
---|
60 | 'CONFIG_SRLN',
|
---|
61 | 'CONFIG_SUN_KBD',
|
---|
62 | 'CONFIG_SYMTAB',
|
---|
63 | 'CONFIG_TEST',
|
---|
64 | 'CONFIG_TRACE',
|
---|
65 | 'CONFIG_TSB',
|
---|
66 | 'CONFIG_UDEBUG',
|
---|
67 | 'CONFIG_VIA_CUDA',
|
---|
68 | 'MACHINE',
|
---|
69 | 'MEMORY_MODEL',
|
---|
70 |
|
---|
71 | 'UARCH',
|
---|
72 | 'KARCH',
|
---|
73 | 'BARCH',
|
---|
74 | 'GRUB_ARCH',
|
---|
75 | 'UIMAGE_OS',
|
---|
76 | 'CONFIG_COMPRESSED_INIT',
|
---|
77 | ]
|
---|
78 |
|
---|
79 | foreach _varname : _config_variables
|
---|
80 | _c = run_command(grep, '^' + _varname + '\\b', _config_file)
|
---|
81 | if _c.returncode() != 0
|
---|
82 | # TODO: Output negative/inapplicable variables too in config, so that we can check for typos here.
|
---|
83 | #warning('Missing configuration variable ' + _varname + ' in Makefile.config')
|
---|
84 | set_variable(_varname, false)
|
---|
85 | continue
|
---|
86 | endif
|
---|
87 |
|
---|
88 | _val = _c.stdout().split('\n')[0].strip().split('=')[1].strip()
|
---|
89 | if _val == 'y'
|
---|
90 | _val = true
|
---|
91 | elif _val == 'n'
|
---|
92 | _val = false
|
---|
93 | endif
|
---|
94 |
|
---|
95 | set_variable(_varname, _val)
|
---|
96 | if debug_options
|
---|
97 | message([ _varname, get_variable(_varname) ])
|
---|
98 | endif
|
---|
99 | endforeach
|
---|
100 |
|
---|
101 | # Also read version information.
|
---|
102 | _version_variables = [
|
---|
103 | 'COPYRIGHT',
|
---|
104 | 'NAME',
|
---|
105 | 'PATCHLEVEL',
|
---|
106 | 'SUBLEVEL',
|
---|
107 | 'VERSION',
|
---|
108 | ]
|
---|
109 |
|
---|
110 | foreach _varname : _version_variables
|
---|
111 | _line = run_command(grep, '^' + _varname + '\\b', _version_file, check: true).stdout().strip()
|
---|
112 | _val = _line.split('=')[1].strip()
|
---|
113 |
|
---|
114 | _realvarname = 'HELENOS_' + _varname
|
---|
115 | set_variable(_realvarname, _val)
|
---|
116 | if debug_options
|
---|
117 | message([ _realvarname, get_variable(_realvarname) ])
|
---|
118 | endif
|
---|
119 | endforeach
|
---|
120 |
|
---|
121 | HELENOS_RELEASE = HELENOS_VERSION + '.' + HELENOS_PATCHLEVEL + '.' + HELENOS_SUBLEVEL
|
---|