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

Improve build automation #28

Open
creachadair opened this issue Dec 6, 2018 · 0 comments
Open

Improve build automation #28

creachadair opened this issue Dec 6, 2018 · 0 comments
Assignees
Labels
build Issues with building from source enhancement

Comments

@creachadair
Copy link
Owner

Right now the project is built with make. However, the current build setup has several unfortunate properties, including:

  1. It uses ambient toolchains,
  2. It hard-codes various GCC-specific compiler flags, some of which drift by version,
  3. It doesn't readily support cross-compilation and cross-testing.

Some of these things could be fixed by rewriting (and modernizing) the Makefile, but I actually think Make is the wrong tool. On the other hand, I also believe it's important for the library to be easily pulled out and hacked up into a new build environment, without deep connections to the environment I use to develop it. On that basis, I will probably not consider using Bazel.

One option is to build everything in Docker (see commit 899e202 for a nod in that general direction). That would let us keep the Make-based build but use containerization to ensure a stable build environment. Another option is djb redo, which has a recent decent reimplementation here.

@creachadair creachadair self-assigned this Dec 6, 2018
@creachadair creachadair added enhancement build Issues with building from source labels Dec 6, 2018
creachadair added a commit that referenced this issue Dec 21, 2018
The doc.md file is now generated from doc.md.in, via a rule that uses the
mkdoc.py script.  The rule depend on the headers so that it will get updated
when they change.

As a sleazy hack, I made doc.md a dependency of the test target to ensure it
gets run. This will do till I set up better automation (see #27 and #28).

Serves in partial satisfaction of #30.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues with building from source enhancement
Projects
None yet
Development

No branches or pull requests

1 participant