makefiles: Move the testing rules to the global Make.rules file.

This commit is contained in:
Alexandre Julliard 2013-10-09 12:16:45 +02:00
parent fabd3120c5
commit 7025117026
2 changed files with 40 additions and 50 deletions

View file

@ -18,16 +18,21 @@ DEFS = -D__WINESRC__ $(EXTRADEFS)
ALLCFLAGS = $(INCLUDES) $(DEFS) $(DLLFLAGS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS)
IDLFLAGS = $(INCLUDES) $(DEFS) $(EXTRAIDLFLAGS)
RCFLAGS = --nostdinc $(PORCFLAGS) $(TARGETFLAGS) $(INCLUDES) $(DEFS) $(EXTRARCFLAGS)
RUNTESTFLAGS = -q -P wine -T $(top_builddir) $(TESTDLL:%=-M %) $(TESTMODULE:%=-p %@DLLEXT@)
IDL_GEN_C_SRCS = $(IDL_C_SRCS:.idl=_c.c) $(IDL_I_SRCS:.idl=_i.c) \
$(IDL_P_SRCS:.idl=_p.c) $(IDL_S_SRCS:.idl=_s.c)
IDL_GEN_HEADERS = $(IDL_H_SRCS:.idl=.h) $(IDL_C_SRCS:.idl=.h) $(IDL_I_SRCS:.idl=.h) \
$(IDL_P_SRCS:.idl=.h) $(IDL_S_SRCS:.idl=.h)
TESTMODULE_STRIPPED = $(TESTMODULE:%.exe=%-stripped.exe@DLLEXT@)
CROSSTESTMODULE = $(TESTMODULE:%_test.exe=%_crosstest.exe)
CLEAN_FILES = *.o *.a *.so *.mo *.res *.fake *.ok *.tab.[ch] *.yy.c
CLEAN_TARGETS = $(MODULE) $(IMPORTLIB:%=lib%.@IMPLIBEXT@) $(IDL_GEN_C_SRCS) $(IDL_GEN_HEADERS) \
$(IDL_TLB_SRCS:.idl=.tlb) $(IDL_P_SRCS:.idl=_p.c dlldata.c) \
$(PO_SRCS:.rc=.res rsrc.pot) $(MC_SRCS:.mc=.res msg.pot) $(XTEMPLATE_SRCS:.x=.h)
$(PO_SRCS:.rc=.res rsrc.pot) $(MC_SRCS:.mc=.res msg.pot) $(XTEMPLATE_SRCS:.x=.h) \
$(TESTMODULE:%=% testlist.c) $(CROSSTESTMODULE)
OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(IDL_GEN_C_SRCS:.c=.o) $(OBJC_SRCS:.m=.o) \
$(IDL_R_SRCS:.idl=_r.res) $(IDL_TLB_RES) $(RC_SRCS:.rc=.res) $(MC_SRCS:.mc=.res) $(EXTRA_OBJS)
@ -153,6 +158,32 @@ depend: dummy
.PHONY: depend
# Rules for tests
$(TESTMODULE) $(TESTMODULE:%=%.so): $(OBJS) Makefile.in
$(WINEGCC) $(APPMODE) $(OBJS) -o $@ $(IMPORTS:%=-l%) $(LDFLAGS) $(LIBS)
$(TESTMODULE_STRIPPED): $(OBJS) Makefile.in
$(WINEGCC) -s -Wb,-F,$(TESTMODULE) $(APPMODE) $(OBJS) -o $@ $(IMPORTS:%=-l%) $(LDFLAGS) $(LIBS)
$(CROSSTESTMODULE): $(CROSSOBJS) Makefile.in
$(CROSSWINEGCC) $(CROSSOBJS) -o $@ $(IMPORTS:%=-l%) $(LDFLAGS) $(LIBS)
$(WINETEST_RES): $(TESTMODULE_STRIPPED)
echo "$(TESTMODULE) TESTRES \"$(TESTMODULE_STRIPPED)\"" | $(WRC) $(RCFLAGS) -o $@
testlist.c: Makefile.in $(MAKECTESTS)
$(MAKECTESTS) -o $@ $(C_SRCS)
testlist.o testlist.cross.o: testlist.c $(top_srcdir)/include/wine/test.h
$(C_SRCS:.c=.ok): $(TESTMODULE:%=%@DLLEXT@) $(TESTDLL:%=../%@DLLEXT@)
testclean::
$(RM) *.ok
.PHONY: check test testclean
# Rules for man pages
MANPAGES = $(MANPAGE) $(EXTRA_MANPAGES)

View file

@ -10,57 +10,16 @@
DLLFLAGS = @DLLFLAGS@
TESTMODULE = $(TESTDLL:%.dll=%)_test.exe
TESTRESULTS = $(C_SRCS:.c=.ok)
TESTPROGRAM = $(TESTMODULE)$(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%) $(LDFLAGS) $(LIBS)
EXTRA_OBJS = testlist.o
CROSSTEST = $(TESTDLL:%.dll=%)_crosstest.exe
MAKEDEPFLAGS = -xo -xcross.o
all: $(TESTMODULE)$(DLLEXT) $(WINETEST_RES)
check test: $(C_SRCS:.c=.ok)
crosstest: @CROSSTEST_DISABLE@ $(TESTDLL:%.dll=%)_crosstest.exe
.PHONY: check test crosstest
@MAKE_RULES@
all: $(TESTPROGRAM) $(WINETEST_RES)
$(TESTMODULE) $(TESTMODULE).so: $(OBJS) Makefile.in
$(WINEGCC) $(APPMODE) $(OBJS) -o $@ $(ALL_LIBS)
$(WINETEST_EXE): $(OBJS) Makefile.in
$(WINEGCC) -s -Wb,-F,$(TESTMODULE) $(APPMODE) $(OBJS) -o $@ $(ALL_LIBS)
$(WINETEST_RES): $(WINETEST_EXE)
echo "$(TESTMODULE) TESTRES \"$(WINETEST_EXE)\"" | $(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): $(TESTMODULE)$(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 $(TESTMODULE) $(TESTRESULTS) $(CROSSTEST)