/usr/src/tp_smapi-0.42/Makefile is in tp-smapi-dkms 0.42-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | ifndef TP_MODULES
# This part runs as a normal, top-level Makefile:
X:=$(shell false)
KVER ?= $(shell uname -r)
KBASE ?= /lib/modules/$(KVER)
KSRC ?= $(KBASE)/source
KBUILD ?= $(KBASE)/build
MOD_DIR ?= $(KBASE)/kernel
PWD := $(shell pwd)
IDIR := include/linux
TP_DIR := drivers/platform/x86
TP_MODULES := thinkpad_ec.o tp_smapi.o
SHELL := /bin/bash
ifeq ($(HDAPS),1)
TP_MODULES += hdaps.o
LOAD_HDAPS := insmod ./hdaps.ko
else
LOAD_HDAPS := :
endif
ifeq ($(FORCE_IO),1)
THINKPAD_EC_PARAM := force_io=1
else
THINKPAD_EC_PARAM :=
endif
ifneq ($(KERNELRELEASE),)
obj-m := $(TP_MODULES)
else
endif
DEBUG := 0
.PHONY: default clean modules load unload install patch check_hdaps mk-hdaps.diff \
check-ver set-version create-tgz create-rpm
export TP_MODULES
#####################################################################
# Main targets
default: modules
# Build the modules thinkpad_ec.ko, tp_smapi.ko and (if HDAPS=1) hdaps.ko
modules: $(KBUILD) $(patsubst %.o,%.c,$(TP_MODULES))
$(MAKE) -C $(KBUILD) M=$(PWD) O=$(KBUILD) modules
clean:
rm -f tp_smapi.mod.* tp_smapi.o tp_smapi.ko .tp_smapi.*.cmd
rm -f thinkpad_ec.mod.* thinkpad_ec.o thinkpad_ec.ko .thinkpad_ec.*.cmd
rm -f hdaps.mod.* hdaps.o hdaps.ko .hdaps.*.cmd
rm -f *~ diff/*~ *.orig diff/*.orig *.rej diff/*.rej
rm -f tp_smapi-*-for-*.patch
rm -fr .tmp_versions Modules.symvers diff/hdaps.diff.tmp
load: check_hdaps unload modules
@( [ `id -u` == 0 ] || { echo "Must be root to load modules"; exit 1; } )
{ insmod ./thinkpad_ec.ko $(THINKPAD_EC_PARAM) && insmod ./tp_smapi.ko debug=$(DEBUG) && $(LOAD_HDAPS); }; :
@echo -e '\nRecent dmesg output:' ; dmesg | tail -10
unload:
@( [ `id -u` == 0 ] || { echo "Must be root to unload modules"; exit 1; } )
if lsmod | grep -q '^hdaps '; then rmmod hdaps; fi
if lsmod | grep -q '^tp_smapi '; then rmmod tp_smapi; fi
if lsmod | grep -q '^thinkpad_ec '; then rmmod thinkpad_ec; fi
if lsmod | grep -q '^tp_base '; then rmmod tp_base; fi # old thinkpad_ec
check_hdaps:
ifneq ($(HDAPS),1)
@if lsmod | grep -q '^hdaps '; then \
echo 'The hdaps driver is loaded. Use "make HDAPS=1 ..." to'\
'patch hdaps for compatibility with tp_smapi.'\
'This requires a kernel source tree.'; exit 1; fi
endif
install: modules
@( [ `id -u` == 0 ] || { echo "Must be root to install modules"; exit 1; } )
rm -f $(MOD_DIR)/$(TP_DIR)/{thinkpad_ec,tp_smapi,tp_base}.ko
rm -f $(MOD_DIR)/drivers/firmware/{thinkpad_ec,tp_smapi,tp_base}.ko
rm -f $(MOD_DIR)/extra/{thinkpad_ec,tp_smapi,tp_base}.ko
ifeq ($(HDAPS),1)
rm -f $(MOD_DIR)/drivers/platform/x86/hdaps.ko
rm -f $(MOD_DIR)/extra/hdaps.ko
endif
$(MAKE) -C $(KBUILD) M=$(PWD) O=$(KBUILD) modules_install
depmod $(KVER)
#####################################################################
# Generate a stand-alone kernel patch
TP_VER := 0.42
ORG := a
NEW := b
PATCH := tp_smapi-$(TP_VER)-for-$(KVER).patch
BASE_IN_PATCH := 1
SMAPI_IN_PATCH := 1
HDAPS_IN_PATCH := 1
patch: $(KSRC)
@TMPDIR=`mktemp -d /tmp/tp_smapi-patch.XXXXXX` &&\
echo "Working directory: $$TMPDIR" &&\
cd $$TMPDIR &&\
mkdir -p $(ORG)/$(TP_DIR) &&\
mkdir -p $(ORG)/$(IDIR) &&\
mkdir -p $(ORG)/drivers/platform/x86 &&\
cp $(KSRC)/$(TP_DIR)/{Kconfig,Makefile} $(ORG)/$(TP_DIR) &&\
cp $(KSRC)/drivers/platform/x86/{Kconfig,hdaps.c} $(ORG)/drivers/platform/x86/ &&\
cp -r $(ORG) $(NEW) &&\
\
if [ "$(BASE_IN_PATCH)" == 1 ]; then \
cp $(PWD)/thinkpad_ec.c $(NEW)/$(TP_DIR)/thinkpad_ec.c &&\
cp $(PWD)/thinkpad_ec.h $(NEW)/$(TP_DIR)/thinkpad_ec.h &&\
perl -i -pe 'print `cat $(PWD)/diff/Kconfig-thinkpad_ec.add` if m/^(endmenu|endif # X86_PLATFORM_DEVICES)$$/' $(NEW)/$(TP_DIR)/Kconfig &&\
sed -i -e '$$aobj-$$(CONFIG_THINKPAD_EC) += thinkpad_ec.o' $(NEW)/$(TP_DIR)/Makefile \
; fi &&\
\
if [ "$(HDAPS_IN_PATCH)" == 1 ]; then \
cp $(PWD)/hdaps.c $(NEW)/drivers/platform/x86/ &&\
perl -i -0777 -pe 's/(config SENSORS_HDAPS\n\ttristate [^\n]+\n\tdepends [^\n]+\n)/$$1\tselect THINKPAD_EC\n/' $(NEW)/drivers/platform/x86/Kconfig \
; fi &&\
\
if [ "$(SMAPI_IN_PATCH)" == 1 ]; then \
sed -i -e '$$aobj-$$(CONFIG_TP_SMAPI) += tp_smapi.o' $(NEW)/$(TP_DIR)/Makefile &&\
perl -i -pe 'print `cat $(PWD)/diff/Kconfig-tp_smapi.add` if m/^(endmenu|endif # X86_PLATFORM_DEVICES)$$/' $(NEW)/$(TP_DIR)/Kconfig &&\
cp $(PWD)/tp_smapi.c $(NEW)/$(TP_DIR)/tp_smapi.c &&\
mkdir -p $(NEW)/Documentation &&\
perl -0777 -pe 's/\n(Installation\n---+|Conflict with HDAPS\n---+|Files in this package\n---+|Setting and getting CD-ROM speed:\n).*?\n(?=[^\n]*\n-----)/\n/gs' $(PWD)/README > $(NEW)/Documentation/tp_smapi.txt \
; fi &&\
\
{ diff -dNurp $(ORG) $(NEW) > patch \
|| [ $$? -lt 2 ]; } &&\
{ echo "Generated for $(KVER) in $(KSRC)"; echo; diffstat patch; echo; echo; cat patch; } \
> $(PWD)/${PATCH} &&\
rm -r $$TMPDIR
@echo
@diffstat ${PATCH}
@echo -e "\nPatch file created:\n ${PATCH}"
@echo -e "To apply, use:\n patch -p1 -d ${KSRC} < ${PATCH}"
#####################################################################
# Tools for preparing a release. Ignore these.
TGZ=../tp_smapi-$(VER).tgz
check-ver:
@if [ -z "$(VER)" ]; then \
echo "VER is unset"; \
echo "run: $(MAKE) $(MAKECMDGOALS) VER=<release version>"; \
exit 1 ;\
fi
set-version: check-ver
perl -i -pe 's/^(tp_smapi version ).*/$${1}$(VER)/' README
perl -i -pe 's/^(#define TP_VERSION ").*/$${1}$(VER)"/' thinkpad_ec.c tp_smapi.c
perl -i -pe 's/^(TP_VER := ).*/$${1}$(VER)/' Makefile
perl -i -pe 's/^(PACKAGE_VERSION=").*/$${1}$(VER)"/' dkms.conf
perl -i -pe 's/^(%define version ).*/$${1}$(VER)/' tp_smapi.spec
create-tgz: check-ver
git archive --format=tar --prefix=tp_smapi-$(VER)/ HEAD | gzip -c > $(TGZ)
tar tzvf $(TGZ)
echo "Ready: $(TGZ)"
create-rpm: create-tgz
mkdir -p rpmbuild
rpmbuild -tb --define "_topdir $$PWD/rpmbuild" $(TGZ)
else
#####################################################################
# This part runs as a submake in kernel Makefile context:
EXTRA_CFLAGS := $(CFLAGS) -I$(M)/include
obj-m := $(TP_MODULES)
endif
|