]> gitweb.michael.orlitzky.com - libsvgtiny.git/blobdiff - makefile
GCCSDK 4 build compatibility (not finished yet)
[libsvgtiny.git] / makefile
index c4ca3f6485928eae06e75560b47b96d7e4933cbd..89b83ae844b2116fd83f881ac522c9de50dceb71 100644 (file)
--- a/makefile
+++ b/makefile
@@ -5,34 +5,71 @@
 # Copyright 2008 James Bursa <james@semichrome.net>
 #
 
-SOURCE = svgtiny.c colors.c
-HDRS = svgtiny.h
+SOURCE = svgtiny.c svgtiny_gradient.c svgtiny_list.c colors.c
+HDRS = svgtiny.h svgtiny_internal.h
 
-.PHONY: all install clean
-
-CFLAGS = -std=c99 -g -W -Wall -Wundef -Wpointer-arith -Wcast-qual \
+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 \
-       `xml2-config --cflags`
-LIBS = `xml2-config --libs`
+       -Wnested-externs -Winline -Wno-cast-align
 ARFLAGS = cr
+INSTALL = install
 
-OBJS = $(SOURCE:.c=.o)
+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
 
-all: libsvgtiny.a svgtiny_test$(EXEEXT)
+OBJDIR = $(TARGET)$(SUBTARGET)objects
+LIBDIR = $(TARGET)$(SUBTARGET)lib
+BINDIR = $(TARGET)$(SUBTARGET)bin
 
-libsvgtiny.a: $(OBJS)
-       $(AR) $(ARFLAGS) $@ $(OBJS)
+OBJS = $(addprefix $(OBJDIR)/, $(SOURCE:.c=.o))
 
-svgtiny_test$(EXEEXT): svgtiny_test.c libsvgtiny.a
-       $(CC) $(CFLAGS) $(LIBS) -o $@ $^
+.PHONY: all install clean
 
-clean:
-       -rm *.o libsvgtiny.a svgtiny_test$(EXEEXT) colors.c
+all: $(LIBDIR)/libsvgtiny.a $(BINDIR)/svgtiny_test$(EXEEXT) colors.c
+
+$(LIBDIR)/libsvgtiny.a: $(OBJS)
+       @echo "    LINK:" $@
+       @mkdir -p $(LIBDIR)
+       @$(AR) $(ARFLAGS) $@ $(OBJS)
 
-colors.c: colors.gperf
-       gperf --output-file=$@ $<
+$(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 $(OBJS) $(LIBDIR)/libsvgtiny.a $(BINDIR)/svgtiny_test$(EXEEXT) colors.c
 
-.c.o: $(HDRS)
-       $(CC) $(CFLAGS) -c -o $@ $<