1
RELEASE_DATE := "16-Feb-2009"
5
RELEASE_EXTRALEVEL := .2
7
RELEASE_VERSION := $(RELEASE_MAJOR).$(RELEASE_MINOR).$(RELEASE_SUBLEVEL)$(RELEASE_EXTRALEVEL)
8
RELEASE_STRING := $(RELEASE_NAME)-$(RELEASE_VERSION)
12
SBIN = $(DESTDIR)/usr/sbin
13
ETC = $(DESTDIR)/etc/dkms
14
VAR = $(DESTDIR)/var/lib/dkms
15
MAN = $(DESTDIR)/usr/share/man/man8
16
INITD = $(DESTDIR)/etc/init.d
17
LIBDIR = $(DESTDIR)/usr/lib/dkms
18
BASHDIR = $(DESTDIR)/etc/bash_completion.d
19
KCONF = $(DESTDIR)/etc/kernel
20
SHAREDIR = $(DESTDIR)/usr/share
21
DOCDIR = $(SHAREDIR)/doc/dkms
23
#Define the top-level build directory
24
BUILDDIR := $(shell pwd)
25
TOPDIR := $(shell pwd)
29
all: clean tarball rpm debs
32
-rm -rf *~ dist/ dkms-freshmeat.txt
35
mkdir -m 0755 -p $(VAR) $(SBIN) $(MAN) $(ETC) $(BASHDIR) $(SHAREDIR) $(LIBDIR)
36
sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms > dkms.versioned
37
mv -f dkms.versioned dkms
38
mkdir -p -m 0755 $(SHAREDIR)/apport/package-hooks
39
install -p -m 0755 dkms_common.postinst $(LIBDIR)/common.postinst
40
install -p -m 0755 dkms $(SBIN)
41
install -p -m 0755 dkms_autoinstaller $(LIBDIR)
42
install -p -m 0755 dkms_apport.py $(SHAREDIR)/apport/package-hooks/dkms.py
43
install -p -m 0644 dkms_framework.conf $(ETC)/framework.conf
44
install -p -m 0644 dkms_dbversion $(VAR)
45
install -p -m 0644 dkms.bash-completion $(BASHDIR)/dkms
46
# install compressed manpage with proper timestamp and permissions
47
gzip -c -9 dkms.8 > $(MAN)/dkms.8.gz
48
chmod 0644 $(MAN)/dkms.8.gz
49
touch --reference=dkms.8 $(MAN)/dkms.8.gz
50
mkdir -p -m 0755 $(KCONF)/prerm.d $(KCONF)/postinst.d
51
install -p -m 0755 kernel_prerm.d_dkms $(KCONF)/prerm.d/dkms
52
install -p -m 0755 kernel_postinst.d_dkms $(KCONF)/postinst.d/dkms
54
DOCFILES=sample.spec sample.conf AUTHORS COPYING README.dkms sample-suse-9-mkkmp.spec sample-suse-10-mkkmp.spec
57
# ensure doc file permissions ok
58
chmod 0644 $(DOCFILES)
60
install-redhat: install doc-perms
61
mkdir -m 0755 -p $(INITD)
62
install -p -m 0755 dkms_mkkerneldoth $(LIBDIR)/mkkerneldoth
63
install -p -m 0755 dkms_find-provides $(LIBDIR)/find-provides
64
install -p -m 0755 lsb_release $(LIBDIR)/lsb_release
65
install -p -m 0644 template-dkms-mkrpm.spec $(ETC)
66
install -p -m 0755 dkms_autoinstaller $(INITD)
69
mkdir -m 0755 -p $(DOCDIR)
70
install -p -m 0644 $(DOCFILES) $(DOCDIR)
72
install-debian: install install-doc
73
mkdir -p -m 0755 $(KCONF)/header_postinst.d
74
install -p -m 0755 kernel_postinst.d_dkms $(KCONF)/header_postinst.d/dkms
75
mkdir -p -m 0755 $(ETC)/template-dkms-mkdeb/debian
76
ln -s template-dkms-mkdeb $(ETC)/template-dkms-mkdsc
77
install -p -m 0664 template-dkms-mkdeb/Makefile $(ETC)/template-dkms-mkdeb/
78
install -p -m 0664 template-dkms-mkdeb/debian/* $(ETC)/template-dkms-mkdeb/debian/
79
chmod +x $(ETC)/template-dkms-mkdeb/debian/postinst
80
chmod +x $(ETC)/template-dkms-mkdeb/debian/prerm
81
chmod +x $(ETC)/template-dkms-mkdeb/debian/rules
85
deb_destdir=$(BUILDDIR)/dist
86
TARBALL=$(deb_destdir)/$(RELEASE_STRING).tar.gz
90
mkdir -p $(deb_destdir)
91
tmp_dir=`mktemp -d /tmp/dkms.XXXXXXXX` ; \
92
cp -a ../$(RELEASE_NAME) $${tmp_dir}/$(RELEASE_STRING) ; \
93
sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms > $${tmp_dir}/$(RELEASE_STRING)/dkms ; \
94
sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms.spec > $${tmp_dir}/$(RELEASE_STRING)/dkms.spec ; \
95
find $${tmp_dir}/$(RELEASE_STRING) -depth -name .git -type d -exec rm -rf \{\} \; ; \
96
find $${tmp_dir}/$(RELEASE_STRING) -depth -name dist -type d -exec rm -rf \{\} \; ; \
97
find $${tmp_dir}/$(RELEASE_STRING) -depth -name \*~ -type f -exec rm -f \{\} \; ; \
98
find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms\*.rpm -type f -exec rm -f \{\} \; ; \
99
find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms\*.tar.gz -type f -exec rm -f \{\} \; ; \
100
find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms-freshmeat.txt -type f -exec rm -f \{\} \; ; \
101
rm -rf $${tmp_dir}/$(RELEASE_STRING)/debian ; \
102
sync ; sync ; sync ; \
103
tar cvzf $(TARBALL) -C $${tmp_dir} $(RELEASE_STRING); \
107
rpm: $(TARBALL) dkms.spec
108
tmp_dir=`mktemp -d /tmp/dkms.XXXXXXXX` ; \
109
mkdir -p $${tmp_dir}/{BUILD,RPMS,SRPMS,SPECS,SOURCES} ; \
110
cp $(TARBALL) $${tmp_dir}/SOURCES ; \
111
sed "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms.spec > $${tmp_dir}/SPECS/dkms.spec ; \
112
pushd $${tmp_dir} > /dev/null 2>&1; \
113
rpmbuild -ba --define "_topdir $${tmp_dir}" SPECS/dkms.spec ; \
114
popd > /dev/null 2>&1; \
115
cp $${tmp_dir}/RPMS/noarch/* $${tmp_dir}/SRPMS/* dist ; \
120
ln -s $(TARBALL) $(DEB_TMP_BUILDDIR)/$(RELEASE_NAME)_$(RELEASE_VERSION).orig.tar.gz
121
tar -C $(DEB_TMP_BUILDDIR) -xzf $(TARBALL)
122
cp -ar debian $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING)/debian
123
chmod +x $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING)/debian/rules
124
cd $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING) ; \
125
dch -v $(RELEASE_VERSION)-0 "New upstream version, $(RELEASE_VERSION)"; \
126
dpkg-buildpackage -D -b -rfakeroot ; \
127
dpkg-buildpackage -D -S -sa -rfakeroot ; \
128
mv ../$(RELEASE_NAME)_* $(TOPDIR)/dist/ ; \
132
tmp_dir=`mktemp -d /tmp/dkms.XXXXXXXX` ; \
133
make debmagic DEB_TMP_BUILDDIR=$${tmp_dir} DIST=$(DIST); \
137
sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms-freshmeat.txt.in > dkms-freshmeat.txt