1# Makefile.in for sawfish
2# Copyright (C) 1998 - 2008 John Harper
3#               2008 - 2010 Sawfish Community
4#
5# This file is part of sawfish.
6#
7# sawmfish is free software; you can redistribute it and/or modify it
8# under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11#
12# sawfish is distributed in the hope that it will be useful, but
13# WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with sawfish; see the file COPYING.  If not, write to
19# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
20
21include ./Makedefs
22
23top_builddir=.
24top_srcdir=@top_srcdir@
25srcdir=@srcdir@
26
27SUBDIRS = @SUBDIRS@
28
29all : build.h DOC
30	for dir in $(SUBDIRS); do \
31	  [ -d $$dir ] && ( cd $$dir && $(MAKE) $@ ) || exit 1; \
32	done
33
34# this depends on config.status so it's rebuilt if configure is re-run
35build.h : build-info config.status
36	$(SHELL) $< $(version)$(subversion) '$(sawfishdir)' \
37		'$(lispdir)' '$(sawfishexecdir)' '$(localedir)'
38
39install : all installdirs
40	for dir in $(SUBDIRS); do \
41	  ( cd $$dir && $(MAKE) $@ ) || exit 1; \
42	done
43	for f in ./DOC*; do \
44	  $(INSTALL_DATA) $$f $(DESTDIR)$(sawfishexecdir); \
45	done
46	$(INSTALL_DATA) $(srcdir)/data/sawfish.desktop $(DESTDIR)$(datadir)/applications/
47	$(INSTALL_DATA) $(srcdir)/data/sawfish-config.desktop $(DESTDIR)$(datadir)/applications/
48	$(INSTALL_DATA) $(top_srcdir)/data/sawfish.pc $(DESTDIR)$(prefix)/libdata/pkgconfig/
49	# needed for GNOME2 to recognize Sawfish, GConf-Key /desktop/gnome/session/required-components/windowmanager
50	# need to be set to 'sawfish' as well
51	$(INSTALL_DATA) $(top_srcdir)/data/sawfish.desktop $(DESTDIR)$(datadir)/xsessions/sawfish.desktop;\
52	if test $(GNOME2_SESSION) = "yes"; then \
53		$(INSTALL_DATA) $(srcdir)/data/sawfish.desktop $(DESTDIR)$(GNOMEDIR)/share/gnome/wm-properties/sawfish-wm.desktop; \
54	fi
55	if test $(KDE4_SESSION) = "yes"; then \
56		$(INSTALL_DATA) $(top_srcdir)/data/sawfish-ksm.desktop $(DESTDIR)$(KDE4DIR)/ksmserver/windowmanagers/sawfish.desktop; \
57		$(INSTALL_DATA) $(top_srcdir)/data/sawfish-kde4.desktop $(DESTDIR)$(datadir)/xsessions/sawfish-kde4.desktop; \
58		$(INSTALL_SCRIPT) $(top_srcdir)/data/sawfish-kde4-session $(DESTDIR)$(bindir)/sawfish-kde4-session; \
59	fi
60	if test $(KDE5_SESSION) = "yes"; then \
61		$(INSTALL_DATA) $(top_srcdir)/data/sawfish-ksm.desktop $(DESTDIR)$(KDE5DIR)/ksmserver/windowmanagers/sawfish.desktop; \
62		$(INSTALL_DATA) $(top_srcdir)/data/sawfish-kde5.desktop $(DESTDIR)$(datadir)/xsessions/sawfish-kde5.desktop; \
63		$(INSTALL_SCRIPT) $(top_srcdir)/data/sawfish-kde5-session $(DESTDIR)$(bindir)/sawfish-kde5-session; \
64	fi
65	if test $(XFCE_SESSION) = "yes"; then \
66		$(INSTALL_DATA) $(top_srcdir)/data/sawfish-xfce.desktop $(DESTDIR)$(datadir)/xsessions/sawfish-xfce.desktop; \
67		$(INSTALL_SCRIPT) $(top_srcdir)/data/sawfish-xfce-session $(DESTDIR)$(bindir)/sawfish-xfce-session; \
68	fi
69	if test $(MATE_SESSION) = "yes"; then \
70		$(INSTALL_DATA) $(top_srcdir)/data/sawfish-mate.desktop $(DESTDIR)$(datadir)/xsessions/sawfish-mate.desktop; \
71		$(INSTALL_SCRIPT) $(top_srcdir)/data/sawfish-mate-session $(DESTDIR)$(bindir)/sawfish-mate-session; \
72	fi
73	if test $(LUMINA_SESSION) = "yes"; then \
74		$(INSTALL_DATA) $(top_srcdir)/data/sawfish-lumina.desktop $(DESTDIR)$(datadir)/xsessions/sawfish-lumina.desktop; \
75		$(INSTALL_SCRIPT) $(top_srcdir)/data/sawfish-lumina-session $(DESTDIR)$(bindir)/sawfish-lumina-session; \
76	fi
77
78installdirs : mkinstalldirs
79	$(SHELL) $< $(DESTDIR)$(sawfishdir) \
80	  $(DESTDIR)$(bindir) $(DESTDIR)$(sawfishexecdir) \
81	  $(DESTDIR)$(datadir)/applications/ \
82	  $(DESTDIR)$(prefix)/libdata/pkgconfig/ \
83	  $(DESTDIR)$(datadir)/xsessions/
84	if test $(GNOME2_SESSION) = "yes"; then \
85		$(SHELL) $< $(DESTDIR)$(GNOMEDIR)/share/gnome/wm-properties ; \
86	fi
87	if test $(KDE4_SESSION) = "yes"; then \
88		$(SHELL) $< $(DESTDIR)$(KDE4DIR)/ksmserver/windowmanagers/ ; \
89	fi
90	if test $(KDE5_SESSION) = "yes"; then \
91		$(SHELL) $< $(DESTDIR)$(KDE5DIR)/ksmserver/windowmanagers/ ; \
92	fi
93
94uninstall :
95	for dir in $(SUBDIRS); do \
96	  ( cd $$dir && $(MAKE) $@ ) || exit 1; \
97	done
98	rm -rf $(DESTDIR)$(sawfishdir)
99	rm -f $(DESTDIR)$(prefix)/libdata/pkgconfig/sawfish.pc
100	rm -f $(DESTDIR)$(datadir)/xsessions/sawfish.desktop
101	rm -f $(DESTDIR)$(datadir)/xsessions/sawfish-kde4.desktop
102	rm -f $(DESTDIR)$(datadir)/xsessions/sawfish-kde5.desktop
103	rm -f $(DESTDIR)$(datadir)/xsessions/sawfish-mate.desktop
104	rm -f $(DESTDIR)$(datadir)/xsessions/sawfish-lumina.desktop
105	rm -f $(DESTDIR)$(datadir)/applications/sawfish.desktop
106	rm -f $(DESTDIR)$(GNOMEDIR)/share/gnome/wm-properties/sawfish-wm.desktop
107	rm -f $(DESTDIR)$(KDE5DIR)/ksmserver/windowmanagers/sawfish.desktop
108	rm -f $(DESTDIR)$(KDE4DIR)/ksmserver/windowmanagers/sawfish.desktop
109	rm -f $(DESTDIR)$(bindir)/sawfish-*-session
110
111# At this stage, DOC file omits some docstrings. (Only small portion,
112# though.) Byte compilation makes it complete.
113DOC :
114	repdoc DOC `find $(srcdir) \( -name '*.c' -o -name '*.jl' \) -print|LC_ALL=C sort`
115
116changelog :
117	$(srcdir)/scripts/make-changelog
118
119clean :
120	-for dir in $(SUBDIRS); do \
121	  [ -d $$dir ] && ( cd $$dir && $(MAKE) $@ ) || exit 1; \
122	done
123	rm -f *~ DOC* TAGS build.h
124
125distclean : clean
126	-for dir in $(SUBDIRS); do \
127	  [ -d $$dir ] && ( cd $$dir && $(MAKE) $@ ) || exit 1; \
128	done
129	rm -f config.cache config.h config.log config.status \
130		Makedefs Makefile libtool *~ DOC* TAGS build.h \
131		data/sawfish.pc aclocal.m4 configure ltmain.sh \
132		config.h.in
133	rm -rf autom4te.cache m4/
134
135tarball :
136	git checkout-index --prefix="$$HOME/sawfish-$(version)/" -a
137
138TAGS :
139	etags --language=c `find $(srcdir) -name '*.[ch]' -print` \
140	      --language=lisp `find $(srcdir) -name '*.jl' -print`
141
142.PHONY: install uninstall tar clean distclean tarball TAGS
143