summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJohn Tytgat <joty@netsurf-browser.org>2009-02-01 17:57:22 +0000
committerJohn Tytgat <joty@netsurf-browser.org>2009-02-01 17:57:22 +0000
commit729b244809295dad81e0510f9d0bcd7a4c00ec00 (patch)
treea19d85d29a0d53677cb1903c0be40a72c5b1fd25 /Makefile
parente32462efb87f60c00c2b487cd019ba4193388ab2 (diff)
downloadlibsvgtiny-729b244809295dad81e0510f9d0bcd7a4c00ec00.tar.gz
libsvgtiny-729b244809295dad81e0510f9d0bcd7a4c00ec00.tar.bz2
Prefix build dirs with build- and svn ignore them. Simplify clean rule.
svn path=/trunk/libsvgtiny/; revision=6336
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile74
1 files changed, 74 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..8c33b28
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,74 @@
+#
+# 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)
+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 $@ $<
+
+%.c: %.gperf
+ @echo " GPERF:" $<
+ @gperf --output-file=$@ $<
+
+install: $(LIBDIR)/libsvgtiny.a
+ $(INSTALL) -t $(PREFIX)/lib $(LIBDIR)/libsvgtiny.a
+ $(INSTALL) -t $(PREFIX)/include svgtiny.h
+
+clean:
+ -rm -rf $(OBJDIR) $(LIBDIR) $(BINDIR) colors.c