1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# Makefile for cpupower 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun# Copyright (C) 2005,2006 Dominik Brodowski <linux@dominikbrodowski.net> 5*4882a593Smuzhiyun# 6*4882a593Smuzhiyun# Based largely on the Makefile for udev by: 7*4882a593Smuzhiyun# 8*4882a593Smuzhiyun# Copyright (C) 2003,2004 Greg Kroah-Hartman <greg@kroah.com> 9*4882a593Smuzhiyun# 10*4882a593SmuzhiyunOUTPUT=./ 11*4882a593Smuzhiyunifeq ("$(origin O)", "command line") 12*4882a593Smuzhiyun OUTPUT := $(O)/ 13*4882a593Smuzhiyunendif 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunifneq ($(OUTPUT),) 16*4882a593Smuzhiyun# check that the output directory actually exists 17*4882a593SmuzhiyunOUTDIR := $(shell cd $(OUTPUT) && pwd) 18*4882a593Smuzhiyun$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist)) 19*4882a593Smuzhiyunendif 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun# --- CONFIGURATION BEGIN --- 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun# Set the following to `true' to make a unstripped, unoptimized 25*4882a593Smuzhiyun# binary. Leave this set to `false' for production use. 26*4882a593SmuzhiyunDEBUG ?= true 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun# make the build silent. Set this to something else to make it noisy again. 29*4882a593SmuzhiyunV ?= false 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun# Internationalization support (output in different languages). 32*4882a593Smuzhiyun# Requires gettext. 33*4882a593SmuzhiyunNLS ?= true 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun# Set the following to 'true' to build/install the 36*4882a593Smuzhiyun# cpufreq-bench benchmarking tool 37*4882a593SmuzhiyunCPUFREQ_BENCH ?= true 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun# Do not build libraries, but build the code in statically 40*4882a593Smuzhiyun# Libraries are still built, otherwise the Makefile code would 41*4882a593Smuzhiyun# be rather ugly. 42*4882a593Smuzhiyunexport STATIC ?= false 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun# Prefix to the directories we're installing to 45*4882a593SmuzhiyunDESTDIR ?= 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun# --- CONFIGURATION END --- 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun# Package-related definitions. Distributions can modify the version 52*4882a593Smuzhiyun# and _should_ modify the PACKAGE_BUGREPORT definition 53*4882a593Smuzhiyun 54*4882a593SmuzhiyunVERSION:= $(shell ./utils/version-gen.sh) 55*4882a593SmuzhiyunLIB_MAJ= 0.0.1 56*4882a593SmuzhiyunLIB_MIN= 0 57*4882a593Smuzhiyun 58*4882a593SmuzhiyunPACKAGE = cpupower 59*4882a593SmuzhiyunPACKAGE_BUGREPORT = linux-pm@vger.kernel.org 60*4882a593SmuzhiyunLANGUAGES = de fr it cs pt 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun# Directory definitions. These are default and most probably 64*4882a593Smuzhiyun# do not need to be changed. Please note that DESTDIR is 65*4882a593Smuzhiyun# added in front of any of them 66*4882a593Smuzhiyun 67*4882a593Smuzhiyunbindir ?= /usr/bin 68*4882a593Smuzhiyunsbindir ?= /usr/sbin 69*4882a593Smuzhiyunmandir ?= /usr/man 70*4882a593Smuzhiyunincludedir ?= /usr/include 71*4882a593Smuzhiyunlocaledir ?= /usr/share/locale 72*4882a593Smuzhiyundocdir ?= /usr/share/doc/packages/cpupower 73*4882a593Smuzhiyunconfdir ?= /etc/ 74*4882a593Smuzhiyunbash_completion_dir ?= /usr/share/bash-completion/completions 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun# Toolchain: what tools do we use, and what options do they need: 77*4882a593Smuzhiyun 78*4882a593SmuzhiyunCP = cp -fpR 79*4882a593SmuzhiyunINSTALL = /usr/bin/install -c 80*4882a593SmuzhiyunINSTALL_PROGRAM = ${INSTALL} 81*4882a593SmuzhiyunINSTALL_DATA = ${INSTALL} -m 644 82*4882a593Smuzhiyun#bash completion scripts get sourced and so they should be rw only. 83*4882a593SmuzhiyunINSTALL_SCRIPT = ${INSTALL} -m 644 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun# If you are running a cross compiler, you may want to set this 86*4882a593Smuzhiyun# to something more interesting, like "arm-linux-". If you want 87*4882a593Smuzhiyun# to compile vs uClibc, that can be done here as well. 88*4882a593SmuzhiyunCROSS = #/usr/i386-linux-uclibc/usr/bin/i386-uclibc- 89*4882a593SmuzhiyunCC = $(CROSS)gcc 90*4882a593SmuzhiyunLD = $(CROSS)gcc 91*4882a593SmuzhiyunAR = $(CROSS)ar 92*4882a593SmuzhiyunSTRIP = $(CROSS)strip 93*4882a593SmuzhiyunRANLIB = $(CROSS)ranlib 94*4882a593SmuzhiyunHOSTCC = gcc 95*4882a593SmuzhiyunMKDIR = mkdir 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun# 64bit library detection 98*4882a593Smuzhiyuninclude ../../scripts/Makefile.arch 99*4882a593Smuzhiyun 100*4882a593Smuzhiyunifeq ($(IS_64_BIT), 1) 101*4882a593Smuzhiyunlibdir ?= /usr/lib64 102*4882a593Smuzhiyunelse 103*4882a593Smuzhiyunlibdir ?= /usr/lib 104*4882a593Smuzhiyunendif 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun# Now we set up the build system 107*4882a593Smuzhiyun# 108*4882a593Smuzhiyun 109*4882a593SmuzhiyunGMO_FILES = ${shell for HLANG in ${LANGUAGES}; do echo $(OUTPUT)po/$$HLANG.gmo; done;} 110*4882a593Smuzhiyun 111*4882a593Smuzhiyunexport CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun# check if compiler option is supported 114*4882a593Smuzhiyuncc-supports = ${shell if $(CC) ${1} -S -o /dev/null -x c /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;} 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun# use '-Os' optimization if available, else use -O2 117*4882a593SmuzhiyunOPTIMIZATION := $(call cc-supports,-Os,-O2) 118*4882a593Smuzhiyun 119*4882a593SmuzhiyunWARNINGS := -Wall -Wchar-subscripts -Wpointer-arith -Wsign-compare 120*4882a593SmuzhiyunWARNINGS += $(call cc-supports,-Wno-pointer-sign) 121*4882a593SmuzhiyunWARNINGS += $(call cc-supports,-Wdeclaration-after-statement) 122*4882a593SmuzhiyunWARNINGS += -Wshadow 123*4882a593Smuzhiyun 124*4882a593Smuzhiyunoverride CFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \ 125*4882a593Smuzhiyun -DPACKAGE_BUGREPORT=\"$(PACKAGE_BUGREPORT)\" -D_GNU_SOURCE 126*4882a593Smuzhiyun 127*4882a593SmuzhiyunUTIL_OBJS = utils/helpers/amd.o utils/helpers/msr.o \ 128*4882a593Smuzhiyun utils/helpers/sysfs.o utils/helpers/misc.o utils/helpers/cpuid.o \ 129*4882a593Smuzhiyun utils/helpers/pci.o utils/helpers/bitmask.o \ 130*4882a593Smuzhiyun utils/idle_monitor/nhm_idle.o utils/idle_monitor/snb_idle.o \ 131*4882a593Smuzhiyun utils/idle_monitor/hsw_ext_idle.o \ 132*4882a593Smuzhiyun utils/idle_monitor/amd_fam14h_idle.o utils/idle_monitor/cpuidle_sysfs.o \ 133*4882a593Smuzhiyun utils/idle_monitor/mperf_monitor.o utils/idle_monitor/cpupower-monitor.o \ 134*4882a593Smuzhiyun utils/cpupower.o utils/cpufreq-info.o utils/cpufreq-set.o \ 135*4882a593Smuzhiyun utils/cpupower-set.o utils/cpupower-info.o utils/cpuidle-info.o \ 136*4882a593Smuzhiyun utils/cpuidle-set.o 137*4882a593Smuzhiyun 138*4882a593SmuzhiyunUTIL_SRC := $(UTIL_OBJS:.o=.c) 139*4882a593Smuzhiyun 140*4882a593SmuzhiyunUTIL_OBJS := $(addprefix $(OUTPUT),$(UTIL_OBJS)) 141*4882a593Smuzhiyun 142*4882a593SmuzhiyunUTIL_HEADERS = utils/helpers/helpers.h utils/idle_monitor/cpupower-monitor.h \ 143*4882a593Smuzhiyun utils/helpers/bitmask.h \ 144*4882a593Smuzhiyun utils/idle_monitor/idle_monitors.h utils/idle_monitor/idle_monitors.def 145*4882a593Smuzhiyun 146*4882a593SmuzhiyunLIB_HEADERS = lib/cpufreq.h lib/cpupower.h lib/cpuidle.h 147*4882a593SmuzhiyunLIB_SRC = lib/cpufreq.c lib/cpupower.c lib/cpuidle.c 148*4882a593SmuzhiyunLIB_OBJS = lib/cpufreq.o lib/cpupower.o lib/cpuidle.o 149*4882a593SmuzhiyunLIB_OBJS := $(addprefix $(OUTPUT),$(LIB_OBJS)) 150*4882a593Smuzhiyun 151*4882a593Smuzhiyunoverride CFLAGS += -pipe 152*4882a593Smuzhiyun 153*4882a593Smuzhiyunifeq ($(strip $(NLS)),true) 154*4882a593Smuzhiyun INSTALL_NLS += install-gmo 155*4882a593Smuzhiyun COMPILE_NLS += create-gmo 156*4882a593Smuzhiyun override CFLAGS += -DNLS 157*4882a593Smuzhiyunendif 158*4882a593Smuzhiyun 159*4882a593Smuzhiyunifeq ($(strip $(CPUFREQ_BENCH)),true) 160*4882a593Smuzhiyun INSTALL_BENCH += install-bench 161*4882a593Smuzhiyun COMPILE_BENCH += compile-bench 162*4882a593Smuzhiyunendif 163*4882a593Smuzhiyun 164*4882a593Smuzhiyunifeq ($(strip $(STATIC)),true) 165*4882a593Smuzhiyun UTIL_OBJS += $(LIB_OBJS) 166*4882a593Smuzhiyun UTIL_HEADERS += $(LIB_HEADERS) 167*4882a593Smuzhiyun UTIL_SRC += $(LIB_SRC) 168*4882a593Smuzhiyunendif 169*4882a593Smuzhiyun 170*4882a593Smuzhiyunoverride CFLAGS += $(WARNINGS) 171*4882a593Smuzhiyun 172*4882a593Smuzhiyunifeq ($(strip $(V)),false) 173*4882a593Smuzhiyun QUIET=@ 174*4882a593Smuzhiyun ECHO=@echo 175*4882a593Smuzhiyunelse 176*4882a593Smuzhiyun QUIET= 177*4882a593Smuzhiyun ECHO=@\# 178*4882a593Smuzhiyunendif 179*4882a593Smuzhiyunexport QUIET ECHO 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun# if DEBUG is enabled, then we do not strip or optimize 182*4882a593Smuzhiyunifeq ($(strip $(DEBUG)),true) 183*4882a593Smuzhiyun override CFLAGS += -O1 -g -DDEBUG 184*4882a593Smuzhiyun STRIPCMD = /bin/true -Since_we_are_debugging 185*4882a593Smuzhiyunelse 186*4882a593Smuzhiyun override CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer 187*4882a593Smuzhiyun STRIPCMD = $(STRIP) -s --remove-section=.note --remove-section=.comment 188*4882a593Smuzhiyunendif 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun# the actual make rules 192*4882a593Smuzhiyun 193*4882a593Smuzhiyunall: libcpupower $(OUTPUT)cpupower $(COMPILE_NLS) $(COMPILE_BENCH) 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun$(OUTPUT)lib/%.o: $(LIB_SRC) $(LIB_HEADERS) 196*4882a593Smuzhiyun $(ECHO) " CC " $@ 197*4882a593Smuzhiyun $(QUIET) $(CC) $(CFLAGS) -fPIC -o $@ -c lib/$*.c 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun$(OUTPUT)libcpupower.so.$(LIB_MAJ): $(LIB_OBJS) 200*4882a593Smuzhiyun $(ECHO) " LD " $@ 201*4882a593Smuzhiyun $(QUIET) $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ \ 202*4882a593Smuzhiyun -Wl,-soname,libcpupower.so.$(LIB_MIN) $(LIB_OBJS) 203*4882a593Smuzhiyun @ln -sf $(@F) $(OUTPUT)libcpupower.so 204*4882a593Smuzhiyun @ln -sf $(@F) $(OUTPUT)libcpupower.so.$(LIB_MIN) 205*4882a593Smuzhiyun 206*4882a593Smuzhiyunlibcpupower: $(OUTPUT)libcpupower.so.$(LIB_MAJ) 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun# Let all .o files depend on its .c file and all headers 209*4882a593Smuzhiyun# Might be worth to put this into utils/Makefile at some point of time 210*4882a593Smuzhiyun$(UTIL_OBJS): $(UTIL_HEADERS) 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun$(OUTPUT)%.o: %.c 213*4882a593Smuzhiyun $(ECHO) " CC " $@ 214*4882a593Smuzhiyun $(QUIET) $(CC) $(CFLAGS) -I./lib -I ./utils -o $@ -c $*.c 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun$(OUTPUT)cpupower: $(UTIL_OBJS) $(OUTPUT)libcpupower.so.$(LIB_MAJ) 217*4882a593Smuzhiyun $(ECHO) " CC " $@ 218*4882a593Smuzhiyunifeq ($(strip $(STATIC)),true) 219*4882a593Smuzhiyun $(QUIET) $(CC) $(CFLAGS) $(LDFLAGS) $(UTIL_OBJS) -lrt -lpci -L$(OUTPUT) -o $@ 220*4882a593Smuzhiyunelse 221*4882a593Smuzhiyun $(QUIET) $(CC) $(CFLAGS) $(LDFLAGS) $(UTIL_OBJS) -lcpupower -lrt -lpci -L$(OUTPUT) -o $@ 222*4882a593Smuzhiyunendif 223*4882a593Smuzhiyun $(QUIET) $(STRIPCMD) $@ 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun$(OUTPUT)po/$(PACKAGE).pot: $(UTIL_SRC) 226*4882a593Smuzhiyun $(ECHO) " GETTEXT " $@ 227*4882a593Smuzhiyun $(QUIET) xgettext --default-domain=$(PACKAGE) --add-comments \ 228*4882a593Smuzhiyun --keyword=_ --keyword=N_ $(UTIL_SRC) -p $(@D) -o $(@F) 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun$(OUTPUT)po/%.gmo: po/%.po 231*4882a593Smuzhiyun $(ECHO) " MSGFMT " $@ 232*4882a593Smuzhiyun $(QUIET) msgfmt -o $@ po/$*.po 233*4882a593Smuzhiyun 234*4882a593Smuzhiyuncreate-gmo: ${GMO_FILES} 235*4882a593Smuzhiyun 236*4882a593Smuzhiyunupdate-po: $(OUTPUT)po/$(PACKAGE).pot 237*4882a593Smuzhiyun $(ECHO) " MSGMRG " $@ 238*4882a593Smuzhiyun $(QUIET) @for HLANG in $(LANGUAGES); do \ 239*4882a593Smuzhiyun echo -n "Updating $$HLANG "; \ 240*4882a593Smuzhiyun if msgmerge po/$$HLANG.po $< -o \ 241*4882a593Smuzhiyun $(OUTPUT)po/$$HLANG.new.po; then \ 242*4882a593Smuzhiyun mv -f $(OUTPUT)po/$$HLANG.new.po $(OUTPUT)po/$$HLANG.po; \ 243*4882a593Smuzhiyun else \ 244*4882a593Smuzhiyun echo "msgmerge for $$HLANG failed!"; \ 245*4882a593Smuzhiyun rm -f $(OUTPUT)po/$$HLANG.new.po; \ 246*4882a593Smuzhiyun fi; \ 247*4882a593Smuzhiyun done; 248*4882a593Smuzhiyun 249*4882a593Smuzhiyuncompile-bench: $(OUTPUT)libcpupower.so.$(LIB_MAJ) 250*4882a593Smuzhiyun @V=$(V) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT) 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun# we compile into subdirectories. if the target directory is not the 253*4882a593Smuzhiyun# source directory, they might not exists. So we depend the various 254*4882a593Smuzhiyun# files onto their directories. 255*4882a593SmuzhiyunDIRECTORY_DEPS = $(LIB_OBJS) $(UTIL_OBJS) $(GMO_FILES) 256*4882a593Smuzhiyun$(DIRECTORY_DEPS): | $(sort $(dir $(DIRECTORY_DEPS))) 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun# In the second step, we make a rule to actually create these directories 259*4882a593Smuzhiyun$(sort $(dir $(DIRECTORY_DEPS))): 260*4882a593Smuzhiyun $(ECHO) " MKDIR " $@ 261*4882a593Smuzhiyun $(QUIET) $(MKDIR) -p $@ 2>/dev/null 262*4882a593Smuzhiyun 263*4882a593Smuzhiyunclean: 264*4882a593Smuzhiyun -find $(OUTPUT) \( -not -type d \) -and \( -name '*~' -o -name '*.[oas]' \) -type f -print \ 265*4882a593Smuzhiyun | xargs rm -f 266*4882a593Smuzhiyun -rm -f $(OUTPUT)cpupower 267*4882a593Smuzhiyun -rm -f $(OUTPUT)libcpupower.so* 268*4882a593Smuzhiyun -rm -rf $(OUTPUT)po/*.gmo 269*4882a593Smuzhiyun -rm -rf $(OUTPUT)po/*.pot 270*4882a593Smuzhiyun $(MAKE) -C bench O=$(OUTPUT) clean 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun 273*4882a593Smuzhiyuninstall-lib: 274*4882a593Smuzhiyun $(INSTALL) -d $(DESTDIR)${libdir} 275*4882a593Smuzhiyun $(CP) $(OUTPUT)libcpupower.so* $(DESTDIR)${libdir}/ 276*4882a593Smuzhiyun $(INSTALL) -d $(DESTDIR)${includedir} 277*4882a593Smuzhiyun $(INSTALL_DATA) lib/cpufreq.h $(DESTDIR)${includedir}/cpufreq.h 278*4882a593Smuzhiyun $(INSTALL_DATA) lib/cpuidle.h $(DESTDIR)${includedir}/cpuidle.h 279*4882a593Smuzhiyun 280*4882a593Smuzhiyuninstall-tools: 281*4882a593Smuzhiyun $(INSTALL) -d $(DESTDIR)${bindir} 282*4882a593Smuzhiyun $(INSTALL_PROGRAM) $(OUTPUT)cpupower $(DESTDIR)${bindir} 283*4882a593Smuzhiyun $(INSTALL) -d $(DESTDIR)${bash_completion_dir} 284*4882a593Smuzhiyun $(INSTALL_SCRIPT) cpupower-completion.sh '$(DESTDIR)${bash_completion_dir}/cpupower' 285*4882a593Smuzhiyun 286*4882a593Smuzhiyuninstall-man: 287*4882a593Smuzhiyun $(INSTALL_DATA) -D man/cpupower.1 $(DESTDIR)${mandir}/man1/cpupower.1 288*4882a593Smuzhiyun $(INSTALL_DATA) -D man/cpupower-frequency-set.1 $(DESTDIR)${mandir}/man1/cpupower-frequency-set.1 289*4882a593Smuzhiyun $(INSTALL_DATA) -D man/cpupower-frequency-info.1 $(DESTDIR)${mandir}/man1/cpupower-frequency-info.1 290*4882a593Smuzhiyun $(INSTALL_DATA) -D man/cpupower-idle-set.1 $(DESTDIR)${mandir}/man1/cpupower-idle-set.1 291*4882a593Smuzhiyun $(INSTALL_DATA) -D man/cpupower-idle-info.1 $(DESTDIR)${mandir}/man1/cpupower-idle-info.1 292*4882a593Smuzhiyun $(INSTALL_DATA) -D man/cpupower-set.1 $(DESTDIR)${mandir}/man1/cpupower-set.1 293*4882a593Smuzhiyun $(INSTALL_DATA) -D man/cpupower-info.1 $(DESTDIR)${mandir}/man1/cpupower-info.1 294*4882a593Smuzhiyun $(INSTALL_DATA) -D man/cpupower-monitor.1 $(DESTDIR)${mandir}/man1/cpupower-monitor.1 295*4882a593Smuzhiyun 296*4882a593Smuzhiyuninstall-gmo: 297*4882a593Smuzhiyun $(INSTALL) -d $(DESTDIR)${localedir} 298*4882a593Smuzhiyun for HLANG in $(LANGUAGES); do \ 299*4882a593Smuzhiyun echo '$(INSTALL_DATA) -D $(OUTPUT)po/$$HLANG.gmo $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo'; \ 300*4882a593Smuzhiyun $(INSTALL_DATA) -D $(OUTPUT)po/$$HLANG.gmo $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo; \ 301*4882a593Smuzhiyun done; 302*4882a593Smuzhiyun 303*4882a593Smuzhiyuninstall-bench: 304*4882a593Smuzhiyun @#DESTDIR must be set from outside to survive 305*4882a593Smuzhiyun @sbindir=$(sbindir) bindir=$(bindir) docdir=$(docdir) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT) install 306*4882a593Smuzhiyun 307*4882a593Smuzhiyunifeq ($(strip $(STATIC)),true) 308*4882a593Smuzhiyuninstall: all install-tools install-man $(INSTALL_NLS) $(INSTALL_BENCH) 309*4882a593Smuzhiyunelse 310*4882a593Smuzhiyuninstall: all install-lib install-tools install-man $(INSTALL_NLS) $(INSTALL_BENCH) 311*4882a593Smuzhiyunendif 312*4882a593Smuzhiyun 313*4882a593Smuzhiyununinstall: 314*4882a593Smuzhiyun - rm -f $(DESTDIR)${libdir}/libcpupower.* 315*4882a593Smuzhiyun - rm -f $(DESTDIR)${includedir}/cpufreq.h 316*4882a593Smuzhiyun - rm -f $(DESTDIR)${includedir}/cpuidle.h 317*4882a593Smuzhiyun - rm -f $(DESTDIR)${bindir}/utils/cpupower 318*4882a593Smuzhiyun - rm -f $(DESTDIR)${mandir}/man1/cpupower.1 319*4882a593Smuzhiyun - rm -f $(DESTDIR)${mandir}/man1/cpupower-frequency-set.1 320*4882a593Smuzhiyun - rm -f $(DESTDIR)${mandir}/man1/cpupower-frequency-info.1 321*4882a593Smuzhiyun - rm -f $(DESTDIR)${mandir}/man1/cpupower-set.1 322*4882a593Smuzhiyun - rm -f $(DESTDIR)${mandir}/man1/cpupower-info.1 323*4882a593Smuzhiyun - rm -f $(DESTDIR)${mandir}/man1/cpupower-monitor.1 324*4882a593Smuzhiyun - for HLANG in $(LANGUAGES); do \ 325*4882a593Smuzhiyun rm -f $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo; \ 326*4882a593Smuzhiyun done; 327*4882a593Smuzhiyun 328*4882a593Smuzhiyun.PHONY: all utils libcpupower update-po create-gmo install-lib install-tools install-man install-gmo install uninstall clean 329