You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The macro-def. precedence rules don't say that "take precedence" doesn't just mean the order they will be initialized, but also that they can only be set where they had been initialized! :-o (Actually, GNU make does it similarly, except they do provide the override keyword to control this!)
So, this will be either able or unable to fixup inputs depending on where their initial (e.g. default) value comes from! :-o
(E.g. out_dir will always remain empty with nmake out_dir=!...)
OK, well, even though capitalizing the cfg. macro names (fortunately, NMAKE, too (like GNU make) is case-sensitive) + the normalizing step from / to \ provides a perfect reconciliation point, bridging the "externs" into "locals", but... it needs to be documented that they are still impossible to set on the command-line, because the recursive NMAKE calls will lose them anyway! :-(
-> Well, added the comment: # Note: the cfg. options can't be set on the NMAKE command line, only here!
The text was updated successfully, but these errors were encountered:
xparq
changed the title
Workaround for the "cmdline macros can't be modified" NMAKE lameness
What to do with the "cmdline macros can't be modified" NMAKE lameness?
Mar 28, 2023
Issue #35: Capitalize the cfg. options
Issue #12: Allow customizing the main targets to build (& clean)
Issue #33: Custom build options: propagate them through recursion
Issue #10: Guard against empty base dirs in $(some_dir)/... constructs!
Issue #34: Add some tests
Issue #5: Reinforced support for spaces in the build dir itself
Issue #30: What to do with "cmdline macros can't be modified"?
Issue #31: That / vs \ mystery in the objs rule
The macro-def. precedence rules don't say that "take precedence" doesn't just mean the order they will be initialized, but also that they can only be set where they had been initialized! :-o (Actually, GNU make does it similarly, except they do provide the
override
keyword to control this!)So, this will be either able or unable to fixup inputs depending on where their initial (e.g. default) value comes from! :-o
(E.g.
out_dir
will always remain empty withnmake out_dir=
!...)OK, well, even though capitalizing the cfg. macro names (fortunately, NMAKE, too (like GNU make) is case-sensitive) + the normalizing step from
/
to\
provides a perfect reconciliation point, bridging the "externs" into "locals", but... it needs to be documented that they are still impossible to set on the command-line, because the recursive NMAKE calls will lose them anyway! :-(-> Well, added the comment:
# Note: the cfg. options can't be set on the NMAKE command line, only here!
The text was updated successfully, but these errors were encountered: