1
2sbin_PROGRAMS = forked-daapd
3
4if COND_FLAC
5FLACSRC=scan-flac.c
6endif
7
8if COND_MUSEPACK
9MUSEPACKSRC=scan-mpc.c
10endif
11
12if COND_ITUNES
13ITUNESSRC=filescanner_itunes.c
14endif
15
16if COND_ALSA
17ALSASRC=laudio_alsa.c
18endif
19
20if COND_OSS4
21OSS4SRC=laudio_oss4.c
22endif
23
24if COND_AVIO
25AVIO_SRC=avio_evbuffer.c avio_evbuffer.h
26else
27FFURL_SRC=ffmpeg_url_evbuffer.c ffmpeg_url_evbuffer.h
28endif
29
30GPERF_FILES = \
31	daap_query.gperf \
32	rsp_query.gperf \
33	dacp_prop.gperf \
34	dmap_fields.gperf
35
36GPERF_PRODUCTS = \
37	daap_query_hash.c \
38	rsp_query_hash.c \
39	dacp_prop_hash.c \
40	dmap_fields_hash.c
41
42ANTLR_GRAMMARS = \
43	RSP.g RSP2SQL.g \
44	DAAP.g DAAP2SQL.g
45
46ANTLR_SOURCES = \
47	RSPLexer.c RSPLexer.h RSPParser.c RSPParser.h \
48	RSP2SQL.c RSP2SQL.h \
49	DAAPLexer.c DAAPLexer.h DAAPParser.c DAAPParser.h \
50	DAAP2SQL.c DAAP2SQL.h
51
52ANTLR_PRODUCTS =
53
54forked_daapd_CPPFLAGS = -D_GNU_SOURCE \
55	-DDATADIR="\"$(pkgdatadir)\"" -DCONFDIR="\"$(sysconfdir)\"" \
56	-DSTATEDIR="\"$(localstatedir)\"" -DPKGLIBDIR="\"$(pkglibdir)\"" \
57	@OSS4CPPFLAGS@
58
59forked_daapd_CFLAGS = \
60	@ZLIB_CFLAGS@ @AVAHI_CFLAGS@ @SQLITE3_CFLAGS@ @LIBAV_CFLAGS@ \
61	@CONFUSE_CFLAGS@ @TAGLIB_CFLAGS@ @MINIXML_CFLAGS@ @LIBPLIST_CFLAGS@ \
62	@LIBGCRYPT_CFLAGS@ @GPG_ERROR_CFLAGS@ @ALSA_CFLAGS@
63
64forked_daapd_LDADD = -lrt \
65	@ZLIB_LIBS@ @AVAHI_LIBS@ @SQLITE3_LIBS@ @LIBAV_LIBS@ \
66	@CONFUSE_LIBS@ @FLAC_LIBS@ @TAGLIB_LIBS@ @LIBEVENT_LIBS@ \
67	@LIBAVL_LIBS@ @MINIXML_LIBS@ @ANTLR3C_LIBS@ @LIBPLIST_LIBS@ \
68	@LIBGCRYPT_LIBS@ @GPG_ERROR_LIBS@ @ALSA_LIBS@ @LIBUNISTRING@
69
70forked_daapd_SOURCES = main.c \
71	db.c db.h \
72	logger.c logger.h \
73	conffile.c conffile.h \
74	filescanner.c filescanner.h \
75	filescanner_ffmpeg.c filescanner_urlfile.c filescanner_m3u.c $(ITUNESSRC) \
76	mdns_avahi.c mdns.h \
77	remote_pairing.c remote_pairing.h \
78	evhttp/http.c evhttp/evhttp.h \
79	evhttp/http-internal.h evhttp/log.h \
80	$(FFURL_SRC) $(AVIO_SRC) \
81	httpd.c httpd.h \
82	httpd_rsp.c httpd_rsp.h \
83	httpd_daap.c httpd_daap.h \
84	httpd_dacp.c httpd_dacp.h \
85	dmap_common.c dmap_common.h \
86	transcode.c transcode.h \
87	artwork.c artwork.h \
88	misc.c misc.h \
89	rng.c rng.h \
90	rsp_query.c rsp_query.h \
91	daap_query.c daap_query.h \
92	player.c player.h \
93	$(ALSASRC) $(OSS4SRC) laudio.h \
94	raop.c raop.h \
95	evrtsp/rtsp.c evrtp/evrtsp.h \
96	evrtsp/rtsp-internal.h evrtsp/log.h \
97	scan-wma.c \
98	$(FLACSRC) $(MUSEPACKSRC)
99
100nodist_forked_daapd_SOURCES = \
101	$(ANTLR_SOURCES)
102
103BUILT_SOURCES = \
104	$(GPERF_PRODUCTS)
105
106EXTRA_DIST = \
107	$(ANTLR_GRAMMARS) \
108	scan-mpc.c \
109	scan-flac.c
110
111CLEANFILES = \
112	$(GPERF_PRODUCTS)
113
114
115# gperf construction rules
116%_hash.c: %.gperf
117	if $(GPERF) $< > $@.tmp; then \
118		mv $@.tmp $@; \
119	elif $(GPERF) --version >/dev/null 2>&1; then \
120		rm $@.tmp; \
121		exit 1; \
122	else \
123		rm $@.tmp; \
124		touch $@; \
125	fi
126
127# Support for building the parsers when ANTLR3 is available
128if COND_ANTLR
129SUFFIXES = .g .u
130
131%.tokens %.c %Lexer.c %Parser.c %Lexer.h %Parser.h %.h: %.g
132	$(ANTLR) $(ANTLR_OPTIONS) $<
133
134%.u: %.g
135	$(ANTLR) -depend $< > $@
136	@echo -n "ANTLR_PRODUCTS += " > $@.tmp
137	@grep : $@ | cut -d : -f 1 | tr -d ' ' | { while read f; do test "$$f" != "$<" && echo -n "$$f "; done } >> $@.tmp
138	@cat $@.tmp >> $@
139	@rm $@.tmp
140
141BUILT_SOURCES += $(ANTLR_SOURCES)
142
143CLEANFILES += \
144	$(ANTLR_PRODUCTS) \
145	$(ANTLR_GRAMMARS:.g=.u)
146
147else !COND_ANTLR
148DISTCLEANFILES = \
149	$(ANTLR_PRODUCTS) \
150	$(ANTLR_GRAMMARS:.g=.u)
151
152endif
153
154-include $(ANTLR_GRAMMARS:.g=.u)
155