Jim Meyering a42324e370 build: do not relink every single binary just for a timestamp
Summary:
Prior to this change, "make check" would always waste a lot of
time relinking 60+ binaries. With this change, it does that
only when the generated file, util/build_version.cc, changes,
and that happens only when the date changes or when the
current git SHA changes.

This change makes some other improvements: before, there was no
rule to build a deleted util/build_version.cc. If it was somehow
removed, any attempt to link a program would fail.
There is no longer any need for the separate file,
build_tools/build_detect_version.  Its functionality is
now in the Makefile.

* Makefile (DEPFILES): Don't filter-out util/build_version.cc.
No need, and besides, removing that dependency was wrong.
(date, git_sha, gen_build_version): New helper variables.
(util/build_version.cc): New rule, to create this file
and update it only if it would contain new information.
* build_tools/build_detect_platform: Remove file.
* db/db_impl.cc: Now, print only date (not the time).
* util/build_version.h (rocksdb_build_compile_time): Remove
declaration.  No longer used.

Test Plan:
- Run "make check" twice, and note that the second time no linking is performed.
- Remove util/build_version.cc and ensure that any "make"
command regenerates it before doing anything else.
- Run this: strings librocksdb.a|grep _build_.
That prints output including the following:

  rocksdb_build_git_date:2015-02-19
  rocksdb_build_git_sha:2.8.fb-1792-g3cb6cc0

Reviewers: ljin, sdong, igor

Reviewed By: igor

Subscribers: dhruba

Differential Revision: https://reviews.facebook.net/D33591
2015-02-19 13:11:10 -08:00
..
2014-10-31 11:59:54 -07:00
2014-09-04 16:18:36 -07:00
2015-02-09 09:53:30 -08:00
2015-02-04 16:04:51 -08:00
2015-02-04 16:04:51 -08:00
2015-01-21 18:23:12 -08:00
2015-01-26 11:48:07 -08:00
2014-01-27 14:49:10 -08:00
2015-02-18 11:49:31 -08:00
2015-02-18 11:49:31 -08:00
2015-01-13 12:27:28 -08:00
2014-11-06 11:14:28 -08:00
2015-01-29 18:22:43 -08:00
2014-11-06 11:14:28 -08:00
2014-11-06 11:14:28 -08:00
2015-02-04 16:04:51 -08:00
2015-02-06 08:44:30 -08:00
2014-10-31 11:59:54 -07:00
2015-02-06 08:44:30 -08:00
2015-01-23 17:35:12 -08:00
2014-11-10 17:39:38 -05:00
2014-09-13 14:14:10 -07:00
2014-09-12 16:23:58 -07:00