master hovercats/oakiss / pkg / elftoolchain / gen.lua
 1cflags{
 2	'-Wall', '-Wpedantic',
 3	'-I $outdir/include',
 4	'-I $srcdir/common',
 5	'-I $srcdir/libelf',
 6	'-isystem $builddir/pkg/openbsd/include',
 7}
 8
 9pkg.hdrs = {
10	copy('$outdir/include', '$srcdir/libelf', {'libelf.h', 'gelf.h'}),
11	copy('$outdir/include', '$srcdir/common', {'elfdefinitions.h'}),
12	'$outdir/include/sys/elfdefinitions.h',
13	install=true,
14}
15pkg.deps = {'$gendir/headers', 'pkg/openbsd/headers'}
16
17rule('m4', 'm4 $m4flags -D SRCDIR=$srcdir/libelf $in >$out')
18build('m4', '$outdir/libelf_convert.c', {'$srcdir/libelf/libelf_convert.m4', '|', '$srcdir/libelf/elf_types.m4'})
19build('m4', '$outdir/libelf_fsize.c', {'$srcdir/libelf/libelf_fsize.m4', '|', '$srcdir/libelf/elf_types.m4'})
20build('m4', '$outdir/libelf_msize.c', {'$srcdir/libelf/libelf_msize.m4', '|', '$srcdir/libelf/elf_types.m4'})
21build('m4', '$outdir/include/sys/elfdefinitions.h', {'$srcdir/common/sys/elfdefinitions.m4', '|', '$srcdir/common/sys/elfconstants.m4'}, {
22	m4flags='-I $srcdir/common/sys'
23})
24
25lib('libelf.a', [[
26	libelf/(
27		elf.c
28		elf_begin.c
29		elf_cntl.c
30		elf_end.c elf_errmsg.c elf_errno.c
31		elf_data.c
32		elf_fill.c
33		elf_flag.c
34		elf_getarhdr.c
35		elf_getarsym.c
36		elf_getbase.c
37		elf_getident.c
38		elf_getversion.c
39		elf_hash.c
40		elf_kind.c
41		elf_memory.c
42		elf_next.c
43		elf_open.c
44		elf_rand.c
45		elf_rawfile.c
46		elf_phnum.c
47		elf_shnum.c
48		elf_shstrndx.c
49		elf_scn.c
50		elf_strptr.c
51		elf_update.c
52		elf_version.c
53		gelf_cap.c
54		gelf_checksum.c
55		gelf_dyn.c
56		gelf_ehdr.c
57		gelf_getclass.c
58		gelf_fsize.c
59		gelf_move.c
60		gelf_phdr.c
61		gelf_rel.c
62		gelf_rela.c
63		gelf_shdr.c
64		gelf_sym.c
65		gelf_syminfo.c
66		gelf_symshndx.c
67		gelf_xlate.c
68		libelf_align.c
69		libelf_allocate.c
70		libelf_ar.c
71		libelf_ar_util.c
72		libelf_checksum.c
73		libelf_data.c
74		libelf_ehdr.c
75		libelf_elfmachine.c
76		libelf_extended.c
77		libelf_memory.c
78		libelf_open.c
79		libelf_phdr.c
80		libelf_shdr.c
81		libelf_xlate.c
82	)
83	$outdir/(libelf_convert.c libelf_fsize.c libelf_msize.c)
84]])
85file('lib/libelf.a', '644', '$outdir/libelf.a')
86
87fetch 'git'