view Makefile @ 33:a4637d608c7a

misc: added signature for changeset 558f5dfdc67a
author David Demelier <markand@malikania.fr>
date Mon, 28 Mar 2022 21:27:06 +0200
parents dbdc17e11648
children 5493466d6e56
line wrap: on
line source

#
# Makefile -- simple string buffer for C
#
# Copyright (c) 2019-2022 David Demelier <markand@malikania.fr>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#

.POSIX:

.SUFFIXES:
.SUFFIXES: .o .c

CC=             cc
AR=             ar
CFLAGS=         -O3 -DNDEBUG

PREFIX=         /usr/local
INCDIR=         ${PREFIX}/include
LIBDIR=         ${PREFIX}/lib
MANDIR=         ${PREFIX}/share/man

VERSION=        0.3.0

SRCS=           buf.c
OBJS=           ${SRCS:.c=.o}

MAN=            buf_clear.3 \
                buf_dup.3 \
                buf_erase.3 \
                buf_finish.3 \
                buf_init.3 \
                buf_printf.3 \
                buf_putc.3 \
                buf_puts.3 \
                buf_reserve.3 \
                buf_resize.3 \
                buf_shrink.3 \
                buf_sub.3 \
                buf_vprintf.3 \
                libbuf.3

TESTS=          test/test-clear.c \
                test/test-dup.c \
                test/test-erase.c \
                test/test-finish.c \
                test/test-init.c \
                test/test-printf.c \
                test/test-putc.c \
                test/test-puts.c \
                test/test-reserve.c \
                test/test-resize.c \
                test/test-shrink.c \
                test/test-sub.c
TESTS_OBJS=     ${TESTS:.c=}

.c:
	${CC} -Iextern/librexo -I. ${CFLAGS} $< -o $@ libbuf.a

all: libbuf.a

libbuf.a: ${OBJS}
	${AR} -rc $@ ${OBJS}

clean:
	rm -f libbuf.a ${OBJS}
	rm -f ${TESTS_OBJS}

dist:
	rm -rf libbuf-${VERSION}
	mkdir libbuf-${VERSION}
	cp -R test extern libbuf-${VERSION}
	cp ${SRCS} buf.h libbuf-${VERSION}
	cp ${MAN} libbuf-${VERSION}
	cp INSTALL.md LICENSE.md README.md Makefile libbuf-${VERSION}
	tar -cjf libbuf-${VERSION}.tar.xz libbuf-${VERSION}
	rm -rf libbuf-${VERSION}

install:
	mkdir -p ${DESTDIR}${INCDIR}
	mkdir -p ${DESTDIR}${LIBDIR}
	mkdir -p ${DESTDIR}${MANDIR}/man3
	cp buf.h ${DESTDIR}${INCDIR}
	cp libbuf.a ${DESTDIR}${LIBDIR}
	cp ${MAN} ${DESTDIR}${MANDIR}/man3

${TESTS_OBJS}: libbuf.a

tests: ${TESTS_OBJS}
	for t in ${TESTS_OBJS}; do ./$$t -v; done

.PHONY: all clean dist install tests