2 # Copyright (c) 2019 Jiří Zárevúcky
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # - Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # - Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 # - The name of the author may not be used to endorse or promote products
15 # derived from this software without specific prior written permission.
17 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 ## Generate config.mk, config.sh
31 # Get the directory where the compiler resides.
33 cc_fullname = run_command(which, meson.get_compiler('c').cmd_array()[0].split(' ')[0], check: true).stdout().strip()
34 cc_path = run_command(dirname, cc_fullname, check: true).stdout().strip()
36 message(['Compiler directory is:', cc_path])
39 '-isystem', '$(HELENOS_EXPORT_ROOT)/include/libposix',
40 '-isystem', '$(HELENOS_EXPORT_ROOT)/include/libc',
41 '-idirafter', '$(HELENOS_EXPORT_ROOT)/include',
46 '-L$(HELENOS_EXPORT_ROOT)/lib',
47 '-Wl,--whole-archive',
48 '$(HELENOS_EXPORT_ROOT)/lib/libstartfiles.a',
49 '-Wl,--no-whole-archive',
61 cc_arch = meson.get_cross_property('cc_arch')
63 conf_data = configuration_data({
64 'HELENOS_OVERLAY_PATH' : meson.source_root() / 'uspace/overlay',
65 'HELENOS_CROSS_PATH' : cc_path,
66 'HELENOS_ARCH' : cc_arch,
67 'HELENOS_CFLAGS' : ' '.join(arch_uspace_c_args),
68 'HELENOS_CXXFLAGS' : ' '.join(arch_uspace_c_args),
69 'HELENOS_CPPFLAGS' : ' '.join(export_cppflags),
70 'HELENOS_LDFLAGS' : ' '.join(export_ldflags),
71 'HELENOS_LDLIBS' : ' '.join(export_ldlibs),
72 'HELENOS_TARGET' : cc_arch + '-helenos',
75 config_mk = configure_file(
76 input: 'config.mk.in',
78 configuration: conf_data,
81 config_sh = custom_target('config.sh',
84 command: [ sed, 's:$(HELENOS_EXPORT_ROOT):${HELENOS_EXPORT_ROOT}:g', '@INPUT@' ],
88 run_target('export-dev',
91 meson.source_root() / 'meson' / 'part' / 'exports' / 'copy-export.sh',
93 'config', config_mk, 'config.mk',
94 'config', config_sh, 'config.sh',
95 ] + exported_devel_files