<feed xmlns='http://www.w3.org/2005/Atom'>
<title>paraslash/Makefile.real, branch master</title>
<subtitle>paraslash - network audio streaming tools</subtitle>
<id>https://git.tue.mpg.de/cgit/paraslash/atom?h=master</id>
<link rel='self' href='https://git.tue.mpg.de/cgit/paraslash/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/'/>
<updated>2026-07-22T17:29:12Z</updated>
<entry>
<title>Merge topic branch t/gui into master</title>
<updated>2026-07-22T17:29:12Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-07-22T17:27:33Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=7cc57ce9c814a9e815c66c332e7c3d4f721f80c7'/>
<id>urn:sha1:7cc57ce9c814a9e815c66c332e7c3d4f721f80c7</id>
<content type='text'>
Built-in audioc support and a new theme for para_gui
----------------------------------------------------
This series contains two significant improvements for para_gui: (a) The built-in
audioc support and (b) the new figlet theme. The patch that implements (a)
splits audioc.c so that code that can be shared with para_gui goes to the
new audioc_common.c. The next few preparatory patches on top of that rig
up struct gui_theme to give each theme full control over the top window,
paving the way for (b).

* t/gui:
  web: Add/replace gui screenshots.
  gui: Remove the "version" command.
  gui: Rename curses windows.
  gui: New theme: figlet.
  gui: Remove two confusing local variables of init_wins().
  gui: Introduce -&gt;print_status_items() of struct gui_theme.
  gui: Require ncurses.
  gui: Inline clear_all_items().
  gui: Avoid the para_audioc process.
  gui/audiod: Replace for_each_stat_item() by parse_status_items().
  gui: Don't request a minimal delay when an external command is running.
</content>
</entry>
<entry>
<title>Merge topic branch t/test-lib into master</title>
<updated>2026-07-15T14:22:20Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-07-15T14:21:49Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=a0c1a2d01439a2a031ce9aeaf764fbe4d21c1bb7'/>
<id>urn:sha1:a0c1a2d01439a2a031ce9aeaf764fbe4d21c1bb7</id>
<content type='text'>
Improved test suite
-------------------
The test suite has become a little dusty, so here are a few cleanups, one
of which re-enables unrestricted parallel builds.

* t/test-lib:
  test: Change suffix of test scripts to .bash.
  test: Rename makefile.test.
  test: Use bash case modification.
  test: Simplify color output.
  test: Replace echo by printf.
  test: Remove unused --immediate and --long.
  test: Trivial coding style cleanups.
</content>
</entry>
<entry>
<title>gui: Avoid the para_audioc process.</title>
<updated>2026-07-14T18:11:18Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-05-26T21:31:29Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=3f0ad7aef67b6707f52c71931186ab0b20865a1a'/>
<id>urn:sha1:3f0ad7aef67b6707f52c71931186ab0b20865a1a</id>
<content type='text'>
This changes gui.c to no longer spawn a para_audioc process to get the status
items from para_audiod. Instead, the para_gui process connects directly to
audiod using the same mechanism as para_audioc. Besides being more efficient,
this approach has the advantage that status item updates are now atomic in
the sense that complete sideband packages (containing any number of status
items) are received, so torn status items can no longer occur.

To implement this, move the code that can be shared between gui and audioc
to a separate file, audioc_common.c. This file contains only one public
function: connect_audiod(). Since this function uses unix socket magic and
employs the sideband API, para_gui needs to link in net.o and sideband.o,
in addition to the new audioc_common.o.

