summaryrefslogtreecommitdiff
path: root/Makefile (follow)
Commit message (Collapse)AuthorAge
* osl-0.2.0.Andre Noll2020-10-15
| | | | | It has been several years since the last release, but finally osl-0.2.0 has arrived. The NEWS file contains a summary of the changes.
* Merge branch 'refs/heads/t/sha3' into masterAndre Noll2020-10-15
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code was written long ago and was sitting in a development branch for some years. As such it was part of the pu branch and so has seen some testing. There's an easy conflict in fsck.c where one side added a function parameter and the other renamed some variables. * refs/heads/t/sha3: Version 3 tables. Add sha3 implementation, introduce version-2 tables. Prepare hash_function() for multiple hash algorithms. Store table version in struct osl_table. Initialize column name hash *after* table version is known. osl_open_table(): Remove pointless directory check. Remove sha1.h. Remove COMPAT_TABLE_VERSION.
| * Version 3 tables.Andre Noll2020-06-17
| | | | | | | | | | | | | | | | | | | | This adds support for yet another hash function: sha256. We keep the Keccak Hash as version #2, because it works well and has been around for years in an experimental branch of this repo. As for Keccak, we only use 20 bytes of the sha256 hash, which is safe enough and helps to keep the patch as small as possible. The sha256 implementation was taken from git v2.25.1.
| * Add sha3 implementation, introduce version-2 tables.Andre Noll2020-06-17
| | | | | | | | | | | | | | | | | | | | | | This adds support for version-2 tables which use a variant of the Keccec hash family rather than sha1. The only difference between the two table versions is the different hash function. Both hash functions create 20-byte output. Version-1 tables are still supported, but new tables are always created in v2 format.
* | build: Fix manual setting of CC.Andre Noll2020-09-23
| | | | | | | | | | | | We want to set CC not only if its value comes from the default origin but also if it is undefined or empty. It's easiest to set it to "cc" whenever its current value is empty.
* | build: Don't set CC twice.Andre Noll2020-09-23
| | | | | | | | Identical code is at the top of the Makefile.
* | build: Tell make(1) that the compiler creates .d files.Andre Noll2020-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | The best way to convey the information that two files are created by the same command involves rules with grouped targets (indicated by the &: separator between targets and prerequisites). However, since grouped targets is a relatively new feature of make(1) and we would like to keep supporting older versions, we use ordinary rules with multiple targets. This should not be worse because the compiler is still run only once for each source file. The patch also introduces the pre_deps make variable to make sure the files listed in this variable are present before we run the compiler.
* | web: Don't duplicate the html header.Andre Noll2020-09-22
| | | | | | | | | | Now that all web pages are in a single directory, we can get rid of some duplication by using header.html also to create index.html.
* | web: Get rid of doxygen.Andre Noll2020-09-22
| | | | | | | | | | | | | | | | | | | | | | Doxygen is an additional dependency, and it's total overkill for a small project like osl. The self-contained gendoc.m4 script does everything we need, and is much faster. This patch converts osl.h.in to gendoc syntax and removes all traces of doxygen. Since gendoc.m4 relies on features of gnu-m4 we run it with -g to enable gnu extensions. This has been tested on FreeBSD and NetBSD which ship different m4 implementations, both of which understand -g.
* | web: Convert QUICK_START to markdown syntax.Andre Noll2020-09-22
| | | | | | | | | | | | | | | | | | This file is rather simple and we don't need doxygen to convert it to html. After this, the quick start document becomes part of the main page. Although this patch modifies almost every line of QUICK_START, the changes to the actual contents have been kept to a minimum.
* | Activate -Wsign-compare.Andre Noll2020-09-12
| | | | | | | | | | | | Currently this option is disabled but the number of warnings it triggers is moderate. This patch fixes all of them and enables the warning.
* | build: Deactivate implicit build make(1) rules.Andre Noll2020-06-17
| | | | | | | | The new comment explains why.
* | build: Mark files generated by lopsub as precious.Andre Noll2020-06-17
| | | | | | | | | | | | Without this, running make(1) with no arguments after a previous successful run would re-generate at least the .lsg.c file. This patch avoids that.
* | build: Remove make(1) targets to build a static library.Andre Noll2020-06-17
| | | | | | | | These targets are not included in the default ("all") target.
* | build: Combine make(1) targets osl_errors.h and osl.h.Andre Noll2020-06-17
| | | | | | | | | | There is no reason for the two-step appoach. After the patch we generate one file less.
* | build: Make sure osl.h exists when we run the compiler.Andre Noll2020-06-17
|/ | | | This fixes the build on NetBSD 9.0_RC1.
* Makefile: Also build osl.h by default.Andre Noll2020-06-15
| | | | | | Otherwise it gets built as root during make install and is thus owned by root. This may cause problems, for example if the source resides on an NFS mounted directory where root is not allowed to write.
* build: Add $(LDFLAGS) to rule for oslfsck.Andre Noll2020-06-07
| | | | | This allows for example to specify an additional -L option if lopsub is not installed at a standard location.
* build: Prefix CFLAGS and friends with OSL_.Andre Noll2020-06-07
| | | | | | | | | | | It is best practice to leave the "official" CPPFLAGS, CFLAGS and LDFLAGS variables alone and just add them at the end of the command line options. This way the user may override any of our settings by setting the corresponding option in the official variable. For example, to deactivate warnings about unused variables or functions, one may compile with make CFLAGS=-Wno-unused
* build: Reorder make variables.Andre Noll2020-06-07
| | | | | | Move and assignment to LDFLAGS up to have the settings of all three sets of flags at one location. Move libname down to where it is needed.
* build: Combine CFLAGS and LIBCFLAGS.Andre Noll2020-06-07
| | | | | | | | | We stopped compiling some object files twice some time ago. Since then, all object files are build with the concatenation of both sets of options. The two variables are only used at this point, so it is safe to combine them.
* build: Simplify LDFLAGS setting.Andre Noll2020-06-07
| | | | | There is no more reason to distinguish between the three supported operating systems. In particular all three support -Wl,-z,defs by now.
* build: Simplify Makefile.Andre Noll2020-06-07
| | | | | Now that only elf is supported we may get rid of the "format" variable and the conditional.
* build: Drop support for SunOS and MacOS.Andre Noll2020-06-07
| | | | | Nobody uses this software on these platforms. It has not been tested for a decade and is likely broken anyway.
* build: Don't insist on gcc.Andre Noll2020-06-07
| | | | On BSD systems gcc might not be installed while cc should always exist.
* build: Create dependencies on the fly.Andre Noll2020-06-07
| | | | | | This is faster since we run the compiler only once. It is more robust, too, because the build does not break if a random .h file is added to the working directory. Using $(wildcard) is almost always a mistake..
* Merge branch 'refs/heads/t/lopsub'Andre Noll2019-06-03
|\ | | | | | | | | | | | | | | | | * refs/heads/t/lopsub: Convert oslfsck to lopsub. The merge conflicted twice for the Makefile because of commit ec08b17c7514 which touched the object list of oslfsck and added -DVERSION to the CPPFLAGs. This was easy to fix, though.
| * Convert oslfsck to lopsub.Andre Noll2017-04-11
| | | | | | | | | | | | | | | | | | | | | | | | The gengetopt project seems to be dead (last release was five years ago), so we eventually need to switch to something else. This commit migrates the option parser of oslfsck to the lopsub library, which turned out to be rather simple. As a result, the osl package no longer depends on gengetopt and help2man. The change only affects the oslfsck executable. No changes to the library proper.
* | build: Fix dependencies for oslfsck.Andre Noll2017-04-19
|/ | | | | | | | | | The autogenerated Makefile.deps does not work for the oslfsck exectutable because we compile the object files for oslfsck without -fPIC to generate more performant code, and name them e.g. util.fsck.o instead of util.o. Geting rid of this optimization not only fixes the dependencies but also simplifies the Makefile and speeds up the build.
* osl-0.1.3.v0.1.3Andre Noll2016-09-19
|
* Convert README and INSTALL to markdown.Andre Noll2016-07-28
| | | | | | | | | The grutatxt project is dead, so we need to switch to something else eventually. Fortunately, only little changes are required for the switch to the markdown markup language as there are only two files in the source tree which are formated with grutatxt. This patch converts both files and adjusts the Makefile to run the markdown converter instead of the grutatxt script.
* web: Create man page with groff rather than man2html.Andre Noll2016-06-04
| | | | | | | | | | | | | | | | | | | The man2html project is dead, as is the link on the osl web page. The URL mentioned in the info of the man2html package for Ubuntu-14.04 still works but might not be the most up to date page on the planet any more: http://users.actrix.gen.nz/michael/vhman2html.html In any case, it's a funny read. Needless to say that the link to the sunsite FTP server is also dead. This commit makes osl independent of man2html, simply by running groff -Thtml instead of man2html. This even simplifies the Makefile a bit. The patch also removes the dead link on the osl main page. We don't need a replacement reference to groff because groff should be installed on all systems anyway.
* Add make target www.Andre Noll2015-12-17
| | | | | | The new target allows to update the web page with "make www", followed by a suitable command to copy the "web" directory to the server. That's as easy as it gets.
* Install relative links to the soname.Andre Noll2014-08-11
| | | | | | | | | | | | On make install, the library is installed to $(libdir)/$(realname) (e.g. /usr/local/lib/libosl.so.0.1.2), and a link is created to map $(linkername) to $(soname) (e.g. /usr/local/lib/libosl.so -> /usr/local/lib/libosl.so.0). This changes the ln command to create a relative link rather than an absolute link. For example, /usr/local/lib/libosl.so now points to libosl.so.0 without the leading directory. This shouldn't matter much but it allows to move both files elsewhere without breaking the link.
* osl-0.1.2.v0.1.2maintAndre Noll2014-01-14
| | | | | This commit also adds a NEWS file which contains the release notes of all previous releases.
* Add shared target.Andre Noll2012-06-13
| | | | | | | | This allows to build and install the shared library and the oslfsck executable on systems without help2man via make shared oslfsck sudo make install-lib install-bin
* Allow to build a static version of libosl.Andre Noll2012-06-13
| | | | | | | | | | | | | | | | | This adds the new target libosl.a which creates an archive that can be statically linked into applications. Currently this works only on ELF-based systems including Linux, FreeBSD and NetBSD, but fails on MacOS. So it is not built automatically. Unfortunately, creating libosl.a turned out to be trickier than expected, because -fvisibility=hidden works only for dynamic libraries. So we need a different method to hide non-static internal symbols like make_message() which must not be global (external) because they might clash with symbols used in the application. objcopy(1) does the trick but we must provide a list of exceptional symbols that should not be made local. This list is generated from the osl.h header file.
* Makefile: Remove unused uname_rs.Andre Noll2011-01-22
|
* osl-0.1.1v0.1.1Andre Noll2009-11-26
|
* Split install target.Andre Noll2009-11-25
| | | | | | | | As proposed by Sebastian Stark, this introduces the install-lib, install-bin and install-man targets. The simple "make install" still installs everything, but splitting the target allows people to install for example only the library if they do not have all tools available which are necessary to build the oslfsck binary or its man page.
* Drop dependency on openssl.Andre Noll2009-11-20
| | | | | | | | | This patch adds git's implementation of the sha1 hash algorithm. This makes osl more self-contained as it allows to build osl without openssl being installed. It should also reduce the startup time of applications that link against libosl.
* Don't use ?:= for setting PREFIX.Andre Noll2009-11-05
| | | | This does not work with all versions of (gnu) make.
* Set CC to gcc by default.Andre Noll2009-11-02
| | | | | | | | | | | On systems where cc != gcc, compilation likely fails because we are using quite some gccisms in osl. So default to gcc but let the user override the default by setting CC manually. The straight-forward CC ?= gcc does not work with gnu make as make assigns CC the default value "cc". Thanks to Steffen Schmidt for pointing out this shortcoming.
* Capitalize prefix variable.Andre Noll2009-11-02
| | | | | | | | As noted by Steffen Schmidt, in most projects the installation prefix is spelled in caps, so follow this rule in osl. Also use ?:= as the assignement operator as it creates a simply expanded variable which is more suitable for the PREFIX variable.
* MacOs Fixes.Andre Noll2009-08-21
| | | | | - Fix name of symbolic link used during installation. - Do not strip the installed library.
* [Makefile]: Also create bindir and mandir on install.v0.1.0Andre Noll2009-08-04
|
* Remove unnecessary $O from gengetopt target.Andre Noll2009-08-01
| | | | Another relict from the paraslash code.
* Merge commit 'fml/master'Andre Noll2009-08-01
|\
| * Add the osl logo.Andre Noll2009-07-27
| | | | | | | | Many thanks to Sebastian Schultheiss who created the logo.
* | Install executables using mode 755.Andre Noll2009-08-01
|/