Merge branch 'master' of /home/nchip/public_html/qemu into garage-push
[qemu] / debian / rules
1 #!/usr/bin/make -f
2 #
3 # $Id: rules 366 2008-12-23 16:19:26Z aurel32 $
4 #
5
6 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
7         CFLAGS = -O0
8 endif
9
10 # Support multiple makes at once
11 ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
12 NJOBS := -j $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
13 endif
14
15 # Architecture/system specific configuration
16 DEB_HOST_ARCH_OS = $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
17 DEB_HOST_ARCH_CPU = $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
18
19 SHELL = /bin/bash
20
21
22 TARGET_SYSTEM_TCG    = arm-softmmu i386-softmmu
23 TARGET_LINUX_TCG     = arm-linux-user i386-linux-user
24 package_list         = obj-sb2/config-host.mak obj-system/config-host.mak
25 install_list         = sb2-qemu-install sb-system-qemu-install
26 sb1_prefix           = /scratchbox/devkits/qemu
27
28 target_system_list = $(TARGET_SYSTEM_TCG)
29
30 source_version = $(shell dpkg-parsechangelog | grep ^Version | head -n1 | cut -d ' ' -f 2)
31
32 ifeq ($(DEB_HOST_ARCH_OS),linux)
33        conf_arch += --audio-drv-list=sdl
34        target_linux_list += $(TARGET_LINUX_TCG)
35 endif
36 ifeq ($(DEB_HOST_ARCH_OS),kfreebsd)
37        conf_arch += --audio-drv-list=oss,sdl,esd,pa
38 endif
39
40 BUILD_SB1_QEMU=$(shell test -r /scratchbox/tools/lib/libsb.a && echo YES || echo NO)
41
42 ifeq ($(DEB_HOST_ARCH_CPU),i386)
43        conf_arch += --cpu=i386
44 ifeq ($(BUILD_SB1_QEMU),YES)
45        package_list += obj-sb1/config-host.mak
46        install_list += sb1-qemu-install
47        sb1_target_list += arm-linux-user ppc-linux-user sparc-linux-user i386-linux-user armeb-linux-user mips-linux-user mipsel-linux-user
48 else
49        nopackages += -Nscratchbox-devkit-qemu
50 endif
51 endif
52 ifeq ($(DEB_HOST_ARCH_CPU),sparc)
53        conf_arch += --cpu=sparc
54 endif
55
56 qemu_docs = \
57         qemu-doc.html \
58         qemu-tech.html \
59         qemu.1 \
60         qemu-img.1
61
62 obj-sb2/config-host.mak: configure
63         dh_testdir
64         mkdir obj-sb2
65         ( cd obj-sb2; CFLAGS="$(CFLAGS)" ../configure \
66                 --prefix=/usr \
67                 --interp-prefix=/ \
68                 --disable-blobs \
69                 --enable-guest-base \
70                 --target-list="$(target_linux_list)" \
71                 $(conf_arch) )
72         ( cd obj-sb2; $(MAKE) $(NJOBS) )
73
74 obj-sb1/config-host.mak: configure
75         dh_testdir
76         mkdir obj-sb1
77         ( cd obj-sb1; CFLAGS="$(CFLAGS) $(SB1_CFLAGS)"  ../configure \
78                 --prefix=$(sb1_prefix) \
79                 --interp-prefix=/ \
80                 --static \
81                 --enable-guest-base \
82                 --target-list="$(sb1_target_list)"\
83                 --disable-kqemu --disable-sdl )
84         ( cd obj-sb1; $(MAKE) $(NJOBS) )
85
86 obj-system/config-host.mak: configure
87         dh_testdir
88         mkdir obj-system
89         ( cd obj-system; CFLAGS="$(CFLAGS)" ../configure \
90                 --prefix=/usr \
91                 --interp-prefix=/ \
92                 --disable-blobs \
93                 --enable-guest-base \
94                 --target-list="$(target_system_list)" \
95                 $(conf_arch) )
96         ( cd obj-system; $(MAKE) $(NJOBS) )
97
98 build: $(package_list)
99
100 clean:
101         dh_testdir
102         dh_testroot
103         [ ! -f config-host.mak ] || $(MAKE) distclean
104         rm -rf obj-sb1 obj-sb2 obj-system
105         rm -f $(qemu_docs)
106         dh_clean
107
108 # cputransp-methods should be generated at postinst
109 sb1-qemu-install:
110         mkdir -p debian/scratchbox-devkit-qemu/$(sb1_prefix)/{bin,etc}
111         cp debian/cputransp-methods \
112                 debian/scratchbox-devkit-qemu/$(sb1_prefix)/etc
113         for i in obj-sb1/*-linux-user/qemu-* ; do \
114                 install -m 755 $$i debian/scratchbox-devkit-qemu/$(sb1_prefix)/bin/`basename $$i`-sb ; \
115         done
116
117 sb2-qemu-install:
118         mkdir -p debian/sb2-qemu-arm/usr/bin
119         cp obj-sb2/arm-linux-user/qemu-arm debian/sb2-qemu-arm/usr/bin/sb2-qemu-arm
120         cp obj-sb2/i386-linux-user/qemu-i386  debian/sb2-qemu-arm/usr/bin/sb2-qemu-i386
121
122 sb-system-qemu-install:
123         mkdir -p debian/sb-system-qemu/usr/bin
124         cp obj-system/arm-softmmu/qemu-system-arm  debian/sb-system-qemu/usr/bin/sb-qemu-system-arm
125         cp obj-system/i386-softmmu/qemu  debian/sb-system-qemu/usr/bin/sb-qemu-system-i386
126
127 install: build $(install_list)
128         dh_testdir
129         dh_testroot
130 #       dh_clean -k
131         dh_installdirs -a
132
133 binary-indep:
134 # Nothing to do.
135
136 binary-arch: install
137         dh_testdir
138         dh_testroot
139 #       dh_install -a
140 #       dh_installdebconf -a
141         dh_installdocs -s $(nopackages)
142         dh_installexamples -s $(nopackages)
143 #       dh_installlogrotate -a $(nopackages)
144         dh_installman -s $(nopackages)
145         dh_installinfo -s $(nopackages)
146         dh_installchangelogs -s Changelog $(nopackages)
147         dh_link -s $(nopackages)
148         dh_strip -s $(nopackages)
149         dh_compress -s $(nopackages)
150         dh_fixperms -s $(nopackages)
151         dh_installdeb -s $(nopackages)
152         dh_shlibdeps -s $(nopackages)
153         dh_gencontrol -s $(nopackages)
154         dh_md5sums -s $(nopackages)
155         dh_builddeb -s $(nopackages)
156
157 binary: binary-indep binary-arch
158
159 sb1-qemu-tarball: build sb1-qemu-install
160         tar czf ../scratchbox-devkit-qemu-$(source_version).tar.gz \
161                 -C debian/scratchbox-devkit-qemu \
162                 $(shell ls -1 debian/scratchbox-devkit-qemu)
163
164 .PHONY: build clean binary-indep binary-arch binary install
165