This avoids spurious library rebuilds when only the test program code is changed and simplifies the build system.