X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=Makefile;h=8b5a1efebb6b7c007868614e2a574865bea1f5f2;hb=29874def63e8c02159516327a7393fdd1da455d1;hp=8c33b28ab233aa92c791d8d39cc433d6fecc9e14;hpb=729b244809295dad81e0510f9d0bcd7a4c00ec00;p=libsvgtiny.git diff --git a/Makefile b/Makefile index 8c33b28..8b5a1ef 100644 --- a/Makefile +++ b/Makefile @@ -1,74 +1,59 @@ +#!/bin/make # -# This file is part of Libsvgtiny -# Licensed under the MIT License, -# http://opensource.org/licenses/mit-license.php -# Copyright 2008 James Bursa +# Makefile for libsvgtiny # - -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- +# Copyright 2009-2015 John-Mark Bell + +# Component settings +COMPONENT := svgtiny +COMPONENT_VERSION := 0.1.4 +# Default to a static library +COMPONENT_TYPE ?= lib-static + +# Setup the tooling +PREFIX ?= /opt/netsurf +NSSHARED ?= $(PREFIX)/share/netsurf-buildsystem +include $(NSSHARED)/makefiles/Makefile.tools + +# Reevaluate when used, as BUILDDIR won't be defined yet +TESTRUNNER = test/runtest.sh $(BUILDDIR) $(EXEEXT) + +# Toolchain flags +WARNFLAGS := -Wall -W -Wundef -Wpointer-arith -Wcast-align \ + -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ + -Wmissing-declarations -Wnested-externs -pedantic +# BeOS/Haiku/AmigaOS standard library headers create warnings +ifneq ($(BUILD),i586-pc-haiku) + ifneq ($(findstring amigaos,$(BUILD)),amigaos) + WARNFLAGS := $(WARNFLAGS) -Werror endif - PREFIX = $(GCCSDK_INSTALL_ENV) -else - CFLAGS += -g `xml2-config --cflags` -fgnu89-inline - LIBS = `xml2-config --libs` - PREFIX = /usr/local 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 $@ $< +CFLAGS := -D_BSD_SOURCE -D_DEFAULT_SOURCE \ + -I$(CURDIR)/include/ -I$(CURDIR)/src \ + $(WARNFLAGS) $(CFLAGS) +ifneq ($(GCCVER),2) + CFLAGS := $(CFLAGS) -std=c99 +else + # __inline__ is a GCCism + CFLAGS := $(CFLAGS) -Dinline="__inline__" +endif -%.c: %.gperf - @echo " GPERF:" $< - @gperf --output-file=$@ $< +# libdom +ifneq ($(PKGCONFIG),) + CFLAGS := $(CFLAGS) \ + $(shell $(PKGCONFIG) $(PKGCONFIGFLAGS) --cflags libdom libwapcaplet) + LDFLAGS := $(LDFLAGS) -lm \ + $(shell $(PKGCONFIG) $(PKGCONFIGFLAGS) --libs libdom libwapcaplet) +else + CFLAGS := $(CFLAGS) -I$(PREFIX)/include + LDFLAGS := $(CFLAGS) -ldom -lwapcaplet -lexpat -lm +endif -install: $(LIBDIR)/libsvgtiny.a - $(INSTALL) -t $(PREFIX)/lib $(LIBDIR)/libsvgtiny.a - $(INSTALL) -t $(PREFIX)/include svgtiny.h +include $(NSBUILD)/Makefile.top -clean: - -rm -rf $(OBJDIR) $(LIBDIR) $(BINDIR) colors.c +# Extra installation rules +I := /$(INCLUDEDIR) +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/svgtiny.h +INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in +INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT)