summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 65ccfd72623824a05e3d5d1caf4b52bb06f5647d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/usr/bin/make -f

DEB_DH_INSTALLINIT_ARGS := --no-start -- start 50 S . stop 50 0 1 6 .
DEB_DH_INSTALL_ARGS := -X.svn
UPSTREAM_VERSION := $(shell dpkg-parsechangelog|grep "^Version:"|cut -d" " -f2|rev|cut -d- -f2-|rev|cut -d':' -f2)

DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
DEB_HOST_MULTIARCH  ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/patchsys-quilt.mk


pre-build:: apply-patches stamp-prepare-oss4

stamp-prepare-oss4:
	mkdir -p $(CURDIR)/build-tree/oss-build
	cd $(CURDIR)/build-tree/oss-build && $(CURDIR)/configure --enable-libsalsa=NO --config-vmix=FIXEDPOINT

ifneq ($(DEB_HOST_ARCH_OS),hurd)
	# we do NOT want to build the kernel modules now
	sed -i -e 's/SUBDIRS=lib cmd \(.*\)/SUBDIRS=lib cmd os_cmd/' $(CURDIR)/build-tree/oss-build/Makefile
	echo > $(CURDIR)/build-tree/oss-build/.makefile
endif

	touch $@

stamp-build-oss4:
	cd $(CURDIR)/build-tree/oss-build && make build

ifeq ($(DEB_HOST_ARCH_OS),linux)
	# TODO: rewrite upstream's 'build.sh' from scratch
	cat `find $(CURDIR)/build-tree/oss-build/kernel/drv -name .devices`| grep -v '^#' \
	| sort | grep -v '^osscore' | grep -v '^oss_audiocs' | grep -v '^oss_sadasupport' \
	> $(CURDIR)/build-tree/oss-build/prototype/usr/lib/oss/etc/devices.list

	for n in `cat $(CURDIR)/build-tree/oss-build/prototype/usr/lib/oss/etc/devices.list | cut -f 1 | uniq` ; do \
	    ( sed "s:CONFIGFILEPATH:/etc/oss4/conf:g" < $(CURDIR)/build-tree/oss-build/noregparm/kernel/drv/$$n/$$n.man > /tmp/ossman.txt && \
	    /usr/bin/txt2man -t "$$n" -v "OSS Devices" -s 7 /tmp/ossman.txt | gzip -9 > $(CURDIR)/build-tree/oss-build/prototype/usr/share/man/man7/$$n.7.gz ) \
	done
endif

	touch $@

stamp-build-libsalsa:
	cd $(CURDIR)/build-tree/oss-build/lib/libOSSlib && CFLAGS="$$CFLAGS -isystem $(CURDIR)/debian/include-alsa" make libOSSlib.so
	cd $(CURDIR)/build-tree/oss-build/lib/libsalsa && CFLAGS="$$CFLAGS -isystem $(CURDIR)/debian/include-alsa" make
	sed -e '/^libdir/s&$$&/$(DEB_HOST_MULTIARCH)&' < debian/alsa.pc.in > debian/alsa.pc

	touch $@

build/oss4-base:: stamp-build-oss4

