Developing my database listener for fpcunit, I see 2 locations where the
ppu files end up:
<fpc>\packages\fcl-fpcunit\units\i386-win32\dbreporter.ppu
<fpc>\units\i386-win32\fcl-fpcunit\dbreporter.ppu

However, a dbreporter.res resource file only ends up in the first location.

Which makefile(s) do I have to change in trunk (and how) in order to get
that done?

Attached is the diff that gets dbreporter compiled, but not yet the
resource file...

Note: my current code, including diff for dbtestframework.pas, adapted
makefiles, demo programs can be found via:
https://bitbucket.org/reiniero/fpc_laz_patch_playground/downloads/dblistener.zip


Thanks,
Reinier

Index: packages/fcl-fpcunit/Makefile.fpc
===================================================================
--- packages/fcl-fpcunit/Makefile.fpc   (revision 22506)
+++ packages/fcl-fpcunit/Makefile.fpc   (working copy)
@@ -7,7 +7,7 @@
 version=2.7.1
 
 [require]
-packages=rtl fpmkunit
+packages=rtl fpmkunit fcl-db
 
 [install]
 fpcpackage=y
Index: packages/fcl-fpcunit/Makefile.fpc.fpcmake
===================================================================
--- packages/fcl-fpcunit/Makefile.fpc.fpcmake   (revision 22506)
+++ packages/fcl-fpcunit/Makefile.fpc.fpcmake   (working copy)
@@ -9,11 +9,11 @@
 [target]
 units=testregistry testreport testdecorator ubmockobject xmlreporter \
       fpcunitreport latextestreport xmltestreport plaintestreport fpcunit \
-      testutils digesttestreport consoletestrunner
+      testutils digesttestreport consoletestrunner dbreporter
 #exampledirs=exampletests
 
 [require]
-packages=paszlib fcl-xml fcl-base
+packages=paszlib fcl-xml fcl-base fcl-db
 packages_darwin=univint
 
 [compiler]
Index: packages/fcl-fpcunit/Makefile
===================================================================
--- packages/fcl-fpcunit/Makefile       (revision 22506)
+++ packages/fcl-fpcunit/Makefile       (working copy)
@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/08/17]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/09/30]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd 
i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware 
i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc 
i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux 
m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos 
m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 
powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix 
sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux 
x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin 
x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba 
arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin 
powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded 
mips-linux mipsel-linux jvm-java jvm-android
@@ -209,6 +209,14 @@
 ifeq ($(OS_TARGET),linux)
 linuxHier=1
 endif
+ifndef CROSSCOMPILE
+BUILDFULLNATIVE=1
+export BUILDFULLNATIVE
+endif
+ifdef BUILDFULLNATIVE
+BUILDNATIVE=1
+export BUILDNATIVE
+endif
 export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE 
TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
@@ -915,13 +923,14 @@
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-override REQUIRE_PACKAGES=rtl fpmkunit
+override REQUIRE_PACKAGES=rtl fpmkunit fcl-db
 ifeq ($(FULL_TARGET),i386-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 REQUIRE_PACKAGES_RTL=1
@@ -929,6 +938,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
@@ -936,6 +946,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 REQUIRE_PACKAGES_RTL=1
@@ -943,6 +954,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 REQUIRE_PACKAGES_RTL=1
@@ -950,6 +962,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
@@ -957,6 +970,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
 REQUIRE_PACKAGES_RTL=1
@@ -964,6 +978,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_RTL=1
@@ -971,6 +986,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 REQUIRE_PACKAGES_RTL=1
@@ -978,6 +994,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 REQUIRE_PACKAGES_RTL=1
@@ -985,6 +1002,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 REQUIRE_PACKAGES_RTL=1
@@ -992,6 +1010,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 REQUIRE_PACKAGES_RTL=1
@@ -999,6 +1018,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 REQUIRE_PACKAGES_RTL=1
@@ -1006,6 +1026,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 REQUIRE_PACKAGES_RTL=1
@@ -1013,6 +1034,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 REQUIRE_PACKAGES_RTL=1
@@ -1020,6 +1042,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 REQUIRE_PACKAGES_RTL=1
@@ -1027,6 +1050,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 REQUIRE_PACKAGES_RTL=1
@@ -1034,6 +1058,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
@@ -1041,6 +1066,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1048,6 +1074,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 REQUIRE_PACKAGES_RTL=1
@@ -1055,6 +1082,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-nativent)
 REQUIRE_PACKAGES_RTL=1
