1
0
mirror of git://git.suckless.org/sbase synced 2024-12-21 22:50:16 +00:00
sbase/Makefile
Elie Le Vaillant 2677235ed7 libutil: add random.c
Some programs need a good PRNG, such as shuf(1), or cron(1).  This adds
to libutil a random_uniform function which simply solves the problem of
creating integers uniformly in a range.  random_seed seeds the
generator.  arc4random would probably be a better PRNG than random, but
it is less portable unfortunately.
2024-12-19 12:28:05 +01:00

256 lines
3.5 KiB
Makefile

.POSIX:
include config.mk
.SUFFIXES:
.SUFFIXES: .o .c
CPPFLAGS =\
-D_DEFAULT_SOURCE \
-D_NETBSD_SOURCE \
-D_BSD_SOURCE \
-D_XOPEN_SOURCE=700 \
-D_FILE_OFFSET_BITS=64
HDR =\
arg.h\
compat.h\
crypt.h\
fs.h\
md5.h\
queue.h\
sha1.h\
sha224.h\
sha256.h\
sha384.h\
sha512.h\
sha512-224.h\
sha512-256.h\
text.h\
utf.h\
util.h
LIBUTFOBJ =\
libutf/fgetrune.o\
libutf/fputrune.o\
libutf/isalnumrune.o\
libutf/isalpharune.o\
libutf/isblankrune.o\
libutf/iscntrlrune.o\
libutf/isdigitrune.o\
libutf/isgraphrune.o\
libutf/isprintrune.o\
libutf/ispunctrune.o\
libutf/isspacerune.o\
libutf/istitlerune.o\
libutf/isxdigitrune.o\
libutf/lowerrune.o\
libutf/rune.o\
libutf/runetype.o\
libutf/upperrune.o\
libutf/utf.o\
libutf/utftorunestr.o
LIBUTILOBJ =\
libutil/concat.o\
libutil/cp.o\
libutil/crypt.o\
libutil/ealloc.o\
libutil/enmasse.o\
libutil/eprintf.o\
libutil/eregcomp.o\
libutil/estrtod.o\
libutil/fnck.o\
libutil/fshut.o\
libutil/getlines.o\
libutil/human.o\
libutil/linecmp.o\
libutil/md5.o\
libutil/memmem.o\
libutil/mkdirp.o\
libutil/mode.o\
libutil/parseoffset.o\
libutil/putword.o\
libutil/reallocarray.o\
libutil/recurse.o\
libutil/rm.o\
libutil/sha1.o\
libutil/sha224.o\
libutil/sha256.o\
libutil/sha384.o\
libutil/sha512.o\
libutil/sha512-224.o\
libutil/sha512-256.o\
libutil/strcasestr.o\
libutil/strlcat.o\
libutil/strlcpy.o\
libutil/strsep.o\
libutil/strnsubst.o\
libutil/strtonum.o\
libutil/random.o\
libutil/unescape.o\
libutil/writeall.o
LIB = libutf.a libutil.a
BIN =\
basename\
cal\
cat\
chgrp\
chmod\
chown\
chroot\
cksum\
cmp\
cols\
comm\
cp\
cron\
cut\
date\
dd\
dirname\
du\
echo\
ed\
env\
expand\
expr\
false\
find\
flock\
fold\
getconf\
grep\
head\
hostname\
join\
kill\
link\
ln\
logger\
logname\
ls\
md5sum\
mkdir\
mkfifo\
mknod\
mktemp\
mv\
nice\
nl\
nohup\
od\
paste\
pathchk\
printenv\
printf\
pwd\
readlink\
renice\
rev\
rm\
rmdir\
sed\
seq\
setsid\
sha1sum\
sha224sum\
sha256sum\
sha384sum\
sha512sum\
sha512-224sum\
sha512-256sum\
sleep\
sort\
split\
sponge\
strings\
sync\
tail\
tar\
tee\
test\
tftp\
time\
touch\
tr\
true\
tsort\
tty\
uname\
unexpand\
uniq\
unlink\
uudecode\
uuencode\
wc\
which\
whoami\
xargs\
xinstall\
yes
OBJ = $(LIBUTFOBJ) $(LIBUTILOBJ)
all: $(BIN)
$(BIN): $(LIB)
$(OBJ) $(BIN): $(HDR)
.o:
$(CC) $(LDFLAGS) -o $@ $< $(LIB)
.c.o:
$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
.c:
$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< $(LIB)
libutf.a: $(LIBUTFOBJ)
$(AR) $(ARFLAGS) $@ $?
$(RANLIB) $@
libutil.a: $(LIBUTILOBJ)
$(AR) $(ARFLAGS) $@ $?
$(RANLIB) $@
getconf.o: getconf.h
getconf.h:
scripts/getconf.sh > $@
proto: $(BIN)
scripts/mkproto $(DESTDIR)$(PREFIX) $(DESTDIR)$(MANPREFIX) proto
install uninstall: proto
scripts/$@ proto
sbase-box-install: sbase-box proto
scripts/install proto
$(DESTDIR)$(PREFIX)/bin/sbase-box -i $(DESTDIR)$(PREFIX)/bin/
sbase-box-uninstall: sbase-box proto
$(DESTDIR)$(PREFIX)/bin/sbase-box -d $(DESTDIR)$(PREFIX)/bin/
scripts/uninstall proto
dist: clean
mkdir -p sbase-$(VERSION)
cp -r LICENSE Makefile README TODO config.mk *.c *.1 *.h libutf libutil sbase-$(VERSION)
tar -cf sbase-$(VERSION).tar sbase-$(VERSION)
gzip sbase-$(VERSION).tar
rm -rf sbase-$(VERSION)
sbase-box: $(BIN)
scripts/mkbox
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ build/*.c $(LIB)
clean:
rm -f $(BIN) $(OBJ) $(LIB) sbase-box sbase-$(VERSION).tar.gz
rm -f getconf.h
rm -f proto
rm -rf build
.PHONY: all install uninstall dist sbase-box-install sbase-box-uninstall clean