Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 1 | # Global rules for building dll unit tests -*-Makefile-*- |
| 2 | # |
| 3 | # Each individual makefile should define the following variables: |
Thomas Kho | 1afed1f | 2006-07-28 13:53:52 -0500 | [diff] [blame] | 4 | # TESTDLL : the dll to test |
Alexandre Julliard | 6164ce2 | 2010-02-20 19:56:55 +0100 | [diff] [blame] | 5 | # C_SRCS : list of C test programs |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 6 | # EXTRALIBS : extra libraries to link in (optional) |
| 7 | # EXTRADEFS : extra symbol definitions, like -DWINELIB (optional) |
| 8 | # |
| 9 | # plus all variables required by the global Make.rules.in |
| 10 | # |
| 11 | |
Alexandre Julliard | 16cd861 | 2003-09-24 19:01:44 +0000 | [diff] [blame] | 12 | DLLFLAGS = @DLLFLAGS@ |
Jacek Caban | 45be019 | 2010-12-23 16:05:29 +0100 | [diff] [blame] | 13 | DEFS = -DWINE_STRICT_PROTOTYPES -DWINE_NO_NAMELESS_EXTENSION $(EXTRADEFS) |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 14 | |
| 15 | MODULE = $(TESTDLL:%.dll=%)_test.exe |
Alexandre Julliard | 6164ce2 | 2010-02-20 19:56:55 +0100 | [diff] [blame] | 16 | TESTRESULTS = $(C_SRCS:.c=.ok) |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 17 | TESTPROGRAM = $(MODULE)$(DLLEXT) |
Alexandre Julliard | 9b99cd1 | 2011-05-24 11:11:22 +0200 | [diff] [blame] | 18 | WINETEST_EXE = $(TESTDLL:%.dll=%)_test-stripped.exe$(DLLEXT) |
| 19 | WINETEST_RES = $(top_builddir)/programs/winetest/$(TESTDLL:%.dll=%)_test.res |
Alexandre Julliard | bd9852c | 2010-09-19 12:40:12 +0200 | [diff] [blame] | 20 | RUNTESTFLAGS = -q -P wine -M $(TESTDLL) -T $(top_builddir) -p $(TESTPROGRAM) |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 21 | |
Alexandre Julliard | 4d6b27e | 2004-03-03 22:39:22 +0000 | [diff] [blame] | 22 | ALL_LIBS = $(IMPORTS:%=-l%) $(EXTRALIBS) $(LDFLAGS) $(LIBS) |
Alexandre Julliard | 9953dd6 | 2006-09-11 15:43:38 +0200 | [diff] [blame] | 23 | EXTRA_OBJS = testlist.o |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 24 | |
Alexandre Julliard | c3c587e | 2002-09-06 19:46:00 +0000 | [diff] [blame] | 25 | CROSSTEST = $(TESTDLL:%.dll=%)_crosstest.exe |
Francois Gouget | 7bb43a3 | 2009-06-30 10:25:19 +0200 | [diff] [blame] | 26 | MAKEDEPFLAGS = -xo -xcross.o |
Alexandre Julliard | c3c587e | 2002-09-06 19:46:00 +0000 | [diff] [blame] | 27 | |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 28 | @MAKE_RULES@ |
| 29 | |
Alexandre Julliard | 9b99cd1 | 2011-05-24 11:11:22 +0200 | [diff] [blame] | 30 | all: $(TESTPROGRAM) $(WINETEST_RES) |
Alexandre Julliard | bcf2a78 | 2002-12-06 19:51:20 +0000 | [diff] [blame] | 31 | |
Alexandre Julliard | 68a1f4d | 2009-06-02 15:50:57 +0200 | [diff] [blame] | 32 | $(MODULE) $(MODULE).so: $(OBJS) Makefile.in |
| 33 | $(WINEGCC) $(APPMODE) $(OBJS) -o $@ $(LIBPORT) $(ALL_LIBS) |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 34 | |
Alexandre Julliard | 9b99cd1 | 2011-05-24 11:11:22 +0200 | [diff] [blame] | 35 | $(WINETEST_EXE): $(OBJS) Makefile.in |
Alexandre Julliard | ee5a321 | 2011-05-25 10:24:57 +0200 | [diff] [blame] | 36 | $(WINEGCC) -s -Wb,-F,$(MODULE) $(APPMODE) $(OBJS) -o $@ $(LIBPORT) $(ALL_LIBS) |
Alexandre Julliard | 9b99cd1 | 2011-05-24 11:11:22 +0200 | [diff] [blame] | 37 | |
| 38 | $(WINETEST_RES): $(WINETEST_EXE) |
| 39 | echo "$(MODULE) TESTRES \"$(WINETEST_EXE)\"" | $(LDPATH) $(WRC) $(RCFLAGS) -o $@ |
| 40 | |
Alexandre Julliard | 93f0339 | 2010-02-10 20:27:52 +0100 | [diff] [blame] | 41 | .PHONY: check test testclean crosstest |
| 42 | |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 43 | # Rules for building test list |
| 44 | |
Alexandre Julliard | 9953dd6 | 2006-09-11 15:43:38 +0200 | [diff] [blame] | 45 | testlist.c: Makefile.in $(MAKECTESTS) |
Alexandre Julliard | 6164ce2 | 2010-02-20 19:56:55 +0100 | [diff] [blame] | 46 | $(MAKECTESTS) -o $@ $(C_SRCS) |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 47 | |
Octavian Voicu | 24a1fc3 | 2011-11-05 07:55:06 +0200 | [diff] [blame] | 48 | testlist.o testlist.cross.o: testlist.c $(top_srcdir)/include/wine/test.h |
Francois Gouget | bc8b8a2 | 2002-12-11 01:29:36 +0000 | [diff] [blame] | 49 | |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 50 | # Rules for testing |
| 51 | |
Alexandre Julliard | eab7efd | 2010-03-25 21:42:54 +0100 | [diff] [blame] | 52 | check test: $(TESTRESULTS) |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 53 | |
Alexandre Julliard | 02fa42d | 2006-03-21 12:01:31 +0100 | [diff] [blame] | 54 | $(TESTRESULTS): $(MODULE)$(DLLEXT) ../$(TESTDLL)$(DLLEXT) |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 55 | |
Alexandre Julliard | c3c587e | 2002-09-06 19:46:00 +0000 | [diff] [blame] | 56 | # Rules for cross-compiling tests |
| 57 | |
Alexandre Julliard | 7d2e772 | 2010-07-26 12:13:47 +0200 | [diff] [blame] | 58 | crosstest: @CROSSTEST_DISABLE@ $(CROSSTEST) |
Alexandre Julliard | c3c587e | 2002-09-06 19:46:00 +0000 | [diff] [blame] | 59 | |
| 60 | $(CROSSTEST): $(CROSSOBJS) Makefile.in |
Alexandre Julliard | a2d88ab | 2009-05-30 17:08:06 +0200 | [diff] [blame] | 61 | $(CROSSWINEGCC) $(CROSSOBJS) -o $@ $(ALL_LIBS) |
Alexandre Julliard | c3c587e | 2002-09-06 19:46:00 +0000 | [diff] [blame] | 62 | |
Alexandre Julliard | edeee89 | 2002-08-09 01:22:40 +0000 | [diff] [blame] | 63 | # Rules for cleaning |
| 64 | |
| 65 | testclean:: |
| 66 | $(RM) $(TESTRESULTS) |
| 67 | |
| 68 | clean:: |
Alexandre Julliard | 9953dd6 | 2006-09-11 15:43:38 +0200 | [diff] [blame] | 69 | $(RM) testlist.c $(MODULE) $(TESTRESULTS) $(CROSSTEST) |