]> gitweb.michael.orlitzky.com - libsvgtiny.git/blob - makefile
565e46e52e0a69363782dbf2943a52196ba04d90
[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 colors.c
9 HDRS = svgtiny.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
17 ifeq ($(TARGET),riscos)
18 GCCSDK_INSTALL_CROSSBIN ?= /home/riscos/cross/bin
19 GCCSDK_INSTALL_ENV ?= /home/riscos/env
20 CC = $(GCCSDK_INSTALL_CROSSBIN)/gcc
21 AR = $(GCCSDK_INSTALL_CROSSBIN)/ar
22 CFLAGS += -Driscos -mpoke-function-name -I$(GCCSDK_INSTALL_ENV)/include \
23 -I$(GCCSDK_INSTALL_ENV)/include/libxml2
24 LIBS = -L$(GCCSDK_INSTALL_ENV)/lib -lxml2 -lz
25 EXEEXT = ,ff8
26 else
27 CFLAGS += -g `xml2-config --cflags` -fgnu89-inline
28 LIBS = `xml2-config --libs`
29 endif
30
31 ifeq ($(TARGET),)
32 OBJDIR = objects
33 LIBDIR = lib
34 BINDIR = bin
35 else
36 OBJDIR = $(TARGET)-objects
37 LIBDIR = $(TARGET)-lib
38 BINDIR = $(TARGET)-bin
39 endif
40
41 OBJS = $(addprefix $(OBJDIR)/, $(SOURCE:.c=.o))
42
43 .PHONY: all install clean
44
45 all: $(LIBDIR)/libsvgtiny.a $(BINDIR)/svgtiny_test$(EXEEXT) colors.c
46
47 $(LIBDIR)/libsvgtiny.a: $(OBJS)
48 @echo " LINK:" $@
49 @mkdir -p $(LIBDIR)
50 @$(AR) $(ARFLAGS) $@ $(OBJS)
51
52 $(BINDIR)/svgtiny_test$(EXEEXT): svgtiny_test.c $(LIBDIR)/libsvgtiny.a
53 @echo " LINK:" $@
54 @mkdir -p $(BINDIR)
55 @$(CC) $(CFLAGS) $(LIBS) -o $@ $^
56
57 $(OBJDIR)/%.o: %.c $(HDRS)
58 @echo " COMPILE:" $<
59 @mkdir -p $(OBJDIR)
60 @$(CC) $(CFLAGS) -c -o $@ $<
61
62 %.c: %.gperf
63 @echo " GPERF:" $<
64 @gperf --output-file=$@ $<
65
66 clean:
67 -rm $(OBJS) $(LIBDIR)/libsvgtiny.a $(BINDIR)/svgtiny_test$(EXEEXT) colors.c
68