configure: New architectures kfreebsd* and Hurd
[wmaker-crm.git] / debian / rules
blobd3b448f3b215c61c131288f95499778fe0887af3
1 #!/usr/bin/make -f
2 # GNU Copyright 1997-2005 Marcelo Magallon <mmagallo@debian.org>
3 export DH_VERBOSE=1
5 package := wmaker
6 version := $(shell dpkg-parsechangelog | grep-dctrl -ne -sVersion -FVersion .)
8 SHELL=/bin/sh
9 CFLAGS = -g -Wall -DGLOBAL_DEFAULTS_SUBDIR="\\\"GNUstep/Defaults\\\""
11 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
12 CFLAGS += -O0
13 else
14 CFLAGS += -O2
15 endif
17 ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
18 CFLAGS += -DDEBUG
19 endif
21 # These are used for cross-compiling and for saving the configure script
22 # from having to guess our platform (since we know it already)
23 export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
24 export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
26 ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
27 HOSTSPEC := --build $(DEB_HOST_GNU_TYPE)
28 else
29 HOSTSPEC := --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
30 endif
32 LINGUAS := $(patsubst po/%.po, %, $(wildcard po/*.po))
34 XLOCALE := --disable-locale
35 MODELOCK := --enable-modelock
36 XINERAMA := --enable-xinerama
37 # USERMENU := --enable-usermenu
38 # SHAPE_EXT := --disable-shape
39 # USE_SHM := --disable-shm
40 # USE_XPM := --disable-xpm
41 # USE_PNG := --disable-png
42 # USE_JPEG := --disable-jpeg
43 # USE_GIF := --disable-gif
44 # USE_TIFF := --disable-tiff
46 WMAKER_OPTIONS := $(XLOCALE) $(MODELOCK) $(XINERAMA) \
47 $(USERMENU) $(SHAPE_EXT) $(USE_SHM) \
48 $(USE_XPM) $(USE_PNG) $(USE_JPEG) $(USE_GIF) $(USE_TIFF) \
49 $(HOSTSPEC)
51 TOPSRCDIR := $(shell pwd)
53 WMAKER := wmaker
54 WMAKER_COMMON := wmaker-common
55 WMAKER_DBG := wmaker-dbg
56 LIBWRASTER := libwraster3
57 LIBWRASTERDEV := $(LIBWRASTER)-dev
58 LIBWINGS := libwings-dev
60 # Be careful with the leading / because some of these values are going
61 # to be hardcoded into the executables
62 BASEDIR := /usr
63 CONFDIR := /etc
64 BINDIR := $(BASEDIR)/bin
65 INCLUDEDIR := $(BASEDIR)/include
66 SHAREDIR := $(BASEDIR)/share
67 DOCDIR := $(SHAREDIR)/doc
68 MANDIR := $(SHAREDIR)/man
69 MAN1DIR := $(MANDIR)/man1
70 MAN8DIR := $(MANDIR)/man8
71 LIBDIR := $(SHAREDIR)/lib
72 PKGLIBDIR := $(SHAREDIR)/lib/WindowMaker
73 NLSDIR := $(SHAREDIR)/locale
74 WMCONFDIR := $(CONFDIR)/X11/WindowMaker
75 WMSHAREDIR := $(SHAREDIR)/WindowMaker
76 WMDOCDIR := $(DOCDIR)/wmaker
77 GNUSTEPDIR := $(LIBDIR)/GNUstep/System
78 GNUSTEPCONFDIR := $(CONFDIR)/GNUstep
79 DEFAULTSDIR := $(GNUSTEPCONFDIR)/Defaults
80 PIXMAPDIR := $(INCLUDEDIR)/X11/pixmaps
81 GNUSTEPAPPS := $(GNUSTEPDIR)/Applications
82 WPREFSAPPDIR := $(GNUSTEPAPPS)/WPrefs.app
84 WPREFSSRCDIR := $(TOPSRCDIR)/WPrefs.app
85 WRASTERSRCDIR := $(TOPSRCDIR)/wrlib
86 WINGSSRCDIR := $(TOPSRCDIR)/WINGs
88 DEBDIR := $(TOPSRCDIR)/debian
89 DEBDIR_TMP := $(DEBDIR)/tmp
91 WMAKER_TMP := $(DEBDIR)/$(WMAKER)
92 WMAKER_COMMON_TMP := $(DEBDIR)/$(WMAKER_COMMON)
93 WMAKER_DBG_TMP := $(DEBDIR)/$(WMAKER_DBG)
94 LIBWRASTER_TMP := $(DEBDIR)/$(LIBWRASTER)
95 LIBWRASTERDEV_TMP := $(DEBDIR)/$(LIBWRASTERDEV)
96 LIBWINGS_TMP := $(DEBDIR)/$(LIBWINGS)
98 RM := rm -f
100 COMMON_OPTIONS := --prefix=$(BASEDIR) \
101 --mandir=$(MANDIR) \
102 --includedir=$(INCLUDEDIR) \
103 --sysconfdir=$(CONFDIR) \
104 --datadir=$(SHAREDIR) \
105 --with-nlsdir=$(NLSDIR) \
106 --with-pixmapdir=$(PIXMAPDIR) \
107 --with-gnustepdir=$(GNUSTEPDIR)
109 install_file := install -p -o root -g root -m 0644
110 install_prog := install -p -o root -g root -m 0755
113 dh $@
115 override_dh_auto_configure:
116 $(TOPSRCDIR)/autogen.sh
117 ifneq "$(wildcard /usr/share/misc/config.sub)" ""
118 cp -f /usr/share/misc/config.sub config.sub
119 endif
120 ifneq "$(wildcard /usr/share/misc/config.guess)" ""
121 cp -f /usr/share/misc/config.guess config.guess
122 endif
123 LINGUAS="$(LINGUAS)" $(TOPSRCDIR)/configure $(COMMON_OPTIONS) \
124 $(WMAKER_OPTIONS) CFLAGS="$(CFLAGS)"
126 override_dh_clean:
127 dh_clean
128 # rm the file WMRootMenu, added by WindowMaker/Defaults/Makefile
129 $(RM) WindowMaker/Defaults/WMRootMenu
130 # quilt (I do not why is not automatically)
131 QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2
133 override_dh_installmenu:
134 dh_installmenu -a --noscripts
135 # Copy extra menu files to the WMCONFIG
136 $(install_prog) $(DEBDIR)/appearance.menu-method \
137 $(WMAKER_COMMON_TMP)/etc/menu-methods/wmappearance
138 $(install_file) $(TOPSRCDIR)/WindowMaker/appearance.menu \
139 $(WMAKER_COMMON_TMP)/$(WMCONFDIR)/
140 $(install_file) $(TOPSRCDIR)/WindowMaker/background.menu \
141 $(WMAKER_COMMON_TMP)/$(WMCONFDIR)/
142 $(install_file) $(TOPSRCDIR)/WindowMaker/wmmacros \
143 $(WMAKER_COMMON_TMP)/$(WMCONFDIR)/
144 touch $(WMAKER_COMMON_TMP)/$(WMCONFDIR)/menu.prehook
145 touch $(WMAKER_COMMON_TMP)/$(WMCONFDIR)/menu.posthook
146 # Now, change the #wmdatadir# string to $(WMSHAREDIR)
147 perl -pi -e 's:#wmdatadir#:$(WMSHAREDIR):' $(WMAKER_COMMON_TMP)/$(WMCONFDIR)/wmmacros
148 perl -pi -e 's:#wmdatadir#:$(WMSHAREDIR):' $(WMAKER_COMMON_TMP)/$(WMSHAREDIR)/wmmacros
149 perl -pi -e 's:#wmdatadir#:$(WMSHAREDIR):' $(WMAKER_COMMON_TMP)/$(WMSHAREDIR)/plmenu
150 perl -pi -e 's:#wmdatadir#:$(WMSHAREDIR):' `find $(WMAKER_COMMON_TMP)/$(WMSHAREDIR) -name plmenu.*`
151 perl -pi -e 's:#wmdatadir#:$(WMSHAREDIR):' $(WMAKER_COMMON_TMP)/$(DEFAULTSDIR)/WMRootMenu
152 perl -pi -e 's:#wmdatadir#:$(WMSHAREDIR):' $(WMAKER_COMMON_TMP)/$(WMSHAREDIR)/Defaults/WMRootMenu
154 override_dh_installdocs:
155 dh_installdocs -a
156 $(install_file) $(WINGSSRCDIR)/README \
157 $(LIBWINGS_TMP)/$(DOCDIR)/$(LIBWINGS)/README.WINGs
158 $(install_file) $(WRASTERSRCDIR)/README \
159 $(LIBWRASTER_TMP)/$(DOCDIR)/$(LIBWRASTER)/README.wrlib
160 # Why?
161 $(install_file) $(DEBDIR)/copyright \
162 $(WMAKER_COMMON_TMP)/$(DOCDIR)/$(WMAKER_COMMON)/
165 override_dh_installchangelogs:
166 dh_installchangelogs
167 dh_installchangelogs ChangeLog upstream
169 override_dh_install:
170 dh_install
171 dh_strip -a --dbg-package=$(WMAKER_DBG)
172 mv $(DEBDIR_TMP)/etc/WindowMaker/* $(WMAKER_COMMON_TMP)/$(DEFAULTSDIR)/
173 rmdir $(DEBDIR_TMP)/etc/WindowMaker
175 # Now begin fixing stuff
176 $(install_file) $(DEBDIR)/wmaker-common.desktop $(WMAKER_COMMON_TMP)/usr/share/xsessions
178 # First, provide a wrapper to compensate for Window Maker's funny first
179 # start up requierements
181 # WMaker and WMaker debug
182 mv $(WMAKER_TMP)/$(BINDIR)/wmaker \
183 $(WMAKER_TMP)/usr/lib/WindowMaker/WindowMaker
184 mv $(WMAKER_DBG_TMP)/usr/lib/debug$(BINDIR)/wmaker \
185 $(WMAKER_DBG_TMP)/usr/lib/debug/usr/lib/WindowMaker/WindowMaker
187 # convertfonts and convertfonts debug
188 mv $(WMAKER_TMP)/$(BINDIR)/convertfonts \
189 $(WMAKER_TMP)/usr/lib/WindowMaker/
190 mv $(WMAKER_DBG_TMP)/usr/lib/debug$(BINDIR)/convertfonts \
191 $(WMAKER_DBG_TMP)/usr/lib/debug/usr/lib/WindowMaker/
193 # WPrefs
194 mv $(DEBDIR_TMP)/$(WPREFSAPPDIR)/WPrefs \
195 $(WMAKER_TMP)/usr/lib/GNUstep/System/Applications/WPrefs.app/WPrefs
197 $(install_prog) $(DEBDIR)/wmaker.sh $(WMAKER_COMMON_TMP)/$(BINDIR)/wmaker
199 # place wm-oldmenu2new under a more appropiate directory
200 -mv $(DEBDIR_TMP)/$(BINDIR)/wm-oldmenu2new $(WMAKER_COMMON_TMP)/$(WMDOCDIR)
202 # the next is stricly not necessary, because there's a symlink in place,
203 # but I don't want to abuse it. Some dumb program uses that path and is a
204 # PITA to modify it)
205 perl -pi -e 's:$(WPREFSAPPDIR)/WPrefs:$(BINDIR)/WPrefs:' \
206 $(WMAKER_COMMON_TMP)/$(DEFAULTSDIR)/WMState
208 # Fix permissions
209 chmod +x $(WMAKER_COMMON_TMP)/usr/share/WindowMaker/autostart.sh
210 chmod +x $(WMAKER_COMMON_TMP)/usr/share/WindowMaker/exitscript.sh
212 # Install our transition script
213 $(install_prog) $(DEBDIR)/upgrade-windowmaker-defaults \
214 $(WMAKER_COMMON_TMP)/usr/sbin/upgrade-windowmaker-defaults
216 # This file qualifies as "unpatchable"
217 cp $(DEBDIR)/WMWindowAttributes $(WMAKER_COMMON_TMP)/$(DEFAULTSDIR)/
218 # Need this file for start up
219 echo '"menu.hook"' > $(WMAKER_COMMON_TMP)/$(DEFAULTSDIR)/WMRootMenu
221 # the plethora of readmes
222 cp $(TOPSRCDIR)/po/README \
223 $(WMAKER_COMMON_TMP)/$(WMDOCDIR)/README.po
224 cp $(TOPSRCDIR)/README.definable-cursor \
225 $(WMAKER_COMMON_TMP)/$(WMDOCDIR)/README.definable-cursor
226 cp $(WPREFSSRCDIR)/README \
227 $(WMAKER_COMMON_TMP)/$(WMDOCDIR)/README.WPrefs
228 cp $(WPREFSSRCDIR)/po/README \
229 $(WMAKER_COMMON_TMP)/$(WMDOCDIR)/README.WPrefs.po
231 # Copy in the Debian theme
232 cp $(DEBDIR)/Debian.theme $(WMAKER_COMMON_TMP)/$(WMSHAREDIR)/Themes/Debian
233 uudecode -o $(WMAKER_COMMON_TMP)/$(WMSHAREDIR)/Backgrounds/debian.tiff \
234 $(DEBDIR)/debian.tiff.uu
235 # This has the new default Debian theme settings.
236 cp $(DEBDIR)/WindowMaker.default $(WMAKER_COMMON_TMP)/$(DEFAULTSDIR)/WindowMaker
238 # Fix the get-*-flags scripts
239 perl -pi -e '/^WCFLAGS/ && s:=.*:="-I/usr/X11R6/include":; /^WLFLAGS/ && s:=.*:="-L/usr/X11R6/lib":;' `find $(LIBWRASTERDEV_TMP) -name get-*-flags`
240 perl -pi -e '/^WCFLAGS/ && s:=.*:="-I/usr/X11R6/include":; /^WLFLAGS/ && s:=.*:="-L/usr/X11R6/lib":;' `find $(LIBWINGS_TMP) -name get-*-flags`
241 perl -pi -e '/^WLIBS/ && s:=.*:="-lwraster":' `find $(LIBWRASTERDEV_TMP) -name get-wraster-flags`
242 perl -pi -e '/^WLIBS/ && s:=.*:="-lWINGs -lwraster -lXft":' `find $(LIBWINGS_TMP) -name get-wings-flags`
243 perl -pi -e '/^WLIBS/ && s:=.*:="-lWUtil -lX11":' `find $(LIBWINGS_TMP) -name get-wutil-flags`