#include "../12to11.conf"

     12TO11ROOT = ..
        DEPLIBS = $(DEPXLIB)
  SYS_LIBRARIES = MathLibrary
LOCAL_LIBRARIES = $(WAYLAND_CLIENT) $(XLIB) $(PNG)
     COMMONOBJS = test_harness.o
     COMMONSRCS = test_harness.c
         HEADER = test_harness.h
       GENFILES =
 EXTRA_DEFINES := -D_GNU_SOURCE -U_BSD_SOURCE -U_SVID_SOURCE
      INCLUDES := $(DRMINCLUDES) $(PIXMANINCLUDES)

#define ScannerTarget(name)                                   @@\
name.h: $(12TO11ROOT)/name.xml                                @@\
	$(WAYLAND_SCANNER) client-header $< $@                @@\
                                                              @@\
name.c: $(12TO11ROOT)/name.xml name.h                         @@\
	$(WAYLAND_SCANNER) private-code $< $@                 @@\
                                                              @@\
    COMMONOBJS := $(COMMONOBJS) name.o                        @@\
    COMMONSRCS := $(COMMONSRCS) name.c                        @@\
      GENFILES := $(GENFILES) name.c name.h                   @@\
	HEADER := $(HEADER) name.h                            @@\

ScannerTarget(12to11-test)
ScannerTarget(viewporter)
ScannerTarget(linux-dmabuf-unstable-v1)

          /* Not actually a test.  */
          SRCS1 = $(COMMONSRCS) imgview.c
          OBJS1 = $(COMMONSRCS) imgview.o
          SRCS2 = $(COMMONSRCS) simple_test.c
          OBJS2 = $(COMMONOBJS) simple_test.o
          SRCS3 = $(COMMONSRCS) damage_test.c
          OBJS3 = $(COMMONOBJS) damage_test.o
          SRCS4 = $(COMMONSRCS) transform_test.c
          OBJS4 = $(COMMONSRCS) transform_test.o
          SRCS5 = $(COMMONSRCS) viewporter_test.c
          OBJS5 = $(COMMONSRCS) viewporter_test.o
          SRCS6 = $(COMMONSRCS) subsurface_test.c
          OBJS6 = $(COMMONSRCS) subsurface_test.o
          SRCS7 = $(COMMONSRCS) scale_test.c
          OBJS7 = $(COMMONSRCS) scale_test.o
          SRCS8 = $(COMMONSRCS) seat_test.c
          OBJS8 = $(COMMONSRCS) seat_test.o
          SRCS9 = $(COMMONSRCS) dmabuf_test.c
	  OBJS9 = $(COMMONSRCS) dmabuf_test.o
         SRCS10 = $(COMMONSRCS) select_test.c
         OBJS10 = $(COMMONSRCS) select_test.o
	 SRCS11 = select_helper.c
	 OBJS11 = select_helper.o
	 SRCS12 = select_helper_multiple.c
	 OBJS12 = select_helper_multiple.o
       PROGRAMS = imgview simple_test damage_test transform_test viewporter_test subsurface_test scale_test seat_test dmabuf_test select_test select_helper select_helper_multiple

/* Make all objects depend on HEADER.  */
$(OBJS1): $(HEADER)

/* And depend on all sources and headers.  */
depend:: $(HEADER) $(COMMONSRCS)

NormalProgramTarget(imgview,$(OBJS1),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
NormalProgramTarget(simple_test,$(OBJS2),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
NormalProgramTarget(damage_test,$(OBJS3),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
NormalProgramTarget(transform_test,$(OBJS4),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
NormalProgramTarget(viewporter_test,$(OBJS5),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
NormalProgramTarget(subsurface_test,$(OBJS6),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
NormalProgramTarget(scale_test,$(OBJS7),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
NormalProgramTarget(seat_test,$(OBJS8),NullParameter,$(LOCAL_LIBRARIES),NullParameter)
NormalProgramTarget(dmabuf_test,$(OBJS9),NullParameter,$(LOCAL_LIBRARIES) $(GBM) $(DRM),NullParameter);
NormalProgramTarget(select_test,$(OBJS10),NullParameter,$(LOCAL_LIBRARIES) ThreadsLibraries,NullParameter);
NormalProgramTarget(select_helper,$(OBJS11),NullParameter,$(XLIB),NullParameter);
NormalProgramTarget(select_helper_multiple,$(OBJS12),NullParameter,$(XLIB),NullParameter);
DependTarget3($(SRCS1),$(SRCS2),$(SRCS3))
DependTarget3($(SRCS4),$(SRCS5),$(SRCS6))
DependTarget3($(SRCS7),$(SRCS8),$(SRCS9))
DependTarget3($(SRCS10),$(SRCS11),$(SRCS12))

all:: $(PROGRAMS)

clean::
	$(RM) $(GENFILES)
