# Makefile to build the SDL tests srcdir = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ libdir = @libdir@ libexecdir = @libexecdir@ includedir = @includedir@ datarootdir = @datarootdir@ datadir = @datadir@ CC = @CC@ EXE = @EXE@ CFLAGS = @CFLAGS@ -g LIBS = @LIBS@ TARGETS = \ checkkeys$(EXE) \ checkkeysthreads$(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) \ testevdev$(EXE) \ testfile$(EXE) \ testfilesystem$(EXE) \ testgamecontroller$(EXE) \ testgeometry$(EXE) \ testgesture$(EXE) \ testhaptic$(EXE) \ testhittesting$(EXE) \ testhotplug$(EXE) \ testiconv$(EXE) \ testime$(EXE) \ testintersections$(EXE) \ testjoystick$(EXE) \ testkeys$(EXE) \ testloadso$(EXE) \ testlocale$(EXE) \ testlock$(EXE) \ testmessage$(EXE) \ testmouse$(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) \ testsurround$(EXE) \ testthread$(EXE) \ testtimer$(EXE) \ testurl$(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 generatetestmeta installedtestsdir = $(libexecdir)/installed-tests/SDL2 installedtestsmetadir = $(datadir)/installed-tests/SDL2 generatetestmeta: rm -f *.test set -e; for exe in $(noninteractive) $(needs_audio) $(needs_display); do \ sed \ -e 's#@installedtestsdir@#$(installedtestsdir)#g' \ -e "s#@exe@#$$exe#g" \ < $(srcdir)/template.test.in > $$exe.test; \ done install: all install -D -t $(DESTDIR)$(installedtestsdir) $(TARGETS) install -m644 -D -t $(DESTDIR)$(installedtestsdir) $(DATA) install -m644 -D -t $(DESTDIR)$(installedtestsmetadir) *.test Makefile: $(srcdir)/Makefile.in $(SHELL) config.status $@ checkkeys$(EXE): $(srcdir)/checkkeys.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) checkkeysthreads$(EXE): $(srcdir)/checkkeysthreads.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) loopwave$(EXE): $(srcdir)/loopwave.c $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) loopwavequeue$(EXE): $(srcdir)/loopwavequeue.c $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testsurround$(EXE): $(srcdir)/testsurround.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 $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testaudiohotplug$(EXE): $(srcdir)/testaudiohotplug.c $(srcdir)/testutils.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) testevdev$(EXE): $(srcdir)/testevdev.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testfile$(EXE): $(srcdir)/testfile.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testgamecontroller$(EXE): $(srcdir)/testgamecontroller.c $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testgeometry$(EXE): $(srcdir)/testgeometry.c $(srcdir)/testutils.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@ testgles2_sdf$(EXE): $(srcdir)/testgles2_sdf.c $(srcdir)/testutils.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 $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testime$(EXE): $(srcdir)/testime.c $(srcdir)/testutils.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)/testutils.c \ $(srcdir)/testnativex11.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) -framework Cocoa @XLIB@ endif ifeq (@ISWINDOWS@,true) testnative$(EXE): $(srcdir)/testnative.c \ $(srcdir)/testutils.c \ $(srcdir)/testnativew32.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) endif ifeq (@ISUNIX@,true) testnative$(EXE): $(srcdir)/testnative.c \ $(srcdir)/testutils.c \ $(srcdir)/testnativex11.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) @XLIB@ endif ifeq (@ISOS2@,true) testnative$(EXE): $(srcdir)/testnative.c \ $(srcdir)/testnativeos2.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) endif #there's probably a better way of doing this ifeq (@ISMACOSX@,false) ifeq (@ISWINDOWS@,false) ifeq (@ISUNIX@,false) ifeq (@ISOS2@,false) testnative$(EXE): ; endif endif endif endif testoverlay2$(EXE): $(srcdir)/testoverlay2.c $(srcdir)/testyuv_cvt.c $(srcdir)/testutils.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 $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testscale$(EXE): $(srcdir)/testscale.c $(srcdir)/testutils.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 $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testspriteminimal$(EXE): $(srcdir)/testspriteminimal.c $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@ teststreaming$(EXE): $(srcdir)/teststreaming.c $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@ testtimer$(EXE): $(srcdir)/testtimer.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testurl$(EXE): $(srcdir)/testurl.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testver$(EXE): $(srcdir)/testver.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testviewport$(EXE): $(srcdir)/testviewport.c $(srcdir)/testutils.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 $(srcdir)/testutils.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 $(srcdir)/testutils.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testvulkan$(EXE): $(srcdir)/testvulkan.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) testlocale$(EXE): $(srcdir)/testlocale.c $(CC) -o $@ $? $(CFLAGS) $(LIBS) testmouse$(EXE): $(srcdir)/testmouse.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) clean: rm -f $(TARGETS) *.test distclean: clean rm -f Makefile rm -f config.status config.cache config.log rm -rf $(srcdir)/autom4te* noninteractive = \ testatomic$(EXE) \ testerror$(EXE) \ testevdev$(EXE) \ testfilesystem$(EXE) \ testkeys$(EXE) \ testlocale$(EXE) \ testplatform$(EXE) \ testpower$(EXE) \ testqsort$(EXE) \ testthread$(EXE) \ testtimer$(EXE) \ testver$(EXE) \ $(NULL) needs_audio = \ testaudioinfo$(EXE) \ testsurround$(EXE) \ $(NULL) needs_display = \ testbounds$(EXE) \ testdisplayinfo$(EXE) \ $(NULL) TESTS = $(noninteractive) $(needs_audio) $(needs_display) check: @set -e; \ status=0; \ export SDL_AUDIODRIVER=dummy; \ export SDL_VIDEODRIVER=dummy; \ for exe in $(TESTS); do \ echo "$$exe..."; \ if ./"$$exe"; then \ echo "$$exe: OK"; \ else \ echo "$$exe: FAILED: $$?"; \ status=1; \ fi; \ done; \ exit "$$status" DATA = \ axis.bmp \ button.bmp \ controllermap.bmp \ controllermap_back.bmp \ icon.bmp \ moose.dat \ sample.bmp \ sample.wav \ testgles2_sdf_img_normal.bmp \ testgles2_sdf_img_sdf.bmp \ testyuv.bmp \ unifont-13.0.06.hex \ utf8.txt \ $(NULL) ifneq ($(srcdir), .) $(DATA) : %: $(srcdir)/% Makefile cp $< $@ endif copydatafiles: $(DATA) .PHONY : copydatafiles