From: <man...@us...> - 2014-02-12 13:37:15
|
Revision: 3703 http://sourceforge.net/p/modplug/code/3703 Author: manxorist Date: 2014-02-12 13:37:08 +0000 (Wed, 12 Feb 2014) Log Message: ----------- [Mod] build: When using Makefile, build test suite along-side the library by default and make it possible to build both with a single make invocation by using seperate intermediate file extensions for test suite object files. This allows for the more standard invocation of make in the form of "make all && make check" to do the expected thing. In order to only build the test suite without the library, use ONLY_TEST=1, in order to not build the test suite, use TEST=0. [Doc] libopenmpt: Update docs accordingly. Modified Paths: -------------- trunk/OpenMPT/Makefile trunk/OpenMPT/libopenmpt/dox/changelog.md trunk/OpenMPT/libopenmpt/dox/quickstart.md trunk/OpenMPT/libopenmpt/dox/tests.md Property Changed: ---------------- trunk/OpenMPT/common/ trunk/OpenMPT/libopenmpt/ trunk/OpenMPT/soundlib/ trunk/OpenMPT/test/ Modified: trunk/OpenMPT/Makefile =================================================================== --- trunk/OpenMPT/Makefile 2014-02-12 12:54:00 UTC (rev 3702) +++ trunk/OpenMPT/Makefile 2014-02-12 13:37:08 UTC (rev 3703) @@ -42,9 +42,10 @@ # EXAMPLES=1 Build examples # OPENMPT123=1 Build openmpt123 # SHARED_SONAME=1 Set SONAME of shared library -# TEST=0 Build libopenmpt in test mode # DEBUG=0 Build debug binaries without optimization and with symbols # OPTIMIZE=1 Build optimized binaries +# TEST=1 Include test suite in default target. +# ONLY_TEST=0 Only build the test suite. # # # Build flags for libopenmpt (provide on each `make` invocation) @@ -80,7 +81,7 @@ # make clean # make [all] # make doc -# make TEST=1 check +# make check # make dist # make dist-doc # make install @@ -124,6 +125,8 @@ SHARED_SONAME=1 DEBUG=0 OPTIMIZE=1 +TEST=1 +ONLY_TEST=0 # get commandline or defaults @@ -226,10 +229,6 @@ endif endif -ifeq ($(TEST),1) -CPPFLAGS += -DLIBOPENMPT_BUILD_TEST -endif - CXXFLAGS += -Wall -Wextra -Wcast-align CFLAGS += -Wall -Wextra -Wcast-align @@ -328,7 +327,7 @@ %: %.o - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@ %.o: %.cpp @@ -337,10 +336,20 @@ $(SILENT)$(COMPILE.cc) $(OUTPUT_OPTION) $< %.o: %.c - $(INFO) [CC ] $< + $(INFO) [CC] $< $(VERYSILENT)$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -M -MT$@ $< > $*.d $(SILENT)$(COMPILE.c) $(OUTPUT_OPTION) $< +%.test.o: %.cpp + $(INFO) [CXX-TEST] $< + $(VERYSILENT)$(CXX) -DLIBOPENMPT_BUILD_TEST $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -M -MT$@ $< > $*.test.d + $(SILENT)$(COMPILE.cc) -DLIBOPENMPT_BUILD_TEST $(OUTPUT_OPTION) $< + +%.test.o: %.c + $(INFO) [CC-TEST] $< + $(VERYSILENT)$(CC) -DLIBOPENMPT_BUILD_TEST $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -M -MT$@ $< > $*.test.d + $(SILENT)$(COMPILE.c) -DLIBOPENMPT_BUILD_TEST $(OUTPUT_OPTION) $< + %.tar.gz: %.tar $(INFO) [GZIP] $< $(SILENT)gzip --rsyncable --no-name --best > $@ < $< @@ -429,8 +438,10 @@ LIBOPENMPTTEST_CXX_SOURCES += \ libopenmpt/libopenmpt_test.cpp \ -LIBOPENMPTTEST_OBJECTS += $(LIBOPENMPTTEST_CXX_SOURCES:.cpp=.o) $(LIBOPENMPTTEST_C_SOURCES:.c=.o) -LIBOPENMPTTEST_DEPENDS = $(LIBOPENMPTEST_OBJECTS:.o=.d) +LIBOPENMPTTEST_CXX_SOURCES += $(LIBOPENMPT_CXX_SOURCES) +LIBOPENMPTTEST_C_SOURCES += $(LIBOPENMPT_C_SOURCES) +LIBOPENMPTTEST_OBJECTS += $(LIBOPENMPTTEST_CXX_SOURCES:.cpp=.test.o) $(LIBOPENMPTTEST_C_SOURCES:.c=.test.o) +LIBOPENMPTTEST_DEPENDS = $(LIBOPENMPTEST_OBJECTS:.test.o=.test.d) ALL_OBJECTS += $(LIBOPENMPTTEST_OBJECTS) ALL_DEPENDS += $(LIBOPENMPTTEST_DEPENDS) @@ -473,7 +484,7 @@ endif ifeq ($(TEST),1) OUTPUTS += bin/libopenmpt_test$(EXESUFFIX) -else +endif ifeq ($(HOST),unix) OUTPUTS += bin/libopenmpt.pc endif @@ -482,7 +493,6 @@ OUTPUTS += bin/openmpt123.1 endif endif -endif ifeq ($(SHARED_SONAME),1) LIBOPENMPT_LDFLAGS += -Wl,-soname,$(LIBOPENMPT_SONAME) endif @@ -503,7 +513,11 @@ MISC_OUTPUTDIRS += bin/docs +ifeq ($(ONLY_TEST),1) +all: bin/libopenmpt_test$(EXESUFFIX) +else all: $(OUTPUTS) +endif .PHONY: docs docs: bin/made.docs @@ -524,9 +538,9 @@ test: bin/libopenmpt_test$(EXESUFFIX) bin/libopenmpt_test$(EXESUFFIX) -bin/libopenmpt_test$(EXESUFFIX): $(LIBOPENMPTTEST_OBJECTS) $(OBJECTS_LIBOPENMPT) $(OUTPUT_LIBOPENMPT) - $(INFO) [LD ] $@ - $(SILENT)$(LINK.cc) $(LDFLAGS_RPATH) $(LDFLAGS_LIBOPENMPT) $(LIBOPENMPTTEST_OBJECTS) $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) -o $@ +bin/libopenmpt_test$(EXESUFFIX): $(LIBOPENMPTTEST_OBJECTS) + $(INFO) [LD-TEST] $@ + $(SILENT)$(LINK.cc) $(LDFLAGS_RPATH) $(LIBOPENMPTTEST_OBJECTS) $(LOADLIBES) $(LDLIBS) -o $@ bin/libopenmpt.pc: $(INFO) [GEN] $@ @@ -700,11 +714,11 @@ cd bin/dist-zip/OpenMPT-src-$(DIST_OPENMPT_VERSION)/ && zip -r ../OpenMPT-src-$(DIST_OPENMPT_VERSION).zip --compression-method deflate -9 * bin/openmpt.a: $(LIBOPENMPT_OBJECTS) - $(INFO) [AR ] $@ + $(INFO) [AR] $@ $(SILENT)$(AR) $(ARFLAGS) $@ $^ bin/libopenmpt.so: $(LIBOPENMPT_OBJECTS) - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) -shared $(LIBOPENMPT_LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ ifeq ($(SHARED_SONAME),1) $(SILENT)mv bin/libopenmpt.so bin/$(LIBOPENMPT_SONAME) @@ -712,7 +726,7 @@ endif bin/libopenmpt_modplug.so: $(LIBOPENMPT_MODPLUG_OBJECTS) $(OUTPUT_LIBOPENMPT) - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) -shared $(LDFLAGS_LIBOPENMPT) $(LIBOPENMPT_MODPLUG_OBJECTS) $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) -o $@ bin/openmpt123.1: bin/openmpt123$(EXESUFFIX) @@ -724,20 +738,20 @@ $(VERYSILENT)$(CXX) $(CXXFLAGS) $(CXXFLAGS_OPENMPT123) $(CPPFLAGS) $(CPPFLAGS_OPENMPT123) $(TARGET_ARCH) -M -MT$@ $< > $*.d $(SILENT)$(COMPILE.cc) $(CXXFLAGS_OPENMPT123) $(CPPFLAGS_OPENMPT123) $(OUTPUT_OPTION) $< bin/openmpt123$(EXESUFFIX): $(OPENMPT123_OBJECTS) $(OBJECTS_LIBOPENMPT) $(OUTPUT_LIBOPENMPT) - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_LIBOPENMPT) $(LDFLAGS_OPENMPT123) $(OPENMPT123_OBJECTS) $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) $(LDLIBS_OPENMPT123) -o $@ ifeq ($(HOST),unix) $(SILENT)mv $@ $@.norpath - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_RPATH) $(LDFLAGS_LIBOPENMPT) $(LDFLAGS_OPENMPT123) $(OPENMPT123_OBJECTS) $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) $(LDLIBS_OPENMPT123) -o $@ endif libopenmpt/examples/libopenmpt_example_c.o: libopenmpt/examples/libopenmpt_example_c.c - $(INFO) [CC ] $< + $(INFO) [CC] $< $(VERYSILENT)$(CC) $(CFLAGS) $(CFLAGS_EXAMPLES) $(CPPFLAGS) $(CPPFLAGS_EXAMPLES) $(TARGET_ARCH) -M -MT$@ $< > $*.d $(SILENT)$(COMPILE.c) $(CFLAGS_EXAMPLES) $(CPPFLAGS_EXAMPLES) $(OUTPUT_OPTION) $< libopenmpt/examples/libopenmpt_example_c_mem.o: libopenmpt/examples/libopenmpt_example_c_mem.c - $(INFO) [CC ] $< + $(INFO) [CC] $< $(VERYSILENT)$(CC) $(CFLAGS) $(CFLAGS_EXAMPLES) $(CPPFLAGS) $(CPPFLAGS_EXAMPLES) $(TARGET_ARCH) -M -MT$@ $< > $*.d $(SILENT)$(COMPILE.c) $(CFLAGS_EXAMPLES) $(CPPFLAGS_EXAMPLES) $(OUTPUT_OPTION) $< libopenmpt/examples/libopenmpt_example_cxx.o: libopenmpt/examples/libopenmpt_example_cxx.cpp @@ -745,27 +759,27 @@ $(VERYSILENT)$(CXX) $(CXXFLAGS) $(CXXFLAGS_EXAMPLES) $(CPPFLAGS) $(CPPFLAGS_EXAMPLES) $(TARGET_ARCH) -M -MT$@ $< > $*.d $(SILENT)$(COMPILE.cc) $(CXXFLAGS_EXAMPLES) $(CPPFLAGS_EXAMPLES) $(OUTPUT_OPTION) $< bin/libopenmpt_example_c$(EXESUFFIX): libopenmpt/examples/libopenmpt_example_c.o $(OBJECTS_LIBOPENMPT) $(OUTPUT_LIBOPENMPT) - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_LIBOPENMPT) $(LDFLAGS_EXAMPLES) libopenmpt/examples/libopenmpt_example_c.o $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) $(LDLIBS_EXAMPLES) -o $@ ifeq ($(HOST),unix) $(SILENT)mv $@ $@.norpath - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_RPATH) $(LDFLAGS_LIBOPENMPT) $(LDFLAGS_EXAMPLES) libopenmpt/examples/libopenmpt_example_c.o $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) $(LDLIBS_EXAMPLES) -o $@ endif bin/libopenmpt_example_c_mem$(EXESUFFIX): libopenmpt/examples/libopenmpt_example_c_mem.o $(OBJECTS_LIBOPENMPT) $(OUTPUT_LIBOPENMPT) - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_LIBOPENMPT) $(LDFLAGS_EXAMPLES) libopenmpt/examples/libopenmpt_example_c_mem.o $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) $(LDLIBS_EXAMPLES) -o $@ ifeq ($(HOST),unix) $(SILENT)mv $@ $@.norpath - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_RPATH) $(LDFLAGS_LIBOPENMPT) $(LDFLAGS_EXAMPLES) libopenmpt/examples/libopenmpt_example_c_mem.o $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) $(LDLIBS_EXAMPLES) -o $@ endif bin/libopenmpt_example_cxx$(EXESUFFIX): libopenmpt/examples/libopenmpt_example_cxx.o $(OBJECTS_LIBOPENMPT) $(OUTPUT_LIBOPENMPT) - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_LIBOPENMPT) $(LDFLAGS_EXAMPLES) libopenmpt/examples/libopenmpt_example_cxx.o $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) $(LDLIBS_EXAMPLES) -o $@ ifeq ($(HOST),unix) $(SILENT)mv $@ $@.norpath - $(INFO) [LD ] $@ + $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_RPATH) $(LDFLAGS_LIBOPENMPT) $(LDFLAGS_EXAMPLES) libopenmpt/examples/libopenmpt_example_cxx.o $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) $(LDLIBS_EXAMPLES) -o $@ endif Index: trunk/OpenMPT/common =================================================================== --- trunk/OpenMPT/common 2014-02-12 12:54:00 UTC (rev 3702) +++ trunk/OpenMPT/common 2014-02-12 13:37:08 UTC (rev 3703) Property changes on: trunk/OpenMPT/common ___________________________________________________________________ Modified: svn:ignore ## -1,2 +1,3 ## *.d +*.o svn_version Index: trunk/OpenMPT/libopenmpt =================================================================== --- trunk/OpenMPT/libopenmpt 2014-02-12 12:54:00 UTC (rev 3702) +++ trunk/OpenMPT/libopenmpt 2014-02-12 13:37:08 UTC (rev 3703) Property changes on: trunk/OpenMPT/libopenmpt ___________________________________________________________________ Modified: svn:ignore ## -1,4 +1,5 ## *.d +*.o *.sdf *.suo *.opensdf Modified: trunk/OpenMPT/libopenmpt/dox/changelog.md =================================================================== --- trunk/OpenMPT/libopenmpt/dox/changelog.md 2014-02-12 12:54:00 UTC (rev 3702) +++ trunk/OpenMPT/libopenmpt/dox/changelog.md 2014-02-12 13:37:08 UTC (rev 3703) @@ -7,6 +7,9 @@ ### libopenmpt svn + * [Change] The test suite is now built by default with Makefile based builds. + Use `TEST=0` to skip building the tests. `make check` runs the test suite. + * [Bug] Crash in MOD loader on architectures not supporting unaligned memory access. * [Bug] MMCMP, PP20 and XPK unpackers should now work on non-x86 hardware and Modified: trunk/OpenMPT/libopenmpt/dox/quickstart.md =================================================================== --- trunk/OpenMPT/libopenmpt/dox/quickstart.md 2014-02-12 12:54:00 UTC (rev 3702) +++ trunk/OpenMPT/libopenmpt/dox/quickstart.md 2014-02-12 13:37:08 UTC (rev 3703) @@ -22,12 +22,10 @@ svn checkout http://svn.code.sf.net/p/modplug/code/trunk/OpenMPT/ openmpt-trunk cd openmpt-trunk - make TEST=1 clean - make TEST=1 - make TEST=1 check make clean make make doc + make check sudo make install # installs into /usr/local by default sudo make install-doc # installs into /usr/local by default openmpt123 $SOMEMODULE Modified: trunk/OpenMPT/libopenmpt/dox/tests.md =================================================================== --- trunk/OpenMPT/libopenmpt/dox/tests.md 2014-02-12 12:54:00 UTC (rev 3702) +++ trunk/OpenMPT/libopenmpt/dox/tests.md 2014-02-12 13:37:08 UTC (rev 3703) @@ -14,15 +14,14 @@ Compile with - make TEST=1 $YOURMAKEOPTIONS clean - make TEST=1 $YOURMAKEOPTIONS - make TEST=1 $YOURMAKEOPTIONS check - -In order to build your normal binaries again, run - make $YOURMAKEOPTIONS clean make $YOURMAKEOPTIONS +and run + + make $YOURMAKEOPTIONS check + +. As the build system retains no state between make invocations, you have to provide your make options on every make invocation. Index: trunk/OpenMPT/soundlib =================================================================== --- trunk/OpenMPT/soundlib 2014-02-12 12:54:00 UTC (rev 3702) +++ trunk/OpenMPT/soundlib 2014-02-12 13:37:08 UTC (rev 3703) Property changes on: trunk/OpenMPT/soundlib ___________________________________________________________________ Modified: svn:ignore ## -1 +1,2 ## *.d +*.o Index: trunk/OpenMPT/test =================================================================== --- trunk/OpenMPT/test 2014-02-12 12:54:00 UTC (rev 3702) +++ trunk/OpenMPT/test 2014-02-12 13:37:08 UTC (rev 3703) Property changes on: trunk/OpenMPT/test ___________________________________________________________________ Modified: svn:ignore ## -2,3 +2,4 ## test.saved.s3m test.saved.xm *.d +*.o This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |