2018-06-08 11:56:32 +02:00
|
|
|
obj-m := ./src/tuxedo_keyboard.o
|
|
|
|
|
|
|
|
PWD := $(shell pwd)
|
2019-07-08 14:36:36 +02:00
|
|
|
KDIR := /lib/modules/$(shell uname -r)/build
|
2018-06-08 11:56:32 +02:00
|
|
|
|
|
|
|
all:
|
|
|
|
make -C $(KDIR) M=$(PWD) modules
|
|
|
|
|
|
|
|
clean:
|
|
|
|
make -C $(KDIR) M=$(PWD) clean
|
|
|
|
|
|
|
|
install:
|
|
|
|
make -C $(KDIR) M=$(PWD) modules_install
|
|
|
|
|
|
|
|
dkmsadd:
|
2019-12-18 16:55:09 +01:00
|
|
|
cp -R . /usr/src/tuxedo_keyboard-2.0.0
|
|
|
|
dkms add -m tuxedo_keyboard -v 2.0.0
|
2018-06-08 11:56:32 +02:00
|
|
|
|
|
|
|
dkmsremove:
|
2019-12-18 16:55:09 +01:00
|
|
|
dkms remove -m tuxedo_keyboard -v 2.0.0 --all
|
|
|
|
rm -rf /usr/src/tuxedo_keyboard-2.0.0
|
2020-03-17 16:47:45 +01:00
|
|
|
|
|
|
|
# --------------
|
|
|
|
# Packaging only
|
|
|
|
# ---------------
|
|
|
|
|
|
|
|
# Package version and name from dkms.conf
|
|
|
|
VER := $(shell sed -n 's/^PACKAGE_VERSION=\([^\n]*\)/\1/p' dkms.conf)
|
|
|
|
MODULE_NAME := $(shell sed -n 's/^PACKAGE_NAME=\([^\n]*\)/\1/p' dkms.conf)
|
|
|
|
|
|
|
|
DEB_PACKAGE_NAME := $(MODULE_NAME)-$(VER)
|
|
|
|
|
|
|
|
# Deb package folder variables
|
|
|
|
DEB_PACKAGE_BASE := deb/$(DEB_PACKAGE_NAME)
|
|
|
|
DEB_PACKAGE_SRC := $(DEB_PACKAGE_BASE)/usr/src/$(DEB_PACKAGE_NAME)
|
|
|
|
DEB_PACKAGE_CTRL := $(DEB_PACKAGE_BASE)/DEBIAN
|
|
|
|
|
|
|
|
package: package-deb package-rpm
|
|
|
|
package-clean: package-deb-clean package-rpm-clean
|
|
|
|
|
|
|
|
package-deb:
|
|
|
|
# Create/complete folder structure according to current version
|
|
|
|
rm -rf $(DEB_PACKAGE_BASE) || true
|
|
|
|
cp -rf deb/module-name $(DEB_PACKAGE_BASE)
|
|
|
|
mv $(DEB_PACKAGE_BASE)/usr/share/doc/module-name $(DEB_PACKAGE_BASE)/usr/share/doc/$(MODULE_NAME)
|
|
|
|
mkdir -p $(DEB_PACKAGE_BASE)/usr/src || true
|
|
|
|
mkdir -p $(DEB_PACKAGE_SRC) || true
|
|
|
|
mkdir -p $(DEB_PACKAGE_BASE)/usr/share/$(MODULE_NAME) || true
|
|
|
|
|
|
|
|
# Replace name/version numbers in control/script files
|
|
|
|
sed -i 's/^Version:[^\n]*/Version: $(VER)/g' $(DEB_PACKAGE_CTRL)/control
|
|
|
|
sed -i 's/^Package:[^\n]*/Package: $(MODULE_NAME)/g' $(DEB_PACKAGE_CTRL)/control
|
|
|
|
sed -i 's/^version=[^\n]*/version=$(VER)/g' $(DEB_PACKAGE_CTRL)/postinst
|
|
|
|
sed -i 's/^module=[^\n]*/module=$(MODULE_NAME)/g' $(DEB_PACKAGE_CTRL)/postinst
|
|
|
|
sed -i 's/^version=[^\n]*/version=$(VER)/g' $(DEB_PACKAGE_CTRL)/prerm
|
|
|
|
sed -i 's/^module=[^\n]*/module=$(MODULE_NAME)/g' $(DEB_PACKAGE_CTRL)/prerm
|
|
|
|
# Copy source
|
|
|
|
cp -rf dkms.conf $(DEB_PACKAGE_SRC)
|
|
|
|
cp -rf Makefile $(DEB_PACKAGE_SRC)
|
|
|
|
cp -rf src $(DEB_PACKAGE_SRC)
|
|
|
|
cp -rf src_pkg/dkms_postinst $(DEB_PACKAGE_BASE)/usr/share/$(MODULE_NAME)/postinst
|
|
|
|
# Make sure files and folders have acceptable permissions
|
|
|
|
chmod -R 755 $(DEB_PACKAGE_CTRL)
|
|
|
|
chmod 644 $(DEB_PACKAGE_CTRL)/control
|
|
|
|
find deb/$(DEB_PACKAGE_NAME)/usr -type d -exec chmod 755 {} \;
|
|
|
|
find deb/$(DEB_PACKAGE_NAME)/usr -type f -exec chmod 644 {} \;
|
|
|
|
chmod 755 $(DEB_PACKAGE_BASE)/usr/share/$(MODULE_NAME)/postinst
|
|
|
|
|
|
|
|
gunzip $(DEB_PACKAGE_BASE)/usr/share/doc/$(MODULE_NAME)/changelog.gz
|
|
|
|
gzip -n9 $(DEB_PACKAGE_BASE)/usr/share/doc/$(MODULE_NAME)/changelog
|
|
|
|
|
|
|
|
# Make deb package
|
|
|
|
dpkg-deb --root-owner-group -b $(DEB_PACKAGE_BASE) $(DEB_PACKAGE_NAME).deb
|
|
|
|
|
|
|
|
package-deb-clean:
|
|
|
|
rm -rf deb/$(MODULE_NAME)-* > /dev/null 2>&1 || true
|
|
|
|
rm *.deb > /dev/null 2>&1 || true
|
|
|
|
|
|
|
|
RPM_PACKAGE_NAME := $(MODULE_NAME)-$(VER)
|
|
|
|
RPM_PACKAGE_SRC := rpm/SOURCES/$(RPM_PACKAGE_NAME)
|
|
|
|
RPM_SPEC := rpm/SPECS/$(MODULE_NAME).spec
|
|
|
|
RELEASE := 0
|
|
|
|
|
|
|
|
package-rpm:
|
|
|
|
# Create folder source structure according to current version
|
|
|
|
rm -rf rpm || true
|
|
|
|
mkdir -p $(RPM_PACKAGE_SRC)
|
|
|
|
mkdir -p rpm/SPECS
|
|
|
|
# Copy spec template
|
|
|
|
cp -rf src_pkg/rpm_pkg.spec $(RPM_SPEC)
|
|
|
|
# Modify spec file with version etc.
|
|
|
|
sed -i 's/^%define module[^\n]*/%define module $(MODULE_NAME)/g' $(RPM_SPEC)
|
|
|
|
sed -i 's/^Version:[^\n]*/Version: $(VER)/g' $(RPM_SPEC)
|
|
|
|
sed -i 's/^Release:[^\n]*/Release: $(RELEASE)/g' $(RPM_SPEC)
|
|
|
|
# Copy source
|
|
|
|
cp -rf dkms.conf $(RPM_PACKAGE_SRC)
|
|
|
|
cp -rf Makefile $(RPM_PACKAGE_SRC)
|
|
|
|
cp -rf src $(RPM_PACKAGE_SRC)
|
|
|
|
cp -rf LICENSE $(RPM_PACKAGE_SRC)
|
|
|
|
cp -rf src_pkg/dkms_postinst $(RPM_PACKAGE_SRC)/postinst
|
|
|
|
# Compress/package source
|
|
|
|
cd rpm/SOURCES && tar cjvf $(RPM_PACKAGE_NAME).tar.bz2 $(RPM_PACKAGE_NAME)
|
|
|
|
# Make rpm package
|
|
|
|
rpmbuild --debug -bb --define "_topdir `pwd`/rpm" $(RPM_SPEC)
|
|
|
|
# Copy built package
|
|
|
|
cp rpm/RPMS/noarch/*.rpm .
|
|
|
|
|
|
|
|
package-rpm-clean:
|
|
|
|
rm -rf rpm > /dev/null 2>&1 || true
|
|
|
|
rm *.rpm > /dev/null 2>&1 || true
|