X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=makefile;h=89b83ae844b2116fd83f881ac522c9de50dceb71;hb=e32462efb87f60c00c2b487cd019ba4193388ab2;hp=c4ca3f6485928eae06e75560b47b96d7e4933cbd;hpb=2cdbd4fcb47430897d7aa896542dacb54c461cbc;p=libsvgtiny.git diff --git a/makefile b/makefile index c4ca3f6..89b83ae 100644 --- a/makefile +++ b/makefile @@ -5,34 +5,71 @@ # Copyright 2008 James Bursa # -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 $@ $<