-
Notifications
You must be signed in to change notification settings - Fork 217
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
Addition of a build system generator #9
Comments
This is a really great idea. The current is definitely simple and quick for a dev box; since the release announcement with more people building on more platforms, it'll quickly become essential. For configuring install dir, if nothing else. |
If you've used cmake or autotools before (I have not) and have any sage advice, bring it on! :) |
|
Marking as wishlist for now, just relative to other things more pressing -- namely, RFC-CSV and packaging. In the medium term, though, this will be a should-do rather than a wishlist item. |
I've started an autoconf/automake based build structure in https://github.com/0-wiz-0/miller To try it out: |
|
Use AC_CONFIG_AUX_DIR as suggested by elfring in johnkerl#9
elfring, thanks for the suggestions. I did add an AC_CONFIG_AUX_DIR call. |
|
foreign is in the top level Makefile.am; there's no point in adding it to AM_INIT_AUTOMAKE, since it doesn't do anything in the other Makefiles. |
I guess that there is a trade-off involved. How many settings should be moved from the file "Makefile.am" to the primary script "configure.ac"? |
Nice! |
This is cool. There's no push request yet but this is something to work with. I'm currently doing what I consider higher-pri work on file formats & read performance. But, this is important. Some of the feedback I've found off Github (by searching for it) is that my failure to provide a standard |
... by which I mean, if someone else finishes the last bits, great, else I will. So we'll get there either way. |
I've worked on it some more. Can you please take a closer look and recommend which files should be distributed that currently aren't? I know that there is one more test, test/run, that should be added. One issue I found is that the lemon executable needs its input files in ".". Perhaps it can be extended to support being called with an input file in ${srcdir} while being in ${objdir}, i.e. being called with "lemon ../../c/dsls/inputfile"? |
I've worked on test/run a bit. I have the problem that this script has paths in the expected output. Can you please modify it so it doesn't, e.g. by calling basename on executable and input(s) (just for the debugging output)? |
Out-of-dir builds, very good idea in any case. OK I think I'll fork your fork ... get it where I want it to be ... then make you a pull request. Then you can make me a pull request to master -- sound OK? |
Are you aware of better Git development techniques? |
Apparently not :^/. I'll take a read. |
@0-wiz-0, @johnkerl: How do you think about to improve the software development collaboration by the reuse of topic branches? |
sure, forks and branches are morally the same, either will work. whatever's easiest. 99% of the time i prefer unbranched iteration in master, but here either forks or branches will be called for since the changes could temporarily break master. |
I find that a topic branch should usually get an other name than "master". |
Hi @johnkerl, yes, develop on trunk/master! |
All -- thanks for the software-engineering discussion. Over my career, on the whole I've become a strong advocate for developing in master almost all the time, with frequent merges. This is good for small projects; it's a make-or-break for large projects/companies. That said, every once in a while a short-lived branch is useful -- and the implementation details don't matter too much -- which is the case here since autoconfigure testing will break master, and/or just confuse people, until it's complete. |
Pushed out-of-directory
|
Thanks!
In other words, the path to the input files also needs sanitizing, I think. |
That case was included in the diff, using "diff -I '^mlr '" in test/run. It On Thu, Sep 10, 2015 at 9:33 AM, Thomas Klausner [email protected]
John Kerl |
Ah, I had overlooked that. Thanks.
|
ok. thank you!!!! :) On Thu, Sep 10, 2015 at 10:17 AM, Thomas Klausner [email protected]
John Kerl |
Wiz, thanks very much for your ongoing expert help!! I'm new to autoconf, so just to be sure I know the steps:
|
I'll be reading through automake.pdf on today's flight as well. |
Another test case for myself is VPATH build with read-only source tree |
The steps are good, and you mentioned all the main targets.
The configure script itself is usually not checked in. If you did, you would have to check in many more files as well (all Makefile.in and the support scripts like libtool, config.guess...). |
Oh, and you probably are interested in the "--disable-shared" configure argument -- that should give you a static executable without dependencies, that you can easily copy to other machines. |
ALso the |
The merge is in. To do:
Thank you @0-wiz-0 !!!! :D |
This is complete with docs at http://johnkerl.org/miller/doc/build.html. There is some separate manpage-related work tracked on #56. If there are any subsequent build errors, feel free to open a new issue as always. And thanks again @0-wiz-0. :) |
I suggest to reuse a higher level build system than your current small make file so that powerful checks for software features will become easier.
The text was updated successfully, but these errors were encountered: