[Pixman] [PATCH 3/7] build: Reuse test sources
Andrea Canciani
ranma42 at gmail.com
Sun Sep 4 13:53:41 PDT 2011
Makefile.am and Makefile.win32 should not duplicate content, as this
leads to breaking the build when they are not kept in sync.
This can be avoided by listing sources, headers and common build
variables/rules in a Makefile.sources file.
In order to further simplify the test makefiles, the utility functions
are now in a static library, which gets linked to all the tests and
benchmarks.
---
test/Makefile.am | 47 ++++--------------------------------
test/Makefile.sources | 36 +++++++++++++++++++++++++++
test/Makefile.win32 | 64 +++++++++++++------------------------------------
3 files changed, 58 insertions(+), 89 deletions(-)
create mode 100644 test/Makefile.sources
diff --git a/test/Makefile.am b/test/Makefile.am
index 9f61fc9..366111f 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,50 +1,13 @@
+include $(top_srcdir)/test/Makefile.sources
+
AM_CFLAGS = @OPENMP_CFLAGS@
AM_LDFLAGS = @OPENMP_CFLAGS@ @TESTPROGS_EXTRA_LDFLAGS@
-LDADD = $(top_builddir)/pixman/libpixman-1.la -lm
+LDADD = $(top_builddir)/pixman/libpixman-1.la libutils.la -lm
INCLUDES = -I$(top_srcdir)/pixman -I$(top_builddir)/pixman
-TESTPROGRAMS = \
- a1-trap-test \
- pdf-op-test \
- region-test \
- region-translate-test \
- fetch-test \
- oob-test \
- trap-crasher \
- alpha-loop \
- scaling-crash-test \
- scaling-helpers-test \
- gradient-crash-test \
- region-contains-test \
- alphamap \
- stress-test \
- composite-traps-test \
- blitters-test \
- scaling-test \
- affine-test \
- composite
-
-pdf_op_test_SOURCES = pdf-op-test.c utils.c utils.h
-region_test_SOURCES = region-test.c utils.c utils.h
-blitters_test_SOURCES = blitters-test.c utils.c utils.h
-region_contains_test_SOURCES = region-contains-test.c utils.c utils.h
-composite_traps_test_SOURCES = composite-traps-test.c utils.c utils.h
-scaling_test_SOURCES = scaling-test.c utils.c utils.h
-affine_test_SOURCES = affine-test.c utils.c utils.h
-alphamap_SOURCES = alphamap.c utils.c utils.h
-alpha_loop_SOURCES = alpha-loop.c utils.c utils.h
-composite_SOURCES = composite.c utils.c utils.h
-gradient_crash_test_SOURCES = gradient-crash-test.c utils.c utils.h
-stress_test_SOURCES = stress-test.c utils.c utils.h
-scaling_helpers_test_SOURCES = scaling-helpers-test.c utils.c utils.h
-
-# Benchmarks
-
-BENCHMARKS = \
- lowlevel-blt-bench
-
-lowlevel_blt_bench_SOURCES = lowlevel-blt-bench.c utils.c utils.h
+libutils_la_SOURCES = $(libutils_sources) $(libutils_headers)
+noinst_LTLIBRARIES = libutils.la
noinst_PROGRAMS = $(TESTPROGRAMS) $(BENCHMARKS)
TESTS = $(TESTPROGRAMS)
diff --git a/test/Makefile.sources b/test/Makefile.sources
new file mode 100644
index 0000000..99eb705
--- /dev/null
+++ b/test/Makefile.sources
@@ -0,0 +1,36 @@
+# Tests (sorted by expected completion time)
+TESTPROGRAMS = \
+ a1-trap-test \
+ pdf-op-test \
+ region-test \
+ region-translate-test \
+ fetch-test \
+ oob-test \
+ trap-crasher \
+ alpha-loop \
+ scaling-crash-test \
+ scaling-helpers-test \
+ gradient-crash-test \
+ region-contains-test \
+ alphamap \
+ stress-test \
+ composite-traps-test \
+ blitters-test \
+ scaling-test \
+ affine-test \
+ composite \
+ $(NULL)
+
+# Benchmarks
+BENCHMARKS = \
+ lowlevel-blt-bench \
+ $(NULL)
+
+# Utility functions
+libutils_sources = \
+ utils.c \
+ $(NULL)
+
+libutils_headers = \
+ utils.h \
+ $(NULL)
diff --git a/test/Makefile.win32 b/test/Makefile.win32
index a62b6fc..215fb04 100644
--- a/test/Makefile.win32
+++ b/test/Makefile.win32
@@ -1,3 +1,8 @@
+default: all
+
+top_srcdir = ..
+include $(top_srcdir)/test/Makefile.sources
+
CC = cl
LINK = link
@@ -7,7 +12,7 @@ CFG_VAR=release
endif
CFLAGS = -MD -nologo -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_BIND_TO_CURRENT_VCLIBS_VERSION -D_MT -I../pixman -I. -I../
-TEST_LDADD = ../pixman/$(CFG_VAR)/pixman-1.lib
+TEST_LDADD = ../pixman/$(CFG_VAR)/pixman-1.lib $(CFG_VAR)/libutils.lib
INCLUDES = -I../pixman -I$(top_builddir)/pixman
# optimization flags
@@ -17,60 +22,25 @@ else
CFLAGS += -O2
endif
-SOURCES = \
- a1-trap-test.c \
- pdf-op-test.c \
- region-test.c \
- region-translate-test.c \
- fetch-test.c \
- oob-test.c \
- trap-crasher.c \
- alpha-loop.c \
- scaling-crash-test.c \
- gradient-crash-test.c \
- alphamap.c \
- stress-test.c \
- composite-traps-test.c \
- blitters-test.c \
- scaling-test.c \
- affine-test.c \
- composite.c \
- lowlevel-blt-bench.c \
- utils.c
+libutils_OBJECTS = $(patsubst %.c, $(CFG_VAR)/%.obj, $(libutils_sources))
-TESTS = \
- $(CFG_VAR)/a1-trap-test.exe \
- $(CFG_VAR)/pdf-op-test.exe \
- $(CFG_VAR)/region-test.exe \
- $(CFG_VAR)/region-translate-test.exe \
- $(CFG_VAR)/fetch-test.exe \
- $(CFG_VAR)/oob-test.exe \
- $(CFG_VAR)/trap-crasher.exe \
- $(CFG_VAR)/alpha-loop.exe \
- $(CFG_VAR)/scaling-crash-test.exe \
- $(CFG_VAR)/gradient-crash-test.exe \
- $(CFG_VAR)/alphamap.exe \
- $(CFG_VAR)/stress-test.exe \
- $(CFG_VAR)/composite-traps-test.exe \
- $(CFG_VAR)/blitters-test.exe \
- $(CFG_VAR)/scaling-test.exe \
- $(CFG_VAR)/affine-test.exe \
- $(CFG_VAR)/composite.exe
+SOURCES = $(patsubst %, %.c, $(TESTPROGRAMS) $(BENCHMARKS))
+OBJECTS = $(patsubst %.c, $(CFG_VAR)/%.obj, $(SOURCES))
+TESTS = $(patsubst %, $(CFG_VAR)/%.exe, $(TESTPROGRAMS))
+BENCHS = $(patsubst %, $(CFG_VAR)/%.exe, $(BENCHMARKS))
-BENCHMARKS = \
- $(CFG_VAR)/lowlevel-blt-bench.exe
-OBJECTS = $(patsubst %.c, $(CFG_VAR)/%.obj, $(SOURCES))
+all: $(TESTS) $(BENCHS)
+
+$(CFG_VAR)/libutils.lib: $(libutils_OBJECTS)
+ @lib -NOLOGO -OUT:$@ $^ || exit 0
$(CFG_VAR)/%.obj: %.c
@mkdir -p $(CFG_VAR)
@$(CC) -c $(CFLAGS) -Fo"$@" $<
-$(CFG_VAR)/%.exe: $(CFG_VAR)/%.obj
- $(LINK) /NOLOGO /OUT:$@ $< $(CFG_VAR)/utils.obj $(TEST_LDADD)
-
-all: $(OBJECTS) $(TESTS) $(BENCHMARKS)
- @exit 0
+$(CFG_VAR)/%.exe: $(CFG_VAR)/%.obj $(TEST_LDADD)
+ @$(LINK) /NOLOGO /OUT:$@ $^
clean:
@rm -f $(CFG_VAR)/*.obj $(CFG_VAR)/*.pdb || exit 0
--
1.7.4.4
More information about the Pixman
mailing list