With these changes in place, para_gui's --stat-command option becomes
unused. Drop it, as it's not worth the pain to introduce a depreciation
period. On the other hand, para_gui now needs an option to specify the path
to the socket on which para_audiod is expected to listen, so move the lopsub
stanza of para_audioc's --socket option to the new socket.m4 file and include
it from both the audioc and the gui lopsub suites.
</content>
</entry>
<entry>
<title>test: Rename makefile.test.</title>
<updated>2026-07-03T18:09:01Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-06-23T16:56:10Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=54913d5ab2ba7d0b9f56ce2752a6e36e4fb030dc'/>
<id>urn:sha1:54913d5ab2ba7d0b9f56ce2752a6e36e4fb030dc</id>
<content type='text'>
The lopsub and the bison makefiles which are included from Makefile.real
are simply called "makefile", so let's be consistent.
</content>
</entry>
<entry>
<title>Makefile: Rename STRICT_CFLAGS to XCFLAGS.</title>
<updated>2026-06-28T16:28:45Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-06-12T21:04:41Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=63bc2e922714a5806245413c35f9fa8ba4ec0b8c'/>
<id>urn:sha1:63bc2e922714a5806245413c35f9fa8ba4ec0b8c</id>
<content type='text'>
This variable used to contain additional flags to enable additional gcc
warnings on Linux, but these days the variable just accumulates options
which are then used on any OS. Avoid the misnomer by renaming the variable
to XCFLAGS, in analogy to the existing XCPPFLAGS.
</content>
</entry>
<entry>
<title>Makefile: Rename CPPFLAGS to XCPPFLAGS.</title>
<updated>2026-06-28T16:28:45Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-06-12T20:58:16Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=f23af60a28827d4d95cc0d98c9f35a0d69bde3c4'/>
<id>urn:sha1:f23af60a28827d4d95cc0d98c9f35a0d69bde3c4</id>
<content type='text'>
Treat this variable in the same way as we handle CFLAGS: Use an internal
variable to assemble the flags, then pass both the internal variable and
$(CPPFLAGS) to the compiler, in this order.

Define the new XCPPFLAGS as a simply expanded make(1) variable, because this
should be faster.
</content>
</entry>
<entry>
<title>Makefile: Don't touch the CFLAGS variable.</title>
<updated>2026-06-28T16:28:45Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-06-12T20:51:56Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=f7639378ac37401bc3a6b2afabfeb6e65b9fcbd6'/>
<id>urn:sha1:f7639378ac37401bc3a6b2afabfeb6e65b9fcbd6</id>
<content type='text'>
We have STRICT_CFLAGS (which is a misnomer, and the variable will be renamed
later in this series) to incrementally assemble the C flags, then pass
$(STRICT_CFLAGS) $(CFLAGS) to the compiler so that the user can overwrite
our choices by setting CFLAGS.
</content>
</entry>
<entry>
<title>Makefile: Make STRICT_CFLAGS simply expanded.</title>
<updated>2026-06-28T16:28:45Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-05-31T19:50:42Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=9528d39b5e0ae41bf803df22e3056d0285f77e67'/>
<id>urn:sha1:9528d39b5e0ae41bf803df22e3056d0285f77e67</id>
<content type='text'>
This innocent looking change made a huge difference on one system with ccache
enabled, where the running time of

	make clean; make -j &gt; /dev/null

went down from 11s to 2s. The reason for this speedup are the three
$(cc-option) calls, Before, we ran the compiler three times per .c file,
just to set STRICT_CFLAGS. Now we run it three times per make invocation.
</content>
</entry>
<entry>
<title>Fix gcc-16 warnings about unterminated strings.</title>
<updated>2026-05-24T18:52:28Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-05-23T20:54:00Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=7736983e1807653817e224b1649a5326decf31bc'/>
<id>urn:sha1:7736983e1807653817e224b1649a5326decf31bc</id>
<content type='text'>
None of the four char arrays are C strings, and they are not supposed to be
passed to functions like strcpy() which look for the first NUL byte.

The nonstring attribute tells the compiler about this fact. Without it, gcc-16
complains, suggesting to annotate the affected variables with __attribute__
((nonstring)). Unfortunately, at least clang-19.1.7 does not know this
attribute and issues a warning, so we check at compile time whether $(CC)
supports it and define __nonstring accordingly.
</content>
</entry>
<entry>
<title>Makefile: Trivial whitespace cleanups.</title>
<updated>2026-04-21T21:38:31Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-04-07T21:02:30Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=9cc3c507a5206d306005bf4988a8351ec75daa0f'/>
<id>urn:sha1:9cc3c507a5206d306005bf4988a8351ec75daa0f</id>
<content type='text'>
Combine two short lines, and remove a space between the target and the colon
that separates targets from prerequisites.
</content>
</entry>
</feed>
