# Makefile to build the SDL tests

srcdir  = @srcdir@

CC      = @CC@
EXE	= @EXE@
CFLAGS  = @CFLAGS@ -g
LIBS	= @LIBS@

TARGETS = \
	checkkeys$(EXE) \
	controllermap$(EXE) \
	loopwave$(EXE) \
	loopwavequeue$(EXE) \
	testatomic$(EXE) \
	testaudiocapture$(EXE) \
	testaudiohotplug$(EXE) \
	testaudioinfo$(EXE) \
	testautomation$(EXE) \
	testbounds$(EXE) \
	testcustomcursor$(EXE) \
	testdisplayinfo$(EXE) \
	testdraw2$(EXE) \
	testdrawchessboard$(EXE) \
	testdropfile$(EXE) \
	testerror$(EXE) \
	testfile$(EXE) \
	testfilesystem$(EXE) \
	testgamecontroller$(EXE) \
	testgesture$(EXE) \
	testhaptic$(EXE) \
	testhittesting$(EXE) \
	testhotplug$(EXE) \
	testiconv$(EXE) \
	testime$(EXE) \
	testintersections$(EXE) \
	testjoystick$(EXE) \
	testkeys$(EXE) \
	testloadso$(EXE) \
	testlock$(EXE) \
	testmessage$(EXE) \
	testmultiaudio$(EXE) \
	testnative$(EXE) \
	testoverlay2$(EXE) \
	testplatform$(EXE) \
	testpower$(EXE) \
	testqsort$(EXE) \
	testrelative$(EXE) \
	testrendercopyex$(EXE) \
	testrendertarget$(EXE) \
	testresample$(EXE) \
	testrumble$(EXE) \
	testscale$(EXE) \
	testsem$(EXE) \
	testsensor$(EXE) \
	testshape$(EXE) \
	testsprite2$(EXE) \
	testspriteminimal$(EXE) \
	teststreaming$(EXE) \
	testthread$(EXE) \
	testtimer$(EXE) \
	testver$(EXE) \
	testviewport$(EXE) \
	testvulkan$(EXE) \
	testwm2$(EXE) \
	testyuv$(EXE) \
	torturethread$(EXE) \

	
@OPENGL_TARGETS@ += testgl2$(EXE) testshader$(EXE)
@OPENGLES1_TARGETS@ += testgles$(EXE)
@OPENGLES2_TARGETS@ += testgles2$(EXE)


all: Makefile $(TARGETS) copydatafiles

Makefile: $(srcdir)/Makefile.in
	$(SHELL) config.status $@

checkkeys$(EXE): $(srcdir)/checkkeys.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

loopwave$(EXE): $(srcdir)/loopwave.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

loopwavequeue$(EXE): $(srcdir)/loopwavequeue.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testresample$(EXE): $(srcdir)/testresample.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testaudioinfo$(EXE): $(srcdir)/testaudioinfo.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testautomation$(EXE): $(srcdir)/testautomation.c \
		      $(srcdir)/testautomation_audio.c \
		      $(srcdir)/testautomation_clipboard.c \
		      $(srcdir)/testautomation_events.c \
		      $(srcdir)/testautomation_keyboard.c \
		      $(srcdir)/testautomation_main.c \
		      $(srcdir)/testautomation_mouse.c \
		      $(srcdir)/testautomation_pixels.c \
		      $(srcdir)/testautomation_platform.c \
		      $(srcdir)/testautomation_rect.c \
		      $(srcdir)/testautomation_render.c \
		      $(srcdir)/testautomation_rwops.c \
		      $(srcdir)/testautomation_sdltest.c \
		      $(srcdir)/testautomation_stdlib.c \
		      $(srcdir)/testautomation_surface.c \
		      $(srcdir)/testautomation_syswm.c \
		      $(srcdir)/testautomation_timer.c \
		      $(srcdir)/testautomation_video.c \
		      $(srcdir)/testautomation_hints.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) 

testmultiaudio$(EXE): $(srcdir)/testmultiaudio.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testaudiohotplug$(EXE): $(srcdir)/testaudiohotplug.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testaudiocapture$(EXE): $(srcdir)/testaudiocapture.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testatomic$(EXE): $(srcdir)/testatomic.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testintersections$(EXE): $(srcdir)/testintersections.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testrelative$(EXE): $(srcdir)/testrelative.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testhittesting$(EXE): $(srcdir)/testhittesting.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testdraw2$(EXE): $(srcdir)/testdraw2.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testdrawchessboard$(EXE): $(srcdir)/testdrawchessboard.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testdropfile$(EXE): $(srcdir)/testdropfile.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testerror$(EXE): $(srcdir)/testerror.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testfile$(EXE): $(srcdir)/testfile.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testgamecontroller$(EXE): $(srcdir)/testgamecontroller.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
 
