1# Copyright (C) 2010, 2011, 2012
2# Martin Lambers <marlam@marlam.de>
3#
4# Copying and distribution of this file, with or without modification, are
5# permitted in any medium without royalty provided the copyright notice and this
6# notice are preserved. This file is offered as-is, without any warranty.
7
8SUBDIRS = base
9
10bin_PROGRAMS = bino
11
12bino_SOURCES = \
13	media_data.h media_data.cpp \
14	media_object.h media_object.cpp \
15	media_input.h media_input.cpp \
16	dispatch.h dispatch.cpp \
17	command_file.h command_file.cpp \
18	color_matrix.h color_matrix.cpp \
19	video_output.h video_output.cpp \
20	video_output_qt.h video_output_qt.cpp \
21	subtitle_renderer.h subtitle_renderer.cpp \
22	audio_output.h audio_output.cpp \
23	player.h player.cpp \
24	mainwindow.h mainwindow.cpp \
25	gui_common.h \
26	inoutwidget.h inoutwidget.cpp \
27	controlswidget.h controlswidget.cpp \
28	crosstalkdialog.h crosstalkdialog.cpp \
29	fullscreendialog.h fullscreendialog.cpp \
30	audiodialog.h audiodialog.cpp \
31	opendevicedialog.h opendevicedialog.cpp \
32	qualitydialog.h qualitydialog.cpp \
33	subtitledialog.h subtitledialog.cpp \
34	videodialog.h videodialog.cpp \
35	zoomdialog.h zoomdialog.cpp \
36	colordialog.h colordialog.cpp \
37	preferences.h preferences.cpp \
38	gui.h gui.cpp \
39	lib_versions.h lib_versions.cpp \
40	main.cpp
41
42ICONS_LOCAL_IPE = \
43	icons-local/input-layout-mono.ipe \
44	icons-local/input-layout-separate-left-right.ipe \
45	icons-local/input-layout-separate-right-left.ipe \
46	icons-local/input-layout-alternating-left-right.ipe \
47	icons-local/input-layout-alternating-right-left.ipe \
48	icons-local/input-layout-top-bottom.ipe \
49	icons-local/input-layout-top-bottom-half.ipe \
50	icons-local/input-layout-bottom-top.ipe \
51	icons-local/input-layout-bottom-top-half.ipe \
52	icons-local/input-layout-left-right.ipe \
53	icons-local/input-layout-left-right-half.ipe \
54	icons-local/input-layout-right-left.ipe \
55	icons-local/input-layout-right-left-half.ipe \
56	icons-local/input-layout-even-odd-rows.ipe \
57	icons-local/input-layout-odd-even-rows.ipe \
58	icons-local/output-type-stereo.ipe \
59	icons-local/output-type-alternating.ipe \
60	icons-local/output-type-mono-left.ipe \
61	icons-local/output-type-mono-right.ipe \
62	icons-local/output-type-top-bottom.ipe \
63	icons-local/output-type-top-bottom-half.ipe \
64	icons-local/output-type-left-right.ipe \
65	icons-local/output-type-left-right-half.ipe \
66	icons-local/output-type-even-odd-rows.ipe \
67	icons-local/output-type-even-odd-columns.ipe \
68	icons-local/output-type-checkerboard.ipe \
69	icons-local/output-type-hdmi-frame-pack.ipe \
70	icons-local/output-type-red-cyan.ipe \
71	icons-local/output-type-green-magenta.ipe \
72	icons-local/output-type-amber-blue.ipe \
73	icons-local/output-type-red-green.ipe \
74	icons-local/output-type-red-blue.ipe
75
76ICONS = \
77	icons/application-exit.png \
78	icons/applications-internet.png \
79	icons/audio-volume-high.png \
80	icons/audio-volume-low.png \
81	icons/audio-volume-medium.png \
82	icons/audio-volume-muted.png \
83        icons/camera-web.png \
84	icons/dialog-information.png \
85	icons/document-open.png \
86	icons/help-about.png \
87	icons/help-contents.png \
88	icons/media-playback-pause.png \
89	icons/media-playback-start.png \
90	icons/media-playback-stop.png \
91	icons/media-playlist-repeat.png \
92	icons/media-seek-backward.png \
93	icons/media-seek-forward.png \
94	icons/preferences-desktop-keyboard.png \
95	icons/view-fullscreen.png \
96	icons/view-restore.png \
97	$(patsubst %.ipe,%.png,$(ICONS_LOCAL_IPE))
98
99EXTRA_DIST = \
100	video_output_color.fs.glsl \
101	video_output_render.fs.glsl \
102	logo/README \
103	logo/bino_logo.ico \
104	logo/bino_logo.png \
105	logo/bino_logo.svg \
106	icons/COPYING \
107	icons/README \
108	icons-local/README \
109	$(ICONS) $(ICONS_LOCAL_IPE)
110
111qt_resources.qrc:
112	$(AM_V_GEN)(echo '<!DOCTYPE RCC><RCC version="1.0">'; \
113	echo '<qresource>'; \
114	echo '<file alias="AUTHORS">$(top_srcdir)/AUTHORS</file>'; \
115	echo '<file alias="LICENSE">$(top_srcdir)/COPYING</file>'; \
116	echo '<file alias="logo/bino_logo.png">$(top_srcdir)/src/logo/bino_logo.png</file>'; \
117	echo '<file alias="logo/64x64/bino.png">$(top_srcdir)/src/logo/64x64/bino.png</file>'; \
118	for icon in $(ICONS); do echo '<file alias="'"$${icon}"'">$(top_srcdir)/src/'"$${icon}"'</file>'; done; \
119	echo '</qresource>'; \
120	echo '</RCC>') > $@
121
122qt_resources-rcc.cpp: $(filter %.png,$(EXTRA_DIST)) ../AUTHORS ../COPYING
123
124nodist_bino_SOURCES = \
125	qt_resources.qrc \
126	qt_resources-rcc.cpp \
127	colordialog-moc.cpp \
128	inoutwidget-moc.cpp \
129	controlswidget-moc.cpp \
130	crosstalkdialog-moc.cpp \
131	fullscreendialog-moc.cpp \
132	audiodialog-moc.cpp \
133	zoomdialog-moc.cpp \
134	opendevicedialog-moc.cpp \
135	qualitydialog-moc.cpp \
136	videodialog-moc.cpp \
137	subtitledialog-moc.cpp \
138	mainwindow-moc.cpp \
139	preferences-moc.cpp \
140	video_output_qt-moc.cpp \
141	video_output_color.fs.glsl.h \
142	video_output_render.fs.glsl.h
143
144BUILT_SOURCES = $(nodist_bino_SOURCES)
145
146CLEANFILES = $(BUILT_SOURCES)
147
148DEFS += -DHTMLDIR=\"$(htmldir)\" -DLOCALEDIR=\"$(localedir)\"
149
150AM_CPPFLAGS = \
151	$(libavformat_CFLAGS) $(libavdevice_CFLAGS) $(libswscale_CFLAGS) $(libass_CFLAGS) \
152	$(libopenal_CFLAGS) $(libgl_CFLAGS) $(libglewmx_CFLAGS) $(libglew_CFLAGS) $(libqtopengl_CFLAGS)
153
154bino_LDADD = $(top_builddir)/src/base/libbase.a $(LIBINTL) $(LIBICONV) \
155	$(libavformat_LIBS) $(libavdevice_LIBS) $(libswscale_LIBS) $(libass_LIBS) \
156	$(libopenal_LIBS) $(libgl_LIBS) $(libglewmx_LIBS) $(libglew_LIBS) $(libqtopengl_LIBS)
157
158if HAVE_LIBGLEWMX
159AM_CPPFLAGS += -DGLEW_MX
160endif
161
162if HAVE_LIBEQUALIZER
163bino_SOURCES += player_equalizer.h player_equalizer.cpp
164AM_CPPFLAGS += $(libEqualizer_CFLAGS)
165bino_LDADD += $(libEqualizer_LIBS)
166endif
167
168if HAVE_LIRC
169bino_SOURCES += lirc.h lirc.cpp
170AM_CPPFLAGS += $(lirc_CFLAGS)
171bino_LDADD += $(lirc_LIBS)
172endif
173
174if W32
175bino_SOURCES += logo/bino_logo.ico
176.ico.o:
177	$(AM_V_GEN)echo "IDI_ICON1 ICON DISCARDABLE \"$<\"" | $(WINDRES) -o $@
178endif
179
180if HAVE_LIBXNVCTRL
181bino_SOURCES += NvSDIout.cpp NvSDIout.h NvSDIutils.cpp NvSDIutils.h sdioutputdialog.cpp sdioutputdialog.h
182AM_CPPFLAGS += $(xnvctrl_CFLAGS)
183bino_LDADD += $(xnvctrl_LDFLAGS) -lXNVCtrl -lX11
184nodist_bino_SOURCES += sdioutputdialog-moc.cpp
185endif
186
187iconsdatadir = $(datadir)/icons/hicolor
188icons16dir = $(iconsdatadir)/16x16/apps
189icons32dir = $(iconsdatadir)/32x32/apps
190icons48dir = $(iconsdatadir)/48x48/apps
191icons64dir = $(iconsdatadir)/64x64/apps
192iconsscaldir = $(iconsdatadir)/scalable/apps
193dist_icons16_DATA = logo/16x16/bino.png
194dist_icons32_DATA = logo/32x32/bino.png
195dist_icons48_DATA = logo/48x48/bino.png
196dist_icons64_DATA = logo/64x64/bino.png
197dist_iconsscal_DATA = logo/scalable/bino.svg
198update-icon-cache:
199	test -n "$(DESTDIR)" -o -z "$(GTK_UPDATE_ICON_CACHE)" || (umask 022 && $(GTK_UPDATE_ICON_CACHE) -q -f -t "$(iconsdatadir)")
200
201appdatadir = $(datadir)/applications
202dist_appdata_DATA = bino.desktop
203update-desktop-database:
204	test -n "$(DESTDIR)" -o -z "$(UPDATE_DESKTOP_DATABASE)" || (umask 022 && $(UPDATE_DESKTOP_DATABASE) "$(appdatadir)")
205
206install-data-hook: update-icon-cache update-desktop-database
207uninstall-hook: update-icon-cache update-desktop-database
208
209
210moc_verbose = $(moc_verbose_$(V))
211moc_verbose_ = $(moc_verbose_$(AM_DEFAULT_VERBOSITY))
212moc_verbose_0 = @echo "  MOC     " $@;
213
214%-moc.cpp: %.h
215	$(moc_verbose)$(MOC) -o $@ $<
216
217rcc_verbose = $(rcc_verbose_$(V))
218rcc_verbose_ = $(rcc_verbose_$(AM_DEFAULT_VERBOSITY))
219rcc_verbose_0 = @echo "  RCC     " $@;
220
221%-rcc.cpp: %.qrc
222	$(rcc_verbose)$(RCC) -o $@ $<
223
224%.glsl.h: %.glsl
225	$(AM_V_GEN)MACRONAME="`echo $< | sed -e s/^.*\\\/// -e s/\\\.glsl$$// -e s/[\\\.-]/_/g | tr [a-z] [A-Z]`_GLSL_STR"; \
226	(echo "/* GENERATED AUTOMATICALLY FROM $< */"; \
227	 echo "#ifndef $$MACRONAME"; \
228	 echo "#define $$MACRONAME \\"; \
229	 sed -e s/\\\\/\\\\\\\\/g \
230	     -e s/\"/\\\\\"/g \
231	     -e s/^/\"/ \
232	     -e s/$$/\\\\n\"\\\\/ < $<; \
233	 echo \"\"; \
234	 echo "#endif") > $@
235