sortix-mirror/utils/Makefile
Jonas 'Sortie' Termansen a209c89233 Fix POSIX comformance issues in sort(1).
Fix -C disabling checking rather than checking quietly.

Fix sort(1) exiting 1 on certain errors, as POSIX requires sort(1) to only
exit if the input wasn't sorted when -c.

Fix -o opening the output file for truncation before all the input has been
read, as POSIX requires allowing -o to be an input file.

POSIX requires sort(1) to handle input errors by either erroring with no
output, or by erroring and sorting the input read so far. Change the current
behavior of continuing to the next file to simply failing hard on the first
input error.

Don't increment the last line number on the end of the standard input.

Report -c/-C as incompatible with -o.

Exit unsuccessfully on any output errors.

Update to current coding conventions and add documentation while here.
2018-04-08 20:56:46 +02:00

116 lines
1.5 KiB
Makefile

SOFTWARE_MEANT_FOR_SORTIX=1
include ../build-aux/platform.mak
include ../build-aux/compiler.mak
include ../build-aux/version.mak
include ../build-aux/dirs.mak
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
CFLAGS?=$(OPTLEVEL)
CFLAGS:=$(CFLAGS) -Wall -Wextra
CPPFLAGS:=$(CPPFLAGS) -DVERSIONSTR=\"$(VERSION)\"
BINARIES_EXCEPT_INSTALL:=\
basename \
cat \
chkblayout \
chmod \
chvideomode \
clear \
colormake \
column \
command-not-found \
cp \
date \
df \
dirname \
du \
echo \
env \
expr \
false \
find \
head \
help \
id \
kernelinfo \
kill \
ln \
logname \
ls \
memstat \
mkdir \
mktemp \
mv \
pager \
passwd \
ps \
pstree \
pwd \
readlink \
realpath \
rm \
rmdir \
sleep \
sort \
stat \
tail \
tee \
time \
touch \
tr \
true \
tty \
type \
uname \
uniq \
uptime \
wc \
which \
yes \
BINARIES=\
$(BINARIES_EXCEPT_INSTALL) \
xinstall
MANPAGES1=\
chkblayout.1 \
chvideomode.1 \
kernelinfo.1 \
logname.1 \
memstat.1 \
pager.1 \
passwd.1 \
readlink.1 \
sort.1 \
uname.1 \
SBINS=\
chroot \
unmount \
MANPAGES8=\
chroot.8 \
unmount.8 \
all: $(BINARIES) $(SBINS)
.PHONY: all install clean
install: all
mkdir -p $(DESTDIR)$(BINDIR)
install $(BINARIES_EXCEPT_INSTALL) $(DESTDIR)$(BINDIR)
install xinstall $(DESTDIR)$(BINDIR)/install
mkdir -p $(DESTDIR)$(SBINDIR)
install $(SBINS) $(DESTDIR)$(SBINDIR)
mkdir -p $(DESTDIR)$(MANDIR)/man1
cp $(MANPAGES1) $(DESTDIR)$(MANDIR)/man1
mkdir -p $(DESTDIR)$(MANDIR)/man8
cp $(MANPAGES8) $(DESTDIR)$(MANDIR)/man8
%: %.c
$(CC) -std=gnu11 $(CFLAGS) $(CPPFLAGS) $< -o $@
clean:
rm -f $(BINARIES) $(SBINS) *.o