| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
| |
Build lopsubgen twice during cross compilation since it is both run and
installed. This will enable cross building liblopsub on other distributions
such as Yocto or PtxDist.
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| |
|
|
|
| |
Defining .SECONDARY instructs make(1) to never drop the files generated by lex.
This avoids spurious rebuilds, speeding up the build.
|
| |
|
|
|
|
| |
It's good practice to include CPPFLAGS, CFLAGS and LDFLAGS in the
rules which invoke the linker. We already do this for the former two,
so do the same with LDFLAGS as well.
|
| |
|
|
|
|
|
| |
It's sometimes handy to create a static version of the library,
although this is generally frowned upon. No standard target depends
on the new liblopsub.a target, so the static library is not build by
default. One has to explicitly run "make liblopsub.a" to build it.
|
| |
|
|
| |
This provides a way to support local recipes.
|
| |
|
|
| |
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| |
|
|
|
|
|
|
|
|
| |
Replacing lopsub.h by an empty file builds a buggy lopsubgen-stage1
executable which segfaults due to a format string mismatch caused
by the implicit declaration of lls_version(). In this package all
functions are supposed to be declared, so let's fail the build if
any undeclared functions are found.
Tested-by: Alex Gietz <oss@mcdinner.de>
|
| |
|
|
|
|
|
| |
Introduce LLS_CFLAGS and STRICT_CFLAGS to avoid duplicating the flags
in the various cc recipes. We don't touch CFLAGS or CPPFLAGS in the
Makefile but include it the cc commands to let the user override
our settings.
|
| |
|
|
|
|
|
|
|
|
|
| |
Since m4 lacks the -o option to specify an output file, we redirect
stdout in several recipes, in particular in the recipe that creates
lopsub.h from lopsub.h.m4. If the m4 command fails, lopsub.h will
be incomplete or empty, yet it will be considered as up-to-date
by make(1).
This patch teaches make(1) to remove such incomplete output files
on errors.
|
| |
|
|
|
|
|
|
|
|
|
| |
This gives a decent error message on the attempt to run make(1) on a
system where one or both of these essential programs are not installed.
A previous version of the patch used .SHELLSTATUS instead of the
dummy variable, but this did not work with make-4.1 which ships
with Ubuntu-18.04.
Suggested-by: Alex Gietz <oss@mcdinner.de>
|
| |
|
|
| |
Specifying -g more than once has no effect.
|
| |
|
|
|
| |
This was over-engineered, and only one of the three rules which
create .html files depends on both the header and the footer.
|
| |
|
|
|
|
|
|
| |
This target is supposed to create the html files of the home page.
This broke one year ago when the build system was instructed to create
compressed man pages. Fortunately, the fix is trivial.
Fixes: f35b70fc3e8656f71437cc85062da31488acd781
|
| |
|
|
|
|
|
|
|
|
|
| |
Whilst working on the Reproducible Builds effort [0] we noticed that
liblopsub could not be built reproducibly.
This is because it calls "gzip" manually without the -n
flag. This should have been reported by lintian via the
package-contains-timestamped-gzip tag.
[0] https://reproducible-builds.org/
|
| |
|
|
|
|
|
|
| |
Commit bb3a974325f (Don't embed compile-time timestamps into generated
files) from a couple of weeks ago introduced a leading '+' in case
SOURCE_DATE_EPOCH is not set because DATE_FMT already contains the
'+' character for the argument to date(1), The superfluous '+'
becomes part of the generated man pages, which looks a bit weird.
|
| |
|
|
|
|
|
|
|
|
| |
Currently the build is not reproducible because make(1) runs
date(1) to provide the month and the year for the man page. Fix
this by honouring SOURCE_DATE_EPOCH as described in
https://reproducible-builds.org/specs/source-date-epoch/
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As pointed out by Adam Borowski, static linking makes updates tedious.
This patch switches the package over to create a dynamic library
instead.
We have to specify -fPIC for compiling and --shared for linking. The
shared object is called liblopsub.so.X.Y.Z, where X, Y, and Z are
the digits of the version string as created from the git revision by
the version-gen.sh script. The soname for the linker to put into each
executable which is linked against lopsub is liblopsub.so.$X.
The install target is modified to install liblopsub.so.X.Y.Z instead
of liblopsub.a, and it also creates the usual symbolic links for
shared libraries. It does not run ldconfig, though.
Requested-by: Adam Borowski <kilobyte@angband.pl>
|
| |
|
|
|
| |
According to this standard, man pages should go to /usr/share/man
rather than to /usr/man.
|
| |
|
|
|
|
|
|
| |
Man pages should always be installed in compressed form, so run gzip
on all four man pages. We always specify -f so that gzip won't ask
questions, and use the highest compression level because the pages
are compressed only once and decompressed every time the man page
is opened.
|
| |
|
|
|
| |
We currently install liblopsub.a with mode 755, but the executable
bit is not needed. In fact, lintian complains about this.
|
| |
|
|
|
| |
It's strongly recommended to support this feature because it eases
packaging. And it's easy to implement.
|
| |
|
|
|
|
|
|
|
|
| |
All software packages should at least provide the "clean" and "distclean"
targets. So far we only supported the former, which removed all generated
files.
This commit adds the distclean target and modifies the clean target
to only remove files generated by the compiler, but not the files
that were generated by lopsubgen.
|
| |
|
|
|
|
| |
This instructs "make" to pass all the lines in the recipe to a single
invocation of the shell, which is generally a good idea since it
speeds up the build a bit.
|
|
|
This library was under development for over a year and is now ready
for prime time. The code is believed to be mature and no bugs are
known at this time. The API is fully documented and stable, and no
new features are planned. Future fixes and enhancements will take
backwards compatibility into account.
The code used to be part of the paraslash package, but has been
moved to its own repository. All prior commits have been discarded,
so this repository contains only the final result as a single commit.
The input files for the lopsubgen utility and the config file parser
are based on flex. The API documentation is created with gendoc.m4,
a simple m4 file which is part of this repository.
Documentation includes the three man pages lopsub.7, lopsubgen.1 and
lopsub.suite.5 which describe different aspects of the library. There
is also an example application called lopsubex which illustrates
various features of the library.
|