1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
NAME=libkarma
VERSION=0.1.1
TARGET=$(NAME)
SRCS= errors.c fdb.c hash.c karma.c karmaLan.c karmaUsb.c md5.c mountSearch.c \
mp3.c playlist.c properties.c rio_rw.c ssdp.c status.c utf8.c \
util.c wav.c
INST_HEADERS=lkarma.h utf8.h
LIBDIR=../lib
CC?=gcc
AR?=ar
RANLIB?=ranlib
LN_S?=ln -s
CFLAGS+=-fPIC -D_REENTRANT -Wall -pedantic
CFLAGS+=-W -Wchar-subscripts -Wmissing-prototypes
CFLAGS+=-Wmissing-declarations -Wno-switch -Wredundant-decls -Wno-unused
MAJOR?=$(shell VERSION=${VERSION} echo $${VERSION%%\.*})
PLATFORM=$(shell uname)
ifeq ($(PLATFORM),Darwin)
LIBS=-ltag_c -lz -liconv
LDFLAGS+=-dynamiclib -single_module
OUT_BASE=$(TARGET).dynlib
OUT_MAJOR=$(TARGET).$(MAJOR).dynlib
OUT_VERSION=$(TARGET).$(VERSION).dynlib
else
OUT_BASE=$(TARGET).so
OUT_MAJOR=$(TARGET).so.$(MAJOR)
OUT_VERSION=$(TARGET).so.$(VERSION)
LDFLAGS+=-shared -Wl,-soname,$(OUT_MAJOR)
LIBS=-ltag_c -lz
endif
default: all
install: shared-lib-stamp static-lib-stamp
../install-sh -m 0755 -d $(DESTDIR)$(PREFIX)/lib
../install-sh -m 0755 -d $(DESTDIR)$(PREFIX)/include
../install-sh -m 0755 -d $(DESTDIR)$(PREFIX)/include/libkarma
../install-sh -m 0644 -t $(DESTDIR)$(PREFIX)/lib/ $(LIBDIR)/$(TARGET).a
../install-sh -m 0755 -t $(DESTDIR)$(PREFIX)/lib/ $(LIBDIR)/$(OUT_VERSION)
$(RM) $(DESTDIR)$(PREFIX)/lib/$(OUT_MAJOR)
$(RM) $(DESTDIR)$(PREFIX)/lib/$(OUT_BASE)
$(LN_S) $(OUT_VERSION) $(DESTDIR)$(PREFIX)/lib/$(OUT_MAJOR)
$(LN_S) $(OUT_VERSION) $(DESTDIR)$(PREFIX)/lib/$(OUT_BASE)
../install-sh -m 0644 -t $(DESTDIR)$(PREFIX)/include/libkarma/ $(INST_HEADERS)
uninstall:
$(RM) $(PREFIX)/lib/$(TARGET).a $(PREFIX)/lib/$(OUT_MAJOR) $(PREFIX)/lib/$(OUT_BASE) $(PREFIX)/lib/$(OUT_VERSION)
$(RM) -r $(PREFIX)/include/libkarma
OBJS = $(SRCS:.c=.o)
$(LIBDIR):
@[ -d $(LIBDIR) ] || mkdir -p $(LIBDIR) > /dev/null 2>&1
$(LIBDIR)/$(TARGET).a: $(OBJS) | $(LIBDIR)
$(AR) r $(LIBDIR)/$(TARGET).a $(OBJS)
$(RANLIB) $(LIBDIR)/$(TARGET).a
$(LIBDIR)/$(OUT_VERSION): $(OBJS) | $(LIBDIR)
$(CC) $(LDFLAGS) $(OBJS) $(CFLAGS) -o $(LIBDIR)/$(OUT_VERSION) $(LIBS)
$(LIBDIR)/$(OUT_MAJOR): $(LIBDIR)/$(OUT_VERSION) | $(LIBDIR)
$(LN_S) $(OUT_VERSION) $(LIBDIR)/$(OUT_MAJOR)
$(LIBDIR)/$(OUT_BASE): $(LIBDIR)/$(OUT_VERSION) | $(LIBDIR)
$(LN_S) $(OUT_VERSION) $(LIBDIR)/$(OUT_BASE)
shared-lib-stamp: $(LIBDIR)/$(OUT_VERSION) $(LIBDIR)/$(OUT_MAJOR) $(LIBDIR)/$(OUT_BASE)
touch $@
static-lib-stamp: $(LIBDIR)/$(TARGET).a
touch $@
all: static-lib-stamp shared-lib-stamp
.PHONY: clean
clean:
rm -rf $(OBJS) $(LIBDIR)/ static-lib-stamp shared-lib-stamp
|