• J
    build: fix missing dependency problems · ebc647de
    Jim Meyering 提交于
    Summary:
    Any time one would modify a dependent of any *test*.cc file,
    "make" would fail to rebuild the affected test binaries,
    e.g., db_test.  That was due to the fact that we deliberately
    excluded those test-related files from the definition of SOURCES
    and only $(SOURCES) was used to create the automatically-generated
    .d dependency files.  The fix is to generate a .d file for every
    source file.
    * src.mk: New file.  Defines LIB_SOURCES, MOCK_SOURCES
    and TEST_BENCH_SOURCES.
    * Makefile: Include src.mk.
    Reflect s/SOURCES/LIB_SOURCES/ renaming.
    * build_tools/build_detect_platform: Remove the code
    that was used to generate SOURCES= and MOCK_SOURCES=
    definitions in make_config.mk. Those lists of files
    are now hard-coded in src.mk. Hard-coding this list of
    sources is desirable, because without that, one risks
    including stray .cc files in a build.  Not reproducible.
    
    Test Plan:
    Touch a file used by db_test's dependent .o files and ensure that
    they are all recompiled.  Before, none would be:
    
      $ touch db/db_impl.h && make db_test
        CC       db/db_test.o
        CC       db/column_family.o
        CC       db/db_filesnapshot.o
        CC       db/db_impl.o
        CC       db/db_impl_debug.o
        CC       db/db_impl_readonly.o
        CC       db/forward_iterator.o
        CC       db/internal_stats.o
        CC       db/managed_iterator.o
        CC       db/repair.o
        CC       db/write_batch.o
        CC       utilities/compacted_db/compacted_db_impl.o
        CC       utilities/ttl/db_ttl_impl.o
        CC       util/ldb_cmd.o
        CC       util/ldb_tool.o
        CC       util/sst_dump_tool.o
        CC       util/xfunc.o
        CCLD     db_test
    
    Reviewers: ljin, igor.sugak, igor, rven, sdong
    
    Reviewed By: sdong
    
    Subscribers: yhchiang, adamretter, fyrz, dhruba
    
    Differential Revision: https://reviews.facebook.net/D33849
    ebc647de
src.mk 14.7 KB