add debian package control files for uClibc
[emdebian-crush-toolchain.git] / uClibc-0.9.30.1-debian / rules
blobca813adbd1901230a512ad7c148c7303aba589f5
1 #!/usr/bin/make -f
3 p_bin = uclibc
4 p_ini = lib$(p_bin)-initial
5 p_dev = lib$(p_bin)-dev
6 p_mul = lib$(p_bin)-multiarch
7 p_doc = lib$(p_bin)-doc
8 p_src = $(p_bin)-source
10 pwd := $(shell pwd)
11 d_bin = debian/tmp
12 d_ini = debian/$(p_ini)
13 d_dev = debian/$(p_dev)
14 d_mul = debian/$(p_mul)
15 d_doc = debian/$(p_doc)
16 d_src = debian/$(p_src)
18 # Uncomment this to turn on verbose mode.
19 export DH_VERBOSE=1
21 CFLAGS = -Wall -g
23 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
24 CFLAGS += -O0
25 else
26 CFLAGS += -Os
27 endif
29 DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
30 DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
31 DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
33 UCLIBC_HOST_GNU_TYPE ?= $(TARGET)
35 ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
36 CROSS = $(DEB_HOST_GNU_TYPE)-
37 else
38 CROSS =
39 endif
41 ifeq ($(DEB_HOST_ARCH),mipsel)
42 KERNEL_ARCH = mips
43 else
44 ifeq ($(DEB_HOST_ARCH),amd64)
45 KERNEL_ARCH = x86_64
46 else
47 ifeq ($(DEB_HOST_ARCH),armel)
48 KERNEL_ARCH = arm
49 else
50 KERNEL_ARCH = $(DEB_HOST_ARCH)
51 endif
52 endif
53 endif
55 HOSTCC = gcc
56 CC = $(CROSS)gcc
58 UCLIBC_VERSION := 0.9.30
59 KERNEL_VERSION := $(shell sed -ne '/^Build-Depends: /s/.*linux-source-\([0-9\.]*\),*.*/\1/p' debian/control)
60 #KERNEL_SOURCE := $(shell pwd)/kernel/linux-source-$(KERNEL_VERSION)
61 KERNEL_SOURCE := $(pwd)/linux-source/linux-$(KERNEL_VERSION)
62 k_dev = debian/kernel-libc-dev
64 ifeq ($(KERNEL_VERSION),)
65 $(error Could not determine kernel version)
66 endif
68 DEVEL_PREFIX = /usr/$(UCLIBC_HOST_GNU_TYPE)
69 source_files = $(addprefix $(shell basename $(pwd))/, \
70 $(filter-out %-stamp .svn linux-source debian builddir-% test-summary, $(wildcard *)))
72 STAMPS := unpack-kernel uclibc-source configured install_headers \
73 install_runtime install_dev
74 STAMP = touch $@-stamp
76 $(patsubst %,%-stamp,$(STAMPS)): %-stamp: %
78 /usr/src/linux-source-$(KERNEL_VERSION).tar.bz2:
79 wget -O $@ http://www.kernel.org/pub/linux/kernel/v2.6/linux-$(KERNEL_VERSION).tar.bz2
81 unpack-kernel: /usr/src/linux-source-$(KERNEL_VERSION).tar.bz2
82 dh_testdir
83 $(RM) -r $(pwd)/linux-source $(pwd)/$(k_dev)
84 mkdir $(pwd)/linux-source
85 cd $(pwd)/linux-source && tar -xjf /usr/src/linux-source-$(KERNEL_VERSION).tar.bz2
86 $(MAKE) -C $(KERNEL_SOURCE) ARCH=$(KERNEL_ARCH) HOSTCC=$(HOSTCC) \
87 defconfig
88 $(MAKE) -C $(KERNEL_SOURCE) ARCH=$(KERNEL_ARCH) HOSTCC=$(HOSTCC) \
89 INSTALL_HDR_PATH=$(pwd)/$(k_dev) headers_install
90 $(STAMP)
92 uclibc-source:
93 dh_testdir
94 install -d $(pwd)/$(d_src)/DEBIAN $(pwd)/$(d_src)/usr/src/uClibc
95 tar -cj -C .. --exclude=.svn \
96 -f $(pwd)/$(d_src)/usr/src/uClibc/uclibc-$(UCLIBC_VERSION).tar.bz2 \
97 $(source_files)
98 dh_gencontrol -- -isp -P$(d_src) -p$(p_src)
99 chown -R 0:0 $(d_src)
100 chmod -R go=rX $(d_src)
101 dh_md5sums
102 dh_builddeb
103 dh_clean
104 $(STAMP)
106 configured: unpack-kernel-stamp uclibc-source-stamp
107 dh_testdir
108 cat debian/config-$(DEB_HOST_ARCH) debian/config-common | \
109 sed -e 's@\(KERNEL_HEADERS *= *\).*@\1"$(pwd)/$(k_dev)"@' \
110 -e 's@\(DEVEL_PREFIX *= *\).*@\1"$(DEVEL_PREFIX)"@' \
111 -e 's@\(CROSS_COMPILER_PREFIX *= *\).*@\1"$(CROSS)"@' \
112 > .config
113 $(MAKE) HOSTCC="$(HOSTCC)" oldconfig
114 $(STAMP)
116 install_headers: unpack-kernel-stamp configured-stamp
117 dh_testdir
118 dh_testroot
119 $(MAKE) HOSTCC="$(HOSTCC)" oldconfig
120 $(MAKE) HOSTCC="$(HOSTCC)" \
121 PREFIX=$(pwd)/$(d_dev) \
123 $(STAMP)
125 install_runtime: unpack-kernel-stamp configured-stamp
126 dh_testdir
127 $(MAKE) HOSTCC="$(HOSTCC)" $@
128 $(STAMP)
130 install_dev: unpack-kernel-stamp configured-stamp
131 dh_testdir
132 $(MAKE) HOSTCC="$(HOSTCC)" $@
133 $(STAMP)
135 build: unpack-kernel-stamp configured-stamp
136 dh_testdir
137 #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
138 ##$(MAKE) CROSS="$(CROSS)" CC="$(CC)" headers
139 ##cd extra/locale && find charmaps -name "*.pairs" >codesets.txt
140 ##$(MAKE) -C extra/locale
141 $(MAKE) CROSS="$(CROSS)" CC="$(CC)"
143 clean:
144 dh_testdir
145 dh_testroot
146 $(RM) configured-stamp unpack-kernel-stamp install_headers-stamp \
147 install_dev-stamp \
148 install_runtime-stamp install_hostutils-stamp
149 $(RM) -r kernel
150 $(RM) debian/uclibc-dev.files debian/ldconfig.1 debian/uclibc.shlibs \
151 debian/ldd.1 debian/uclibc.postinst debian/uclibc.files \
152 debian/uclibc-dev.prerm debian/uclibc.prerm debian/dirs \
153 debian/docs debian/uclibc-dev.postinst
154 $(MAKE) distclean
155 dh_clean
157 install: build
158 #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
159 dh_testdir
160 dh_testroot
161 dh_clean -k
162 $(MAKE) PREFIX=$(pwd)/debian/tmp install
163 $(RM) debian/tmp/lib/libnsl* debian/tmp/usr/lib/libnsl.so
164 dh_install --fail-missing
167 # Build architecture-independent files here. (for the stage compiler)
168 binary-indep: install_headers-stamp
169 dh_installdeb
170 dh_gencontrol -- -isp -P$(d_ini) -p$(p_ini)
171 dh_md5sums
172 dh_builddeb
174 # Build architecture-dependent runtime files here. (dynamic)
175 binary-runtime: install_runtime-stamp
176 dh_testdir
177 dh_testroot
178 dh_installchangelogs Changelog
179 dh_installdocs
180 dh_installexamples
181 # dh_install
182 # dh_installmenu
183 # dh_installdebconf
184 # dh_installlogrotate
185 # dh_installemacsen
186 # dh_installpam
187 # dh_installmime
188 # dh_installinit
189 # dh_installcron
190 # dh_installinfo
191 dh_installman
192 dh_link
193 dh_strip
194 dh_compress
195 dh_fixperms -Xld-uClibc
196 # dh_perl
197 # dh_python
198 dh_makeshlibs
199 dh_installdeb
200 dh_shlibdeps -Luclibc$(UCLIBC_VERSION) -Xlibc-uClibc-$(UCLIBC_VERSION).so -Xld-uClibc-$(UCLIBC_VERSION).so
201 dh_gencontrol -- -isp -P$(d_bin) -p$(p_bin)
202 dh_md5sums
203 dh_builddeb
205 # Build architecture-dependent development files here (archives).
206 binary-devel: install_dev-stamp
207 dh_testdir
208 dh_testroot
209 dh_installchangelogs Changelog
210 dh_installdocs
211 dh_installexamples
212 # dh_install
213 # dh_installmenu
214 # dh_installdebconf
215 # dh_installlogrotate
216 # dh_installemacsen
217 # dh_installpam
218 # dh_installmime
219 # dh_installinit
220 # dh_installcron
221 # dh_installinfo
222 dh_installman
223 dh_link
224 dh_strip
225 dh_compress
226 dh_fixperms -Xld-uClibc
227 # dh_perl
228 # dh_python
229 dh_makeshlibs
230 dh_installdeb
231 dh_shlibdeps -Luclibc$(UCLIBC_VERSION) -Xlibc-uClibc-$(UCLIBC_VERSION).so -Xld-uClibc-$(UCLIBC_VERSION).so
232 dh_gencontrol -- -isp -P$(d_dev) -p$(p_dev)
233 dh_md5sums
234 dh_builddeb
236 runtime: binary-runtime
237 devel: binary-devel
238 .PHONY: clean binary-indep binary-runtime binary-devel