|  | # Global rules for building dll unit tests     -*-Makefile-*- | 
|  | # | 
|  | # Each individual makefile should define the following variables: | 
|  | # TESTDLL      : the dll to test | 
|  | # C_SRCS       : list of C test programs | 
|  | # EXTRALIBS    : extra libraries to link in (optional) | 
|  | # EXTRADEFS    : extra symbol definitions, like -DWINELIB (optional) | 
|  | # | 
|  | # plus all variables required by the global Make.rules.in | 
|  | # | 
|  |  | 
|  | DLLFLAGS     = @DLLFLAGS@ | 
|  | DEFS         = -DWINE_STRICT_PROTOTYPES -DWINE_NO_NAMELESS_EXTENSION $(EXTRADEFS) | 
|  |  | 
|  | MODULE       = $(TESTDLL:%.dll=%)_test.exe | 
|  | TESTRESULTS  = $(C_SRCS:.c=.ok) | 
|  | TESTPROGRAM  = $(MODULE)$(DLLEXT) | 
|  | WINETEST_EXE = $(TESTDLL:%.dll=%)_test-stripped.exe$(DLLEXT) | 
|  | WINETEST_RES = $(top_builddir)/programs/winetest/$(TESTDLL:%.dll=%)_test.res | 
|  | RUNTESTFLAGS = -q -P wine -M $(TESTDLL) -T $(top_builddir) -p $(TESTPROGRAM) | 
|  |  | 
|  | ALL_LIBS     = $(IMPORTS:%=-l%) $(EXTRALIBS) $(LDFLAGS) $(LIBS) | 
|  | EXTRA_OBJS   = testlist.o | 
|  |  | 
|  | CROSSTEST    = $(TESTDLL:%.dll=%)_crosstest.exe | 
|  | MAKEDEPFLAGS = -xo -xcross.o | 
|  |  | 
|  | @MAKE_RULES@ | 
|  |  | 
|  | all: $(TESTPROGRAM) $(WINETEST_RES) | 
|  |  | 
|  | $(MODULE) $(MODULE).so: $(OBJS) Makefile.in | 
|  | $(WINEGCC) $(APPMODE) $(OBJS) -o $@ $(LIBPORT) $(ALL_LIBS) | 
|  |  | 
|  | $(WINETEST_EXE): $(OBJS) Makefile.in | 
|  | $(WINEGCC) -s -Wb,-F,$(MODULE) $(APPMODE) $(OBJS) -o $@ $(LIBPORT) $(ALL_LIBS) | 
|  |  | 
|  | $(WINETEST_RES): $(WINETEST_EXE) | 
|  | echo "$(MODULE) TESTRES \"$(WINETEST_EXE)\"" | $(LDPATH) $(WRC) $(RCFLAGS) -o $@ | 
|  |  | 
|  | .PHONY: check test testclean crosstest | 
|  |  | 
|  | # Rules for building test list | 
|  |  | 
|  | testlist.c: Makefile.in $(MAKECTESTS) | 
|  | $(MAKECTESTS) -o $@ $(C_SRCS) | 
|  |  | 
|  | testlist.o testlist.cross.o: testlist.c $(top_srcdir)/include/wine/test.h | 
|  |  | 
|  | # Rules for testing | 
|  |  | 
|  | check test: $(TESTRESULTS) | 
|  |  | 
|  | $(TESTRESULTS): $(MODULE)$(DLLEXT) ../$(TESTDLL)$(DLLEXT) | 
|  |  | 
|  | # Rules for cross-compiling tests | 
|  |  | 
|  | crosstest: @CROSSTEST_DISABLE@ $(CROSSTEST) | 
|  |  | 
|  | $(CROSSTEST): $(CROSSOBJS) Makefile.in | 
|  | $(CROSSWINEGCC) $(CROSSOBJS) -o $@ $(ALL_LIBS) | 
|  |  | 
|  | # Rules for cleaning | 
|  |  | 
|  | testclean:: | 
|  | $(RM) $(TESTRESULTS) | 
|  |  | 
|  | clean:: | 
|  | $(RM) testlist.c $(MODULE) $(TESTRESULTS) $(CROSSTEST) |