view GNUmakefile @ 28:f06312a7432b

cmake: enable tests
author David Demelier <markand@malikania.fr>
date Tue, 07 Feb 2023 14:30:33 +0100
parents Makefile@4da5819148c6
children
line wrap: on
line source

#
# GNUmakefile -- GNU 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.
#

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=)

override CFLAGS += -fPIC

all: $(LIB)

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_OBJS): private CFLAGS += -Iextern/libdt -I.
$(TESTS_OBJS): private LDLIBS += $(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