@@ -1062,6 +1090,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),i386-iphonesim)
 REQUIRE_PACKAGES_RTL=1
@@ -1069,6 +1098,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1076,6 +1106,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 REQUIRE_PACKAGES_RTL=1
@@ -1083,6 +1114,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 REQUIRE_PACKAGES_RTL=1
@@ -1090,6 +1122,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 REQUIRE_PACKAGES_RTL=1
@@ -1097,6 +1130,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 REQUIRE_PACKAGES_RTL=1
@@ -1104,6 +1138,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 REQUIRE_PACKAGES_RTL=1
@@ -1111,6 +1146,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 REQUIRE_PACKAGES_RTL=1
@@ -1118,6 +1154,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1125,6 +1162,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1132,6 +1170,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 REQUIRE_PACKAGES_RTL=1
@@ -1139,6 +1178,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 REQUIRE_PACKAGES_RTL=1
@@ -1146,6 +1186,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 REQUIRE_PACKAGES_RTL=1
@@ -1153,6 +1194,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 REQUIRE_PACKAGES_RTL=1
@@ -1160,6 +1202,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 REQUIRE_PACKAGES_RTL=1
@@ -1167,6 +1210,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1174,6 +1218,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-wii)
 REQUIRE_PACKAGES_RTL=1
@@ -1181,6 +1226,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
@@ -1188,6 +1234,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1195,6 +1242,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 REQUIRE_PACKAGES_RTL=1
@@ -1202,6 +1250,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 REQUIRE_PACKAGES_RTL=1
@@ -1209,6 +1258,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1216,6 +1266,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1223,6 +1274,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 REQUIRE_PACKAGES_RTL=1
@@ -1230,6 +1282,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-netbsd)
 REQUIRE_PACKAGES_RTL=1
@@ -1237,6 +1290,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
 REQUIRE_PACKAGES_RTL=1
@@ -1244,6 +1298,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-openbsd)
 REQUIRE_PACKAGES_RTL=1
@@ -1251,6 +1306,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
 REQUIRE_PACKAGES_RTL=1
@@ -1258,6 +1314,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
@@ -1265,6 +1322,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1272,6 +1330,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1279,6 +1338,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
@@ -1286,6 +1346,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),arm-darwin)
 REQUIRE_PACKAGES_RTL=1
@@ -1293,6 +1354,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
@@ -1300,6 +1362,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 REQUIRE_PACKAGES_RTL=1
@@ -1307,6 +1370,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 REQUIRE_PACKAGES_RTL=1
@@ -1314,6 +1378,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1321,6 +1386,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
@@ -1328,6 +1394,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1335,6 +1402,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 REQUIRE_PACKAGES_RTL=1
@@ -1342,6 +1410,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1349,6 +1418,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-aix)
 REQUIRE_PACKAGES_RTL=1
@@ -1356,6 +1426,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1363,6 +1434,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1370,6 +1442,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1377,6 +1450,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1384,6 +1458,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
 REQUIRE_PACKAGES_RTL=1
@@ -1391,6 +1466,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),jvm-java)
 REQUIRE_PACKAGES_RTL=1
@@ -1398,6 +1474,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifeq ($(FULL_TARGET),jvm-android)
 REQUIRE_PACKAGES_RTL=1
@@ -1405,6 +1482,7 @@
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
 endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard 
$(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
@@ -1596,6 +1674,44 @@
 override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FPMKUNIT)
 endif
 endif
+ifdef REQUIRE_PACKAGES_FCL-DB
+PACKAGEDIR_FCL-DB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard 
$(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FCL-DB),)
+ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units/$(TARGETSUFFIX)),)
+UNITDIR_FCL-DB=$(PACKAGEDIR_FCL-DB)/units/$(TARGETSUFFIX)
+else
+UNITDIR_FCL-DB=$(PACKAGEDIR_FCL-DB)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_FCL-DB)/$(FPCMADE):
+       $(MAKE) -C $(PACKAGEDIR_FCL-DB) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-DB)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_FCL-DB=
+UNITDIR_FCL-DB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix 
/fcl-db/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FCL-DB),)
+UNITDIR_FCL-DB:=$(firstword $(UNITDIR_FCL-DB))
+else
+UNITDIR_FCL-DB=
+endif
+endif
+ifdef UNITDIR_FCL-DB
+override COMPILER_UNITDIR+=$(UNITDIR_FCL-DB)
+endif
+ifdef UNITDIR_FPMAKE_FCL-DB
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-DB)
+endif
+endif
 ifndef NOCPUDEF
 override FPCOPTDEF=$(ARCH)
 endif
