1#!/bin/make 2# 3# Makefile for libnsutils 4# 5# Copyright 2014-2020 Vincent Sanders <vince@netsurf-browser.org> 6 7# Component settings 8COMPONENT := nsutils 9COMPONENT_VERSION := 0.1.0 10# Default to a static library 11COMPONENT_TYPE ?= lib-static 12 13# Setup the tooling 14PREFIX ?= /opt/netsurf 15NSSHARED ?= $(PREFIX)/share/netsurf-buildsystem 16include $(NSSHARED)/makefiles/Makefile.tools 17 18# Reevaluate when used, as BUILDDIR won't be defined yet 19TESTRUNNER = test/runtest.sh $(BUILDDIR) $(EXEEXT) 20 21# Toolchain flags 22WARNFLAGS := -Wall -W -Wundef -Wpointer-arith -Wcast-align \ 23 -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ 24 -Wmissing-declarations -Wnested-externs 25 26CFLAGS := -D_GNU_SOURCE -D_DEFAULT_SOURCE \ 27 -I$(CURDIR)/include/ -I$(CURDIR)/src $(WARNFLAGS) $(CFLAGS) 28ifneq ($(GCCVER),2) 29 CFLAGS := $(CFLAGS) -std=c99 30else 31 # __inline__ is a GCCism 32 CFLAGS := $(CFLAGS) -Dinline="__inline__" 33endif 34CFLAGS := $(CFLAGS) -D_POSIX_C_SOURCE=200809L 35 36REQUIRED_LIBS := nsutils 37 38# Strictly the requirement for rt is dependant on both the clib and if 39# the build is using rt features like clock_gettime() but this check 40# will suffice 41ifeq ($(HOST),x86_64-linux-gnu) 42 REQUIRED_LIBS := $(REQUIRED_LIBS) rt 43endif 44 45TESTCFLAGS := -g -O2 46TESTLDFLAGS := -lm -l$(COMPONENT) $(TESTLDFLAGS) 47 48include $(NSBUILD)/Makefile.top 49 50# Extra installation rules 51I := /$(INCLUDEDIR)/nsutils 52INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/nsutils/errors.h 53INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/nsutils/base64.h 54INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/nsutils/endian.h 55INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/nsutils/time.h 56INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/nsutils/unistd.h 57INSTALL_ITEMS := $(INSTALL_ITEMS) /libdata/pkgconfig:lib$(COMPONENT).pc.in 58INSTALL_ITEMS := $(INSTALL_ITEMS) /lib:$(OUTPUT) 59