view Makefile @ 27:4da5819148c6

misc: update copyright years
author David Demelier <markand@malikania.fr>
date Wed, 01 Feb 2023 13:07:04 +0100
parents 887a8fd73d1e
children
line wrap: on
line source

#
# Makefile -- basic Makefile for libunicode
#
# Copyright (c) 2013-2023 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:

CC=             cc

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

VERSION=        1.0.0

LIB_SRCS=       unicode.c
LIB_OBJS=       ${LIB_SRCS:.c=.o}
LIB_DEPS=       ${LIB_SRCS:.c=.d}
LIB=            libunicode.a

TESTS_SRCS=     tests/test-unicode.c
TESTS_OBJS=     ${TESTS_SRCS:.c=}

.SUFFIXES:
.SUFFIXES: .c .o

all: ${LIB}

-include ${LIB_DEPS}

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

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

gen/UnicodeData.txt:
	curl http://unicode.org/Public/UCD/latest/ucd/UnicodeData.txt -o $@

unicode.c: gen/UnicodeData.txt gen/mkutf.awk
	cat gen/unicode-before.c > unicode.c
	cat gen/UnicodeData.txt | awk -f gen/mkutf.awk >> unicode.c
	cat gen/unicode-after.c >> unicode.c

${LIB}: ${LIB_OBJS}
	${AR} -rc $@ ${LIB_OBJS}

${TESTS_OBJS}: ${LIB}

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

install:
	mkdir -p ${DESTDIR}${LIBDIR}
	cp libunicode.a ${DESTDIR}${LIBDIR}
	mkdir -p ${DESTDIR}${INCDIR}
	cp unicode.h ${DESTDIR}${INCDIR}
	mkdir -p ${DESTDIR}${MANDIR}/man3
	cp libunicode.3 ${DESTDIR}${MANDIR}/man3

clean:
	rm -f ${LIB} ${LIB_DEPS} ${LIB_OBJS} ${TESTS_OBJS}

.PHONY: all clean install tests