Index: packages/fcl-fpcunit/fpmake.pp
===================================================================
--- packages/fcl-fpcunit/fpmake.pp      (revision 22506)
+++ packages/fcl-fpcunit/fpmake.pp      (working copy)
@@ -19,14 +19,15 @@
     P.Version:='2.7.1';
     P.Dependencies.Add('paszlib');
     P.Dependencies.Add('fcl-base');
+    P.Dependencies.Add('fcl-db');
     P.Dependencies.Add('fcl-xml');
     P.Dependencies.Add('univint',[Darwin,iPhoneSim]);
 
-    P.Author := ' Dean Zobec, Michael van Canneyt';
+    P.Author := 'Dean Zobec, Michael van Canneyt';
     P.License := 'LGPL with modification, ';
     P.HomepageURL := 'www.freepascal.org';
     P.Email := '';
-    P.Description := 'Unit testing system inspired by JUnit of Free Component 
Libraries (FCL), FPC''s OOP library.';
+    P.Description := 'Unit testing system inspired by JUnit. Part of the Free 
Component Libraries (FCL), FPC''s OOP library.';
     P.NeedLibC:= false;
     P.OSes := P.OSes - [nativent];
 
@@ -65,6 +66,12 @@
           AddUnit('fpcunit');
           AddUnit('fpcunitreport');
         end;
+    T:=P.Targets.AddUnit('dbreporter.pas');
+      with T.Dependencies do
+      begin
+        AddUnit('fpcunit');
+        AddUnit('testutils');                          
+      end;
     T:=P.Targets.AddUnit('testdecorator.pp');
       with T.Dependencies do
         begin
Index: packages/fcl-db/tests/dbtestframework.pas
===================================================================
--- packages/fcl-db/tests/dbtestframework.pas   (revision 22506)
+++ packages/fcl-db/tests/dbtestframework.pas   (working copy)
@@ -8,8 +8,8 @@
 
 uses
   SysUtils,
-  fpcunit,  testreport, testregistry,
-  DigestTestReport,
+  fpcunit, testreport, testregistry,
+  DigestTestReport, dbreporter,
   toolsunit,
 // List of supported database connectors
   sqldbtoolsunit,
@@ -54,9 +54,29 @@
     FDigestResultsWriter.Free;
   end;
 end;
+
+Procedure DatabaseOutput(RevisionID,Comment: string);
+// Output using database listener
+var
+  FDBResultsWriter: TDBResultsWriter;
+  testResult: TTestResult;
+begin
+  testResult := TTestResult.Create;
+  FDBResultsWriter := TDBResultsWriter.Create;
+  try
+    testResult.AddListener(FDBResultsWriter);
+    FDBResultsWriter.Comment:=Comment;
+    FDBResultsWriter.RevisionID:=RevisionID;
+    GetTestRegistry.Run(testResult);
+  finally
+    testResult.Free;
+    FDBResultsWriter.Free;
+  end;
+end;
   
 Var
-  Application : TTestRunner;  
+  Application : TTestRunner;
+  Comment,RevisionID: string;
   
 begin
   InitialiseDBConnector;
@@ -64,8 +84,27 @@
     Application:=TTestRunner.Create(nil);
     With Application do
       try
+        if HasOption('h','help') then
+          begin
+          writeln('Options specific to this program:');
+          writeln('-d --database: output to database using dbreporter 
listener');
+          writeln('For databases, use dbreporter.ini; you can specify:');
+          writeln('   --comment=: comment for test run; default: database 
type');
+          writeln('   --revisionid=: unique (revision) ID to identify the 
code');
+          writeln('-g --legacy: output legacy XML format');          
+          end;
         if HasOption('g','legacy') then
           LegacyOutput
+        else if HasOption('d','database') then
+          begin
+          Comment:=dbtype;
+          RevisionID:='';
+          if HasOption('comment') then
+            Comment:=GetOptionValue('comment');
+          if HasOption('revisionid') then
+            RevisionID:=GetOptionValue('revisionid');
+          DatabaseOutput(RevisionID,Comment);
+          end
         else
           begin  
           DefaultFormat:=fplain;
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to