xref: /linux-6.15/tools/power/cpupower/Makefile (revision fffadbdd)
1873e65bcSThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2ee3db6fcSThomas Renninger# Makefile for cpupower
37fe2f639SDominik Brodowski#
47fe2f639SDominik Brodowski# Copyright (C) 2005,2006 Dominik Brodowski <[email protected]>
57fe2f639SDominik Brodowski#
67fe2f639SDominik Brodowski# Based largely on the Makefile for udev by:
77fe2f639SDominik Brodowski#
87fe2f639SDominik Brodowski# Copyright (C) 2003,2004 Greg Kroah-Hartman <[email protected]>
97fe2f639SDominik Brodowski#
1068bb2c3aSFranck Bui-HuuOUTPUT=./
1168bb2c3aSFranck Bui-Huuifeq ("$(origin O)", "command line")
1268bb2c3aSFranck Bui-Huu	OUTPUT := $(O)/
1368bb2c3aSFranck Bui-Huuendif
1468bb2c3aSFranck Bui-Huu
1568bb2c3aSFranck Bui-Huuifneq ($(OUTPUT),)
1668bb2c3aSFranck Bui-Huu# check that the output directory actually exists
1716f8259cSBjørn ForsmanOUTDIR := $(shell cd $(OUTPUT) && pwd)
1868bb2c3aSFranck Bui-Huu$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
1968bb2c3aSFranck Bui-Huuendif
207fe2f639SDominik Brodowski
21d4dbfa4bSPrarit Bhargava
227fe2f639SDominik Brodowski# --- CONFIGURATION BEGIN ---
237fe2f639SDominik Brodowski
247fe2f639SDominik Brodowski# Set the following to `true' to make a unstripped, unoptimized
257fe2f639SDominik Brodowski# binary. Leave this set to `false' for production use.
262dfc818bSThomas RenningerDEBUG ?=	true
277fe2f639SDominik Brodowski
287fe2f639SDominik Brodowski# make the build silent. Set this to something else to make it noisy again.
297fe2f639SDominik BrodowskiV ?=		false
307fe2f639SDominik Brodowski
317fe2f639SDominik Brodowski# Internationalization support (output in different languages).
327fe2f639SDominik Brodowski# Requires gettext.
337fe2f639SDominik BrodowskiNLS ?=		true
347fe2f639SDominik Brodowski
357fe2f639SDominik Brodowski# Set the following to 'true' to build/install the
367fe2f639SDominik Brodowski# cpufreq-bench benchmarking tool
3763b37de1SDave JonesCPUFREQ_BENCH ?= true
387fe2f639SDominik Brodowski
39e51207f0SThomas Renninger# Do not build libraries, but build the code in statically
40e51207f0SThomas Renninger# Libraries are still built, otherwise the Makefile code would
41e51207f0SThomas Renninger# be rather ugly.
42e51207f0SThomas Renningerexport STATIC ?= false
43e51207f0SThomas Renninger
447fe2f639SDominik Brodowski# Prefix to the directories we're installing to
457fe2f639SDominik BrodowskiDESTDIR ?=
467fe2f639SDominik Brodowski
477fe2f639SDominik Brodowski# --- CONFIGURATION END ---
487fe2f639SDominik Brodowski
497fe2f639SDominik Brodowski
507fe2f639SDominik Brodowski
517fe2f639SDominik Brodowski# Package-related definitions. Distributions can modify the version
527fe2f639SDominik Brodowski# and _should_ modify the PACKAGE_BUGREPORT definition
537fe2f639SDominik Brodowski
54527b7779SMartin KaistraVERSION:=			$(shell ./utils/version-gen.sh)
55*fffadbddSThomas RenningerLIB_FIX=			1
56*fffadbddSThomas RenningerLIB_MIN=			0
57*fffadbddSThomas RenningerLIB_MAJ=			1
58*fffadbddSThomas RenningerLIB_VER=			$(LIB_MAJ).$(LIB_MIN).$(LIB_FIX)
59*fffadbddSThomas Renninger
607fe2f639SDominik Brodowski
61ee3db6fcSThomas RenningerPACKAGE =			cpupower
62dec102aaSViresh KumarPACKAGE_BUGREPORT =		linux-pm@vger.kernel.org
63b78abc21SKieran MoyLANGUAGES = 			de fr it cs pt ka zh_CN
647fe2f639SDominik Brodowski
657fe2f639SDominik Brodowski
667fe2f639SDominik Brodowski# Directory definitions. These are default and most probably
677fe2f639SDominik Brodowski# do not need to be changed. Please note that DESTDIR is
687fe2f639SDominik Brodowski# added in front of any of them
697fe2f639SDominik Brodowski
707fe2f639SDominik Brodowskibindir ?=	/usr/bin
717fe2f639SDominik Brodowskisbindir ?=	/usr/sbin
727fe2f639SDominik Brodowskimandir ?=	/usr/man
733a5bb506SRoman Storozhenkolibdir ?=	/usr/lib
747fe2f639SDominik Brodowskiincludedir ?=	/usr/include
757fe2f639SDominik Brodowskilocaledir ?=	/usr/share/locale
76ee3db6fcSThomas Renningerdocdir ?=       /usr/share/doc/packages/cpupower
777fe2f639SDominik Brodowskiconfdir ?=      /etc/
78901d32bcSAbhishek Goelbash_completion_dir ?= /usr/share/bash-completion/completions
797fe2f639SDominik Brodowski
807fe2f639SDominik Brodowski# Toolchain: what tools do we use, and what options do they need:
817fe2f639SDominik Brodowski
827fe2f639SDominik BrodowskiCP = cp -fpR
837fe2f639SDominik BrodowskiINSTALL = /usr/bin/install -c
847fe2f639SDominik BrodowskiINSTALL_PROGRAM = ${INSTALL}
857fe2f639SDominik BrodowskiINSTALL_DATA  = ${INSTALL} -m 644
86901d32bcSAbhishek Goel#bash completion scripts get sourced and so they should be rw only.
87901d32bcSAbhishek GoelINSTALL_SCRIPT = ${INSTALL} -m 644
887fe2f639SDominik Brodowski
897fe2f639SDominik Brodowski# If you are running a cross compiler, you may want to set this
907fe2f639SDominik Brodowski# to something more interesting, like "arm-linux-".  If you want
917fe2f639SDominik Brodowski# to compile vs uClibc, that can be done here as well.
92f79473edSPeng FanCROSS ?= #/usr/i386-linux-uclibc/usr/bin/i386-uclibc-
933075476aSPeng Fanifneq ($(CROSS), )
943075476aSPeng FanCC = $(CROSS)gcc
953075476aSPeng FanLD = $(CROSS)gcc
963075476aSPeng FanAR = $(CROSS)ar
973075476aSPeng FanSTRIP = $(CROSS)strip
983075476aSPeng FanRANLIB = $(CROSS)ranlib
993075476aSPeng Fanelse
100f79473edSPeng FanCC ?= $(CROSS)gcc
101f79473edSPeng FanLD ?= $(CROSS)gcc
102f79473edSPeng FanAR ?= $(CROSS)ar
103f79473edSPeng FanSTRIP ?= $(CROSS)strip
104f79473edSPeng FanRANLIB ?= $(CROSS)ranlib
1053075476aSPeng Fanendif
1067fe2f639SDominik BrodowskiHOSTCC = gcc
10768bb2c3aSFranck Bui-HuuMKDIR = mkdir
1087fe2f639SDominik Brodowski
1097fe2f639SDominik Brodowski# Now we set up the build system
1107fe2f639SDominik Brodowski#
1117fe2f639SDominik Brodowski
11268bb2c3aSFranck Bui-HuuGMO_FILES = ${shell for HLANG in ${LANGUAGES}; do echo $(OUTPUT)po/$$HLANG.gmo; done;}
113f5ac0641SDominik Brodowski
1147fe2f639SDominik Brodowskiexport CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS
1157fe2f639SDominik Brodowski
1167fe2f639SDominik Brodowski# check if compiler option is supported
1177fe2f639SDominik Brodowskicc-supports = ${shell if $(CC) ${1} -S -o /dev/null -x c /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;}
1187fe2f639SDominik Brodowski
1197fe2f639SDominik Brodowski# use '-Os' optimization if available, else use -O2
1207fe2f639SDominik BrodowskiOPTIMIZATION := $(call cc-supports,-Os,-O2)
1217fe2f639SDominik Brodowski
1227fe2f639SDominik BrodowskiWARNINGS := -Wall -Wchar-subscripts -Wpointer-arith -Wsign-compare
1237fe2f639SDominik BrodowskiWARNINGS += $(call cc-supports,-Wno-pointer-sign)
1247fe2f639SDominik BrodowskiWARNINGS += $(call cc-supports,-Wdeclaration-after-statement)
1257fe2f639SDominik BrodowskiWARNINGS += -Wshadow
1267fe2f639SDominik Brodowski
127dbc4ca33SJiri Olsaoverride CFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \
1287fe2f639SDominik Brodowski		-DPACKAGE_BUGREPORT=\"$(PACKAGE_BUGREPORT)\" -D_GNU_SOURCE
1297fe2f639SDominik Brodowski
130ac5a181dSThomas RenningerUTIL_OBJS =  utils/helpers/amd.o utils/helpers/msr.o \
1317fe2f639SDominik Brodowski	utils/helpers/sysfs.o utils/helpers/misc.o utils/helpers/cpuid.o \
1327fe2f639SDominik Brodowski	utils/helpers/pci.o utils/helpers/bitmask.o \
1337fe2f639SDominik Brodowski	utils/idle_monitor/nhm_idle.o utils/idle_monitor/snb_idle.o \
1347ee767b6SThomas Renninger	utils/idle_monitor/hsw_ext_idle.o \
1357fe2f639SDominik Brodowski	utils/idle_monitor/amd_fam14h_idle.o utils/idle_monitor/cpuidle_sysfs.o \
1367fe2f639SDominik Brodowski	utils/idle_monitor/mperf_monitor.o utils/idle_monitor/cpupower-monitor.o \
1378c37df3dSThomas Renninger	utils/idle_monitor/rapl_monitor.o \
1387fe2f639SDominik Brodowski	utils/cpupower.o utils/cpufreq-info.o utils/cpufreq-set.o \
139c4f3610eSThomas Renninger	utils/cpupower-set.o utils/cpupower-info.o utils/cpuidle-info.o \
140c2294c14SThomas Renninger	utils/cpuidle-set.o utils/powercap-info.o
1417fe2f639SDominik Brodowski
14268bb2c3aSFranck Bui-HuuUTIL_SRC := $(UTIL_OBJS:.o=.c)
14368bb2c3aSFranck Bui-Huu
14468bb2c3aSFranck Bui-HuuUTIL_OBJS := $(addprefix $(OUTPUT),$(UTIL_OBJS))
14568bb2c3aSFranck Bui-Huu
1467fe2f639SDominik BrodowskiUTIL_HEADERS = utils/helpers/helpers.h utils/idle_monitor/cpupower-monitor.h \
1477fe2f639SDominik Brodowski	utils/helpers/bitmask.h \
1487fe2f639SDominik Brodowski	utils/idle_monitor/idle_monitors.h utils/idle_monitor/idle_monitors.def
1497fe2f639SDominik Brodowski
150c2294c14SThomas RenningerLIB_HEADERS = 	lib/cpufreq.h lib/cpupower.h lib/cpuidle.h lib/acpi_cppc.h \
151c2294c14SThomas Renninger	lib/powercap.h
152c2294c14SThomas RenningerLIB_SRC = 	lib/cpufreq.c lib/cpupower.c lib/cpuidle.c lib/acpi_cppc.c \
153c2294c14SThomas Renninger	lib/powercap.c
154c2294c14SThomas RenningerLIB_OBJS = 	lib/cpufreq.o lib/cpupower.o lib/cpuidle.o lib/acpi_cppc.o \
155c2294c14SThomas Renninger	lib/powercap.o
15668bb2c3aSFranck Bui-HuuLIB_OBJS :=	$(addprefix $(OUTPUT),$(LIB_OBJS))
1577fe2f639SDominik Brodowski
158dbc4ca33SJiri Olsaoverride CFLAGS +=	-pipe
1597fe2f639SDominik Brodowski
1607fe2f639SDominik Brodowskiifeq ($(strip $(NLS)),true)
1617fe2f639SDominik Brodowski	INSTALL_NLS += install-gmo
162f5ac0641SDominik Brodowski	COMPILE_NLS += create-gmo
163dbc4ca33SJiri Olsa	override CFLAGS += -DNLS
1647fe2f639SDominik Brodowskiendif
1657fe2f639SDominik Brodowski
16663b37de1SDave Jonesifeq ($(strip $(CPUFREQ_BENCH)),true)
1677fe2f639SDominik Brodowski	INSTALL_BENCH += install-bench
1687fe2f639SDominik Brodowski	COMPILE_BENCH += compile-bench
1697fe2f639SDominik Brodowskiendif
1707fe2f639SDominik Brodowski
171e51207f0SThomas Renningerifeq ($(strip $(STATIC)),true)
172e51207f0SThomas Renninger        UTIL_OBJS += $(LIB_OBJS)
173e51207f0SThomas Renninger        UTIL_HEADERS += $(LIB_HEADERS)
174e51207f0SThomas Renninger        UTIL_SRC += $(LIB_SRC)
175e51207f0SThomas Renningerendif
176e51207f0SThomas Renninger
177dbc4ca33SJiri Olsaoverride CFLAGS += $(WARNINGS)
1787fe2f639SDominik Brodowski
1797fe2f639SDominik Brodowskiifeq ($(strip $(V)),false)
1807443af9cSDominik Brodowski	QUIET=@
1817443af9cSDominik Brodowski	ECHO=@echo
1827fe2f639SDominik Brodowskielse
1837fe2f639SDominik Brodowski	QUIET=
1847443af9cSDominik Brodowski	ECHO=@\#
1857fe2f639SDominik Brodowskiendif
1867443af9cSDominik Brodowskiexport QUIET ECHO
1877fe2f639SDominik Brodowski
1887fe2f639SDominik Brodowski# if DEBUG is enabled, then we do not strip or optimize
1897fe2f639SDominik Brodowskiifeq ($(strip $(DEBUG)),true)
190dbc4ca33SJiri Olsa	override CFLAGS += -O1 -g -DDEBUG
1917fe2f639SDominik Brodowski	STRIPCMD = /bin/true -Since_we_are_debugging
1927fe2f639SDominik Brodowskielse
193dbc4ca33SJiri Olsa	override CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer
1947fe2f639SDominik Brodowski	STRIPCMD = $(STRIP) -s --remove-section=.note --remove-section=.comment
1957fe2f639SDominik Brodowskiendif
1967fe2f639SDominik Brodowski
1977fe2f639SDominik Brodowski
1987fe2f639SDominik Brodowski# the actual make rules
1997fe2f639SDominik Brodowski
20068bb2c3aSFranck Bui-Huuall: libcpupower $(OUTPUT)cpupower $(COMPILE_NLS) $(COMPILE_BENCH)
2017fe2f639SDominik Brodowski
20268bb2c3aSFranck Bui-Huu$(OUTPUT)lib/%.o: $(LIB_SRC) $(LIB_HEADERS)
2037443af9cSDominik Brodowski	$(ECHO) "  CC      " $@
204af594f0cSDominik Brodowski	$(QUIET) $(CC) $(CFLAGS) -fPIC -o $@ -c lib/$*.c
2057fe2f639SDominik Brodowski
206*fffadbddSThomas Renninger$(OUTPUT)libcpupower.so.$(LIB_VER): $(LIB_OBJS)
2077443af9cSDominik Brodowski	$(ECHO) "  LD      " $@
208af594f0cSDominik Brodowski	$(QUIET) $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ \
209*fffadbddSThomas Renninger		-Wl,-soname,libcpupower.so.$(LIB_MAJ) $(LIB_OBJS)
21068bb2c3aSFranck Bui-Huu	@ln -sf $(@F) $(OUTPUT)libcpupower.so
211*fffadbddSThomas Renninger	@ln -sf $(@F) $(OUTPUT)libcpupower.so.$(LIB_MAJ)
2127fe2f639SDominik Brodowski
213*fffadbddSThomas Renningerlibcpupower: $(OUTPUT)libcpupower.so.$(LIB_VER)
2147fe2f639SDominik Brodowski
2157fe2f639SDominik Brodowski# Let all .o files depend on its .c file and all headers
2167fe2f639SDominik Brodowski# Might be worth to put this into utils/Makefile at some point of time
2177fe2f639SDominik Brodowski$(UTIL_OBJS): $(UTIL_HEADERS)
2187fe2f639SDominik Brodowski
21968bb2c3aSFranck Bui-Huu$(OUTPUT)%.o: %.c
2207443af9cSDominik Brodowski	$(ECHO) "  CC      " $@
221af594f0cSDominik Brodowski	$(QUIET) $(CC) $(CFLAGS) -I./lib -I ./utils -o $@ -c $*.c
2227fe2f639SDominik Brodowski
223*fffadbddSThomas Renninger$(OUTPUT)cpupower: $(UTIL_OBJS) $(OUTPUT)libcpupower.so.$(LIB_VER)
2247443af9cSDominik Brodowski	$(ECHO) "  CC      " $@
225e51207f0SThomas Renningerifeq ($(strip $(STATIC)),true)
226e51207f0SThomas Renninger	$(QUIET) $(CC) $(CFLAGS) $(LDFLAGS) $(UTIL_OBJS) -lrt -lpci -L$(OUTPUT) -o $@
227e51207f0SThomas Renningerelse
228b8ea351bSJosh Boyer	$(QUIET) $(CC) $(CFLAGS) $(LDFLAGS) $(UTIL_OBJS) -lcpupower -lrt -lpci -L$(OUTPUT) -o $@
229e51207f0SThomas Renningerendif
2307443af9cSDominik Brodowski	$(QUIET) $(STRIPCMD) $@
2317fe2f639SDominik Brodowski
23247d7650bSSiddharth Menonifeq (, $(shell which xgettext))
23347d7650bSSiddharth Menon$(warning "Install xgettext to extract translatable strings.")
23447d7650bSSiddharth Menonelse
23568bb2c3aSFranck Bui-Huu$(OUTPUT)po/$(PACKAGE).pot: $(UTIL_SRC)
236f5ac0641SDominik Brodowski	$(ECHO) "  GETTEXT " $@
237f5ac0641SDominik Brodowski	$(QUIET) xgettext --default-domain=$(PACKAGE) --add-comments \
23838271504SFranck Bui-Huu		--keyword=_ --keyword=N_ $(UTIL_SRC) -p $(@D) -o $(@F)
23947d7650bSSiddharth Menonendif
2407fe2f639SDominik Brodowski
24147d7650bSSiddharth Menonifeq (, $(shell which msgfmt))
24247d7650bSSiddharth Menon$(warning "Install msgfmt to generate binary message catalogs.")
24347d7650bSSiddharth Menonelse
24468bb2c3aSFranck Bui-Huu$(OUTPUT)po/%.gmo: po/%.po
245f5ac0641SDominik Brodowski	$(ECHO) "  MSGFMT  " $@
246f5ac0641SDominik Brodowski	$(QUIET) msgfmt -o $@ po/$*.po
24747d7650bSSiddharth Menonendif
248f5ac0641SDominik Brodowski
249f5ac0641SDominik Brodowskicreate-gmo: ${GMO_FILES}
250f5ac0641SDominik Brodowski
25147d7650bSSiddharth Menonifeq (, $(shell which msgmerge))
25247d7650bSSiddharth Menon$(warning "Install msgmerge to merge translations.")
25347d7650bSSiddharth Menonelse
25468bb2c3aSFranck Bui-Huuupdate-po: $(OUTPUT)po/$(PACKAGE).pot
255f5ac0641SDominik Brodowski	$(ECHO) "  MSGMRG  " $@
256f5ac0641SDominik Brodowski	$(QUIET) @for HLANG in $(LANGUAGES); do \
257f5ac0641SDominik Brodowski		echo -n "Updating $$HLANG "; \
25868bb2c3aSFranck Bui-Huu		if msgmerge po/$$HLANG.po $< -o \
25968bb2c3aSFranck Bui-Huu		   $(OUTPUT)po/$$HLANG.new.po; then \
26068bb2c3aSFranck Bui-Huu			mv -f $(OUTPUT)po/$$HLANG.new.po $(OUTPUT)po/$$HLANG.po; \
2617fe2f639SDominik Brodowski		else \
2627fe2f639SDominik Brodowski			echo "msgmerge for $$HLANG failed!"; \
26368bb2c3aSFranck Bui-Huu			rm -f $(OUTPUT)po/$$HLANG.new.po; \
2647fe2f639SDominik Brodowski		fi; \
2657fe2f639SDominik Brodowski	done;
26647d7650bSSiddharth Menonendif
2677fe2f639SDominik Brodowski
268*fffadbddSThomas Renningercompile-bench: $(OUTPUT)libcpupower.so.$(LIB_VER)
26968bb2c3aSFranck Bui-Huu	@V=$(V) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT)
27068bb2c3aSFranck Bui-Huu
27168bb2c3aSFranck Bui-Huu# we compile into subdirectories. if the target directory is not the
27268bb2c3aSFranck Bui-Huu# source directory, they might not exists. So we depend the various
27368bb2c3aSFranck Bui-Huu# files onto their directories.
27468bb2c3aSFranck Bui-HuuDIRECTORY_DEPS = $(LIB_OBJS) $(UTIL_OBJS) $(GMO_FILES)
27568bb2c3aSFranck Bui-Huu$(DIRECTORY_DEPS): | $(sort $(dir $(DIRECTORY_DEPS)))
27668bb2c3aSFranck Bui-Huu
27768bb2c3aSFranck Bui-Huu# In the second step, we make a rule to actually create these directories
27868bb2c3aSFranck Bui-Huu$(sort $(dir $(DIRECTORY_DEPS))):
27968bb2c3aSFranck Bui-Huu	$(ECHO) "  MKDIR      " $@
28068bb2c3aSFranck Bui-Huu	$(QUIET) $(MKDIR) -p $@ 2>/dev/null
2817fe2f639SDominik Brodowski
2827fe2f639SDominik Brodowskiclean:
28368bb2c3aSFranck Bui-Huu	-find $(OUTPUT) \( -not -type d \) -and \( -name '*~' -o -name '*.[oas]' \) -type f -print \
2847fe2f639SDominik Brodowski	 | xargs rm -f
28568bb2c3aSFranck Bui-Huu	-rm -f $(OUTPUT)cpupower
28668bb2c3aSFranck Bui-Huu	-rm -f $(OUTPUT)libcpupower.so*
2878c00bdfbSPalmer Cox	-rm -rf $(OUTPUT)po/*.gmo
2888c00bdfbSPalmer Cox	-rm -rf $(OUTPUT)po/*.pot
28968bb2c3aSFranck Bui-Huu	$(MAKE) -C bench O=$(OUTPUT) clean
2907fe2f639SDominik Brodowski
2917fe2f639SDominik Brodowski
292fb7791e2SIvan Babrouinstall-lib: libcpupower
2937fe2f639SDominik Brodowski	$(INSTALL) -d $(DESTDIR)${libdir}
29468bb2c3aSFranck Bui-Huu	$(CP) $(OUTPUT)libcpupower.so* $(DESTDIR)${libdir}/
2957fe2f639SDominik Brodowski	$(INSTALL) -d $(DESTDIR)${includedir}
2967fe2f639SDominik Brodowski	$(INSTALL_DATA) lib/cpufreq.h $(DESTDIR)${includedir}/cpufreq.h
297ac5a181dSThomas Renninger	$(INSTALL_DATA) lib/cpuidle.h $(DESTDIR)${includedir}/cpuidle.h
298c2294c14SThomas Renninger	$(INSTALL_DATA) lib/powercap.h $(DESTDIR)${includedir}/powercap.h
2997fe2f639SDominik Brodowski
300fb7791e2SIvan Babrouinstall-tools: $(OUTPUT)cpupower
3017fe2f639SDominik Brodowski	$(INSTALL) -d $(DESTDIR)${bindir}
30268bb2c3aSFranck Bui-Huu	$(INSTALL_PROGRAM) $(OUTPUT)cpupower $(DESTDIR)${bindir}
303901d32bcSAbhishek Goel	$(INSTALL) -d $(DESTDIR)${bash_completion_dir}
304901d32bcSAbhishek Goel	$(INSTALL_SCRIPT) cpupower-completion.sh '$(DESTDIR)${bash_completion_dir}/cpupower'
3057fe2f639SDominik Brodowski
3067fe2f639SDominik Brodowskiinstall-man:
3077fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower.1 $(DESTDIR)${mandir}/man1/cpupower.1
3087fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-frequency-set.1 $(DESTDIR)${mandir}/man1/cpupower-frequency-set.1
3097fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-frequency-info.1 $(DESTDIR)${mandir}/man1/cpupower-frequency-info.1
31084baab91SThomas Renninger	$(INSTALL_DATA) -D man/cpupower-idle-set.1 $(DESTDIR)${mandir}/man1/cpupower-idle-set.1
31184baab91SThomas Renninger	$(INSTALL_DATA) -D man/cpupower-idle-info.1 $(DESTDIR)${mandir}/man1/cpupower-idle-info.1
3127fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-set.1 $(DESTDIR)${mandir}/man1/cpupower-set.1
3137fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-info.1 $(DESTDIR)${mandir}/man1/cpupower-info.1
3147fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-monitor.1 $(DESTDIR)${mandir}/man1/cpupower-monitor.1
315c2294c14SThomas Renninger	$(INSTALL_DATA) -D man/cpupower-powercap-info.1 $(DESTDIR)${mandir}/man1/cpupower-powercap-info.1
3167fe2f639SDominik Brodowski
317fb7791e2SIvan Babrouinstall-gmo: create-gmo
3187fe2f639SDominik Brodowski	$(INSTALL) -d $(DESTDIR)${localedir}
3197fe2f639SDominik Brodowski	for HLANG in $(LANGUAGES); do \
32068bb2c3aSFranck Bui-Huu		echo '$(INSTALL_DATA) -D $(OUTPUT)po/$$HLANG.gmo $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo'; \
32168bb2c3aSFranck Bui-Huu		$(INSTALL_DATA) -D $(OUTPUT)po/$$HLANG.gmo $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo; \
3227fe2f639SDominik Brodowski	done;
3237fe2f639SDominik Brodowski
324fb7791e2SIvan Babrouinstall-bench: compile-bench
3257fe2f639SDominik Brodowski	@#DESTDIR must be set from outside to survive
32668bb2c3aSFranck Bui-Huu	@sbindir=$(sbindir) bindir=$(bindir) docdir=$(docdir) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT) install
3277fe2f639SDominik Brodowski
328e51207f0SThomas Renningerifeq ($(strip $(STATIC)),true)
329e51207f0SThomas Renningerinstall: all install-tools install-man $(INSTALL_NLS) $(INSTALL_BENCH)
330e51207f0SThomas Renningerelse
3317fe2f639SDominik Brodowskiinstall: all install-lib install-tools install-man $(INSTALL_NLS) $(INSTALL_BENCH)
332e51207f0SThomas Renningerendif
3337fe2f639SDominik Brodowski
3347fe2f639SDominik Brodowskiuninstall:
3354c22337fSThomas Renninger	- rm -f $(DESTDIR)${libdir}/libcpupower.*
3367fe2f639SDominik Brodowski	- rm -f $(DESTDIR)${includedir}/cpufreq.h
337ac5a181dSThomas Renninger	- rm -f $(DESTDIR)${includedir}/cpuidle.h
3387fe2f639SDominik Brodowski	- rm -f $(DESTDIR)${bindir}/utils/cpupower
339706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower.1
340706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-frequency-set.1
341706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-frequency-info.1
342706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-set.1
343706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-info.1
344706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-monitor.1
345c2294c14SThomas Renninger	- rm -f $(DESTDIR)${mandir}/man1/cpupower-powercap-info.1
3467fe2f639SDominik Brodowski	- for HLANG in $(LANGUAGES); do \
347ee3db6fcSThomas Renninger		rm -f $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo; \
3487fe2f639SDominik Brodowski	  done;
3497fe2f639SDominik Brodowski
350705c80dfSRoman Storozhenkohelp:
351705c80dfSRoman Storozhenko	@echo  'Building targets:'
352705c80dfSRoman Storozhenko	@echo  '  all		  - Default target. Could be omitted. Put build artifacts'
353705c80dfSRoman Storozhenko	@echo  '                    to "O" cmdline option dir (default: current dir)'
354705c80dfSRoman Storozhenko	@echo  '  install	  - Install previously built project files from the output'
355705c80dfSRoman Storozhenko	@echo  '                    dir defined by "O" cmdline option (default: current dir)'
356705c80dfSRoman Storozhenko	@echo  '                    to the install dir  defined by "DESTDIR" cmdline or'
357705c80dfSRoman Storozhenko	@echo  '                    Makefile config block option (default: "")'
358705c80dfSRoman Storozhenko	@echo  '  install-lib	  - Install previously built library binary from the output'
359705c80dfSRoman Storozhenko	@echo  '                    dir defined by "O" cmdline option (default: current dir)'
360705c80dfSRoman Storozhenko	@echo  '                    and library headers from "lib/" for userspace to the install'
361705c80dfSRoman Storozhenko	@echo  '                    dir  defined by "DESTDIR" cmdline (default: "")'
362705c80dfSRoman Storozhenko	@echo  '  install-tools	  - Install previously built "cpupower" util from the output'
363705c80dfSRoman Storozhenko	@echo  '                    dir defined by "O" cmdline option (default: current dir) and'
364705c80dfSRoman Storozhenko	@echo  '                    "cpupower-completion.sh" script from the src dir to the'
365705c80dfSRoman Storozhenko	@echo  '                    install dir  defined by "DESTDIR" cmdline or Makefile'
366705c80dfSRoman Storozhenko	@echo  '                    config block option (default: "")'
367705c80dfSRoman Storozhenko	@echo  '  install-man	  - Install man pages from the "man" src subdir to the'
368705c80dfSRoman Storozhenko	@echo  '                    install dir  defined by "DESTDIR" cmdline or Makefile'
369705c80dfSRoman Storozhenko	@echo  '                    config block option (default: "")'
370705c80dfSRoman Storozhenko	@echo  '  install-gmo	  - Install previously built language files from the output'
371705c80dfSRoman Storozhenko	@echo  '                    dir defined by "O" cmdline option (default: current dir)'
372705c80dfSRoman Storozhenko	@echo  '                    to the install dir defined by "DESTDIR" cmdline or Makefile'
373705c80dfSRoman Storozhenko	@echo  '                    config block option (default: "")'
374705c80dfSRoman Storozhenko	@echo  '  install-bench	  - Install previously built "cpufreq-bench" util files from the'
375705c80dfSRoman Storozhenko	@echo  '                    output dir defined by "O" cmdline option (default: current dir)'
376705c80dfSRoman Storozhenko	@echo  '                    to the install dir  defined by "DESTDIR" cmdline or Makefile'
377705c80dfSRoman Storozhenko	@echo  '                    config block option (default: "")'
378705c80dfSRoman Storozhenko	@echo  ''
379705c80dfSRoman Storozhenko	@echo  'Cleaning targets:'
380705c80dfSRoman Storozhenko	@echo  '  clean		  - Clean build artifacts from the dir defined by "O" cmdline'
381705c80dfSRoman Storozhenko	@echo  '                    option (default: current dir)'
382705c80dfSRoman Storozhenko	@echo  '  uninstall	  - Remove previously installed files from the dir defined by "DESTDIR"'
383705c80dfSRoman Storozhenko	@echo  '                    cmdline or Makefile config block option (default: "")'
384705c80dfSRoman Storozhenko
385705c80dfSRoman Storozhenko.PHONY: all utils libcpupower update-po create-gmo install-lib install-tools install-man install-gmo install uninstall clean help
386