1# Copyright (c) 2017 Dave Freese, W1HKJ (w1hkj AT bellsout DOT net)
2
3bin_PROGRAMS = flcluster
4
5MINGW32_SRC = flcluster-rc.rc include/flclusterrc.h \
6	include/compat.h compat/getsysinfo.c compat/mingw.c compat/mingw.h
7
8# Build the xmlrpcpp source if libflxmlrpc is not found
9XMLRPCPP_SRC = \
10	xmlrpcpp/XmlRpcBase64.h \
11	xmlrpcpp/XmlRpcClient.cpp \
12	xmlrpcpp/XmlRpcClient.h \
13	xmlrpcpp/XmlRpcDispatch.cpp \
14	xmlrpcpp/XmlRpcDispatch.h \
15	xmlrpcpp/XmlRpcException.h \
16	xmlrpcpp/XmlRpc.h \
17	xmlrpcpp/XmlRpcMutex.cpp \
18	xmlrpcpp/XmlRpcMutex.h \
19	xmlrpcpp/XmlRpcServerConnection.cpp \
20	xmlrpcpp/XmlRpcServerConnection.h \
21	xmlrpcpp/XmlRpcServer.cpp \
22	xmlrpcpp/XmlRpcServer.h \
23	xmlrpcpp/XmlRpcServerMethod.cpp \
24	xmlrpcpp/XmlRpcServerMethod.h \
25	xmlrpcpp/XmlRpcSocket.cpp \
26	xmlrpcpp/XmlRpcSocket.h \
27	xmlrpcpp/XmlRpcSource.cpp \
28	xmlrpcpp/XmlRpcSource.h \
29	xmlrpcpp/XmlRpcUtil.cpp \
30	xmlrpcpp/XmlRpcUtil.h \
31	xmlrpcpp/XmlRpcValue.cpp \
32	xmlrpcpp/XmlRpcValue.h
33
34# We distribute these but do not always compile them
35EXTRA_flcluster_SOURCES = $(FLCLUSTER_WIN32_RES_SRC) $(MINGW32_SRC) $(XMLRPCPP_SRC)
36
37flcluster_SOURCES =
38
39if !ENABLE_FLXMLRPC
40  flcluster_SOURCES += $(XMLRPCPP_SRC)
41  flcluster_CPPFLAGS = @FLCLUSTER_BUILD_CPPFLAGS@
42  flcluster_CXXFLAGS = @FLCLUSTER_BUILD_CXXFLAGS@
43  flcluster_CFLAGS = $(flcluster_CXXFLAGS)
44  flcluster_LDFLAGS = @FLCLUSTER_BUILD_LDFLAGS@
45  flcluster_LDADD = @FLCLUSTER_BUILD_LDADD@
46else
47  flcluster_CPPFLAGS = @FLCLUSTER_BUILD_CPPFLAGS@ @FLXMLRPC_CFLAGS@
48  flcluster_CXXFLAGS = @FLCLUSTER_BUILD_CXXFLAGS@ @FLXMLRPC_CFLAGS@
49  flcluster_CFLAGS = $(flcluster_CXXFLAGS)
50  flcluster_LDFLAGS = @FLCLUSTER_BUILD_LDFLAGS@ @FLXMLRPC_CFLAGS@
51  flcluster_LDADD = @FLCLUSTER_BUILD_LDADD@
52endif
53
54if MINGW32
55if HAVE_WINDRES
56  flcluster_SOURCES += $(MINGW32_SRC)
57endif
58endif
59
60########################################################################
61
62
63flcluster_VERSION_MAJOR = @FLCLUSTER_VERSION_MAJOR@
64flcluster_VERSION_MINOR = @FLCLUSTER_VERSION_MINOR@
65flcluster_VERSION_PATCH = @FLCLUSTER_VERSION_PATCH@
66flcluster_VERSION = @FLCLUSTER_VERSION@
67
68.EXPORT_ALL_VARIABLES: nsisinst appbundle
69
70# Sources that are generated,
71BUILT_SOURCES =
72# not distributed,
73nodist_flcluster_SOURCES = $(BUILT_SOURCES)
74# and deleted by the clean targets
75CLEANFILES = $(BUILT_SOURCES)
76CLEAN_LOCAL =
77
78if MINGW32
79if HAVE_WINDRES
80.rc.o:
81	$(WINDRES) -Iinclude -I../data/win32 $< -O coff $@
82endif
83endif
84
85install-data-local:
86	if test -f ../data/flcluster.xpm; then \
87	    $(mkinstalldirs) $(DESTDIR)/$(datadir)/pixmaps; \
88	    $(INSTALL_DATA) ../data/flcluster.xpm $(DESTDIR)/$(datadir)/pixmaps; \
89	fi
90	if test -f ../data/flcluster.desktop; then \
91	    $(mkinstalldirs) $(DESTDIR)/$(datadir)/applications; \
92	    $(INSTALL_DATA) ../data/flcluster.desktop $(DESTDIR)/$(datadir)/applications; \
93	fi
94
95uninstall-local:
96	rm -f $(DESTDIR)/$(datadir)/pixmaps/flcluster.xpm
97	rm -f $(DESTDIR)/$(datadir)/applications/flcluster.desktop
98
99FL_SRC = dxcluster/dx_dialog.fl
100
101if HAVE_FLUID
102flgen: $(FL_SRC)
103	(cd include; \
104	for f in $(FL_SRC); do \
105	    c=$${f%.fl}.cxx; \
106		h=$${f%.fl}.h; \
107		h=$${h##*/}; \
108	    $(FLUID) -c -o ../$$c -h $$h ../$$f; \
109	done)
110endif
111
112
113INSTALLER_FILE = flcluster-$(flcluster_VERSION)_setup.exe
114APPBUNDLE=flcluster-$(flcluster_VERSION)
115APPBUNDLE_NOLIBS=$(APPBUNDLE)-nolibs
116
117if HAVE_NSIS
118nsisinst: $(bin_PROGRAMS)
119	sh ../scripts/mknsisinst.sh "../data" .
120    CLEANFILES += $(INSTALLER_FILE)
121endif
122
123if DARWIN
124appbundle: $(bin_PROGRAMS)
125	sh ../scripts/mkappbundle.sh "../data" .
126    CLEAN_LOCAL += $(APPBUNDLE_NOLIBS) $(APPBUNDLE) $(APPBUNDLE)*.dmg
127endif
128
129clean-local:
130	-rm -rf $(CLEAN_LOCAL)
131
132# Sources that we build. It is OK to have headers here.
133flcluster_SOURCES += \
134	flcluster.cxx \
135	dxcluster/dx_dialog.cxx \
136	dxcluster/dxcluster.cxx \
137	utils/debug.cxx \
138	utils/socket.cxx \
139	utils/status.cxx \
140	utils/threads.cxx \
141	utils/timeops.cxx \
142	utils/util.cxx \
143	utils/xml_io.cxx \
144	widgets/combo.cxx \
145	widgets/date.cxx \
146	widgets/fileselect.cxx \
147	widgets/flinput2.cxx \
148	widgets/flslider2.cxx \
149	widgets/Fl_Text_Buffer_mod.cxx \
150	widgets/Fl_Text_Editor_mod.cxx \
151	widgets/Fl_Text_Display_mod.cxx \
152	widgets/FTextView.cxx \
153	widgets/icons.cxx \
154	widgets/pixmaps.cxx \
155	widgets/pixmaps_tango.cxx \
156	widgets/font_browser.cxx
157#	widgets/calendar.cxx
158
159# Additional source files that are distributed
160EXTRA_DIST = \
161	config.h \
162	compat/mingw.c \
163	compat/mingw.h \
164	compat/getsysinfo.c \
165	compat/regex.c \
166	compat/regex.h \
167	widgets/flnfc_common.cxx \
168	dxcluster/arc-help.cxx \
169	dxcluster/CCC_Commands.cxx \
170	dxcluster/DXClusterServers.cxx \
171	dxcluster/DXSpiderCommandReference.cxx \
172	dxcluster/dx_dialog.fl \
173	dxcluster/DXSpiderCommandReference.html \
174	include/ascii.h \
175	include/calendar.h \
176	include/combo.h \
177	include/compat.h \
178	include/date.h \
179	include/debug.h \
180	include/dirent-check.h \
181	include/dx_dialog.h \
182	include/dx_cluster.h \
183	include/fileselect.h \
184	include/fl_lock.h \
185	include/flmisc.h \
186	include/flclusterrc.h \
187	include/flinput2.h \
188	include/flslider2.h \
189	include/font_browser.h \
190	include/gettext.h \
191	include/icons.h \
192	include/flcluster.h \
193	include/missing_strings.h \
194	include/socket.h \
195	include/pixmaps.h \
196	include/status.h \
197	include/threads.h \
198	include/timeops.h \
199	include/util.h \
200	include/xml_io.h \
201	widgets/Fl_Text_Buffer_mod.cxx \
202	widgets/Fl_Text_Display_mod.cxx \
203	widgets/Fl_Text_Editor_mod.cxx \
204	include/Fl_Text_Buffer_mod.H \
205	include/Fl_Text_Display_mod.H \
206	include/Fl_Text_Editor_mod.H \
207	include/FTextView.h
208
209# Additional non-source files that are distributed
210#EXTRA_DIST += \
211#	../data/template.rtf
212#	../flcluster-doc/flcluster-quick-guide.html
213
214# Additional source files that support non-Linux cross compilation
215EXTRA_DIST += \
216	../ChangeLog \
217	../data/flcluster.desktop \
218	../data/flcluster.png \
219	../data/win32/fl_app.nsi \
220	../data/win32/flcluster.ico \
221	../scripts/buildmxe.sh \
222	../scripts/builddist.sh \
223	../scripts/mkappbundle.sh \
224	../scripts/mknsisinst.sh \
225	../data/flcluster.xpm \
226	../data/flcluster.png \
227	../data/mac/Info.plist.in \
228	../data/mac/flcluster.icns \
229	$(flcluster_WIN32_SRC) \
230	$(flcluster_FL_SRC)
231