1version_script = '-Wl,--version-script=@0@'.format(meson.current_source_dir() / 'version.lds') 2if not cc.has_link_argument(version_script) 3 version_script = [] 4endif 5 6sources = files( 7 'fdt.c', 8 'fdt_addresses.c', 9 'fdt_check.c', 10 'fdt_empty_tree.c', 11 'fdt_overlay.c', 12 'fdt_ro.c', 13 'fdt_rw.c', 14 'fdt_strerror.c', 15 'fdt_sw.c', 16 'fdt_wip.c', 17) 18 19libfdt = library( 20 'fdt', sources, 21 version: '1.6.0', 22 link_args: ['-Wl,--no-undefined', version_script], 23 link_depends: 'version.lds', 24 install: true, 25) 26 27libfdt_a = static_library( 28 'fdt', sources, 29 install: true, 30) 31 32libfdt_inc = include_directories('.') 33 34if static_build 35 link_with = libfdt_a 36else 37 link_with = libfdt 38endif 39 40libfdt_dep = declare_dependency( 41 include_directories: libfdt_inc, 42 link_with: link_with, 43) 44 45install_headers( 46 files( 47 'fdt.h', 48 'libfdt.h', 49 'libfdt_env.h', 50 ) 51) 52 53pkgconfig = import('pkgconfig') 54 55pkgconfig.generate( 56 libraries: libfdt, 57 version: meson.project_version(), 58 filebase: 'libfdt', 59 name: 'libfdt', 60 description: 'Flat Device Tree manipulation', 61) 62