[go: up one dir, main page]

File: Makefile

package info (click to toggle)
libkarma 0.1.2-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 676 kB
  • sloc: ansic: 6,224; sh: 328; makefile: 229; cs: 170
file content (84 lines) | stat: -rw-r--r-- 2,533 bytes parent folder | download | duplicates (4)
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