<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/testsuite, branch path_search</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=path_search</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=path_search'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2024-06-01T10:07:44+00:00</updated>
<entry>
<title>make: move test for complex chain of macro assignments</title>
<updated>2024-06-01T10:07:44+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-01T10:07:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=433d9fddde9b66727a5066ffe0e5a776da20a4f1'/>
<id>urn:sha1:433d9fddde9b66727a5066ffe0e5a776da20a4f1</id>
<content type='text'>
The test 'Complex chain of macro assignments' relies on recursive
macro expansion.  This is a POSIX 202X feature, so the test should
be moved to the appropriate section of the test script.
</content>
</entry>
<entry>
<title>make: fix detection of target rules (take 2)</title>
<updated>2024-05-31T09:27:18+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-31T09:27:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=f9d10b2b6314ea2a80515112498aaa919ad81c97'/>
<id>urn:sha1:f9d10b2b6314ea2a80515112498aaa919ad81c97</id>
<content type='text'>
Commit d6b764116 (make: fix detection of target rules) checked
for target rules before macro assignments.  This failed for some
Makefiles generated by autotools because partially defined macros
were expanded while testing for a target rule.

Revert to checking for macro assignments first, but try to detect
if the proposed left hand side of the assignment might form part
of a target rule with an inline command.

Also handle the case where the ';' separator of the inline command
has been obfuscated by putting it in a macro.

Saves 128-160 bytes.

(GitHub pdpmake issues 31, 44)
</content>
</entry>
<entry>
<title>make: allow :::= macro assignment on command line</title>
<updated>2024-05-29T16:07:19+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-29T16:07:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=2a0923c400fe5df140e1c5aad8dc59f4733e8598'/>
<id>urn:sha1:2a0923c400fe5df140e1c5aad8dc59f4733e8598</id>
<content type='text'>
GNU make and bmake have different implementations for := macro
assignment.  In POSIX 202X these are supported by the forms ::=
and :::= respectively.  Only the former was supported on the
pdpmake command line.

Add the required support in process_macros() and update the usage
message.

Adds 48-64 bytes.
</content>
</entry>
<entry>
<title>make: relax the test 'Return error if command fails'</title>
<updated>2024-05-29T10:32:29+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-29T10:32:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=e46cb57b07b4b2c54e8219a5035ee4dff8a20a4c'/>
<id>urn:sha1:e46cb57b07b4b2c54e8219a5035ee4dff8a20a4c</id>
<content type='text'>
The test 'Return error if command fails' needed an exit code of 2.
POSIX only requires an exit code greater than 0.
</content>
</entry>
<entry>
<title>make: fixes to -q option</title>
<updated>2024-05-28T11:22:54+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-28T11:22:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=11b3ae755cd67c298bc0a93b1a9872d1eecdbb00'/>
<id>urn:sha1:11b3ae755cd67c298bc0a93b1a9872d1eecdbb00</id>
<content type='text'>
The -q option returns an exit status to indicate if targets are
up-to-date (0) or in need of updating (1) but without updating
them.  As an exception (imported from GNU make) build commands
with a '+' prefix are executed.

pdpmake didn't implement the exception.  Doing so required moving
handling of the -q option down into docmds().

Saves 48 bytes.
</content>
</entry>
<entry>
<title>make: fixes to -t option</title>
<updated>2024-05-28T10:54:51+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-28T10:54:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=208d9858409f823d533d1e95396dde00be03d7d3'/>
<id>urn:sha1:208d9858409f823d533d1e95396dde00be03d7d3</id>
<content type='text'>
The -t option (in general) causes targets to be touched instead of
having build commands run to create them.  There were two problems.

The flag variable 'ssilent' in docmds was too small (uint8_t) to
contain the value of 'dotouch' (uint32_t).  Truncation of the
value resulted in build commands being echoed when they shouldn't
have been.

The POSIX specification is unclear as to how build commands with
a '+' prefix interact with touch.  The rationale indicates that
this feature was imported from GNU make, so the behaviour has been
made to match what it does:  if a '+' build command is run the
target is not touched.

The code has been rearranged to move the call to touch() up into
docmds().

Adds 48 bytes.
</content>
</entry>
<entry>
<title>make: fix tests for BSD</title>
<updated>2024-05-24T11:57:43+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-24T11:57:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=8c847995faf850c9dab590d7c4d1600f4d1406cf'/>
<id>urn:sha1:8c847995faf850c9dab590d7c4d1600f4d1406cf</id>
<content type='text'>
A couple of tests require backslashes to be escaped.

The test for CURDIR should use 'pwd -P' to resolve symlinks.
</content>
</entry>
<entry>
<title>make: add support for ifeq/ifneq</title>
<updated>2024-05-22T13:05:41+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-22T13:05:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=8248785e1d70b5365e2fc17e17dc2ba861c88dd1'/>
<id>urn:sha1:8248785e1d70b5365e2fc17e17dc2ba861c88dd1</id>
<content type='text'>
Add support for the conditional directives ifeq and ifneq.

These follow GNU make in allowing things like:

   ifeq (arg1,arg2)
   ifeq 'arg1' 'arg2'

In the second case single or double quotes may be used.

Macros are expanded in the two arguments and the resulting strings
are compared.

Adds 240-248 bytes.
</content>
</entry>
<entry>
<title>make: set $&lt; and $* for target rules</title>
<updated>2024-05-22T11:44:01+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-22T11:44:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=c6b525f2afde0833d21b3f0132961a3b0178bbbb'/>
<id>urn:sha1:c6b525f2afde0833d21b3f0132961a3b0178bbbb</id>
<content type='text'>
POSIX only requires $&lt; and $* to be set for inference rules, not
target rules.

As an extension allow them to be set for target rules, as in
GNU make.  This may or may not be useful.

In POSIX mode, when $&lt; and $* are only set for inference rules,
they're set to an empty string for target rules.  This avoids
the possibility of stale values being used.

Adds 64-80 bytes.

(GitHub issue #407)
</content>
</entry>
<entry>
<title>make: add support for CURDIR macro</title>
<updated>2024-05-22T07:58:13+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-22T07:58:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=eaa8695b76849d8156826a8919a591555c81a3dd'/>
<id>urn:sha1:eaa8695b76849d8156826a8919a591555c81a3dd</id>
<content type='text'>
Austin Group defect report 1626 introduced support for the CURDIR
macro:

   https://www.austingroupbugs.net/view.php?id=1626

Implement this as a POSIX 202X feature.

Adds 160-176 bytes.
</content>
</entry>
</feed>