build/oss4-source:: stamp-source-oss4
	rm -rf build-tree/modules/oss4/debian
	mkdir -p build-tree/modules/oss4/debian
	cp -r debian/m-a/* build-tree/modules/oss4/debian/
	cp debian/copyright build-tree/modules/oss4/debian/
	cp debian/changelog build-tree/modules/oss4/debian/
	chmod 755 build-tree/modules/oss4/debian/rules
	cd build-tree/ &&  tar cjf oss4.tar.bz2 modules/

build/oss4-dkms:: stamp-source-oss4
	sed -e 's#_VERSION_#$(UPSTREAM_VERSION)#' < debian/oss4-dkms.install.in > debian/oss4-dkms.install
	sed -e 's#_VERSION_#$(UPSTREAM_VERSION)#' < debian/oss4-dkms.dkms.in > debian/oss4-dkms.dkms

build/liboss4-salsa2:: stamp-build-libsalsa
build/liboss4-salsa-dev:: stamp-build-libsalsa
build/liboss4-salsa-asound2:: stamp-build-libsalsa

install/oss4-dkms::
	dh_dkms

stamp-source-oss4:
	bash ./debian/create-ma-tree.sh build-tree/modules/oss4 build-tree/oss-build
	find build-tree/modules/oss4 -type f -exec chmod -x {} \;
	touch $@

$(CURDIR)/debian/tmp: stamp-build-oss4
	cp -a $(CURDIR)/build-tree/oss-build/prototype $(CURDIR)/debian/tmp

install/oss4-base:: $(CURDIR)/debian/tmp
	sed -e 's#_VERSION_#$(UPSTREAM_VERSION)#' < debian/oss.conf.in > debian/oss.conf

binary-install/oss4-base::
	chmod +x $(CURDIR)/debian/oss4-base/etc/pm/sleep.d/30oss4-pm
	cat debian/modprobe.d/OSS-module-list \
	        | sed -e 's/^[[:space:]]*//' -e 's/#.*//' -e '/^$$/d' \
		    -e 's/[[:space:]].*//' -e 's/^/blacklist /' \
	        > debian/oss4-base/etc/modprobe.d/oss4-base_noOSS3.conf
	cat debian/modprobe.d/ALSA-module-list \
	        | sed -e 's/^[[:space:]]*//' -e 's/#.*//' -e '/^$$/d' \
		    -e 's/[[:space:]].*//' -e 's/^/blacklist /' \
	        > debian/oss4-base/etc/modprobe.d/oss4-base_noALSA.conf

binary-install/liboss4-salsa-dev::
	dh_install -pliboss4-salsa-dev build-tree/oss-build/lib/libsalsa/.libs/liboss4-salsa.a build-tree/oss-build/lib/libsalsa/.libs/liboss4-salsa.so usr/lib/$(DEB_HOST_MULTIARCH)
	dh_link -pliboss4-salsa-dev /usr/lib/$(DEB_HOST_MULTIARCH)/liboss4-salsa.so.2 /usr/lib/$(DEB_HOST_MULTIARCH)/libasound.so.2
	dh_link -pliboss4-salsa-dev /usr/lib/$(DEB_HOST_MULTIARCH)/liboss4-salsa.so.2 /usr/lib/$(DEB_HOST_MULTIARCH)/libasound.so
	dh_link -pliboss4-salsa-dev /usr/lib/$(DEB_HOST_MULTIARCH)/liboss4-salsa.so.2 /usr/lib/$(DEB_HOST_MULTIARCH)/libasound.a

binary-install/liboss4-salsa2::
	dh_install -pliboss4-salsa2 build-tree/oss-build/lib/libsalsa/.libs/liboss4-salsa.so.2* usr/lib/$(DEB_HOST_MULTIARCH)
	dh_install -pliboss4-salsa2 build-tree/oss-build/lib/libOSSlib/libOSSlib.so usr/lib/$(DEB_HOST_MULTIARCH)/oss4-libsalsa

binary-install/liboss4-salsa-asound2::
	dh_link -pliboss4-salsa-asound2 /usr/lib/$(DEB_HOST_MULTIARCH)/liboss4-salsa.so.2 /usr/lib/$(DEB_HOST_MULTIARCH)/libasound.so.2

install/oss4-dev:: $(CURDIR)/debian/tmp

install/oss4-source:: $(CURDIR)/debian/tmp

install/oss4-gtk:: $(CURDIR)/debian/tmp

clean::
	rm -rf stamp-build-oss4 stamp-prepare-oss4 stamp-source-oss4 debian/alsa.pc \
	stamp-build-libsalsa \
	build-tree \
	debian/oss4-dkms.install debian/oss4-dkms.dkms debian/dkms/dkms.conf \
	oss-v$(UPSTREAM_VERSION)-src-gpl.tar.bz2.cdbs-config_list \
	debian/oss.conf