Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making Make make things more efficiently. #186

merged 14 commits into from Feb 8, 2016

Making Make make things more efficiently. #186

merged 14 commits into from Feb 8, 2016


Copy link

edawson commented Jan 29, 2016

After much debugging I seem to have fixed a lot of the Make issues. It turns out that when Deconstruct got introduced I broke parallel make because I didn't list all of its dependencies in the Makefile (I guess it was dumb luck that serial builds worked). Make is weird.

I've since fixed it, as well as added a number of improvements:

  1. Added "+" to all make lines that can be forked as subprocesses. This greatly improves build speed.
  2. Added a script, which when called as python writes the script with absolute paths. This allows sourcing the script from anywhere, including adding it to one's .bashrc to source on login. We should update the documents to reflect this.
  3. Updated the travis.yml to use this new script.
  4. Fixed many broken target dependencies. sha1, gssw_aligner, and deconstruct were major offenders.
  5. Fixed incremental builds by making the first make target point to an actual file (in this case, the executable).
  6. Modified the main make target to build using the vg library instead of several dozen object files. These are in theory equivalent but it seemed neater and means there's a reason behind building the lib when we build the executable.
  7. Moved to an updated vcflib while I was at it.

The new build takes 10m21s in serial and 3m46s with make -j 4 on my Macbook Pro.

ekg added a commit that referenced this pull request Feb 8, 2016
Making Make make things more efficiently.
@ekg ekg merged commit f3ea024 into vgteam:master Feb 8, 2016
1 check passed
1 check passed
continuous-integration/travis-ci/pr The Travis CI build passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.