testgesture$(EXE): $(srcdir)/testgesture.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@
 
testgl2$(EXE): $(srcdir)/testgl2.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@

testgles$(EXE): $(srcdir)/testgles.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @GLESLIB@ @MATHLIB@

testgles2$(EXE): $(srcdir)/testgles2.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@

testhaptic$(EXE): $(srcdir)/testhaptic.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testhotplug$(EXE): $(srcdir)/testhotplug.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testrumble$(EXE): $(srcdir)/testrumble.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testthread$(EXE): $(srcdir)/testthread.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testiconv$(EXE): $(srcdir)/testiconv.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testime$(EXE): $(srcdir)/testime.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @SDL_TTF_LIB@

testjoystick$(EXE): $(srcdir)/testjoystick.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testkeys$(EXE): $(srcdir)/testkeys.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testloadso$(EXE): $(srcdir)/testloadso.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testlock$(EXE): $(srcdir)/testlock.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

ifeq (@ISMACOSX@,true)
testnative$(EXE): $(srcdir)/testnative.c \
			$(srcdir)/testnativecocoa.m \
			$(srcdir)/testnativex11.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) -framework Cocoa @XLIB@
endif

ifeq (@ISWINDOWS@,true)
testnative$(EXE): $(srcdir)/testnative.c \
			$(srcdir)/testnativew32.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
endif

ifeq (@ISUNIX@,true)
testnative$(EXE): $(srcdir)/testnative.c \
			$(srcdir)/testnativex11.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @XLIB@
endif

#there's probably a better way of doing this
ifeq (@ISMACOSX@,false)
ifeq (@ISWINDOWS@,false)
ifeq (@ISUNIX@,false)
testnative$(EXE): ;
endif
endif
endif

testoverlay2$(EXE): $(srcdir)/testoverlay2.c $(srcdir)/testyuv_cvt.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testplatform$(EXE): $(srcdir)/testplatform.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testpower$(EXE): $(srcdir)/testpower.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testfilesystem$(EXE): $(srcdir)/testfilesystem.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testrendertarget$(EXE): $(srcdir)/testrendertarget.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testscale$(EXE): $(srcdir)/testscale.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testsem$(EXE): $(srcdir)/testsem.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testsensor$(EXE): $(srcdir)/testsensor.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testshader$(EXE): $(srcdir)/testshader.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@

testshape$(EXE): $(srcdir)/testshape.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testsprite2$(EXE): $(srcdir)/testsprite2.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testspriteminimal$(EXE): $(srcdir)/testspriteminimal.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@

teststreaming$(EXE): $(srcdir)/teststreaming.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@

testtimer$(EXE): $(srcdir)/testtimer.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testver$(EXE): $(srcdir)/testver.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testviewport$(EXE): $(srcdir)/testviewport.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testwm2$(EXE): $(srcdir)/testwm2.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testyuv$(EXE): $(srcdir)/testyuv.c $(srcdir)/testyuv_cvt.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

torturethread$(EXE): $(srcdir)/torturethread.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testrendercopyex$(EXE): $(srcdir)/testrendercopyex.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@

testmessage$(EXE): $(srcdir)/testmessage.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testdisplayinfo$(EXE): $(srcdir)/testdisplayinfo.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testqsort$(EXE): $(srcdir)/testqsort.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testbounds$(EXE): $(srcdir)/testbounds.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testcustomcursor$(EXE): $(srcdir)/testcustomcursor.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

controllermap$(EXE): $(srcdir)/controllermap.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)

testvulkan$(EXE): $(srcdir)/testvulkan.c
	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)


clean:
	rm -f $(TARGETS)

distclean: clean
	rm -f Makefile
	rm -f config.status config.cache config.log
	rm -rf $(srcdir)/autom4te*


%.bmp: $(srcdir)/%.bmp
	cp $< $@

%.wav: $(srcdir)/%.wav
	cp $< $@

%.dat: $(srcdir)/%.dat
	cp $< $@

copydatafiles: copybmpfiles copywavfiles copydatfiles
.PHONY : copydatafiles

copybmpfiles: $(foreach bmp,$(wildcard $(srcdir)/*.bmp),$(notdir $(bmp)))
.PHONY : copybmpfiles

copywavfiles: $(foreach wav,$(wildcard $(srcdir)/*.wav),$(notdir $(wav)))
.PHONY : copywavfiles

copydatfiles: $(foreach dat,$(wildcard $(srcdir)/*.dat),$(notdir $(dat)))
.PHONY : copydatfiles

