]> gitweb.michael.orlitzky.com - libsvgtiny.git/blob - makefile
GCCSDK 4 build compatibility (not finished yet)
[libsvgtiny.git] / makefile
1 #
2 # This file is part of Libsvgtiny
3 # Licensed under the MIT License,
4 # http://opensource.org/licenses/mit-license.php
5 # Copyright 2008 James Bursa <james@semichrome.net>
6 #
7
8 SOURCE = svgtiny.c svgtiny_gradient.c svgtiny_list.c colors.c
9 HDRS = svgtiny.h svgtiny_internal.h
10
11 CFLAGS = -std=c99 -W -Wall -Wundef -Wpointer-arith -Wcast-qual \
12 -Wcast-align -Wwrite-strings -Wstrict-prototypes \
13 -Wmissing-prototypes -Wmissing-declarations \
14 -Wnested-externs -Winline -Wno-cast-align
15 ARFLAGS = cr
16 INSTALL = install
17
18 ifeq ($(TARGET),riscos)
19 GCCSDK_INSTALL_CROSSBIN ?= /home/riscos/cross/bin
20 GCCSDK_INSTALL_ENV ?= /home/riscos/env
21 CC := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*gcc)
22 AR := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*ar)
23 CFLAGS += -Driscos -mpoke-function-name -I$(GCCSDK_INSTALL_ENV)/include \
24 -I$(GCCSDK_INSTALL_ENV)/include/libxml2
25 LIBS = -L$(GCCSDK_INSTALL_ENV)/lib -lxml2 -lz
26 ifneq (,$(findstring arm-unknown-riscos-gcc,$(CC)))
27 EXEEXT := ,e1f
28 SUBTARGET := -elf-
29 else
30 EXEEXT := ,ff8
31 SUBTARGET := -aof-
32 endif
33 PREFIX = $(GCCSDK_INSTALL_ENV)
34 else
35 CFLAGS += -g `xml2-config --cflags` -fgnu89-inline
36 LIBS = `xml2-config --libs`
37 PREFIX = /usr/local
38 endif
39
40 OBJDIR = $(TARGET)$(SUBTARGET)objects
41 LIBDIR = $(TARGET)$(SUBTARGET)lib
42 BINDIR = $(TARGET)$(SUBTARGET)bin
43
44 OBJS = $(addprefix $(OBJDIR)/, $(SOURCE:.c=.o))
45
46 .PHONY: all install clean
47
48 all: $(LIBDIR)/libsvgtiny.a $(BINDIR)/svgtiny_test$(EXEEXT) colors.c
49
50 $(LIBDIR)/libsvgtiny.a: $(OBJS)
51 @echo " LINK:" $@
52 @mkdir -p $(LIBDIR)
53 @$(AR) $(ARFLAGS) $@ $(OBJS)
54
55 $(BINDIR)/svgtiny_test$(EXEEXT): svgtiny_test.c $(LIBDIR)/libsvgtiny.a
56 @echo " LINK:" $@
57 @mkdir -p $(BINDIR)
58 @$(CC) $(CFLAGS) $(LIBS) -o $@ $^
59
60 $(OBJDIR)/%.o: %.c $(HDRS)
61 @echo " COMPILE:" $<
62 @mkdir -p $(OBJDIR)
63 @$(CC) $(CFLAGS) -c -o $@ $<
64
65 %.c: %.gperf
66 @echo " GPERF:" $<
67 @gperf --output-file=$@ $<
68
69 install: $(LIBDIR)/libsvgtiny.a
70 $(INSTALL) -t $(PREFIX)/lib $(LIBDIR)/libsvgtiny.a
71 $(INSTALL) -t $(PREFIX)/include svgtiny.h
72
73 clean:
74 -rm $(OBJS) $(LIBDIR)/libsvgtiny.a $(BINDIR)/svgtiny_test$(EXEEXT) colors.c
75