-
-
Notifications
You must be signed in to change notification settings - Fork 199
Makefile: Disable Make's implict suffix rules #3183
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
Conversation
|
Unfortunately, I think we rely on a lot of implicit rules. My guess is that
we’re going to have to remove the rule from .r to whatever object file
instead of the proposed fix on this PR.
…On Thu, May 8, 2025 at 9:44 AM Brian Ward ***@***.***> wrote:
Summary
These rules can cause some very unintuitive behavior, see:
https://www.gnu.org/software/make/manual/html_node/Implicit-Rules.html
Hopefully we aren't relying on them anywhere, I'm counting on Jenkins to
tell me if so...
Tests
None
Side Effects
None 🤞🏻
Release notes
Disabled Make's implicit rules in our Makefiles.
Checklist
-
Copyright holder: (fill in copyright holder information)
The copyright holder is typically you or your assignee, such as a
university or company. By submitting this pull request, the copyright
holder is agreeing to the license the submitted work under the following
licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (
https://creativecommons.org/licenses/by/4.0/)
-
the basic tests are passing
- unit tests pass (to run, use: ./runTests.py test/unit)
- header checks pass, (make test-headers)
- dependencies checks pass, (make test-math-dependencies)
- docs build, (make doxygen)
- code passes the built in C++ standards
<https://github.com/stan-dev/stan/wiki/Coding-Style-and-Idioms>
checks (make cpplint)
-
the code is written in idiomatic C++ and changes are documented in the
doxygen
-
the new changes are tested
------------------------------
You can view, comment on, or merge this pull request online at:
#3183
Commit Summary
- 2b5ddc2
<2b5ddc2>
Makefile: Disable Make's implict suffix rules
File Changes
(1 file <https://github.com/stan-dev/math/pull/3183/files>)
- *M* make/compiler_flags
<https://github.com/stan-dev/math/pull/3183/files#diff-97ba75bfaa6bf58dfe81971aaeff146e80b4c628a130c312278687500ce94287>
(7)
Patch Links:
- https://github.com/stan-dev/math/pull/3183.patch
- https://github.com/stan-dev/math/pull/3183.diff
—
Reply to this email directly, view it on GitHub
<#3183>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADH6F6UZ25SLIXCP3CDX4D25NNUBAVCNFSM6AAAAAB4WR57XCVHI2DSMVQWIX3LMV43ASLTON2WKOZTGA2DSMBVGQ4TGNY>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
|
It appears the only implicit rule we really depend on is the one for turning a |
Jenkins Console Log Machine informationNo LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focalCPU: G++: Clang: |
syclik
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Summary
These rules can cause some very unintuitive behavior, see: https://www.gnu.org/software/make/manual/html_node/Implicit-Rules.html
Hopefully we aren't relying on them anywhere, I'm counting on Jenkins to tell me if so...
Tests
None
Side Effects
None 🤞🏻
Release notes
Disabled Make's implicit rules in our Makefiles.
Checklist
Copyright holder: (fill in copyright holder information)
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
the basic tests are passing
./runTests.py test/unit)make test-headers)make test-math-dependencies)make doxygen)make cpplint)the code is written in idiomatic C++ and changes are documented in the doxygen
the new changes are tested