2 # GNU Copyright 1997-2005 Marcelo Magallon <mmagallo@debian.org>
5 version
:= $(shell dpkg-parsechangelog | grep-dctrl
-ne
-sVersion
-FVersion .
)
7 # use '(>= some_version)' whenever version dependencies are needed
8 # libwraster_deps := (>= 0.90.0-1)
12 CFLAGS
= -g
-Wall
-DGLOBAL_DEFAULTS_SUBDIR
="\\\"GNUstep/Defaults\\\""
14 ifneq (,$(findstring noopt
,$(DEB_BUILD_OPTIONS
)))
20 ifneq (,$(findstring debug
,$(DEB_BUILD_OPTIONS
)))
24 LINGUAS
:= $(patsubst po
/%.po
, %, $(wildcard po
/*.po
))
25 #LINGUAS := $(filter-out zh_TW.Big5, $(LINGUAS))
27 XLOCALE
:= --disable-locale
28 MODELOCK
:= --enable-modelock
30 XINERAMA
:= --enable-xinerama
32 # USERMENU := --enable-usermenu
34 # SHAPE_EXT := --disable-shape
35 # USE_SHM := --disable-shm
37 # USE_XPM := --disable-xpm
38 # USE_PNG := --disable-png
39 # USE_JPEG := --disable-jpeg
40 # USE_GIF := --disable-gif
41 # USE_TIFF := --disable-tiff
43 WMAKER_OPTIONS
:= $(XLOCALE
) $(MODELOCK
) $(XINERAMA
) \
44 $(USERMENU
) $(SHAPE_EXT
) $(USE_SHM
) \
45 $(USE_XPM
) $(USE_PNG
) $(USE_JPEG
) $(USE_GIF
) $(USE_TIFF
)
47 TOPSRCDIR
:= $(shell pwd
)
48 DEBTMPDIR
:= $(TOPSRCDIR
)/debian
/wmaker
51 WMAKER_BD
:= $(TOPSRCDIR
)/$(WMAKER
)
52 WMAKER_TMP
:= $(DEBTMPDIR
)
54 # Be careful with the leading / because some of these values are going
55 # to be hardcoded into the executables
59 BINDIR
:= $(BASEDIR
)/bin
60 INCLUDEDIR
:= $(BASEDIR
)/include
61 SHAREDIR
:= $(BASEDIR
)/share
62 DOCDIR
:= $(SHAREDIR
)/doc
63 MANDIR
:= $(SHAREDIR
)/man
64 MAN1DIR
:= $(MANDIR
)/man1
65 MAN8DIR
:= $(MANDIR
)/man8
66 LIBDIR
:= $(BASEDIR
)/lib
67 PKGLIBDIR
:= $(BASEDIR
)/lib
/WindowMaker
68 NLSDIR
:= $(SHAREDIR
)/locale
69 WMCONFDIR
:= $(CONFDIR
)/X11
/WindowMaker
70 WMSHAREDIR
:= $(SHAREDIR
)/WindowMaker
71 WMDOCDIR
:= $(DOCDIR
)/wmaker
72 GNUSTEPDIR
:= $(LIBDIR
)/GNUstep
/System
73 GNUSTEPCONFDIR
:= $(CONFDIR
)/GNUstep
74 DEFAULTSDIR
:= $(GNUSTEPCONFDIR
)/Defaults
75 PIXMAPDIR
:= $(INCLUDEDIR
)/X11
/pixmaps
76 GNUSTEPAPPS
:= $(GNUSTEPDIR
)/Applications
77 WPREFSAPPDIR
:= $(GNUSTEPAPPS
)/WPrefs.app
79 WPREFSSRCDIR
:= $(TOPSRCDIR
)/WPrefs.app
80 WRASTERSRCDIR
:= $(TOPSRCDIR
)/wrlib
81 WINGSSRCDIR
:= $(TOPSRCDIR
)/WINGs
83 LIBWRASTER
:= libwraster3
84 LIBWRASTER_TMP
:= $(DEBTMPDIR
)/..
/$(LIBWRASTER
)
85 LIBWINGS
:= libwings-dev
86 LIBWINGS_TMP
:= $(DEBTMPDIR
)/..
/$(LIBWINGS
)
89 RMDIR
:= rmdir
--ignore-fail-on-non-empty
91 COMMON_OPTIONS
:= --prefix=$(BASEDIR
) \
93 --includedir=$(INCLUDEDIR
) \
94 --sysconfdir
=$(CONFDIR
) \
95 --datadir=$(SHAREDIR
) \
96 --with-nlsdir
=$(NLSDIR
) \
97 --with-pixmapdir
=$(PIXMAPDIR
) \
98 --with-gnustepdir
=$(GNUSTEPDIR
) \
101 LIST_PATCHES
:= find debian
/patches
-mindepth
1 -maxdepth
1 -name \
*.diff
-type f |
sort
102 RLIST_PATCHES
:= find debian
/patches
-mindepth
1 -maxdepth
1 -name \
*.diff
-type f |
sort -r
104 install_file
:= install -p
-o root
-g root
-m
0644
105 install_prog
:= install -p
-o root
-g root
-m
0755
106 install_dir
:= install -p
-d
-o root
-g root
-m
0755
109 build-stamp
: build-wmaker-stamp
112 build-wmaker-stamp
: config-wmaker-stamp
113 $(RM
) $(patsubst %.in
,%,$(shell find WindowMaker
-name \
*.in
! -name Makefile.in
))
114 test -x libtool || ln
-sf
$(WMAKER_BD
)/libtool .
115 $(MAKE
) -C
$(WMAKER_BD
)
118 config-wmaker-stamp
: patch-wmaker-stamp configure
120 test -x config.guess || chmod
+x config.guess
121 test -x config.sub || chmod
+x config.sub
122 find
-name \
*.h.in | sed
-e
's/\.in$$//' | xargs
-r
rm -f
123 mkdir
-p
$(WMAKER_BD
)
125 LINGUAS
="$(LINGUAS)" $(TOPSRCDIR
)/configure
$(COMMON_OPTIONS
) \
126 $(WMAKER_OPTIONS
) CFLAGS
="$(CFLAGS)"
131 while read patch
; do \
133 if head
-1 $$patch | grep
-q ^Index
: ; then \
134 patch
-p0
< $$patch ; \
136 patch
-p1
< $$patch ; \
144 while read patch
; do \
146 if head
-1 $$patch | grep
-q ^Index
: ; then \
147 patch
--dry-run
-p0
< $$patch ; \
149 patch
--dry-run
-p1
< $$patch ; \
155 @if
[ -e patch-wmaker-stamp
] ; then \
157 while read patch
; do \
159 if head
-1 $$patch | grep
-q ^Index
: ; then \
160 patch
-p0
-R
< $$patch ; \
162 patch
-p1
-R
< $$patch ; \
166 rm patch-wmaker-stamp
; \
172 $(RM
) -r
$(WMAKER_BD
)
175 debian
/shlibs.local \
177 debian
/rules unpatch-wmaker
190 debian
/rules install-wmaker-stamp
191 debian
/rules debian
/$(LIBWRASTER
)-dev.files
192 debian
/rules debian
/$(LIBWRASTER
).files
193 debian
/rules debian
/$(LIBWINGS
).files
194 dh_movefiles
-a
--sourcedir
=debian
/wmaker
196 $(RM
) $(DEBTMPDIR
)/usr
/bin
/wkdemenu.pl
198 dh_installmenu
-a
--noscripts
199 $(install_prog
) debian
/appearance.menu-method \
200 $(DEBTMPDIR
)/etc
/menu-methods
/wmappearance
201 $(install_file
) WindowMaker
/appearance.menu \
202 $(DEBTMPDIR
)/$(WMCONFDIR
)/
203 $(install_file
) WindowMaker
/background.menu \
204 $(DEBTMPDIR
)/$(WMCONFDIR
)/
205 $(install_file
) WindowMaker
/wmmacros \
206 $(DEBTMPDIR
)/$(WMCONFDIR
)/
207 touch
$(DEBTMPDIR
)/$(WMCONFDIR
)/menu.prehook
208 touch
$(DEBTMPDIR
)/$(WMCONFDIR
)/menu.posthook
209 $(install_file
) debian
/wmaker.desktop
$(DEBTMPDIR
)/usr
/share
/xsessions
210 # build a conffiles list AFTER installing the menus
211 # the sed part is there because of policy
212 # -cd $(DEBTMPDIR) && \
213 # find etc ! -type d \
214 # | sed -e "s:^etc/:/etc/:" > ../conffiles
216 $(install_file
) $(WINGSSRCDIR
)/README \
217 $(LIBWINGS_TMP
)/$(DOCDIR
)/$(LIBWINGS
)/README.WINGs
218 $(install_file
) $(WRASTERSRCDIR
)/README \
219 $(LIBWRASTER_TMP
)/$(DOCDIR
)/$(LIBWRASTER
)/README.wrlib
220 $(install_dir
) $(DEBTMPDIR
)/$(MAN1DIR
)
221 $(RM
) $(DEBTMPDIR
)/$(MAN1DIR
)/convertstyle
*
222 dh_installman
-pwmaker debian
/manpages
/*.1x
223 dh_installman
-pwmaker debian
/manpages
/*.8
224 dh_installman
-plibwraster3-dev debian
/manpages
/get-wraster-flags
.1
225 dh_installman
-plibwings-dev debian
/manpages
/get-wings-flags
.1
226 dh_installman
-plibwings-dev debian
/manpages
/get-wutil-flags
.1
227 dh_installchangelogs
-a ChangeLog
231 cd debian
&& find
-name \
*.la
-exec chmod a-X
{} \
;
233 dh_makeshlibs
-p
$(LIBWRASTER
) -V
'$(LIBWRASTER) $(libwraster_deps)'
234 dh_shlibdeps
-u-L
$(LIBWRASTER_TMP
)/DEBIAN
/shlibs
235 dh_gencontrol
-a
-u-isp
237 find debian
-type d
-empty
-print0 | xargs
-0r
rm -rf
238 $(RMDIR
) $(DEBTMPDIR
)/$(INCLUDEDIR
)
241 binary
: binary-indep binary-arch
243 install-wmaker-stamp
: DH_OPTIONS
=-pwmaker
244 install-wmaker-stamp
: build-wmaker-stamp
247 $(MAKE
) -C
$(WMAKER_BD
) install DESTDIR
=$(DEBTMPDIR
)/
249 mv
$(DEBTMPDIR
)/etc
/WindowMaker
/* $(DEBTMPDIR
)/$(DEFAULTSDIR
)/
251 # Now begin fixing stuff
253 # First, provide a wrapper to compensate for Window Maker's funny first
254 # start up requierements
255 mv
$(DEBTMPDIR
)/$(BINDIR
)/wmaker
$(DEBTMPDIR
)/$(PKGLIBDIR
)/WindowMaker
256 dh_link
$(PKGLIBDIR
)/WindowMaker
$(BINDIR
)/WindowMaker
257 $(install_prog
) debian
/wmaker.sh
$(DEBTMPDIR
)/$(BINDIR
)/wmaker
259 -mv
$(DEBTMPDIR
)/$(BINDIR
)/convertfonts
$(DEBTMPDIR
)/$(PKGLIBDIR
)/
261 # place wm-oldmenu2new under a more appropiate directory
262 -mv
$(DEBTMPDIR
)/$(BINDIR
)/wm-oldmenu2new
$(DEBTMPDIR
)/$(WMDOCDIR
)
264 # put a symlink in place because there's some hardcoded value that says
265 # Defaults is under /usr/share/WindowMaker.
266 ln
-s
$(DEFAULTSDIR
) $(DEBTMPDIR
)/$(WMSHAREDIR
)/Defaults
267 # the next is stricly not necessary, because there's a symlink in place,
268 # but I don't want to abuse it. Some dumb program uses that path and is a
270 perl
-pi
-e
's:/$(WPREFSAPPDIR)/WPrefs:/$(BINDIR)/WPrefs:' \
271 $(DEBTMPDIR
)/$(DEFAULTSDIR
)/WMState
274 $(RM
) $(DEBTMPDIR
)/$(BINDIR
)/wmaker.inst
275 $(RM
) $(DEBTMPDIR
)/$(BINDIR
)/wmsetup
276 # this copyright is located in /$(DOCDIR)/wmaker
277 $(RM
) $(DEBTMPDIR
)/$(WMCONFDIR
)/Copyright
280 chmod
+x
$(DEBTMPDIR
)/usr
/share
/WindowMaker
/autostart.sh
281 chmod
+x
$(DEBTMPDIR
)/usr
/share
/WindowMaker
/exitscript.sh
283 # Install our transition script
284 $(install_prog
) debian
/upgrade-windowmaker-defaults \
285 $(DEBTMPDIR
)/usr
/sbin
/upgrade-windowmaker-defaults
287 # This file qualifies as "unpatchable"
288 cp debian
/WMWindowAttributes
$(DEBTMPDIR
)/$(DEFAULTSDIR
)/
289 # Need this file for start up
290 echo
'"menu.hook"' > $(DEBTMPDIR
)/$(DEFAULTSDIR
)/WMRootMenu
292 # the plethora of readmes
293 -cp
$(TOPSRCDIR
)/po
/README \
294 $(DEBTMPDIR
)/$(WMDOCDIR
)/README.po
295 -cp
$(TOPSRCDIR
)/README.definable-cursor \
296 $(DEBTMPDIR
)/$(WMDOCDIR
)/README.definable-cursor
297 -cp
$(WPREFSSRCDIR
)/README \
298 $(DEBTMPDIR
)/$(WMDOCDIR
)/README.WPrefs
299 -cp
$(WPREFSSRCDIR
)/po
/README \
300 $(DEBTMPDIR
)/$(WMDOCDIR
)/README.WPrefs.po
302 # Copy in the Debian theme
303 cp debian
/Debian.theme
$(DEBTMPDIR
)/$(WMSHAREDIR
)/Themes
/Debian
304 uudecode
-o
$(DEBTMPDIR
)/$(WMSHAREDIR
)/Backgrounds
/debian.tiff \
305 debian
/debian.tiff.uu
306 # This has the new default Debian theme settings.
307 cp debian
/WindowMaker.default
$(DEBTMPDIR
)/$(DEFAULTSDIR
)/WindowMaker
309 # Overrides lintian warnings
310 dh_installdirs usr
/share
/lintian
/overrides
311 cp debian
/wmaker.overrides debian
/wmaker
/usr
/share
/lintian
/overrides
/wmaker
314 # fix the location of WPrefs
315 # mv $(DEBTMPDIR)/$(WPREFSAPPDIR)/WPrefs $(DEBTMPDIR)/$(BINDIR)
316 # dh_link $(BINDIR)/WPrefs $(WPREFSAPPDIR)/WPrefs
317 dh_link
$(WPREFSAPPDIR
)/WPrefs
$(BINDIR
)/WPrefs
318 # libwraster is compiled with tiff support, we don't need the xpm version
319 $(RM
) -r
$(DEBTMPDIR
)/$(WPREFSAPPDIR
)/xpm
320 $(RM
) $(patsubst %.tiff
,%.xpm
,$(wildcard $(DEBTMPDIR
)/$(WMSHAREDIR
)/Icons
/*.tiff
))
322 # Fix the get-*-flags scripts
323 perl
-pi
-e
'/^WCFLAGS/ && s:=.*:="-I/usr/X11R6/include":; /^WLFLAGS/ && s:=.*:="-L/usr/X11R6/lib":;' `find $(DEBTMPDIR) -name get-*-flags`
324 perl
-pi
-e
'/^WLIBS/ && s:=.*:="-lwraster":' `find $(DEBTMPDIR) -name get-wraster-flags`
325 perl
-pi
-e
'/^WLIBS/ && s:=.*:="-lWINGs -lwraster -lXft":' `find $(DEBTMPDIR) -name get-wings-flags`
326 perl
-pi
-e
'/^WLIBS/ && s:=.*:="-lWUtil -lX11":' `find $(DEBTMPDIR) -name get-wutil-flags`
329 if
[ -d
$(DEBTMPDIR
)/usr
/include/WINGs
] ; then \
330 mv
$(DEBTMPDIR
)/usr
/include/WINGs
/* \
331 $(DEBTMPDIR
)/usr
/include ; \
332 rmdir
$(DEBTMPDIR
)/usr
/include/WINGs
; \
336 debian
/$(LIBWRASTER
)-dev.files
: build
337 ( find
$(DEBTMPDIR
)/$(INCLUDEDIR
) $(DEBTMPDIR
)/$(LIBDIR
) \
338 -name
'*wraster*.h' \
339 -o
-name
'*wraster*.a' \
340 -o
-name
'*wraster*.la' \
341 -o
-name
'*wraster*.so' ; \
343 find usr
-name get-wraster-flags \
344 ) | sed
-e
's:$(DEBTMPDIR)/*::'> $@
346 debian
/$(LIBWRASTER
).files
: build
347 ( find
$(DEBTMPDIR
)/$(INCLUDEDIR
) $(DEBTMPDIR
)/$(LIBDIR
) \
348 -name
'*wraster*.so.*' \
349 ) | sed
-e
's:$(DEBTMPDIR)/*::'> $@
351 debian
/libwings-dev.files
: build
352 ( find
$(DEBTMPDIR
)/$(INCLUDEDIR
) $(DEBTMPDIR
)/$(LIBDIR
) \
354 -o
-name
'*WUtil*' | grep
-v
'\.so\.[0-9]' ; \
356 find usr
-name get-wutil-flags
-o
-name get-wings-flags \
357 ) | sed
-e
's:$(DEBTMPDIR)/*::'> $@
360 echo
'libwraster $(patsubst libwraster%,%, $(LIBWRASTER)) $(LIBWRASTER) $(libwraster_deps)' > $@
362 configure
: configure.ac
363 $(TOPSRCDIR
)/autogen.sh
365 .PHONY
: binary binary-arch binary-indep binary-custom
clean build unpatch-wmaker