if BUILD_OVERLAY
bin_PROGRAMS = intel-gpu-overlay

BUILT_SOURCES = tracepoint_format.h
endif

tracepoint_format.h: tracepoint_format.leg
	$(LEG) -o $@ $<

AM_CPPFLAGS = -I. -I$(top_srcdir)/include/drm-uapi \
	      -I$(top_srcdir)/lib/stubs/syscalls
AM_CFLAGS = $(DRM_CFLAGS) $(PCIACCESS_CFLAGS) $(CWARNFLAGS) \
	$(CAIRO_CFLAGS) $(OVERLAY_CFLAGS) $(WERROR_CFLAGS) -I$(srcdir)/../lib
LDADD = $(DRM_LIBS) $(PCIACCESS_LIBS) $(CAIRO_LIBS) $(OVERLAY_LIBS) $(top_builddir)/lib/libigt_perf.la

intel_gpu_overlay_SOURCES = \
	chart.h \
	chart.c \
	config.c \
	cpu-top.h \
	cpu-top.c \
	debugfs.h \
	debugfs.c \
	gem-interrupts.h \
	gem-interrupts.c \
	gem-objects.h \
	gem-objects.c \
	gpu-top.h \
	gpu-top.c \
	gpu-perf.h \
	gpu-perf.c \
	gpu-freq.h \
	gpu-freq.c \
	overlay.h \
	overlay.c \
	power.h \
	power.c \
	rc6.h \
	rc6.c \
	$(NULL)

if BUILD_OVERLAY_XLIB
both_x11_sources = x11/position.c x11/position.h
AM_CFLAGS += $(OVERLAY_XLIB_CFLAGS) $(XRANDR_CFLAGS)
LDADD += $(OVERLAY_XLIB_LIBS) $(XRANDR_LIBS)
intel_gpu_overlay_SOURCES += \
	x11/x11-window.c \
	$(NULL)
endif

if BUILD_OVERLAY_XVLIB
both_x11_sources = x11/position.c
AM_CFLAGS += $(OVERLAY_XVLIB_CFLAGS) $(XRANDR_CFLAGS)
LDADD += $(OVERLAY_XVLIB_LIBS) $(XRANDR_LIBS)
intel_gpu_overlay_SOURCES += \
	x11/dri2.c \
	x11/dri2.h \
	x11/rgb2yuv.c \
	x11/rgb2yuv.h \
	x11/x11-overlay.c \
	$(NULL)
endif

intel_gpu_overlay_SOURCES += \
	kms/kms-overlay.c \
	$(NULL)

intel_gpu_overlay_SOURCES += $(both_x11_sources)

intel_gpu_overlay_LDADD = $(LDADD) -lrt -lm
