Nothing Special   »   [go: up one dir, main page]

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

Get rid of bnfc's idiosyncratic "make" logic #219

Closed
andreasabel opened this issue Jan 1, 2018 · 1 comment
Closed

Get rid of bnfc's idiosyncratic "make" logic #219

andreasabel opened this issue Jan 1, 2018 · 1 comment
Assignees
Milestone

Comments

@andreasabel
Copy link
Member

bnfc has its own logic of preserving unchanged files that makes it incompatible with make. GNU make expects a target to get the current time stamp if the action is run that creates it or refreshes it from its dependencies. Since bnfc is "clever" and does not recreate unchanged files, it will be called every time by make should there be any target older than the .cf file.

This contradicts the principle that make should be idempotent. More precisely, the second call to make in a row should report nothing to do for a properly written Makefile.

@andreasabel andreasabel self-assigned this Jan 1, 2018
@andreasabel andreasabel added this to the 2.8.2 milestone Jan 1, 2018
@andreasabel
Copy link
Member Author

After the change, bnfc will recreate all its targets. If no change has occurred, the old .bak files will be preserved. In summary, the only change is that the targets will always get the current timestamp.

Maybe the motivation for the present behavior was that bnfc should have some make functionality itself. But since it does not go all the way to the end, like calling lexer and parser generators, it was only going halfway and would not integrate with make.

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

No branches or pull requests

1 participant