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