aboutsummaryrefslogtreecommitdiff
path: root/src/Makemodule.am
diff options
context:
space:
mode:
authorSami Kerola <kerolasa@iki.fi>2013-05-26 09:30:15 (GMT)
committerSami Kerola <kerolasa@iki.fi>2013-05-26 09:38:11 (GMT)
commit7541054b299bbd61310ab0456cf4f25b7a672de3 (patch)
tree47878d28304cb560a4f31bc98466a9347e8edb6c /src/Makemodule.am
parent82e300c7bac1542f27668a8d7e234b4dd6ea1211 (diff)
downloadfluxbox-7541054b299bbd61310ab0456cf4f25b7a672de3.zip
fluxbox-7541054b299bbd61310ab0456cf4f25b7a672de3.tar.bz2
build-sys: move to non-recursive build
This rather large change will attempts to make 'make' to work better. See excellent paper 'Recursive Make Considered Harmful' by Peter Miller for further explanation why several make files is worse than one for whole project. Note. The tests are build with 'make check' rather than defining TEST. Reference: http://miller.emu.id.au/pmiller/books/rmch/ Reference: http://karelzak.blogspot.co.uk/2013/02/non-recursive-automake.html
Diffstat (limited to 'src/Makemodule.am')
-rw-r--r--src/Makemodule.am270
1 files changed, 270 insertions, 0 deletions
diff --git a/src/Makemodule.am b/src/Makemodule.am
new file mode 100644
index 0000000..dd9f275
--- /dev/null
+++ b/src/Makemodule.am
@@ -0,0 +1,270 @@
1# Makefile.am for fluxbox
2# Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net)
3#
4# src/Makefile.am for Blackbox 0.61.x - an X11 Window manager
5# Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net)
6#
7# Permission is hereby granted, free of charge, to any person obtaining a
8# copy of this software and associated documentation files (the "Software"),
9# to deal in the Software without restriction, including without limitation
10# the rights to use, copy, modify, merge, publish, distribute, sublicense,
11# and/or sell copies of the Software, and to permit persons to whom the
12# Software is furnished to do so, subject to the following conditions:
13#
14# The above copyright notice and this permission notice shall be included in
15# all copies or substantial portions of the Software.
16#
17# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23# DEALINGS IN THE SOFTWARE.
24
25BUILT_SOURCES = src/defaults.hh src/defaults.cc
26CONFIG_CLEAN_FILES = src/defaults.hh src/defaults.cc
27
28bin_PROGRAMS += fluxbox
29
30src/defaults.hh:
31 @( \
32 echo '// This file is generated from Makefile. Do not edit!'; \
33 echo '#include <string>'; \
34 echo ''; \
35 echo '#ifdef _WIN32'; \
36 echo '#define DUMMYPREFIX "/DUMMYPREFIX"'; \
37 echo '#define PATHPREFIX DUMMYPREFIX'; \
38 echo '#else'; \
39 echo '#define PATHPREFIX'; \
40 echo '#endif'; \
41 echo '#define DEFAULTMENU PATHPREFIX "$(DEFAULT_MENU)"'; \
42 echo '#define DEFAULTSTYLE PATHPREFIX "$(DEFAULT_STYLE)"'; \
43 echo '#define DEFAULTKEYSFILE PATHPREFIX "$(DEFAULT_KEYSFILE)"'; \
44 echo '#define DEFAULT_APPSFILE PATHPREFIX "$(DEFAULT_APPSFILE)"'; \
45 echo '#define DEFAULT_OVERLAY PATHPREFIX "$(DEFAULT_OVERLAY)"'; \
46 echo '#define DEFAULT_INITFILE PATHPREFIX "$(DEFAULT_INITFILE)"'; \
47 echo '#define DEFAULT_WINDOWMENU PATHPREFIX "$(DEFAULT_WINDOWMENU)"'; \
48 echo '#define PROGRAM_PREFIX "$(PROGRAM_PREFIX:NONE=)"'; \
49 echo '#define PROGRAM_SUFFIX "$(PROGRAM_SUFFIX:NONE=)"'; \
50 echo 'std::string realProgramName(const std::string& name);'; \
51 echo 'const char* gitrevision();' ) > $(top_builddir)/src/defaults.hh
52
53src/defaults.cc: force
54 @( \
55 GITDIR=$(top_srcdir)/.git; \
56 echo '// This file is generated from Makefile. Do not edit!'; \
57 echo '#include "defaults.hh"'; \
58 echo ''; \
59 echo 'std::string realProgramName(const std::string& name) {'; \
60 echo ' return PROGRAM_PREFIX + name + PROGRAM_SUFFIX;'; \
61 echo '}'; \
62 echo ''; \
63 echo 'const char* gitrevision() {'; \
64 if test -r $$GITDIR/HEAD; then \
65 echo ' return "'`cat $$GITDIR/$$(cat $$GITDIR/HEAD | cut -f 2 -d ' ')`'";'; \
66 else \
67 echo ' return "this_is_tar_ball_build";'; \
68 fi; \
69 echo '}' ) > $(top_builddir)/src/defaults_tmp.cc
70 @if ! cmp defaults_tmp.cc defaults.cc ; then cp $(top_builddir)/src/defaults_tmp.cc $(top_builddir)/src/defaults.cc; fi
71 @rm $(top_builddir)/src/defaults_tmp.cc
72
73force: ;
74
75# an extra dep for fluxbox
76fluxbox.$(OBJEXT): src/defaults.hh
77
78if EWMH
79EWMH_SOURCE = \
80 src/Ewmh.hh \
81 src/Ewmh.cc
82endif
83
84if REMEMBER_SRC
85REMEMBER_SOURCE = \
86 src/Remember.hh \
87 src/Remember.cc
88endif
89
90if TOOLBAR_SRC
91TOOLBAR_SOURCE = \
92 src/ButtonTheme.cc \
93 src/ButtonTheme.hh \
94 src/ButtonTool.cc \
95 src/ButtonTool.hh \
96 src/ClockTool.cc \
97 src/ClockTool.hh \
98 src/GenericTool.cc \
99 src/GenericTool.hh \
100 src/IconbarTool.cc \
101 src/IconbarTool.hh \
102 src/ToolFactory.cc \
103 src/ToolFactory.hh \
104 src/ToolTheme.cc \
105 src/ToolTheme.hh \
106 src/Toolbar.cc \
107 src/Toolbar.hh \
108 src/ToolbarItem.cc \
109 src/ToolbarItem.hh \
110 src/ToolbarTheme.cc \
111 src/ToolbarTheme.hh \
112 src/WorkspaceNameTheme.hh \
113 src/WorkspaceNameTool.cc \
114 src/WorkspaceNameTool.hh
115if SYSTRAY_SRC
116TOOLBAR_SOURCE += \
117 src/SystemTray.cc \
118 src/SystemTray.hh
119endif
120endif
121
122if SLIT_SRC
123SLIT_SOURCE = \
124 src/Slit.cc \
125 src/Slit.hh \
126 src/SlitClient.cc \
127 src/SlitClient.hh \
128 src/SlitTheme.cc \
129 src/SlitTheme.hh
130endif
131
132fluxbox_CPPFLAGS = \
133 $(FRIBIDI_CFLAGS) \
134 $(XRANDR_CFLAGS) \
135 $(AM_CPPFLAGS) \
136 -I$(src_incdir) \
137 -I$(fbtk_incdir) \
138 -I$(nls_incdir)
139
140fluxbox_LDFLAGS = \
141 $(FONTCONFIG_LIBS) \
142 $(FREETYPE2_LIBS) \
143 $(FRIBIDI_LIBS) \
144 $(IMLIB2_LIBS) \
145 $(RANDR_LIBS) \
146 $(X11_LIBS) \
147 $(XEXT_LIBS) \
148 $(XFT_LIBS) \
149 $(XINERAMA_LIBS) \
150 $(XPM_LIBS) \
151 $(XRENDER_LIBS) \
152 $(X_EXTRA_LIBS) \
153 $(X_LIBS) \
154 $(X_PRE_LIBS)
155
156fluxbox_SOURCES = \
157 src/AlphaMenu.cc \
158 src/AlphaMenu.hh \
159 src/ArrowButton.cc \
160 src/ArrowButton.hh \
161 src/AtomHandler.hh \
162 src/AttentionNoticeHandler.cc \
163 src/AttentionNoticeHandler.hh \
164 src/CascadePlacement.cc \
165 src/CascadePlacement.hh \
166 src/ClientMenu.cc \
167 src/ClientMenu.hh \
168 src/ClientPattern.cc \
169 src/ClientPattern.hh \
170 src/ColSmartPlacement.cc \
171 src/ColSmartPlacement.hh \
172 src/CommandDialog.cc \
173 src/CommandDialog.hh \
174 src/CurrentWindowCmd.cc \
175 src/CurrentWindowCmd.hh \
176 src/Debug.hh \
177 src/FbAtoms.cc \
178 src/FbAtoms.hh \
179 src/FbCommands.cc \
180 src/FbCommands.hh \
181 src/FbMenu.cc \
182 src/FbMenu.hh \
183 src/FbMenuParser.cc \
184 src/FbMenuParser.hh \
185 src/FbRootWindow.cc \
186 src/FbRootWindow.hh \
187 src/FbWinFrame.cc \
188 src/FbWinFrame.hh \
189 src/FbWinFrameTheme.cc \
190 src/FbWinFrameTheme.hh \
191 src/FocusControl.cc \
192 src/FocusControl.hh \
193 src/FocusModelMenuItem.hh \
194 src/Focusable.hh \
195 src/FocusableList.cc \
196 src/FocusableList.hh \
197 src/FocusableTheme.hh \
198 src/HeadArea.cc \
199 src/HeadArea.hh \
200 src/IconButton.cc \
201 src/IconButton.hh \
202 src/IconbarTheme.cc \
203 src/IconbarTheme.hh \
204 src/Keys.cc \
205 src/Keys.hh \
206 src/Layer.hh \
207 src/LayerMenu.cc \
208 src/LayerMenu.hh \
209 src/MenuCreator.cc \
210 src/MenuCreator.hh \
211 src/MinOverlapPlacement.cc \
212 src/MinOverlapPlacement.hh \
213 src/OSDWindow.cc \
214 src/OSDWindow.hh \
215 src/PlacementStrategy.hh \
216 src/RectangleUtil.hh \
217 src/Resources.cc \
218 src/RootCmdMenuItem.cc\
219 src/RootCmdMenuItem.hh \
220 src/RootTheme.cc \
221 src/RootTheme.hh \
222 src/RowSmartPlacement.cc \
223 src/RowSmartPlacement.hh \
224 src/Screen.cc \
225 src/Screen.hh \
226 src/ScreenPlacement.cc \
227 src/ScreenPlacement.hh \
228 src/SendToMenu.cc \
229 src/SendToMenu.hh \
230 src/Strut.hh \
231 src/StyleMenuItem.cc \
232 src/StyleMenuItem.hh \
233 src/TextDialog.cc \
234 src/TextDialog.hh \
235 src/ToggleMenu.hh \
236 src/TooltipWindow.cc \
237 src/TooltipWindow.hh \
238 src/UnderMousePlacement.cc \
239 src/UnderMousePlacement.hh \
240 src/WinButton.cc \
241 src/WinButton.hh \
242 src/WinButtonTheme.cc \
243 src/WinButtonTheme.hh \
244 src/WinClient.cc \
245 src/WinClient.hh \
246 src/Window.cc \
247 src/Window.hh \
248 src/WindowCmd.cc \
249 src/WindowCmd.hh \
250 src/WindowMenuAccessor.hh \
251 src/WindowState.cc \
252 src/WindowState.hh\
253 src/Workspace.cc \
254 src/Workspace.hh \
255 src/WorkspaceCmd.cc \
256 src/WorkspaceCmd.hh \
257 src/WorkspaceMenu.cc \
258 src/WorkspaceMenu.hh \
259 src/Xinerama.hh \
260 src/Xutil.cc \
261 src/Xutil.hh \
262 src/fluxbox.cc \
263 src/fluxbox.hh \
264 src/main.cc \
265 ${EWMH_SOURCE} \
266 ${REMEMBER_SOURCE} \
267 ${SLIT_SOURCE} \
268 ${TOOLBAR_SOURCE}
269
270LDADD = libFbTk.a src/defaults.$(OBJEXT)