<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/miscutils/make.c, branch long_paths</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=long_paths</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=long_paths'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2026-01-26T13:48:54+00:00</updated>
<entry>
<title>make: bring into alignment with pdpmake</title>
<updated>2026-01-26T13:48:54+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-01-26T13:48:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=f0cd749ff7ad15665a5d03e58eb73ef48f60381d'/>
<id>urn:sha1:f0cd749ff7ad15665a5d03e58eb73ef48f60381d</id>
<content type='text'>
The make applet is based on code from pdpmake.  Make a few minor
adjustments to bring the two into line.

The only one of any significance is setting 'target' to NULL in
docmds().

Adds 16 bytes.
</content>
</entry>
<entry>
<title>make: fix expansion of immediate-mode macros</title>
<updated>2025-11-28T07:52:25+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-11-28T07:52:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=0e1f65e10a3b21bb253479b842614c9669fbc1f9'/>
<id>urn:sha1:0e1f65e10a3b21bb253479b842614c9669fbc1f9</id>
<content type='text'>
Immediate-mode macros shouldn't be recursively expanded, but are
subject to suffix and pattern substitution.

Adds 16 bytes to the 32-bit build.

(pdpmake GitHub issue 77)
</content>
</entry>
<entry>
<title>make: override commands for single-colon target rule</title>
<updated>2025-09-03T10:17:48+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-09-03T10:17:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=d8086da8bfbf76b9910d04e3e7f646ebc7f4b593'/>
<id>urn:sha1:d8086da8bfbf76b9910d04e3e7f646ebc7f4b593</id>
<content type='text'>
If more than one single-colon target rule has commands only the
last set of commands should be used.

Previously the presence of more than one single-colon target rule
with commands was treated as an error.

Adds 88-112 bytes.
</content>
</entry>
<entry>
<title>make: fix detection of target rule with inline command</title>
<updated>2025-01-22T15:09:11+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-01-22T15:09:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=820ade383860692d0b5abbba00a3e428f21b88e4'/>
<id>urn:sha1:820ade383860692d0b5abbba00a3e428f21b88e4</id>
<content type='text'>
Commit f9d10b2b6 (make: fix detection of target rules (take 2))
added code to handle the case where a target rule had an inline
command with a ';' separator in a macro.  This required all macros
on the line to be expanded, including those in the inline command.

The ';' should first be searched for in the original line (without
any macro expansion) and only if that fails should macros be
expanded.

This matches the behaviour of GNU and Unix V7 make.  BSD and Schily
make don't handle the case where the ';' is in a macro.

(pdpmake GitHub issue 73)
</content>
</entry>
<entry>
<title>make: fix single-suffix inference rule regression</title>
<updated>2025-01-21T09:25:46+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-01-21T09:25:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=89b641cbb52bdc29e7e078c7f1ebcfbe7364ba18'/>
<id>urn:sha1:89b641cbb52bdc29e7e078c7f1ebcfbe7364ba18</id>
<content type='text'>
Commit 85bbce87d (make: support GNU/BSD suffixes and inference
rules) added code to handle inference rules with arbitrary
suffixes.  Unfortunately it failed to check for a single-suffix
rule in the case where no known suffix was found.  Add the
necessary code and a test which would have caught the problem.

Adds 48 bytes.

(pdpmake GitHub issue 72)
</content>
</entry>
<entry>
<title>make: phony targets and double colon rules</title>
<updated>2025-01-16T14:13:56+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-01-16T14:07:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=73ca192b94f06c24d9638aebf271eaf2a6bd92d5'/>
<id>urn:sha1:73ca192b94f06c24d9638aebf271eaf2a6bd92d5</id>
<content type='text'>
Commit 770bad1fe (make: disallow inference rules for phony targets)
added the GNU/BSD make feature that inference rules aren't used
for phony targets.

Normally a double-colon rule without associated commands causes
an inference rule search.  If the target of the double-colon rule
was phony no search was carried out and the rule failed.  As a
result of this perl failed to build (on Linux, I didn't try on
Windows).

When a double-colon rule has no commands and a phony target the
prerequisites should be built and the rule should succeed.

Adds 32 bytes.

(pdpmake GitHub issue #70)
</content>
</entry>
<entry>
<title>make: minor tweaks</title>
<updated>2025-01-16T09:18:47+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-01-16T09:18:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=91b6c18d4aa435073e3a6f62dd011b9787103157'/>
<id>urn:sha1:91b6c18d4aa435073e3a6f62dd011b9787103157</id>
<content type='text'>
Move the code to remove the suffix from a target into a separate
function.

There's no need to test for non-NULL 'makefile' in newcmd().

Cosmetic changes.

Saves 0-16 bytes.
</content>
</entry>
<entry>
<title>make: support GNU/BSD suffixes and inference rules</title>
<updated>2025-01-14T12:22:55+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-01-14T09:52:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=85bbce87d6428fbc6a8bf7126988c4458a033727'/>
<id>urn:sha1:85bbce87d6428fbc6a8bf7126988c4458a033727</id>
<content type='text'>
The specification of inference rules in POSIX implies that only
suffixes starting with a period and containing no other periods
are to be considered.

In contrast, both GNU and BSD make allow suffixes to contain an
arbitrary number of periods, or none at all.  Allow this as an
extension.

Adds 640-816 bytes.

(pdpmake GitHub issue 70)
</content>
</entry>
<entry>
<title>make: .WAIT shoudn't have prerequisites</title>
<updated>2024-10-23T11:49:17+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-10-23T11:49:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=b4c70222a200314ce3805e96f7de94ceb57c79ea'/>
<id>urn:sha1:b4c70222a200314ce3805e96f7de94ceb57c79ea</id>
<content type='text'>
Commit f0dea6674 (make: enforce restrictions on prerequisites/
commands) set the flags for .WAIT incorrectly:  in POSIX mode it
shouldn't have prerequisites.
</content>
</entry>
<entry>
<title>make: enforce restrictions on prerequisites/commands</title>
<updated>2024-10-20T13:23:43+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-10-20T13:23:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=f0dea66749bb599f65762991f4fded229c3df5a3'/>
<id>urn:sha1:f0dea66749bb599f65762991f4fded229c3df5a3</id>
<content type='text'>
POSIX mentions some restrictions on whether rules may or may not
have prerequisites or commands:

- most special targets shouldn't have commnds;

- inference/.DEFAULT rules shouldn't have prerequisites.

Enforce these restrictions in POSIX mode.

Generally, implementations are happy to accept prerequisites or
commands even if they're subsequently ignored.  Allow this as an
extension.

Adds 216-256 bytes.
</content>
</entry>
</feed>
