45a6c604cc2ed83150c64d1fe235c9fcefe1ff3d
[platform/upstream/busybox.git] / debian / rules
1 #!/usr/bin/make -f
2
3 # This is a bit unusual, in that I have to completely recompile everything
4 # for each package I build (obviously static and dynamic builds require
5 # things to be recompiled...)
6
7 # This is the debhelper compatability version to use.
8 #export DH_COMPAT=1
9
10 bbbd=debian/busybox_builddir
11 bb=debian/tmp
12 bbsbd=debian/busybox_static_builddir
13 bbs=debian/busybox-static
14 bbubd=debian/busybox_udeb_builddir
15 bbu=debian/busybox-udeb
16
17 clean:
18         dh_testdir
19         dh_testroot
20         rm -f debian/build-stamp-busybox debian/build-stamp-busybox-static debian/build-stamp-busybox-udeb
21         -$(MAKE) clean
22         -rm -rf $(bb) $(bbbd) $(bbs) $(bbsbd) $(bbubd) $(bbu)
23         dh_clean
24
25 build: debian/build-stamp-busybox
26 debian/build-stamp-busybox:
27         dh_testdir
28         mkdir -p $(bbbd)
29         cp Makefile $(bbbd)
30         cp debian/Config.h-deb $(bbbd)/Config.h
31         -(cd $(bbbd); $(MAKE) "CONFIG_SRC_DIR=../../" applet_source_list)
32         (cd $(bbbd); $(MAKE) USE_SYSTEM_PWD_GRP=false "CONFIG_SRC_DIR=../../")
33         touch debian/build-stamp-busybox
34
35 install: build
36         dh_testdir
37         dh_testroot
38         dh_clean -k
39         dh_installdirs
40         # Do not run 'make install', since we do not want all the symlinks. 
41         # This just installes the busybox binary...
42         #(cd $(bbbd); $(MAKE) "CONFIG_SRC_DIR=../../" "PREFIX=../../$(bb)" install)
43         mkdir -p $(bb)/bin/
44         cp $(bbbd)/busybox $(bb)/bin/busybox
45         mkdir -p $(bb)/usr/share/doc/busybox/busybox.lineo.com
46         cp $(bbbd)/docs/busybox.lineo.com/BusyBox.html $(bb)/usr/share/doc/busybox/busybox.lineo.com/
47         mkdir -p $(bb)/usr/share/man/man1
48         cp $(bbbd)/docs/BusyBox.1 $(bb)/usr/share/man/man1/busybox.1
49
50 # Now for the statically linked stuff
51 build-static: debian/build-stamp-busybox-static
52 debian/build-stamp-busybox-static:
53         dh_testdir
54         mkdir -p $(bbsbd)
55         cp Makefile $(bbsbd)
56         cp debian/Config.h-static $(bbsbd)/Config.h
57         (cd $(bbsbd); $(MAKE) DOSTATIC=true USE_SYSTEM_PWD_GRP=false "CONFIG_SRC_DIR=../../")
58         touch debian/build-stamp-busybox-static
59
60 install-static: build
61         dh_testdir
62         dh_testroot
63         dh_clean -k
64         dh_installdirs
65         # Do not run 'make install', since we do not want all the symlinks. 
66         # This just installes the busybox binary...
67         #(cd $(bbsbd); $(MAKE) "CONFIG_SRC_DIR=../../" "PREFIX=../../$(bbs)" install)
68         mkdir -p $(bbs)/bin/
69         cp $(bbsbd)/busybox $(bbs)/bin/busybox
70         mkdir -p $(bbs)/usr/share/doc/busybox-static/busybox.lineo.com
71         cp $(bbsbd)/docs/busybox.lineo.com/BusyBox.html $(bbs)/usr/share/doc/busybox-static/busybox.lineo.com/
72         mkdir -p $(bbs)/usr/share/man/man1/
73         cp $(bbsbd)/docs/BusyBox.1 $(bbs)/usr/share/man/man1/busybox.1
74
75 half_clean:
76         dh_testdir
77         dh_testroot
78         rm -rf $(bbs) debian/build-stamp-busybox-static
79         -$(MAKE) clean
80
81 do_static: half_clean build-static install-static
82
83
84
85 # Now for the .udeb stuff
86 PACKAGE=busybox-udeb
87 VERSION=$(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2 | sed -e s/[0-9]://g)
88 ARCH=$(shell dpkg --print-architecture)
89 FILENAME=$(PACKAGE)_$(VERSION)_$(ARCH).udeb
90
91 build-udeb: debian/build-stamp-busybox-udeb
92 debian/build-stamp-busybox-udeb:
93         dh_testdir
94         mkdir -p $(bbubd)
95         cp Makefile $(bbubd)
96         cp debian/Config.h-udeb $(bbubd)/Config.h
97         (cd $(bbubd); $(MAKE) USE_SYSTEM_PWD_GRP=false "CONFIG_SRC_DIR=../../")
98         touch debian/build-stamp-busybox-udeb
99
100 install-udeb: build
101         dh_testdir
102         dh_testroot
103         dh_clean -k
104         dh_installdirs
105         (cd $(bbubd); $(MAKE) "CONFIG_SRC_DIR=../../" "PREFIX=../../$(bbu)" install)
106         mkdir -p $(bbu)/usr/share/man/man1/
107         cp $(bbubd)/docs/BusyBox.1 $(bbu)/usr/share/man/man1/busybox.1
108
109 three_quarter_clean:
110         dh_testdir
111         dh_testroot
112         rm -rf $(bbu) debian/build-stamp-busybox-udeb
113         -$(MAKE) clean
114
115 do_udeb: three_quarter_clean build-udeb install-udeb
116
117
118
119 # Build architecture-independent files here.
120 binary-indep:
121 # We have nothing to do by default.
122
123 # Build architecture-dependent files here.
124 binary-arch: busybox busybox-static busybox-udeb
125
126 busybox: install
127         @echo "--- Building: $@"
128         dh_testdir
129         dh_testroot
130         dh_installdirs
131         dh_installdocs       -p$@  $(bbbd)/docs/BusyBox.txt \
132                 $(bbbd)/docs/BusyBox.html docs/style-guide.txt \
133                 docs/busybox.lineo.com AUTHORS README TODO
134         rm -rf `find $(bb) -name CVS`
135         rm -f `find $(bb) -name .cvsignore`
136         dh_installchangelogs -p$@ Changelog
137         dh_undocumented      -p$@
138         dh_strip             -p$@
139         dh_compress          -p$@
140         dh_fixperms          -p$@
141         dh_installdeb        -p$@
142         dh_shlibdeps         -p$@
143         dh_gencontrol        -p$@
144         dh_md5sums           -p$@
145         dh_builddeb          -p$@
146
147
148 busybox-static: do_static
149         @echo "--- Building: $@"
150         dh_testdir
151         dh_testroot
152         dh_installdirs
153         dh_installdocs       -p$@  $(bbsbd)/docs/BusyBox.txt \
154                 $(bbsbd)/docs/BusyBox.html docs/style-guide.txt \
155                 docs/busybox.lineo.com AUTHORS README TODO
156         rm -rf `find $(bbs) -name CVS`
157         rm -f `find $(bbs) -name .cvsignore`
158         dh_installchangelogs -p$@ Changelog
159         dh_undocumented      -p$@
160         dh_strip             -p$@
161         dh_compress          -p$@
162         dh_fixperms          -p$@
163         dh_installdeb        -p$@
164         dh_shlibdeps         -p$@
165         dh_gencontrol        -p$@
166         dh_md5sums           -p$@
167         dh_builddeb          -p$@
168
169
170 # Note that this builds a .udeb, which is not policy compliant or anything.
171 #
172 busybox-udeb: do_udeb
173         @echo "--- Building: $@"
174         dh_testdir
175         dh_testroot
176         dh_installdirs
177         dh_strip             -p$@
178         dh_compress          -p$@
179         dh_fixperms          -p$@
180         dh_installdeb        -p$@
181         dh_shlibdeps         -p$@
182         #Make _very_ sure there are no docs lurking about.
183         rm -rf $(bbu)/usr/share/man
184         #dh_gencontrol        -p$@
185         # Don't write your stupid guesses to debian/files.
186         dh_gencontrol        -p$@ -- -fdebian/files~
187         # Register file manually.
188         dpkg-distaddfile $(FILENAME) debian-installer standard
189         dh_md5sums           -p$@
190         dh_builddeb          -p$@ --filename=$(FILENAME)
191
192 binary: binary-indep binary-arch
193 .PHONY: build clean binary-indep binary-arch binary install