gen.lua (1000B)
1 local arch = ({ 2 aarch64='aarch64', 3 x86_64='x86_64', 4 })[config.target.platform:match('[^-]*')] 5 if not arch then arch = 'generic' end 6 7 local freestanding_cflags = { 8 '-fcf-protection=none', 9 '-fno-asynchronous-unwind-tables', 10 '-fno-builtin', 11 '-fno-lto', 12 '-fno-pie', 13 '-fno-stack-protector', 14 } 15 local archcflags = {} 16 local archldflags = {} 17 archcflags['generic'] = {} 18 archldflags['generic'] = {} 19 archcflags['x86_64'] = freestanding_cflags 20 archldflags['x86_64'] = {'-nostdlib', '-Wl,--gc-sections'} 21 archcflags['aarch64'] = freestanding_cflags 22 archldflags['aarch64'] = {'-nostdlib', '-Wl,--gc-sections'} 23 24 local archsrcs = {} 25 archsrcs['generic'] = {'main_posix.c'} 26 archsrcs['aarch64'] = {'main_linux_aarch64.c'} 27 archsrcs['x86_64'] = {'main_linux_amd64.c'} 28 29 cflags(archcflags[arch]) 30 set('ldflags', '$ldflags '..table.concat(archldflags[arch], ' ')) 31 32 exe('u-config', archsrcs[arch]) 33 file('bin/u-config', '755', '$outdir/u-config') 34 sym('bin/pkg-config', 'u-config') 35 man({'u-config.1'}) 36 37 fetch('git')