<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nsxiv/config.mk, branch master</title>
<subtitle>Nsxiv image view custom build
</subtitle>
<id>https://git.krolyxon.com/nsxiv/atom?h=master</id>
<link rel='self' href='https://git.krolyxon.com/nsxiv/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/'/>
<updated>2023-05-26T07:06:17Z</updated>
<entry>
<title>make assertions opt-in (#447)</title>
<updated>2023-05-26T07:06:17Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2023-05-26T07:06:17Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=40480596cad8654dca225e7fb136f4151f5df5c0'/>
<id>urn:sha1:40480596cad8654dca225e7fb136f4151f5df5c0</id>
<content type='text'>
slight addendum to 657080a7e55843e351fa6ce41e4ce315eab62b67

instead of disabling asserts by adding -DNDEBUG to config.mk, this
disables asserts by default in the source code itself. this way, if
someone compiles with `make CFLAGS="-O3 -march=native"` without knowing
about asserts/-DNDEBUG then he won't accidentally get a build with
assertions in it.

this basically makes the assertions opt-in, if someone wants it, he'll
need to *explicitly* set `-DDEBUG` to get it. so that it's not possible
to accidentally end up with assertions enabled.

Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/447
Reviewed-by: TAAPArthur &lt;taaparthur@noreply.codeberg.org&gt;
</content>
</entry>
<entry>
<title>config.mk: default to `-O2` and `-DNDEBUG` (#435)</title>
<updated>2023-05-09T00:34:28Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2023-05-09T00:34:28Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=657080a7e55843e351fa6ce41e4ce315eab62b67'/>
<id>urn:sha1:657080a7e55843e351fa6ce41e4ce315eab62b67</id>
<content type='text'>
assertions are for debugging purposes, and so shouldn't be enabled for
"release" builds. disable it by default by using `-DNDEBUG`.

`-O2` on gcc/clang will result it slightly better binary. on tcc it'll
be ignored. and since -O is specified by POSIX there shouldn't be any
portability concern.

additionally add a (commented out) recommended debug build for gcc/clang
with address and undefined sanitizers turned on.

Closes: https://codeberg.org/nsxiv/nsxiv/issues/424
Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/435
Reviewed-by: explosion-mental &lt;explosion-mental@noreply.codeberg.org&gt;
Reviewed-by: eylles &lt;eylles@noreply.codeberg.org&gt;
</content>
</entry>
<entry>
<title>Release version 31</title>
<updated>2023-01-28T10:31:23Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2023-01-15T09:27:25Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=8f0322c2e33cd39208bd2693fde968ba47a93e6e'/>
<id>urn:sha1:8f0322c2e33cd39208bd2693fde968ba47a93e6e</id>
<content type='text'>
Co-authored-by: Berke Kocaoğlu &lt;kberke@metu.edu.tr&gt;
</content>
</entry>
<entry>
<title>add support for multi-frame images via imlib2 (#373)</title>
<updated>2023-01-08T10:02:56Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2023-01-08T10:02:56Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=76c2b81b6077702d3bbd9726b698cd8b6547fc5e'/>
<id>urn:sha1:76c2b81b6077702d3bbd9726b698cd8b6547fc5e</id>
<content type='text'>
this will be a massive change compared to the usual stuff. however the
gains will be worth it:

* we gain lots of additional animated image support.
* and we'll gain _even_ more format support as imlib2 adds them, without needing
  any change in our code-base.
* about ~300 LoC will be purged once we remove our internal gif and webp loader.

as for when to remove the internal loaders, a good time might be when debian
upgrades their imlib2, currently it seems to be at v1.7.5, which doesn't support
animated images.

as of now, nsxiv will continue to build with the internal gif/webp loaders
(assuming they were enabled in config.mk) if imlib2 version is below 1.8.0 and
will print out a deprecation notice.

and if imlib2 version supports multi-frame then it will simply ignore the
internal loaders and use the imlib2 one.

in other words, users shouldn't need to do anything on their side. everything
that previously functioned will continue to function regardless of the user's
imlib2 version (though they might see the annoying deprecation notice if the
imlib2 version doesn't support multi-frame images).

known issue:

* image loading performance can be noticeably worse in
  imlib2 versions below 1.9.0

Closes: https://codeberg.org/nsxiv/nsxiv/issues/301
Closes: https://codeberg.org/nsxiv/nsxiv/issues/300
Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/373
Reviewed-by: TAAPArthur &lt;taaparthur@noreply.codeberg.org&gt;
</content>
</entry>
<entry>
<title>Release version 30</title>
<updated>2022-06-15T14:07:46Z</updated>
<author>
<name>NRK</name>
<email>nrk@noreply.codeberg.org</email>
</author>
<published>2022-06-15T14:07:46Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=33a5d54cae441e447186c640747740dabc0c05fe'/>
<id>urn:sha1:33a5d54cae441e447186c640747740dabc0c05fe</id>
<content type='text'>
Co-authored-by: NRK &lt;nrk@disroot.org&gt;
Co-authored-by: Berke Kocaoğlu &lt;berke.kocaoglu@metu.edu.tr&gt;
</content>
</entry>
<entry>
<title>Makefile: use lowercase for internal macros</title>
<updated>2022-05-30T12:07:01Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2022-05-26T00:08:59Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=c713186ce9861eb4b0246896fd8b003d72994962'/>
<id>urn:sha1:c713186ce9861eb4b0246896fd8b003d72994962</id>
<content type='text'>
ref: 971f5d669490696c11f5c4ede1fee558e05ae4fc
</content>
</entry>
<entry>
<title>config.mk: use c99 as default CC</title>
<updated>2022-05-30T12:07:01Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2022-04-28T04:07:31Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=6c30fb22cc5b065c66fd37ae48da94a11f97193b'/>
<id>urn:sha1:6c30fb22cc5b065c66fd37ae48da94a11f97193b</id>
<content type='text'>
See https://github.com/nsxiv/nsxiv/issues/262#issuecomment-1111216349
for related discussion.
</content>
</entry>
<entry>
<title>config.mk: add comments for OpenBSD users</title>
<updated>2022-05-30T12:07:01Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2022-04-21T21:16:46Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=0d202f0fe182b87c00a6509af5cc6e7a59716cfd'/>
<id>urn:sha1:0d202f0fe182b87c00a6509af5cc6e7a59716cfd</id>
<content type='text'>
Closes: https://github.com/nsxiv/nsxiv/issues/262
</content>
</entry>
<entry>
<title>introduce config.mk</title>
<updated>2022-05-30T12:07:01Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2022-04-21T21:14:03Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=197afce93508d0c17ec8966fb96deed80c3c0f82'/>
<id>urn:sha1:197afce93508d0c17ec8966fb96deed80c3c0f82</id>
<content type='text'>
this moves all the build variables intended to be modified by the user
over to `config.mk` similar to other suckless software.

also move CPPFLAGS down below for cosmetic purposes.
</content>
</entry>
<entry>
<title>Much more portable Makefile</title>
<updated>2017-10-12T09:00:24Z</updated>
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<published>2017-10-12T08:56:03Z</published>
<link rel='alternate' type='text/html' href='https://git.krolyxon.com/nsxiv/commit/?id=5155d52ab18c06925046e2f56a87f2765bb515ba'/>
<id>urn:sha1:5155d52ab18c06925046e2f56a87f2765bb515ba</id>
<content type='text'>
The config.mk file is now optional and only needs to be created if one wants to
persistently overwrite default macro values.

Features used in the Makefile that are not yet in the POSIX standard:

  - Advanced macro assignment operators '+=' and '?=' [1]
  - Special target .PHONY [2]
  - Pattern rules [3]; only needed when $srcdir != '.'. For every pattern rule
    there is an inference rule with the same effect. Hopefully, the inference
    rules get picked up by make programs not supporting pattern rules.
  - Silently including multiple possibly not exisiting files [4] [5]

[1] http://austingroupbugs.net/view.php?id=330
[2] http://austingroupbugs.net/view.php?id=523
[3] http://austingroupbugs.net/view.php?id=513
[4] http://austingroupbugs.net/view.php?id=333
[5] http://austingroupbugs.net/view.php?id=518
</content>
</entry>
</feed>
