forked from ubports/audiosystem-passthrough
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
93 lines (67 loc) · 1.97 KB
/
Makefile
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
85
86
87
88
89
90
91
92
93
# -*- Mode: makefile-gmake -*-
.PHONY: all debug audiosystem-passthrough clean install
#
# Required packages
#
PKGS = glib-2.0 gio-2.0 libgbinder libglibutil
PREFIX ?= /usr
LIBDIR ?= /usr/lib
EXE = audiosystem-passthrough
SRC = passthrough-helper.c impl-af.c impl-qti.c impl-hw2_0.c dbus-comms.c
all: $(EXE) pkgconfig
PCVERSION = 1.3.0
SRC_DIR = src
BUILD_DIR = build
CC = $(CROSS_COMPILE)gcc
LD = $(CC)
WARNINGS = -Wall
INCLUDES =
CFLAGS = $(DEFINES) $(WARNINGS) $(INCLUDES) -MMD -MP \
$(shell pkg-config --cflags $(PKGS))
LDFLAGS = $(shell pkg-config --libs $(PKGS))
RELEASE_FLAGS =
ifndef KEEP_SYMBOLS
KEEP_SYMBOLS = 0
endif
ifneq ($(KEEP_SYMBOLS),0)
RELEASE_FLAGS += -g
SUBMAKE_OPTS += KEEP_SYMBOLS=1
endif
RELEASE_LDFLAGS = $(LDFLAGS) $(RELEASE_FLAGS)
RELEASE_CFLAGS = $(CFLAGS) $(RELEASE_FLAGS) -O2
RELEASE_OBJS = $(SRC:%.c=$(BUILD_DIR)/%.o)
PKGCONFIG = $(BUILD_DIR)/$(EXE).pc
DEPS = $(DEBUG_OBJS:%.o=%.d) $(RELEASE_OBJS:%.o=%.d)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(DEPS)),)
-include $(DEPS)
endif
endif
$(RELEASE_OBJS): | $(BUILD_DIR)
$(PKGCONFIG): | $(BUILD_DIR)
RELEASE_EXE = $(BUILD_DIR)/$(EXE)
$(EXE): $(RELEASE_EXE)
pkgconfig: $(PKGCONFIG)
clean:
rm -f *~
rm -fr $(BUILD_DIR)
$(BUILD_DIR):
mkdir -p $@
$(BUILD_DIR)/%.o : $(SRC_DIR)/%.c
$(CC) -c $(RELEASE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
$(PKGCONFIG): $(EXE).pc.in Makefile
sed -e 's,\[version\],'$(PCVERSION),g \
-e 's,\[includedir\],'$(PREFIX)/include,g \
-e 's,\[helperdir\],'$(PREFIX)/libexec/$(EXE),g $< > $@
$(RELEASE_EXE): $(BUILD_DIR) $(RELEASE_OBJS)
$(LD) $(RELEASE_OBJS) $(RELEASE_LDFLAGS) -o $@
ifeq ($(KEEP_SYMBOLS),0)
strip $@
endif
install: $(RELEASE_EXE)
mkdir -p $(DESTDIR)$(PREFIX)/libexec/$(EXE)
cp $< $(DESTDIR)$(PREFIX)/libexec/$(EXE)/$(EXE)
mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
cp $(BUILD_DIR)/$(EXE).pc $(DESTDIR)$(LIBDIR)/pkgconfig
mkdir -p $(DESTDIR)$(PREFIX)/include/audiosystem-passthrough
cp $(SRC_DIR)/common.h $(DESTDIR)$(PREFIX)/include/audiosystem-passthrough