diff options
Diffstat (limited to '')
-rw-r--r-- | Makefile | 28 | ||||
-rw-r--r-- | config.mk | 4 | ||||
-rw-r--r-- | libhaiku.c | 8 |
3 files changed, 27 insertions, 13 deletions
@@ -16,21 +16,28 @@ LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR) MAN3 = libhaiku.7 MAN7 = libhaiku_generic.3 libhaiku_perror.3 libhaiku_perror2.3 libhaiku_strerror.3 +OBJ = libhaiku.o +HDR = libhaiku.h + +LOBJ = $(OBJ:.o=.lo) + all: libhaiku.a libhaiku.$(LIBEXT) +$(OBJ): $(HDR) +$(LOBJ): $(HDR) -libhaiku.o: libhaiku.c libhaiku.h - $(CC) -c -o $@ libhaiku.c $(CFLAGS) $(CPPFLAGS) +.c.o: + $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) -libhaiku.lo: libhaiku.c libhaiku.h - $(CC) -fPIC -c -o $@ libhaiku.c $(CFLAGS) $(CPPFLAGS) +.c.lo: + $(CC) -fPIC -c -o $@ $< $(CFLAGS) $(CPPFLAGS) -libhaiku.$(LIBEXT): libhaiku.lo - $(CC) $(LIBFLAGS) -o $@ libhaiku.lo $(LDFLAGS) +libhaiku.$(LIBEXT): $(LOBJ) + $(CC) $(LIBFLAGS) -o $@ $(LOBJ) $(LDFLAGS) -libhaiku.a: libhaiku.o +libhaiku.a: $(OBJ) -rm -f -- $@ - $(AR) rc $@ libhaiku.o + $(AR) rc $@ $(OBJ) $(AR) -s $@ install: libhaiku.$(LIBEXT) libhaiku.a @@ -56,6 +63,9 @@ uninstall: -cd -- "$(DESTDIR)$(MANPREFIX)/man7/" && rm -rf -- $(MAN7) clean: - -rm -f -- *.o *.lo *.a *.su *.$(LIBEXT) *.$(LIBEXT).* *.*.$(LIBEXT) + -rm -f -- *.o *.lo *.a *.su *.$(LIBEXT) *.$(LIBEXT).* + +.SUFFIXES: +.SUFFIXES: .lo .o .c .PHONY: all install uninstall clean @@ -1,6 +1,8 @@ PREFIX = /usr MANPREFIX = $(PREFIX)/share/man -CPPFLAGS = +CC = cc + +CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 CFLAGS = -std=c99 -Wall -O2 LDFLAGS = -s @@ -31,12 +31,14 @@ static int random_int(int n) { static int initialised = 0; - double r, ri; + double r; + int ri; if (!initialised) { srand((unsigned)time(NULL)); initialised = 1; } - r = (double)rand() * (double)n / ((double)RAND_MAX + 1.0); + ri = rand(); + r = (double)ri * (double)n / ((double)RAND_MAX + (double)1); ri = ((int)r) % n; return ri < 0 ? (ri + n) : ri; } @@ -307,4 +309,4 @@ libhaiku_perror2(const char *prefix, int errnum) * @param prefix Unless `NULL` or empty, each line will be prefixed * by the specified string followed by a colon and a space */ -extern void libhaiku_perror(const char *prefix); +extern inline void libhaiku_perror(const char *prefix); |