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

Addition of a build system generator #5

Closed
elfring opened this issue Feb 26, 2019 · 5 comments
Closed

Addition of a build system generator #5

elfring opened this issue Feb 26, 2019 · 5 comments

Comments

@elfring
Copy link
Contributor

elfring commented Feb 26, 2019

I suggest to reuse a higher level build system than your current make script so that powerful checks for software features will become easier.

@david-a-wheeler
Copy link
Owner

Since there's already a makefile, the Autotools (specifically automake) would be the simplest to transition to. I even created a video tutorial on the autotools, so I'm quite familiar with it.

HOWEVER: What is the goal? I want to use simple tools if there's no big advantage to more sophisticated tools. The makefile is pretty simple. Is there a specific example of what you think should be done?

@squinky86 - your thoughts would be welcome.

@elfring
Copy link
Contributor Author

elfring commented Feb 26, 2019

@squinky86
Copy link
Collaborator

Flawfinder is the first python project I've worked with that has a makefile. Most python projects, in my experience, just worry about setup.py and let users/developers handle any special cases beyond that. I could see a build system being useful to check for tools like ps2pdf, but I see it as more of a reference with helpful shortcuts more than a "this is the only way to build the project" makefile.

Setuptools' setup.py is sufficient as the cross-platform build system, but I wouldn't be opposed to also supporting one of the other build systems. I'm more familiar with Autotools as well (https://www.gnu.org/software/automake/manual/html_node/Python.html).

@david-a-wheeler
Copy link
Owner

I think in this case the negatives of a bigger build system generator outweigh the positives.

Flawfinder is designed to be extremely easy-to-install in many situations. In particular, I want to support copy-single-file installations, where users can simply copy "flawfinder" where they want & have it "just work". So I specifically forbid external dependencies other than the built-in libraries. That means users can ignore the setup.py if they wish. That also means that having a separate configuration tool is not going to work in this case.

This reasoning is specifically for this one tool. I use other systems on other projects, and I even created an autotools tutorial on Youtube, so I'm certainly familiar with other tools and find them useful. But in this case I'm trying to make things absurdly easy for users to install in a variety of circumstances, including when they cannot use pip.

So I appreciate the comments, but this would hamper end-user experience, which I think is more important. Thanks!

@elfring
Copy link
Contributor Author

elfring commented Sep 22, 2019

I imagine that your software distribution goals can be achieved also by a collaboration with additional build tools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants