view Makefile @ 20:08a6d4e6012d

misc: added signature for changeset cf6a2b8642c1
author David Demelier <markand@malikania.fr>
date Wed, 16 Dec 2020 16:20:53 +0100
parents 7f5b3f035bef
children d87e84936795
line wrap: on
line source

#
# Makefile -- simple string buffer for C
#
# Copyright (c) 2019-2020 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.2.0

SRCS=           buf-clear.c \
                buf-dup.c \
                buf-erase.c \
                buf-finish.c \
                buf-init.c \
                buf-printf.c \
                buf-putc.c \
                buf-puts.c \
                buf-reserve.c \
                buf-resize.c \
                buf-shrink.c \
                buf-sub.c \
                buf-vprintf.c \
                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/libgreatest -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 buf-int.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

test: ${TESTS_OBJS}
	for t in ${TESTS_OBJS}; do ./$$t; done

.PHONY: all clean dist install test