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

should it need doxygen by default? #21

Closed
teuben opened this issue May 14, 2024 · 5 comments · Fixed by #22
Closed

should it need doxygen by default? #21

teuben opened this issue May 14, 2024 · 5 comments · Fixed by #22
Assignees
Labels
question Further information is requested

Comments

@teuben
Copy link

teuben commented May 14, 2024

A default

 make

told me I needed doxygen. Should there be a default make that just compiles? Of course it worked after I installed it, but I'd like to argue the default should not.

@attipaci
Copy link
Collaborator

attipaci commented May 14, 2024

Hi Peter,

The default make target is the api, which includes the static and shared libraries, the cio_bin file and the doxygen documentation -- the basic pieces for operation and documentation. I don't think it's very relevant what the default build target is. You can pick and choose each part individually. Quoting from the README:

you can build select components of the above with the make targets static, shared, cio_file, and dox respectively

So, if you want just the static library, just use

 $ make static

And, if there is a good reason why the default build target should be different, then that change can be made to the next feature release (e.g. 1.1.0). It will however require adjusting the both the documentation and the CI to match...

I hope that answers the question,

-- Attila.

@attipaci attipaci added question Further information is requested labels May 14, 2024
@attipaci attipaci self-assigned this May 14, 2024
@attipaci
Copy link
Collaborator

attipaci commented May 14, 2024

PS. Alternatively, I could make the dox part of the build conditional on the presence of doxygen. That way nothing much else needs to change beyond the Makefile...

@teuben
Copy link
Author

teuben commented May 14, 2024

fair enough. But as you get older and use more and more makefiles, it gets tedious to "more" the makefile. SO I'm now using a technique advocated by software carpentry to make the makefile self-documenting. I mean, who wants to read a README when there's a Makefile :-) You can add that as the first "help" target. I now employ this to all my (new) projects. Here's an example of that implementation

https://github.com/teuben/teunix/blob/master/Makefile

@attipaci
Copy link
Collaborator

attipaci commented May 14, 2024

Hi Peter,

Check out PR #22, and see if that does the trick for you. If it satisfies you, I'd be happy to include that in the next update (in ~3 months)...

I'll also think about the make help idea. The trouble here is that the make requires a fair bit of customization (owing to the not so user-friendly history of the library, and the desire to be both back compatible but also more flexible). So, it's probably best if people actually look at the README before just blindly typing make, or else what they build may not be what they need exactly....

@teuben
Copy link
Author

teuben commented May 14, 2024

yes, that sounds like a good compromise.

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

Successfully merging a pull request may close this issue.

2 participants