-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
155 lines (124 loc) · 3.13 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
.PHONY: all mpris2 songmeta web clean distclean \
install install-amused install-songmeta install-web
VERSION = 0.17
PROG = amused
DISTNAME = ${PROG}-${VERSION}
SOURCES = amused.c \
control.c \
ctl.c \
ev.c \
log.c \
player.c \
player_123.c \
player_flac.c \
player_oggvorbis.c \
player_opus.c \
playlist.c \
xmalloc.c
OBJS = ${SOURCES:.c=.o} audio_${BACKEND}.o ${COBJS:%=compat/%}
HEADERS = amused.h \
audio.h \
control.h \
ev.h \
log.h \
player.h \
playlist.h \
xmalloc.h
DISTFILES = CHANGES \
LICENSE \
Makefile \
README.md \
amused.1 \
configure \
configure.local.example \
tests.c \
${HEADERS} \
${SOURCES} \
audio_alsa.c \
audio_ao.c \
audio_oboe.cpp \
audio_oss.c \
audio_sndio.c
TOPDIR = .
include config.mk
all: ${PROGS}
config.mk config.h: configure tests.c
@echo "$@ is out of date; please run ./configure"
@exit 1
# -- targets --
${PROG}: ${OBJS}
${CC} -o $@ ${OBJS} ${LDFLAGS} ${LDADD} ${LDADD_LIB_IMSG} \
${LDADD_DECODERS} ${LDADD_LIB_SOCKET} ${LDADD_BACKEND}
mpris2:
${MAKE} -C mpris2
songmeta:
${MAKE} -C songmeta
web:
${MAKE} -C web
clean:
rm -f ${OBJS} ${OBJS:.o=.d} ${PROG}
-${MAKE} -C mpris2 clean
-${MAKE} -C songmeta clean
-${MAKE} -C web clean
distclean: clean
rm -f config.mk config.h config.h.old config.log config.log.old
install:
${MAKE} ${PROGS:%=install-%}
install-amused:
mkdir -p ${DESTDIR}${BINDIR}
mkdir -p ${DESTDIR}${MANDIR}/man1
${INSTALL_PROGRAM} ${PROG} ${DESTDIR}${BINDIR}
${INSTALL_MAN} amused.1 ${DESTDIR}${MANDIR}/man1/${PROG}.1
install-mpris2:
${MAKE} -C mpris2 install
install-songmeta:
${MAKE} -C songmeta install
install-web:
${MAKE} -C web install
install-local: amused mpris2 songmeta web
mkdir -p ${HOME}/bin
${INSTALL_PROGRAM} ${PROG} ${HOME}/bin
${MAKE} -C mpris2 install-local
${MAKE} -C songmeta install-local
${MAKE} -C web install-local
uninstall:
rm ${DESTDIR}${BINDIR}/${PROG}
rm ${DESTDIR}${MANDIR}/man1/${PROG}.1
.c.o:
${CC} -I. -Icompat ${CFLAGS} -DBUFIO_WITHOUT_TLS -c $< -o $@
# --- maintainer targets ---
dist: ${DISTNAME}.sha256
${DISTNAME}.sha256: ${DISTNAME}.tar.gz
sha256 ${DISTNAME}.tar.gz > $@
${DISTNAME}.tar.gz: ${DISTFILES}
mkdir -p .dist/${DISTNAME}
${INSTALL} -m 0644 ${DISTFILES} .dist/${DISTNAME}
cd .dist/${DISTNAME} && chmod 755 configure
cd .dist/${DISTNAME} && cp -R ../../contrib . && \
chmod 755 contrib/amused-monitor
${MAKE} -C compat DESTDIR=${PWD}/.dist/${DISTNAME}/compat dist
${MAKE} -C mpris2 DESTDIR=${PWD}/.dist/${DISTNAME}/mpris2 dist
${MAKE} -C songmeta DESTDIR=${PWD}/.dist/${DISTNAME}/songmeta dist
${MAKE} -C web DESTDIR=${PWD}/.dist/${DISTNAME}/web dist
cd .dist && tar zcf ../$@ ${DISTNAME}
rm -rf .dist/
# --- dependency management ---
# these .d files are produced during the first build if the compiler
# supports it.
-include amused.d
-include audio_alsa.d
-include audio_ao.d
-include audio_oboe.d
-include audio_oss.d
-include audio_sndio.d
-include control.d
-include ctl.d
-include ev.d
-include log.d
-include player.d
-include player_123.d
-include player_flac.d
-include player_oggvorbis.d
-include player_opus.d
-include playlist.d
-include xmalloc.d