aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
AgeCommit message (Collapse)Author
2022-08-16add support for long-opts (#332)NRK
Uses [optparse] to add support for long-opts. optparse is posix compliant with getopt(3) and thus would be backwards compatible. It does not have any dependency (not even the c standard library!) and is C89 compatible and thus fits our current code-style. [optparse]: https://github.com/skeeto/optparse Note that we're using a couple `pragma`-s to silence some harmless warnings. This should be portable because these pragma-s don't change the behavior of the program. Furthermore, C standard mandates that unknown pragma's should be ignored by the compiler and thus would not result in build failure on compilers which do not recognize them. Closes: https://codeberg.org/nsxiv/nsxiv/issues/328 Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/332 Reviewed-by: eylles <eylles@noreply.codeberg.org>
2022-08-09Move uncritical files into `etc/` (#350)NRK
This is mainly just to reduce the amount of files in the project root. The criteria of what gets into `etc/` are the following: * The file should not be necessary for building nsxiv. This excludes the `icon/*` stuff since that's needed by `window.c`. * The file shouldn't have any valid reason to stay in the project root. This excludes things like `README.md`, `.gitignore` etc. Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/350 Reviewed-by: explosion-mental <explosion-mental@noreply.codeberg.org>
2022-06-25[ci]: use cppcheck and clang-tidy for static analysisNRK
2022-05-31Makefile: add utf8.h as window.o dependency (#280)N-R-K
unlikely for utf8.h to change, other than syncing with upstream, but doesn't hurt tracking it either ways.
2022-05-30Makefile: use lowercase for internal macrosNRK
ref: 971f5d669490696c11f5c4ede1fee558e05ae4fc
2022-05-30config.mk: add comments for OpenBSD usersNRK
Closes: https://github.com/nsxiv/nsxiv/issues/262
2022-05-30introduce config.mkNRK
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.
2022-04-27merge autoreload_{inotify,nop}.c into autoreload.c (#263)explosion-mental
2022-03-03Release version 29v29N-R-K
2022-02-27Makefile: cleanup non-posix stuff (#225)N-R-K
remove some non-posix extensions which slipped through and adjust ci to new Makefile changes users can still overwrite the variables explicitly by using `make VAR=VALUE` packagers can also add extra libs to LDLIBS, we're internally using NSXIV_LDLIBS now.
2021-12-19specify func argument and related cleanup (#183)N-R-K
* specifies the function argument type in commands.h compared to leaving it unspecified. all the functions in cmd_t must have arg_t as it's argument. * changes to commands.h will now trigger a rebuild - this restores old behavior prior to 12efa0e * cg_quit now uses it's argument as exit status * DestroyNotify invokes cg_quit rather than calling exit directly. * Explicitly pass EXIT_SUCCESS to cgquit in keybinding Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
2021-12-12Release version 28v28N-R-K
Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
2021-10-13Add ability to bind arbitrary functions.Arthur Williams
Before all the predated commands where kept in an array and their indexes were used in bindings. This meant that users couldn't add their own functions from the config file. Now key/mouse bindings have been changed to to store the function ptr (wrapped in a cmd_t struct to also store the mode) directly instead. General cleanup done in this commit: Defined `MODE_ALL` instead of using magic number. For example, suppose one had bindings like: { 0, XK_q, g_quit, None }, { ShitMask, XK_q, {quit_err}, None } { ControlMask, XK_q, {quit_err, .mode=MODE_IMAGE}, None } The existing binding `q` has been left unchanged and is defined the same way. However, the new hypothetical binding `Shift-q` can be used to call the custom function quit_err in any mode (default). `Ctrl-q` on the other hand will be called only on image mode. Closes #50
2021-10-09Make statusbar optional (#95)Arthur Williams
libXft and libfontconfig are now optional dependencies which can be disabled via `HAVE_LIBFONTS=0`. Disabling them means disabling the statusbar. This also does not search for freetype2 header if disabled. Co-authored-by: NRK <nrk@disroot.org>
2021-10-03Rework build system v2 (#71)N-R-K
* Remove non-POSIX extensions and commands * Drop autodetection in favor of OPT_DEP_DEFAULT * Use += for LDLIBS as some BSD distros need to add extra flags * Change DOCPREFIX -> EGPREFIX * Use ?= for MANPREFIX and EGPREFIX * Update docs With this, we should have a stable build system. No further significant changes should be needed.
2021-09-25Rename icon & desktop and add install-all in Makefile (#96)Berke Kocaoğlu
* Rename in Makefile Renamed {icon,desktop} => install-{icon,desktop} * Add install-all in Makefile * Added .PHONY targets and renamed icon_cleanup Added .PHONY targets and renamed icon_cleanup to uninstall_icon * Update README.md Co-authored-by: TAAPArthur <taaparthur@gmail.com>
2021-09-24Add animated webp support (#20)Sam Whitehead
Co-authored-by: NRK <nrk@disroot.org> Co-authored-by: Stein Gunnar Bakkeby <bakkeby@gmail.com> Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
2021-09-23Add desktop and icon rules to Makefile, document icon installation (#80)Guilherme Rugai Freire
Co-authored-by: NRK <nrk@disroot.org>
2021-09-22Change location of example scripts (#86)Berke Kocaoğlu
* Use DOCPREFIX similar to MANPREFIX Co-authored-by: NRK <nrk@disroot.org>
2021-09-17Stable version 27.1v27.1NRK
2021-09-17fix build when not git clonedNRK
2021-09-16Rename, Update Docs and Prepare for Release (#9)Berke Kocaoğlu
Co-authored-by: Guilherme Rugai Freire <41879254+GRFreire@users.noreply.github.com> Co-authored-by: N-R-K <79544946+N-R-K@users.noreply.github.com> Co-authored-by: NRK <nrk@disroot.org> Co-authored-by: Arthur Williams <taaparthur@gmail.com> Co-authored-by: eylles <ed.ylles1997@gmail.com>
2021-09-16Rework the build system (#19)TAAPArthur
* Added simple configure script Added simple script to autodetect if optional dependencies are installed and enable/disable them as needed. Note this solution uses the compiler directly instead of an external program like pkgconfig so it doesn't require any extra dependencies. It is intended to work with any arbitrary compiler; it has been tested with tcc and gcc. There are some "breaking" changes hidden here - HAVE_GIFLIB was renamed to HAVE_LIBGIF to match HAVE_LIBEXIF - Simply typing `make` will no longer try to build with optional dependencies * use implicit RM variable * General clean-up in configure - Use printf instead of echo - Format style * honor env PREFIX, use LDLIBS * Revert "General clean-up in configure" This reverts commit 8683c179dbf273a330f9a224a4d481a7bea42c5f. * honor env LDFLAGS if set * Don't set OPTIONAL_LIBS in configure * make OBJ all caps * follow suckless style build system - remove configure script. - HAVE_LIBGIF and HAVE_LIBEXIF defaults back to 1 - unload several varibales onto config.mk - make version all-caps - add -O2 optimization - use CPPFLAGS for includes and defines * Revert "follow suckless style build system" This reverts commit 8bf75b1f68d72df349edba8d998d4659dd956dd8. * Generate config.mk from make * Inlined configure in Makefile * update docs * cleanups - changes to config.mk should trigger a rebuild - remove potentially confusing variables form Makefile * Use install instead of mkdir/cp/chmod when sensible * fixup! Inlined configure in Makefile * Don't generate config.mk on rm -f *.o sxiv * update docs and cleanups - make config.mk silent - mention editing config.mk in README * fallback to 0 if user edits config.mk in unexpected way * add comment on config.mk * remove invalid comment configure script is removed * slight restructure - make version all caps - restructure variables that users may want to edit to top - use CPPFLAGS for defines - add some comments - remove needless echos since we have verbose output now * add echos back Co-authored-by: NRK <nrk@disroot.org> Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
2020-01-16Stable version 26v26Bert Münnich
2019-02-16Search freetype headers under PREFIX tooBert Münnich
Related to PR #346.
2019-01-26Stable version 25v25Bert Münnich
2018-10-11Revise MakefileBert Münnich
Use uppercase for externally defined macros and lowercase for macros defined in the makefile. Also simplify generation of version.h.
2018-06-09New version schemeBert Münnich
VERSION string between releases is last release suffixed with '+'. Additionally, use output of git-describe instead of VERSION string, if it is not empty.
2018-04-11Initialize window bar buffers to empty stringBert Münnich
Fixes issue #308.
2018-01-22Use argument to select between two drag methodsphi
2018-01-09RefactoringBert Münnich
2017-12-07Left bar shows file name as given by userBert Münnich
2017-12-07Try to match a fallback font if neededSquibby
Fixes #276 Instead of rendering the entire filename at once, Xft will let us do it character by character. This will allow sxiv to query fontconfig for a font that can provide any missing codepoints, if needed. A known issue of this patch is that the "..." dots rendering will not work properly for very long multibyte filenames. That is because we cannot easily predict the final width of the rendered filename before drawing it. I couldn't figure out a clean way to deal with this, so I ended up just truncating the offending filenames.
2017-11-23Reject text files resembling TGA imagesBert Münnich
Fixes issue #295 The imlib2 TGA loader returns an imlib image handle without any actual data when given a text file like this: T Content-Type: application/javascript Content-Length: 3836 Last-Modified: Wed, 23 Sep 2015 12:25:47 GMT Etag: "56029a4b-efc" Expires: Sat, 20 Aug 2016 15:14:33 GMT Cache-Control: max-age=604800, public Accept-Ranges: bytes Fortunately, `imlib_image_get_data()` returns NULL in this case, so that we can use it as an additional check when opening files.
2017-10-27Stable version 24v24Bert Münnich
2017-10-26Fix navigating from last to previous image over invalid filesBert Münnich
2017-10-24Set LC_COLLATE for -r file list sortingBert Münnich
Fixes issue #293.
2017-10-23List objs in Makefile not srcsBert Münnich
2017-10-23Make clean removes all object filesBert Münnich
2017-10-22Always take {C,CPP,LD}FLAGS from environmentBert Münnich
Our own default values go into accompanying macros prefixed with DEF_.
2017-10-19Back to VPATH for out-of-source buildsBert Münnich
OpenBSD make supports VPATH but not pattern rules. Everything in the new Makefile should work no matter what make program is used.
2017-10-19Addendum to 1ace4fb0Bert Münnich
2017-10-16No more automatic dependency trackingBert Münnich
The new Makefile should work with the make programs shipped with FreeBSD, NetBSD and OpenBSD.
2017-10-16No more config.mkBert Münnich
2017-10-16Small refinements in MakefileBert Münnich
2017-10-16Fix dep file include in MakefileBert Münnich
2017-10-16Zoom into mouse cursor positionBert Münnich
2017-10-12Much more portable MakefileBert Münnich
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
2017-10-08Always include non-configurable part of CPPFLAGSBert Münnich
2017-10-08Move DEPFLAGS from Makefile to config.mkBert Münnich