aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAge
* remove make deb and use make deb-apparmor to build packagesLibravatar netblue302022-12-19
|
* Add basic gtksourceview language-spec (#5502)Libravatar rusty-snake2022-12-04
| | | | | | | Tested with org.gnome.TextEditor. The gtksourceview language-spec hasn't changed between gtksourceview 3, 4 and 5 AFAIK so it should also work on older systems if you copy/link the file in the right places.
* makefiles: include config.mk directlyLibravatar Kelvin M. Klann2022-11-21
| | | | | | | Instead of including it through src/common.mk. This allows each makefile to directly override any value defined in config.mk.
* Makefile: put the all target after variablesLibravatar Kelvin M. Klann2022-11-21
| | | | | | | This should make it more consistent with the other makefiles (especially considering the subsequent deduplication commits on this branch) and enables it to depend on the variables in question (as variables in dependencies are immediately expanded, at least by default).
* --icmptraceLibravatar netblue302022-10-24
|
* build: only install ids.config when --enable-ids is set (#5357)Libravatar glitsj162022-09-04
| | | | This PR ensures ids.config only gets installed when --enable-ids is set during configure. Fixes #5356.
* build: use TARNAME instead of NAME for pathsLibravatar Kelvin M. Klann2022-08-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PACKAGE_TARNAME is the same as PACKAGE_NAME but normalized, so it should be safer to use in paths. For example, on a downstream project, if spaces or shell metacharacters are added to the package name, a path that uses PACKAGE_TARNAME should keep working. From the manual of GNU Autoconf (version 2.69): > -- Macro: AC_INIT (PACKAGE, VERSION, [BUG-REPORT], [TARNAME], [URL]) > Process any command-line arguments and perform initialization and > verification. > > Set the name of the PACKAGE and its VERSION. These are typically > used in '--version' support, including that of 'configure'. The > optional argument BUG-REPORT should be the email to which users > should send bug reports. The package TARNAME differs from > PACKAGE: the latter designates the full package name (e.g., 'GNU > Autoconf'), while the former is meant for distribution tar ball > names (e.g., 'autoconf'). It defaults to PACKAGE with 'GNU ' > stripped, lower-cased, and all characters other than > alphanumerics and underscores are changed to '-'. Note also that by default (on autoconf v2.69), `docdir=@docdir@` in config.mk.in expands to the following in config.mk: docdir=${datarootdir}/doc/${PACKAGE_TARNAME}
* build: rename DOCDIR to docdirLibravatar Kelvin M. Klann2022-08-13
| | | | To match other similar variables, such as datarootdir and mandir.
* Add files `make uninstall` forgot to removeLibravatar Tommy Nguyen2022-08-01
| | | | | There were a couple of files leftover after `make uninstall`. This patch fixes that.
* makefiles: add generated files as dependenciesLibravatar Kelvin M. Klann2022-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the previous commit ("makefiles: stop failing when config.mk does not exist", 2022-06-23), make will not immediately fail when trying to build a target without having the proper compile-time flags (which are defined on common.mk). For example, when running the command below: make distclean && make It will throw an error only after (mis-)compiling multiple objects. So add a dependency on config.mk on every target that uses output variables (such as @NAME@ / $(NAME)) on its recipe. And add a dependency on config.sh on targets that call shell scripts that use output variables (such as @NAME@ / $NAME). Also, add a recipe for config.mk / config.sh telling to run ./configure, to make it a bit more obvious just in case. With this commit, make will abort earlier, by detecting that the config.mk / config.sh dependency does not exist. This happens before trying to execute the recipe. This also makes the dependencies more accurate, since if config.mk (which defines some CFLAGS) is changed, the CFLAGS may also have changed, so a target that uses CFLAGS should probably be considered out of date in this case anyway. Relates to #5140.
* makefiles: stop failing when config.mk does not existLibravatar Kelvin M. Klann2022-06-30
| | | | | | | | | | | | | | | | | | | This allows running `make clean` and `make distclean` (and possibly others) without having to run ./configure beforehand. Note that some packaging-related targets still depend on the existence of generated files. For example: * dist: config.mk * deb: config.sh Commands used to search and replace: $ git grep -Elz 'include *([^ ]*/)?config.mk' | xargs -0 -I '{}' \ sh -c "printf '%s\n' \ \"\$(sed -E 's|^include *(([^ ]*/)?config.mk)|-include \1|' '{}')\" >'{}'" Relates to #5140.
* build: reduce autoconf input files from 32 to 2Libravatar Kelvin M. Klann2022-06-30
Configure summary: autoconf essentially only parses configure.ac and generates the configure script (that is, the "./configure" shell script). The latter is what actually checks what is available on the system and internally sets the value of the output variables. It then, for every filename foo in AC_CONFIG_FILES (and for every output variable name BAR in AC_SUBST), reads foo.in, replaces every occurrence of `@BAR@` with the value of the shell variable `$BAR` and generates the file foo from the result. After this, configure is finished and `make` could be executed to start the build. Now that (as of #5140) all output variables are only defined on config.mk.in and on config.sh.in, there is no need to generate any makefile nor any other mkfile or shell script at configure time. So rename every "Makefile.in" to "Makefile", mkdeb.sh.in to mkdeb.sh, src/common.mk.in to src/common.mk and leave just config.mk and config.sh as the files to be generated at configure time. This allows editing and committing all makefiles directly, without potentially having to run ./configure in between. Commands used to rename the makefiles: $ git ls-files -z -- '*Makefile.in' | xargs -0 -I '{}' sh -c \ "git mv '{}' \"\$(dirname '{}')/Makefile\"" Additionally, from my (rudimentary) testing, this commit reduces the time it takes to run ./configure by about 20~25% compared to commit 72ece92ea ("Transmission fixes: drop private-lib (#5213)", 2022-06-22). Environment: dash 0.5.11.5-1, gcc 12.1.0-2, Artix Linux, ext4 on an HDD. Commands used for benchmarking each commit: $ : >time_configure && ./configure && make distclean && for i in $(seq 1 10); do { time -p ./configure; } 2>>time_configure; done $ grep real time_configure | awk '{ total += $2 } END { print total/NR }'