gen.lua (2013B)
- local function havedriver(name)
- local enabled = config.video_drivers and config.video_drivers[name]
- return '-D HAVE_'..name:upper()..'='..(enabled and '1' or '0')
- end
- cflags{
- '-include $dir/config.h',
- havedriver('intel'),
- havedriver('nouveau'),
- havedriver('amdgpu'),
- '-I $dir',
- '-I $outdir',
- '-I $srcdir',
- '-I $srcdir/include/drm',
- '-isystem $builddir/pkg/linux-headers/include',
- }
- pkg.hdrs = {
- copy('$outdir/include', '$srcdir', {'xf86drm.h', 'xf86drmMode.h'}),
- copy('$outdir/include', '$srcdir/amdgpu', {'amdgpu.h'}),
- copy('$outdir/include', '$srcdir/include/drm', {
- 'drm.h',
- 'drm_fourcc.h',
- 'drm_mode.h',
- 'drm_sarea.h',
- 'i915_drm.h',
- 'amdgpu_drm.h',
- }),
- }
- pkg.deps = {
- '$outdir/generated_static_table_fourcc.h',
- 'pkg/linux-headers/headers',
- }
- rule('fourcc', 'lua $dir/fourcc.lua <$in >$out')
- build('fourcc', '$outdir/generated_static_table_fourcc.h', {'$srcdir/include/drm/drm_fourcc.h', '|', '$dir/fourcc.lua'})
- lib('libdrm.a', {
- 'xf86drm.c',
- 'xf86drmHash.c',
- 'xf86drmRandom.c',
- 'xf86drmSL.c',
- 'xf86drmMode.c',
- })
- if config.video_drivers and config.video_drivers['intel'] then
- cflags{'-isystem $builddir/pkg/libpciaccess/include'}
- table.insert(pkg.deps, 'pkg/libpciaccess/headers')
- lib('libdrm_intel.a', [[
- intel/(
- intel_bufmgr.c
- intel_bufmgr_fake.c
- intel_bufmgr_gem.c
- intel_decode.c
- mm.c
- )
- $builddir/pkg/libpciaccess/libpciaccess.a
- ]])
- end
- if config.video_drivers and config.video_drivers['nouveau'] then
- lib('libdrm_nouveau.a', [[
- nouveau/(
- nouveau.c
- pushbuf.c
- bufctx.c
- abi16.c
- )
- ]])
- end
- if config.video_drivers and config.video_drivers['amdgpu'] then
- cflags{string.format([[-D 'AMDGPU_ASIC_ID_TABLE="%s/share/libdrm/amdgpu.ids"']], config.prefix)}
- lib('libdrm_amdgpu.a', [[
- amdgpu/(
- amdgpu_asic_id.c
- amdgpu_bo.c
- amdgpu_cs.c
- amdgpu_device.c
- amdgpu_gpu_info.c
- amdgpu_vamgr.c
- amdgpu_vm.c
- handle_table.c
- )
- ]])
- file('share/libdrm/amdgpu.ids', '644', '$srcdir/data/amdgpu.ids')
- end
- fetch 'git'