1AM_LIBTOOLFLAGS = --silent
2ACLOCAL_AMFLAGS = -I m4
3
4SUBDIRS = po docs $(PLATFORM_SUBDIRS)
5DIST_SUBDIRS = po docs packaging/win32 packaging/MacOSX
6
7noinst_PROGRAMS = bin2hdr pulsetest $(TESTXAUTH) $(MACTESTKBD)
8
9bin2hdr_SOURCES = bin2hdr.cpp
10bin2hdr_LDFLAGS = -all-static
11
12bin_PROGRAMS = opennx pconnect $(TRACELOG) $(WATCHREADER) $(WATCHUSBIP) \
13	       $(MACFINDREADER) $(MACUNINSTALL)
14
15EXTRA_PROGRAMS = tracelog$(EXEEXT) watchreader$(EXEEXT) \
16	watchusbip$(EXEEXT) macfindreader$(EXEEXT) macuninstall$(EXEEXT) \
17	mactestkbd$(EXEEXT) testxauth$(EXEEXT)
18
19opennx_SOURCES = AboutDialog.cpp AsyncProcess.cpp LibOpenSC.cpp \
20	CardWaiterDialog.cpp ConnectDialog.cpp ExtHtmlWindow.cpp \
21	ForeignFrame.cpp Icon.cpp LogDialog.cpp KeyDialog.cpp LibUSB.cpp \
22	LoginDialog.cpp mylog.cpp md5.c MyIPC.cpp MyDynlib.cpp MySession.cpp \
23	MyValidator.cpp MyWizard.cpp MyXmlConfig.cpp opennxApp.cpp \
24	osdep.c PanicDialog.cpp pwcrypt.cpp ProxyPasswordDialog.cpp \
25	PulseAudio.cpp QuitDialog.cpp RdpImageSettingsDialog.cpp \
26	RdpPropertyDialog.cpp ResumeDialog.cpp ProxyPropertyDialog.cpp \
27	SessionAdmin.cpp SessionList.cpp SessionProperties.cpp \
28	SimpleXauth.cpp ShareProperties.cpp TextViewer.cpp \
29	UnixImageSettingsDialog.cpp UsbFilterDetailsDialog.cpp \
30	UsbIp.cpp VncImageSettingsDialog.cpp VncPropertyDialog.cpp \
31	wxprec.cpp WinShare.cpp X11PropertyDialog.cpp xh_richtext.cpp \
32	MacOSX.c WrappedStatic.cpp SupressibleMessageDialog.cpp \
33	XdmPropertyDialog.cpp
34
35noinst_HEADERS = AboutDialog.h AboutDialog_symbols.h AsyncProcess.h \
36	LibOpenSC.h CardWaiterDialog.h CardWaiterDialog_symbols.h \
37	ConnectDialog.h ConnectDialog_symbols.h debugleak.h \
38	DebugStringGrabber.h ExtHtmlWindow.h ForeignFrame.h \
39	ForeignFrame_symbols.h Icon.h KeyDialog.h KeyDialog_symbols.h \
40	LibUSB.h LogDialog.h LogDialog_symbols.h LoginDialog.h mylog.h \
41	LoginDialog_symbols.h md5.h memres.h MyIPC.h MyDynlib.h MySession.h \
42	MyValidator.h MyWizard.h MyWizard_symbols.h MyXmlConfig.h opennxApp.h \
43	osdep.h  PanicDialog.h PanicDialog_symbols.h PulseAudio.h pwcrypt.h \
44	QuitDialog.h QuitDialog_symbols.h ProxyPasswordDialog.h \
45	ProxyPasswordDialog_symbols.h ProxyPropertyDialog.h pulseTest.h \
46	ProxyPropertyDialog_symbols.h RdpImageSettingsDialog.h \
47	RdpImageSettingsDialog_symbols.h RdpPropertyDialog.h \
48	RdpPropertyDialog_symbols.h ResumeDialog.h ResumeDialog_symbols.h \
49	SessionAdmin.h SessionAdmin_symbols.h SessionList.h SimpleXauth.h \
50	SessionProperties.h SessionProperties_symbols.h ShareProperties.h \
51	ShareProperties_symbols.h TextViewer.h TextViewer_symbols.h \
52	TraceLogFrame.h TraceLogFrame_symbols.h UnixImageSettingsDialog.h \
53	UnixImageSettingsDialog_symbols.h UsbFilterDetailsDialog.h \
54	UsbFilterDetailsDialog_symbols.h UsbIp.h \
55	VncImageSettingsDialog.h VncImageSettingsDialog_symbols.h \
56	VncPropertyDialog.h VncPropertyDialog_symbols.h WinShare.h \
57	X11PropertyDialog.h X11PropertyDialog_symbols.h trace.h tracelogApp.h \
58	watchReaderApp.h watchUsbIpApp.h xh_richtext.h MacUninstallApp.h \
59	WrappedStatic.h SupressibleMessageDialog.h SupressibleMessageDialog_symbols.h \
60	TraceLogRemote_symbols.h TraceLogRemote.h \
61	opensc/errors.h opensc/opensc.h opensc/scconf.h opensc/types.h opensc/pkcs15.h \
62	libsmbclient.h \
63	XdmPropertyDialog.h XdmPropertyDialog_symbols.h
64
65pconnect_SOURCES = pconnect.c
66pconnect_LDADD = $(WS2LIB) $(RESLIB)
67
68pulsetest_SOURCES = pulseTest.cpp PulseAudio.cpp MyDynlib.cpp mylog.cpp osdep.c MacOSX.c
69pulsetest_LDADD = $(WX_LIBS) $(X_LIBS) $(X_PRE_LIBS) $(X_EXTRA_LIBS) $(APP_LDADD)
70pulsetest_CPPFLAGS = $(WX_CPPFLAGS) $(PLATFORM_INCLUDES) -DAPP_PULSETEST
71pulsetest_DEPENDENCIES = $(OPENNX_RES) $(PLATFORM_DEPENDENCIES)
72pulsetest_CXXFLAGS = $(WX_CXXFLAGS)
73pulsetest_CFLAGS = $(WX_CFLAGS)
74
75
76testxauth_SOURCES = testxauth.cpp SimpleXauth.cpp pwcrypt.cpp md5.c
77testxauth_LDADD = $(WX_LIBS)
78testxauth_CPPFLAGS = $(WX_CPPFLAGS) -DAPP_TESTXAUTH
79testxauth_CXXFLAGS = $(WX_CXXFLAGS)
80testxauth_CFLAGS = $(WX_CFLAGS)
81
82watchreader_SOURCES = watchReaderApp.cpp LibOpenSC.cpp MyDynlib.cpp MacOSX.c osdep.c mylog.cpp
83watchreader_DEPENDENCIES = $(WATCHREADER_RES)
84watchreader_LDADD = $(WATCHREADER_RES) $(WX_LIBS) $(X_LIBS) \
85	$(X_PRE_LIBS) $(X_EXTRA_LIBS) $(APP_LDADD)
86watchreader_CPPFLAGS = $(WX_CPPFLAGS) $(X_CFLAGS) -DAPP_WATCHREADER
87watchreader_CXXFLAGS = $(WX_CXXFLAGS)
88watchreader_CFLAGS = $(WX_CFLAGS)
89
90watchusbip_SOURCES = watchUsbIpApp.cpp UsbIp.cpp Icon.cpp LibUSB.cpp \
91	md5.c MyValidator.cpp MyXmlConfig.cpp osdep.c pwcrypt.cpp mylog.cpp \
92	UsbFilterDetailsDialog.cpp wxprec.cpp xh_richtext.cpp MyDynlib.cpp
93watchusbip_LDADD = $(WX_LIBS) $(X_LIBS) $(X_PRE_LIBS) $(X_EXTRA_LIBS) \
94	$(APP_LDADD)
95watchusbip_CPPFLAGS = $(WX_CPPFLAGS) $(X_CFLAGS) -DAPP_WATCHUSBIP
96watchusbip_CXXFLAGS = $(WX_CXXFLAGS)
97watchusbip_CFLAGS = $(WX_CFLAGS)
98
99tracelog_SOURCES = tracelogApp.cpp TraceLogFrame.cpp \
100	DebugStringGrabber.cpp wxprec.cpp Icon.cpp TraceLogRemote.cpp
101tracelog_LDADD = $(TRACELOG_RES) $(WX_LIBS)
102tracelog_DEPENDENCIES = $(TRACELOG_RES)
103tracelog_CPPFLAGS = $(WX_CPPFLAGS) -DAPP_TRACELOG
104tracelog_CXXFLAGS = $(WX_CXXFLAGS)
105tracelog_CFLAGS = $(WX_CFLAGS)
106
107macfindreader_SOURCES = macfindreader.c
108macfindreader_CFLAGS = $(UNIFLAGS) $(OSX_SDKFLAGS)
109macfindreader_LDADD = -ldl
110
111macuninstall_SOURCES = MacUninstallApp.cpp MacOSX.c
112macuninstall_LDADD = $(WX_LIBS)
113macuninstall_LDFLAGS = -framework Security
114macuninstall_CPPFLAGS = $(WX_CPPFLAGS) -DAPP_MACUNINSTALL
115macuninstall_CXXFLAGS = $(WX_CXXFLAGS)
116macuninstall_CFLAGS = $(WX_CFLAGS)
117
118mactestkbd_SOURCES = mactestkbd.c MacOSX.c
119mactestkbd_LDADD = $(WX_LIBS)
120mactextkbd_CPPFLAGS = $(WX_CPPFLAGS) -DAPP_MACTESTKBD
121mactestkbd_CFLAGS = $(WX_CFLAGS) -DAPP_MACTESTKBD
122
123EXTRA_HEADERS = res/opennx.rc
124
125EXTRA_opennx_SOURCES = opennx.rc
126EXTRA_tracelog_SOURCES = tracelog.rc
127EXTRA_watchreader_SOURCES = watchreader.rc
128
129opennx_LDADD = $(OPENNX_RES) $(WX_LIBS) $(X_LIBS) $(X_PRE_LIBS) \
130	$(X_EXTRA_LIBS) $(APP_LDADD) $(LIBCURL)
131opennx_DEPENDENCIES = $(OPENNX_RES) $(PLATFORM_DEPENDENCIES)
132opennx_CPPFLAGS = $(WX_CPPFLAGS) $(PLATFORM_INCLUDES) $(X_CFLAGS) -DAPP_OPENNX
133opennx_CXXFLAGS = $(WX_CXXFLAGS)
134opennx_CFLAGS = $(WX_CFLAGS)
135
136
137GETTEXTIZE = $(shell which gettextize)
138
139bootstrap:
140#   Update ChangeLog from SVN
141	svn2cl -i --break-before-msg --authors=conf/authors.xml
142# 	Convince gettextize not to modify EXTRA_DIST
143	test -f conf/config.rpath || touch conf/config.rpath
144# 	Convince gettextize not to modify AC_CONFIG_FILES
145	test -f po/Makefile.in.in || touch po/Makefile.in.in
146#	Tweak gettextize
147#	Stupid gettextize uses /dev/tty for interactively getting a
148#	confirm of it's "oh so incredibly important notes".
149#	YES, i've read them at least a dozen times and now, i REALLY
150#	don't want to hit RETURN anymore!
151	test -n "$(GETTEXTIZE)" && \
152		sed -e 's@/dev/tty@/dev/null@' "$(GETTEXTIZE)" | bash -s -- -f --no-changelog
153	test -e conf/mkinstalldirs || touch conf/mkinstalldirs
154	autoreconf -if
155
156bundle:
157	$(srcdir)/packaging/MacOSX/mkbundle OpenNX.app OpenNXapp \
158	    $(srcdir)/extres/nx.icns $(abs_builddir)/opennx \
159	    $(builddir)/packaging/MacOSX/opennx-main.plist "OPNX"
160	$(INSTALL) -m 0644 $(srcdir)/extres/nx-desktop.icns OpenNX.app/Contents/Resources
161	$(srcdir)/packaging/MacOSX/mkbundle OpenNXAdmin.app OpenNXAdmin \
162	    $(srcdir)/extres/opennx-admin.icns $(abs_builddir)/opennx \
163	    $(builddir)/packaging/MacOSX/opennx.plist "" --admin
164	$(srcdir)/packaging/MacOSX/mkbundle OpenNXWizard.app OpenNXWizard \
165	    $(srcdir)/extres/opennx-wizard.icns $(abs_builddir)/opennx \
166	    $(builddir)/packaging/MacOSX/opennx.plist "" --wizard
167	$(srcdir)/packaging/MacOSX/mkbundle "Uninstall OpenNX.app" "" \
168	    $(srcdir)/extres/opennx-uninstall.icns $(abs_builddir)/macuninstall \
169	    $(builddir)/packaging/MacOSX/opennx.plist ""
170	$(srcdir)/packaging/MacOSX/mkbundle Message.app OpenNXMessage \
171	    $(srcdir)/extres/nx.icns $(abs_builddir)/opennx \
172	    $(builddir)/packaging/MacOSX/opennx.plist "" \
173	    --dialog ok --style info --caption CARDREMOVED --message CARDREMOVED
174
175all-local: $(BUNDLE)
176
177clean-local:
178	rm -rf OpenNX.app OpenNXAdmin.app OpenNXWizard.app Message.app \
179	    "Uninstall OpenNX.app"
180
181distclean-local:
182	rm -f po/stamp-po
183
184install-wxstdmo-local:
185	for lang in $(shell cat $(top_srcdir)/po/LINGUAS) ; do \
186		$(INSTALL) -d $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES ; \
187		$(INSTALL_DATA) $(WX_PREFIX)/share/locale/$$lang/LC_MESSAGES/wxstd.mo \
188			$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/ ; \
189	done
190
191install-data-local: $(STATIC_LOCAL_INSTALLDATA_TARGET)
192
193RESDEPS = $(wildcard $(srcdir)/res/*.xrc $(srcdir)/res/*.png \
194		  $(srcdir)/res/*.html $(srcdir)/res/*.xml)
195RESSRC = $(subst $(srcdir)/,,$(RESDEPS))
196
197tmpres.zip: $(RESDEPS)
198	$(AM_V_GEN)cd $(srcdir) && zip -q9r $(abs_builddir)/$(@F) $(RESSRC)
199
200memres.h: tmpres.zip bin2hdr$(EXEEXT)
201	$(AM_V_GEN)./bin2hdr$(EXEEXT) tmpres.zip memres.h mem_res
202
203$(top_srcdir)/opennxApp.cpp: memres.h
204
205opennxApp.cpp: memres.h
206
207tracelogApp.cpp: memres.h
208
209watchUsbIpApp.cpp: memres.h
210
211PulseAudio.cpp: $(PAHEADER)
212
213SUFFIXES = .rc
214
215.rc.o: $(OSRESDEPS)
216	$(AM_V_GEN)$(WX_RESCOMP) -I$(top_builddir) -o $@ $<
217
218CLEANFILES = memres.h tmpres.zip *~ po/*~ *.bak *~ \#.* .\#* OpenNX.app
219
220MAINTAINERCLEANFILES = ABOUT-NLS Makefile.in configure aclocal.m4 \
221	conf/config.guess conf/config.sub conf/depcomp conf/install-sh \
222	conf/missing conf/mkinstalldirs conf/ltmain.sh conf/config.rpath \
223	m4/*~ m4/[cgilnpuwx]*.m4 m4/s[it]*.m4 \
224	po/*.sin po/*.sed po/*.header po/Rules-quot po/*.template po/Makefile*.in
225
226DISTCLEANFILES = mingw32-config.cache res/*.prv.*
227
228man_MANS = docs/pconnect.1
229
230data_DATA = share/keyboards
231
232keydir = $(datadir)/keys
233key_DATA = $(top_srcdir)/share/keys/*
234
235cupsdir = $(datadir)/cups
236cups_DATA = $(top_srcdir)/share/cups/*
237
238install-data-local:
239	$(MAKE) -C po stamp-po install-data-yes
240	$(INSTALL) -d $(DESTDIR)$(datadir)/icons
241	cd $(top_srcdir)/extres && \
242		for d in 16x16 32x32 48x48 128x128 256x256 512x512 scalable ; do \
243			$(INSTALL) -d $(DESTDIR)$(datadir)/icons/$$d ; \
244			( \
245				cd $$d && \
246				for subd in * ; do \
247					$(INSTALL) -d $(DESTDIR)$(datadir)/icons/$$d/$$subd ; \
248					for f in $$subd/* ; do \
249						$(INSTALL_DATA) $$f $(DESTDIR)$(datadir)/icons/$$d/$$subd ; \
250					done \
251				done \
252			) \
253		done
254	$(INSTALL) -d $(DESTDIR)$(datadir)/applnk/xdg
255	cd $(top_srcdir)/extres/xdg && \
256	for d in * ; do \
257		$(INSTALL_DATA) $$d $(DESTDIR)$(datadir)/applnk/xdg ; \
258	done
259
260uninstall-local:
261	cd $(top_srcdir)/extres/xdg && \
262	for d in * ; do \
263		$(RM) -r $(DESTDIR)$(datadir)/applnk/xdg/$$d ; \
264	done
265	-rmdir $(DESTDIR)$(datadir)/applnk/xdg
266	-rmdir $(DESTDIR)$(datadir)/applnk
267	cd $(top_srcdir)/extres && \
268		for d in 16x16 32x32 48x48 128x128 256x256 512x512 scalable ; do \
269			( \
270				cd $$d && \
271				for subd in * ; do \
272					for f in $$subd/* ; do \
273						$(RM) $(DESTDIR)$(datadir)/icons/$$d/$$f ; \
274					done ; \
275					rmdir $(DESTDIR)$(datadir)/icons/$$d/$$subd || true ; \
276				done \
277			) ; \
278			rmdir $(DESTDIR)$(datadir)/icons/$$d || true ; \
279		done
280	-rmdir $(DESTDIR)$(datadir)/icons
281
282dist-hook:
283	find $(distdir) -type d -name .svn | xargs $(RM) -r
284
285# Platform specific special targets
286debprep: distcheck
287	tar xfz $(PACKAGE)-$(VERSION).tar.gz
288	cd $(PACKAGE)-$(VERSION) && ./getnxsrcpkg nxcomp nxproxy nxssh
289	cd $(PACKAGE)-$(VERSION) && tar xzf nxcomp-*.tar.gz
290	cd $(PACKAGE)-$(VERSION) && tar xzf nxproxy-*.tar.gz
291	cd $(PACKAGE)-$(VERSION) && tar xzf nxssh-*.tar.gz
292	$(RM) $(PACKAGE)-$(VERSION)/*.tar.gz
293	$(RM) $(PACKAGE)-$(VERSION)/nxssh/scard/Ssh.bin
294	cd $(PACKAGE)-$(VERSION) && perl debian/mkchangelog.pl $(VERSION) \
295		< ChangeLog > debian/changelog
296
297# Create debian source package
298debsrc: debprep
299	ln -snf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz
300	dpkg-source -b -sP $(PACKAGE)-$(VERSION) $(PACKAGE)_$(VERSION).orig.tar.gz
301	echo "Debtransform-Tar: $(PACKAGE)_$(VERSION).orig.tar.gz" >> $(PACKAGE)_$(VERSION)-$(SVNREV).dsc
302
303deb: debprep
304	cd $(PACKAGE)-$(VERSION) && dpkg-buildpackage -us -uc
305	lintian -i $(PACKAGE)_$(VERSION).$(SVNREV)_*.changes
306	$(RM) -r $(PACKAGE)-$(VERSION)
307
308dmg:
309	$(MAKE) -C packaging/MacOSX dmg
310
311rpm: distcheck
312	$(RPMBUILD) $(RPMBUILD_OPTS) -ta --with fetchnx $(PACKAGE)-$(VERSION).tar.gz
313
314setup: all
315	$(MAKE) -C packaging/win32 setup
316
317unknown:
318	@echo "Don't know how to build a distribution for $(target)"
319	@exit 1
320
321dist-platform: $(PLATFORMDIST)
322
323packaging/MacOSX/pulse/include/pulse/pulseaudio.h:
324	$(MAKE) -C packaging/MacOSX/pulse cachedinstall
325
326packaging/win32/pulse/include/pulse/pulseaudio.h:
327	$(MAKE) -C packaging/win32/pulse tmpinstall
328
329EXTRA_DIST = conf/mkinstalldirs  conf/mkinstalldirs  conf/mkinstalldirs  conf/mkinstalldirs  conf/mkinstalldirs  conf/mkinstalldirs conf/config.rpath conf/authors.xml \
330	INSTALL INSTALL.generic COPYING share etc/60-opennx.rules \
331	opennx.pjd opennx.rc tracelog.rc watchreader.rc \
332	opennx.spec patches getnxsrcpkg $(RESDEPS) ChangeLog extres debian \
333	$(wildcard m4/*.m4) $(man_MANS)
334