# Makefile to build the SDL tests

srcdir  = @srcdir@

CC      = @CC@
EXE	= @EXE@
CFLAGS  = @CFLAGS@
LIBS	= @LIBS@

TARGETS = checkkeys$(EXE) graywin$(EXE) loopwave$(EXE) testalpha$(EXE) testatomic$(EXE) testaudioinfo$(EXE) testbitmap$(EXE) testblitspeed$(EXE) testcursor$(EXE) testdraw2$(EXE) testdyngles$(EXE) testdyngl$(EXE) testerror$(EXE) testfile$(EXE) testfill$(EXE) testgamma$(EXE) testgl2$(EXE) testgles$(EXE) testgl$(EXE) testhaptic$(EXE) testhread$(EXE) testiconv$(EXE) testime$(EXE) testintersections$(EXE) testjoystick$(EXE) testkeys$(EXE) testloadso$(EXE) testlock$(EXE) testmmousetablet$(EXE) testmultiaudio$(EXE) testoverlay2$(EXE) testoverlay$(EXE) testpalette$(EXE) testplatform$(EXE) testpower$(EXE) testresample$(EXE) testsem$(EXE) testsprite2$(EXE) testsprite$(EXE) testspriteminimal$(EXE) testtimer$(EXE) testver$(EXE) testvidinfo$(EXE) testwin$(EXE) testwm2$(EXE) testwm$(EXE) threadwin$(EXE) torturethread$(EXE)

all: Makefile $(TARGETS)

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

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

graywin$(EXE): $(srcdir)/graywin.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

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

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

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

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

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

testbitmap$(EXE): $(srcdir)/testbitmap.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

testblitspeed$(EXE): $(srcdir)/testblitspeed.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

testcursor$(EXE): $(srcdir)/testcursor.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

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

testdyngl$(EXE): $(srcdir)/testdyngl.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

testdyngles$(EXE): $(srcdir)/testdyngles.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

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

testfill$(EXE): $(srcdir)/testfill.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

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

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

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

testhread$(EXE): $(srcdir)/testhread.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

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

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

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

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

testoverlay$(EXE): $(srcdir)/testoverlay.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

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

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

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

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

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

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

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

testvidinfo$(EXE): $(srcdir)/testvidinfo.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

testwin$(EXE): $(srcdir)/testwin.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

testwm$(EXE): $(srcdir)/testwm.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

threadwin$(EXE): $(srcdir)/threadwin.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

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

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

testmmousetablet$(EXE): $(srcdir)/testmmousetablet.c
	$(CC) -o $@ $? $(CFLAGS) $(LIBS)

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

clean:
	rm -f $(TARGETS)

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