-#
-# This file is part of Libsvgtiny
-# Licensed under the MIT License,
-# http://opensource.org/licenses/mit-license.php
-# Copyright 2008 James Bursa <james@semichrome.net>
-#
-
-SOURCE = svgtiny.c svgtiny_gradient.c svgtiny_list.c colors.c
-HDRS = svgtiny.h svgtiny_internal.h
-
-CFLAGS = -std=c99 -W -Wall -Wundef -Wpointer-arith -Wcast-qual \
- -Wcast-align -Wwrite-strings -Wstrict-prototypes \
- -Wmissing-prototypes -Wmissing-declarations \
- -Wnested-externs -Winline -Wno-cast-align
-ARFLAGS = cr
-INSTALL = install
-
-ifeq ($(TARGET),riscos)
- GCCSDK_INSTALL_CROSSBIN ?= /home/riscos/cross/bin
- GCCSDK_INSTALL_ENV ?= /home/riscos/env
- CC := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*gcc)
- AR := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*ar)
- CFLAGS += -Driscos -mpoke-function-name -I$(GCCSDK_INSTALL_ENV)/include \
- -I$(GCCSDK_INSTALL_ENV)/include/libxml2
- LIBS = -L$(GCCSDK_INSTALL_ENV)/lib -lxml2 -lz
- ifneq (,$(findstring arm-unknown-riscos-gcc,$(CC)))
- EXEEXT := ,e1f
- SUBTARGET := -elf-
- else
- EXEEXT := ,ff8
- SUBTARGET := -aof-
- endif
- PREFIX = $(GCCSDK_INSTALL_ENV)
+# Component settings
+COMPONENT := svgtiny
+COMPONENT_VERSION := 0.0.1
+# Default to a static library
+COMPONENT_TYPE ?= lib-static
+
+# Setup the tooling
+include build/makefiles/Makefile.tools
+
+# Toolchain flags
+WARNFLAGS := -Wall -Wundef -Wpointer-arith -Wcast-align \
+ -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \
+ -Wmissing-declarations -Wnested-externs -Werror -pedantic
+ifneq ($(GCCVER),2)
+ WARNFLAGS := $(WARNFLAGS) -Wextra
+endif
+CFLAGS := -D_BSD_SOURCE -I$(CURDIR)/include/ \
+ -I$(CURDIR)/src $(WARNFLAGS) $(CFLAGS)
+ifneq ($(GCCVER),2)
+ CFLAGS := $(CFLAGS) -std=c99
else
- CFLAGS += -g `xml2-config --cflags` -fgnu89-inline
- LIBS = `xml2-config --libs`
- PREFIX = /usr/local
+ # __inline__ is a GCCism
+ CFLAGS := $(CFLAGS) -Dinline="__inline__"
endif
-OBJDIR = build-$(TARGET)$(SUBTARGET)objects
-LIBDIR = build-$(TARGET)$(SUBTARGET)lib
-BINDIR = build-$(TARGET)$(SUBTARGET)bin
-
-OBJS = $(addprefix $(OBJDIR)/, $(SOURCE:.c=.o))
-
-.PHONY: all install clean
-
-all: $(LIBDIR)/libsvgtiny.a $(BINDIR)/svgtiny_test$(EXEEXT) colors.c
-
-$(LIBDIR)/libsvgtiny.a: $(OBJS)
- @echo " LINK:" $@
- @mkdir -p $(LIBDIR)
- @$(AR) $(ARFLAGS) $@ $(OBJS)
-
-$(BINDIR)/svgtiny_test$(EXEEXT): svgtiny_test.c $(LIBDIR)/libsvgtiny.a
- @echo " LINK:" $@
- @mkdir -p $(BINDIR)
- @$(CC) $(CFLAGS) $(LIBS) -o $@ $^
-
-$(OBJDIR)/%.o: %.c $(HDRS)
- @echo " COMPILE:" $<
- @mkdir -p $(OBJDIR)
- @$(CC) $(CFLAGS) -c -o $@ $<
-
-%.c: %.gperf
- @echo " GPERF:" $<
- @gperf --output-file=$@ $<
-
-install: $(LIBDIR)/libsvgtiny.a
- $(INSTALL) -t $(PREFIX)/lib $(LIBDIR)/libsvgtiny.a
- $(INSTALL) -t $(PREFIX)/include svgtiny.h
+include build/makefiles/Makefile.top
-clean:
- -rm -rf $(OBJDIR) $(LIBDIR) $(BINDIR) colors.c
+# Extra installation rules
+I := /include
+INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/svgtiny.h
+INSTALL_ITEMS := $(INSTALL_ITEMS) /lib/pkgconfig:lib$(COMPONENT).pc.in
+INSTALL_ITEMS := $(INSTALL_ITEMS) /lib:$(OUTPUT)