xref: /rk3399_ARM-atf/lib/libfdt/meson.build (revision 50313d071261dacc923b18c996369326101a3e8a)
1*18818426SChris Kayversion_script = '-Wl,--version-script=@0@'.format(meson.current_source_dir() / 'version.lds')
2*18818426SChris Kayif not cc.has_link_argument(version_script)
3*18818426SChris Kay  version_script = []
4*18818426SChris Kayendif
5*18818426SChris Kay
6*18818426SChris Kaysources = files(
7*18818426SChris Kay  'fdt.c',
8*18818426SChris Kay  'fdt_addresses.c',
9*18818426SChris Kay  'fdt_check.c',
10*18818426SChris Kay  'fdt_empty_tree.c',
11*18818426SChris Kay  'fdt_overlay.c',
12*18818426SChris Kay  'fdt_ro.c',
13*18818426SChris Kay  'fdt_rw.c',
14*18818426SChris Kay  'fdt_strerror.c',
15*18818426SChris Kay  'fdt_sw.c',
16*18818426SChris Kay  'fdt_wip.c',
17*18818426SChris Kay)
18*18818426SChris Kay
19*18818426SChris Kaylink_args = []
20*18818426SChris Kayif cc.has_link_argument('-Wl,--no-undefined')
21*18818426SChris Kay    link_args += '-Wl,--no-undefined'
22*18818426SChris Kayelse
23*18818426SChris Kay    # -undefined error is the equivalent of --no-undefined for the macOS linker,
24*18818426SChris Kay    # but -undefined would also be understood as a valid argument for GNU ld!
25*18818426SChris Kay    link_args += cc.get_supported_link_arguments('-Wl,-undefined,error')
26*18818426SChris Kayendif
27*18818426SChris Kay
28*18818426SChris Kaylink_args += version_script
29*18818426SChris Kaylibfdt = both_libraries(
30*18818426SChris Kay  'fdt', sources,
31*18818426SChris Kay  version: meson.project_version(),
32*18818426SChris Kay  link_args: link_args,
33*18818426SChris Kay  link_depends: 'version.lds',
34*18818426SChris Kay  install: true,
35*18818426SChris Kay)
36*18818426SChris Kay
37*18818426SChris Kayif static_build
38*18818426SChris Kay  link_with = libfdt.get_static_lib()
39*18818426SChris Kayelse
40*18818426SChris Kay  link_with = libfdt.get_shared_lib()
41*18818426SChris Kayendif
42*18818426SChris Kay
43*18818426SChris Kaylibfdt_inc = include_directories('.')
44*18818426SChris Kay
45*18818426SChris Kaylibfdt_dep = declare_dependency(
46*18818426SChris Kay  include_directories: libfdt_inc,
47*18818426SChris Kay  link_with: link_with,
48*18818426SChris Kay)
49*18818426SChris Kay
50*18818426SChris Kayinstall_headers(
51*18818426SChris Kay  files(
52*18818426SChris Kay    'fdt.h',
53*18818426SChris Kay    'libfdt.h',
54*18818426SChris Kay    'libfdt_env.h',
55*18818426SChris Kay  )
56*18818426SChris Kay)
57*18818426SChris Kay
58*18818426SChris Kaypkgconfig = import('pkgconfig')
59*18818426SChris Kay
60*18818426SChris Kaypkgconfig.generate(
61*18818426SChris Kay  libraries: libfdt,
62*18818426SChris Kay  version: meson.project_version(),
63*18818426SChris Kay  filebase: 'libfdt',
64*18818426SChris Kay  name: 'libfdt',
65*18818426SChris Kay  description: 'Flat Device Tree manipulation',
66*18818426SChris Kay)
67