xref: /linux/tools/power/cpupower/Makefile (revision 60675d4ca1ef0857e44eba5849b74a3a998d0c0f)
1873e65bcSThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2ee3db6fcSThomas Renninger# Makefile for cpupower
37fe2f639SDominik Brodowski#
47fe2f639SDominik Brodowski# Copyright (C) 2005,2006 Dominik Brodowski <linux@dominikbrodowski.net>
57fe2f639SDominik Brodowski#
67fe2f639SDominik Brodowski# Based largely on the Makefile for udev by:
77fe2f639SDominik Brodowski#
87fe2f639SDominik Brodowski# Copyright (C) 2003,2004 Greg Kroah-Hartman <greg@kroah.com>
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)
55ac5a181dSThomas RenningerLIB_MAJ=			0.0.1
56d7de5d8eSBen HutchingsLIB_MIN=			1
577fe2f639SDominik Brodowski
58ee3db6fcSThomas RenningerPACKAGE =			cpupower
59dec102aaSViresh KumarPACKAGE_BUGREPORT =		linux-pm@vger.kernel.org
60b78abc21SKieran MoyLANGUAGES = 			de fr it cs pt ka zh_CN
617fe2f639SDominik Brodowski
627fe2f639SDominik Brodowski
637fe2f639SDominik Brodowski# Directory definitions. These are default and most probably
647fe2f639SDominik Brodowski# do not need to be changed. Please note that DESTDIR is
657fe2f639SDominik Brodowski# added in front of any of them
667fe2f639SDominik Brodowski
677fe2f639SDominik Brodowskibindir ?=	/usr/bin
687fe2f639SDominik Brodowskisbindir ?=	/usr/sbin
697fe2f639SDominik Brodowskimandir ?=	/usr/man
703a5bb506SRoman Storozhenkolibdir ?=	/usr/lib
717fe2f639SDominik Brodowskiincludedir ?=	/usr/include
727fe2f639SDominik Brodowskilocaledir ?=	/usr/share/locale
73ee3db6fcSThomas Renningerdocdir ?=       /usr/share/doc/packages/cpupower
747fe2f639SDominik Brodowskiconfdir ?=      /etc/
75901d32bcSAbhishek Goelbash_completion_dir ?= /usr/share/bash-completion/completions
767fe2f639SDominik Brodowski
777fe2f639SDominik Brodowski# Toolchain: what tools do we use, and what options do they need:
787fe2f639SDominik Brodowski
797fe2f639SDominik BrodowskiCP = cp -fpR
807fe2f639SDominik BrodowskiINSTALL = /usr/bin/install -c
817fe2f639SDominik BrodowskiINSTALL_PROGRAM = ${INSTALL}
827fe2f639SDominik BrodowskiINSTALL_DATA  = ${INSTALL} -m 644
83901d32bcSAbhishek Goel#bash completion scripts get sourced and so they should be rw only.
84901d32bcSAbhishek GoelINSTALL_SCRIPT = ${INSTALL} -m 644
857fe2f639SDominik Brodowski
867fe2f639SDominik Brodowski# If you are running a cross compiler, you may want to set this
877fe2f639SDominik Brodowski# to something more interesting, like "arm-linux-".  If you want
887fe2f639SDominik Brodowski# to compile vs uClibc, that can be done here as well.
89f79473edSPeng FanCROSS ?= #/usr/i386-linux-uclibc/usr/bin/i386-uclibc-
90f79473edSPeng FanCC ?= $(CROSS)gcc
91f79473edSPeng FanLD ?= $(CROSS)gcc
92f79473edSPeng FanAR ?= $(CROSS)ar
93f79473edSPeng FanSTRIP ?= $(CROSS)strip
94f79473edSPeng FanRANLIB ?= $(CROSS)ranlib
957fe2f639SDominik BrodowskiHOSTCC = gcc
9668bb2c3aSFranck Bui-HuuMKDIR = mkdir
977fe2f639SDominik Brodowski
987fe2f639SDominik Brodowski# Now we set up the build system
997fe2f639SDominik Brodowski#
1007fe2f639SDominik Brodowski
10168bb2c3aSFranck Bui-HuuGMO_FILES = ${shell for HLANG in ${LANGUAGES}; do echo $(OUTPUT)po/$$HLANG.gmo; done;}
102f5ac0641SDominik Brodowski
1037fe2f639SDominik Brodowskiexport CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS
1047fe2f639SDominik Brodowski
1057fe2f639SDominik Brodowski# check if compiler option is supported
1067fe2f639SDominik Brodowskicc-supports = ${shell if $(CC) ${1} -S -o /dev/null -x c /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;}
1077fe2f639SDominik Brodowski
1087fe2f639SDominik Brodowski# use '-Os' optimization if available, else use -O2
1097fe2f639SDominik BrodowskiOPTIMIZATION := $(call cc-supports,-Os,-O2)
1107fe2f639SDominik Brodowski
1117fe2f639SDominik BrodowskiWARNINGS := -Wall -Wchar-subscripts -Wpointer-arith -Wsign-compare
1127fe2f639SDominik BrodowskiWARNINGS += $(call cc-supports,-Wno-pointer-sign)
1137fe2f639SDominik BrodowskiWARNINGS += $(call cc-supports,-Wdeclaration-after-statement)
1147fe2f639SDominik BrodowskiWARNINGS += -Wshadow
1157fe2f639SDominik Brodowski
116dbc4ca33SJiri Olsaoverride CFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \
1177fe2f639SDominik Brodowski		-DPACKAGE_BUGREPORT=\"$(PACKAGE_BUGREPORT)\" -D_GNU_SOURCE
1187fe2f639SDominik Brodowski
119ac5a181dSThomas RenningerUTIL_OBJS =  utils/helpers/amd.o utils/helpers/msr.o \
1207fe2f639SDominik Brodowski	utils/helpers/sysfs.o utils/helpers/misc.o utils/helpers/cpuid.o \
1217fe2f639SDominik Brodowski	utils/helpers/pci.o utils/helpers/bitmask.o \
1227fe2f639SDominik Brodowski	utils/idle_monitor/nhm_idle.o utils/idle_monitor/snb_idle.o \
1237ee767b6SThomas Renninger	utils/idle_monitor/hsw_ext_idle.o \
1247fe2f639SDominik Brodowski	utils/idle_monitor/amd_fam14h_idle.o utils/idle_monitor/cpuidle_sysfs.o \
1257fe2f639SDominik Brodowski	utils/idle_monitor/mperf_monitor.o utils/idle_monitor/cpupower-monitor.o \
1268c37df3dSThomas Renninger	utils/idle_monitor/rapl_monitor.o \
1277fe2f639SDominik Brodowski	utils/cpupower.o utils/cpufreq-info.o utils/cpufreq-set.o \
128c4f3610eSThomas Renninger	utils/cpupower-set.o utils/cpupower-info.o utils/cpuidle-info.o \
129c2294c14SThomas Renninger	utils/cpuidle-set.o utils/powercap-info.o
1307fe2f639SDominik Brodowski
13168bb2c3aSFranck Bui-HuuUTIL_SRC := $(UTIL_OBJS:.o=.c)
13268bb2c3aSFranck Bui-Huu
13368bb2c3aSFranck Bui-HuuUTIL_OBJS := $(addprefix $(OUTPUT),$(UTIL_OBJS))
13468bb2c3aSFranck Bui-Huu
1357fe2f639SDominik BrodowskiUTIL_HEADERS = utils/helpers/helpers.h utils/idle_monitor/cpupower-monitor.h \
1367fe2f639SDominik Brodowski	utils/helpers/bitmask.h \
1377fe2f639SDominik Brodowski	utils/idle_monitor/idle_monitors.h utils/idle_monitor/idle_monitors.def
1387fe2f639SDominik Brodowski
139c2294c14SThomas RenningerLIB_HEADERS = 	lib/cpufreq.h lib/cpupower.h lib/cpuidle.h lib/acpi_cppc.h \
140c2294c14SThomas Renninger	lib/powercap.h
141c2294c14SThomas RenningerLIB_SRC = 	lib/cpufreq.c lib/cpupower.c lib/cpuidle.c lib/acpi_cppc.c \
142c2294c14SThomas Renninger	lib/powercap.c
143c2294c14SThomas RenningerLIB_OBJS = 	lib/cpufreq.o lib/cpupower.o lib/cpuidle.o lib/acpi_cppc.o \
144c2294c14SThomas Renninger	lib/powercap.o
14568bb2c3aSFranck Bui-HuuLIB_OBJS :=	$(addprefix $(OUTPUT),$(LIB_OBJS))
1467fe2f639SDominik Brodowski
147dbc4ca33SJiri Olsaoverride CFLAGS +=	-pipe
1487fe2f639SDominik Brodowski
1497fe2f639SDominik Brodowskiifeq ($(strip $(NLS)),true)
1507fe2f639SDominik Brodowski	INSTALL_NLS += install-gmo
151f5ac0641SDominik Brodowski	COMPILE_NLS += create-gmo
152dbc4ca33SJiri Olsa	override CFLAGS += -DNLS
1537fe2f639SDominik Brodowskiendif
1547fe2f639SDominik Brodowski
15563b37de1SDave Jonesifeq ($(strip $(CPUFREQ_BENCH)),true)
1567fe2f639SDominik Brodowski	INSTALL_BENCH += install-bench
1577fe2f639SDominik Brodowski	COMPILE_BENCH += compile-bench
1587fe2f639SDominik Brodowskiendif
1597fe2f639SDominik Brodowski
160e51207f0SThomas Renningerifeq ($(strip $(STATIC)),true)
161e51207f0SThomas Renninger        UTIL_OBJS += $(LIB_OBJS)
162e51207f0SThomas Renninger        UTIL_HEADERS += $(LIB_HEADERS)
163e51207f0SThomas Renninger        UTIL_SRC += $(LIB_SRC)
164e51207f0SThomas Renningerendif
165e51207f0SThomas Renninger
166dbc4ca33SJiri Olsaoverride CFLAGS += $(WARNINGS)
1677fe2f639SDominik Brodowski
1687fe2f639SDominik Brodowskiifeq ($(strip $(V)),false)
1697443af9cSDominik Brodowski	QUIET=@
1707443af9cSDominik Brodowski	ECHO=@echo
1717fe2f639SDominik Brodowskielse
1727fe2f639SDominik Brodowski	QUIET=
1737443af9cSDominik Brodowski	ECHO=@\#
1747fe2f639SDominik Brodowskiendif
1757443af9cSDominik Brodowskiexport QUIET ECHO
1767fe2f639SDominik Brodowski
1777fe2f639SDominik Brodowski# if DEBUG is enabled, then we do not strip or optimize
1787fe2f639SDominik Brodowskiifeq ($(strip $(DEBUG)),true)
179dbc4ca33SJiri Olsa	override CFLAGS += -O1 -g -DDEBUG
1807fe2f639SDominik Brodowski	STRIPCMD = /bin/true -Since_we_are_debugging
1817fe2f639SDominik Brodowskielse
182dbc4ca33SJiri Olsa	override CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer
1837fe2f639SDominik Brodowski	STRIPCMD = $(STRIP) -s --remove-section=.note --remove-section=.comment
1847fe2f639SDominik Brodowskiendif
1857fe2f639SDominik Brodowski
1867fe2f639SDominik Brodowski
1877fe2f639SDominik Brodowski# the actual make rules
1887fe2f639SDominik Brodowski
18968bb2c3aSFranck Bui-Huuall: libcpupower $(OUTPUT)cpupower $(COMPILE_NLS) $(COMPILE_BENCH)
1907fe2f639SDominik Brodowski
19168bb2c3aSFranck Bui-Huu$(OUTPUT)lib/%.o: $(LIB_SRC) $(LIB_HEADERS)
1927443af9cSDominik Brodowski	$(ECHO) "  CC      " $@
193af594f0cSDominik Brodowski	$(QUIET) $(CC) $(CFLAGS) -fPIC -o $@ -c lib/$*.c
1947fe2f639SDominik Brodowski
19568bb2c3aSFranck Bui-Huu$(OUTPUT)libcpupower.so.$(LIB_MAJ): $(LIB_OBJS)
1967443af9cSDominik Brodowski	$(ECHO) "  LD      " $@
197af594f0cSDominik Brodowski	$(QUIET) $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ \
1984c22337fSThomas Renninger		-Wl,-soname,libcpupower.so.$(LIB_MIN) $(LIB_OBJS)
19968bb2c3aSFranck Bui-Huu	@ln -sf $(@F) $(OUTPUT)libcpupower.so
20068bb2c3aSFranck Bui-Huu	@ln -sf $(@F) $(OUTPUT)libcpupower.so.$(LIB_MIN)
2017fe2f639SDominik Brodowski
20268bb2c3aSFranck Bui-Huulibcpupower: $(OUTPUT)libcpupower.so.$(LIB_MAJ)
2037fe2f639SDominik Brodowski
2047fe2f639SDominik Brodowski# Let all .o files depend on its .c file and all headers
2057fe2f639SDominik Brodowski# Might be worth to put this into utils/Makefile at some point of time
2067fe2f639SDominik Brodowski$(UTIL_OBJS): $(UTIL_HEADERS)
2077fe2f639SDominik Brodowski
20868bb2c3aSFranck Bui-Huu$(OUTPUT)%.o: %.c
2097443af9cSDominik Brodowski	$(ECHO) "  CC      " $@
210af594f0cSDominik Brodowski	$(QUIET) $(CC) $(CFLAGS) -I./lib -I ./utils -o $@ -c $*.c
2117fe2f639SDominik Brodowski
21268bb2c3aSFranck Bui-Huu$(OUTPUT)cpupower: $(UTIL_OBJS) $(OUTPUT)libcpupower.so.$(LIB_MAJ)
2137443af9cSDominik Brodowski	$(ECHO) "  CC      " $@
214e51207f0SThomas Renningerifeq ($(strip $(STATIC)),true)
215e51207f0SThomas Renninger	$(QUIET) $(CC) $(CFLAGS) $(LDFLAGS) $(UTIL_OBJS) -lrt -lpci -L$(OUTPUT) -o $@
216e51207f0SThomas Renningerelse
217b8ea351bSJosh Boyer	$(QUIET) $(CC) $(CFLAGS) $(LDFLAGS) $(UTIL_OBJS) -lcpupower -lrt -lpci -L$(OUTPUT) -o $@
218e51207f0SThomas Renningerendif
2197443af9cSDominik Brodowski	$(QUIET) $(STRIPCMD) $@
2207fe2f639SDominik Brodowski
221*47d7650bSSiddharth Menonifeq (, $(shell which xgettext))
222*47d7650bSSiddharth Menon$(warning "Install xgettext to extract translatable strings.")
223*47d7650bSSiddharth Menonelse
22468bb2c3aSFranck Bui-Huu$(OUTPUT)po/$(PACKAGE).pot: $(UTIL_SRC)
225f5ac0641SDominik Brodowski	$(ECHO) "  GETTEXT " $@
226f5ac0641SDominik Brodowski	$(QUIET) xgettext --default-domain=$(PACKAGE) --add-comments \
22738271504SFranck Bui-Huu		--keyword=_ --keyword=N_ $(UTIL_SRC) -p $(@D) -o $(@F)
228*47d7650bSSiddharth Menonendif
2297fe2f639SDominik Brodowski
230*47d7650bSSiddharth Menonifeq (, $(shell which msgfmt))
231*47d7650bSSiddharth Menon$(warning "Install msgfmt to generate binary message catalogs.")
232*47d7650bSSiddharth Menonelse
23368bb2c3aSFranck Bui-Huu$(OUTPUT)po/%.gmo: po/%.po
234f5ac0641SDominik Brodowski	$(ECHO) "  MSGFMT  " $@
235f5ac0641SDominik Brodowski	$(QUIET) msgfmt -o $@ po/$*.po
236*47d7650bSSiddharth Menonendif
237f5ac0641SDominik Brodowski
238f5ac0641SDominik Brodowskicreate-gmo: ${GMO_FILES}
239f5ac0641SDominik Brodowski
240*47d7650bSSiddharth Menonifeq (, $(shell which msgmerge))
241*47d7650bSSiddharth Menon$(warning "Install msgmerge to merge translations.")
242*47d7650bSSiddharth Menonelse
24368bb2c3aSFranck Bui-Huuupdate-po: $(OUTPUT)po/$(PACKAGE).pot
244f5ac0641SDominik Brodowski	$(ECHO) "  MSGMRG  " $@
245f5ac0641SDominik Brodowski	$(QUIET) @for HLANG in $(LANGUAGES); do \
246f5ac0641SDominik Brodowski		echo -n "Updating $$HLANG "; \
24768bb2c3aSFranck Bui-Huu		if msgmerge po/$$HLANG.po $< -o \
24868bb2c3aSFranck Bui-Huu		   $(OUTPUT)po/$$HLANG.new.po; then \
24968bb2c3aSFranck Bui-Huu			mv -f $(OUTPUT)po/$$HLANG.new.po $(OUTPUT)po/$$HLANG.po; \
2507fe2f639SDominik Brodowski		else \
2517fe2f639SDominik Brodowski			echo "msgmerge for $$HLANG failed!"; \
25268bb2c3aSFranck Bui-Huu			rm -f $(OUTPUT)po/$$HLANG.new.po; \
2537fe2f639SDominik Brodowski		fi; \
2547fe2f639SDominik Brodowski	done;
255*47d7650bSSiddharth Menonendif
2567fe2f639SDominik Brodowski
25768bb2c3aSFranck Bui-Huucompile-bench: $(OUTPUT)libcpupower.so.$(LIB_MAJ)
25868bb2c3aSFranck Bui-Huu	@V=$(V) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT)
25968bb2c3aSFranck Bui-Huu
26068bb2c3aSFranck Bui-Huu# we compile into subdirectories. if the target directory is not the
26168bb2c3aSFranck Bui-Huu# source directory, they might not exists. So we depend the various
26268bb2c3aSFranck Bui-Huu# files onto their directories.
26368bb2c3aSFranck Bui-HuuDIRECTORY_DEPS = $(LIB_OBJS) $(UTIL_OBJS) $(GMO_FILES)
26468bb2c3aSFranck Bui-Huu$(DIRECTORY_DEPS): | $(sort $(dir $(DIRECTORY_DEPS)))
26568bb2c3aSFranck Bui-Huu
26668bb2c3aSFranck Bui-Huu# In the second step, we make a rule to actually create these directories
26768bb2c3aSFranck Bui-Huu$(sort $(dir $(DIRECTORY_DEPS))):
26868bb2c3aSFranck Bui-Huu	$(ECHO) "  MKDIR      " $@
26968bb2c3aSFranck Bui-Huu	$(QUIET) $(MKDIR) -p $@ 2>/dev/null
2707fe2f639SDominik Brodowski
2717fe2f639SDominik Brodowskiclean:
27268bb2c3aSFranck Bui-Huu	-find $(OUTPUT) \( -not -type d \) -and \( -name '*~' -o -name '*.[oas]' \) -type f -print \
2737fe2f639SDominik Brodowski	 | xargs rm -f
27468bb2c3aSFranck Bui-Huu	-rm -f $(OUTPUT)cpupower
27568bb2c3aSFranck Bui-Huu	-rm -f $(OUTPUT)libcpupower.so*
2768c00bdfbSPalmer Cox	-rm -rf $(OUTPUT)po/*.gmo
2778c00bdfbSPalmer Cox	-rm -rf $(OUTPUT)po/*.pot
27868bb2c3aSFranck Bui-Huu	$(MAKE) -C bench O=$(OUTPUT) clean
2797fe2f639SDominik Brodowski
2807fe2f639SDominik Brodowski
281fb7791e2SIvan Babrouinstall-lib: libcpupower
2827fe2f639SDominik Brodowski	$(INSTALL) -d $(DESTDIR)${libdir}
28368bb2c3aSFranck Bui-Huu	$(CP) $(OUTPUT)libcpupower.so* $(DESTDIR)${libdir}/
2847fe2f639SDominik Brodowski	$(INSTALL) -d $(DESTDIR)${includedir}
2857fe2f639SDominik Brodowski	$(INSTALL_DATA) lib/cpufreq.h $(DESTDIR)${includedir}/cpufreq.h
286ac5a181dSThomas Renninger	$(INSTALL_DATA) lib/cpuidle.h $(DESTDIR)${includedir}/cpuidle.h
287c2294c14SThomas Renninger	$(INSTALL_DATA) lib/powercap.h $(DESTDIR)${includedir}/powercap.h
2887fe2f639SDominik Brodowski
289fb7791e2SIvan Babrouinstall-tools: $(OUTPUT)cpupower
2907fe2f639SDominik Brodowski	$(INSTALL) -d $(DESTDIR)${bindir}
29168bb2c3aSFranck Bui-Huu	$(INSTALL_PROGRAM) $(OUTPUT)cpupower $(DESTDIR)${bindir}
292901d32bcSAbhishek Goel	$(INSTALL) -d $(DESTDIR)${bash_completion_dir}
293901d32bcSAbhishek Goel	$(INSTALL_SCRIPT) cpupower-completion.sh '$(DESTDIR)${bash_completion_dir}/cpupower'
2947fe2f639SDominik Brodowski
2957fe2f639SDominik Brodowskiinstall-man:
2967fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower.1 $(DESTDIR)${mandir}/man1/cpupower.1
2977fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-frequency-set.1 $(DESTDIR)${mandir}/man1/cpupower-frequency-set.1
2987fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-frequency-info.1 $(DESTDIR)${mandir}/man1/cpupower-frequency-info.1
29984baab91SThomas Renninger	$(INSTALL_DATA) -D man/cpupower-idle-set.1 $(DESTDIR)${mandir}/man1/cpupower-idle-set.1
30084baab91SThomas Renninger	$(INSTALL_DATA) -D man/cpupower-idle-info.1 $(DESTDIR)${mandir}/man1/cpupower-idle-info.1
3017fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-set.1 $(DESTDIR)${mandir}/man1/cpupower-set.1
3027fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-info.1 $(DESTDIR)${mandir}/man1/cpupower-info.1
3037fe2f639SDominik Brodowski	$(INSTALL_DATA) -D man/cpupower-monitor.1 $(DESTDIR)${mandir}/man1/cpupower-monitor.1
304c2294c14SThomas Renninger	$(INSTALL_DATA) -D man/cpupower-powercap-info.1 $(DESTDIR)${mandir}/man1/cpupower-powercap-info.1
3057fe2f639SDominik Brodowski
306fb7791e2SIvan Babrouinstall-gmo: create-gmo
3077fe2f639SDominik Brodowski	$(INSTALL) -d $(DESTDIR)${localedir}
3087fe2f639SDominik Brodowski	for HLANG in $(LANGUAGES); do \
30968bb2c3aSFranck Bui-Huu		echo '$(INSTALL_DATA) -D $(OUTPUT)po/$$HLANG.gmo $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo'; \
31068bb2c3aSFranck Bui-Huu		$(INSTALL_DATA) -D $(OUTPUT)po/$$HLANG.gmo $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo; \
3117fe2f639SDominik Brodowski	done;
3127fe2f639SDominik Brodowski
313fb7791e2SIvan Babrouinstall-bench: compile-bench
3147fe2f639SDominik Brodowski	@#DESTDIR must be set from outside to survive
31568bb2c3aSFranck Bui-Huu	@sbindir=$(sbindir) bindir=$(bindir) docdir=$(docdir) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT) install
3167fe2f639SDominik Brodowski
317e51207f0SThomas Renningerifeq ($(strip $(STATIC)),true)
318e51207f0SThomas Renningerinstall: all install-tools install-man $(INSTALL_NLS) $(INSTALL_BENCH)
319e51207f0SThomas Renningerelse
3207fe2f639SDominik Brodowskiinstall: all install-lib install-tools install-man $(INSTALL_NLS) $(INSTALL_BENCH)
321e51207f0SThomas Renningerendif
3227fe2f639SDominik Brodowski
3237fe2f639SDominik Brodowskiuninstall:
3244c22337fSThomas Renninger	- rm -f $(DESTDIR)${libdir}/libcpupower.*
3257fe2f639SDominik Brodowski	- rm -f $(DESTDIR)${includedir}/cpufreq.h
326ac5a181dSThomas Renninger	- rm -f $(DESTDIR)${includedir}/cpuidle.h
3277fe2f639SDominik Brodowski	- rm -f $(DESTDIR)${bindir}/utils/cpupower
328706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower.1
329706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-frequency-set.1
330706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-frequency-info.1
331706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-set.1
332706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-info.1
333706f4c11SRamkumar Ramachandra	- rm -f $(DESTDIR)${mandir}/man1/cpupower-monitor.1
334c2294c14SThomas Renninger	- rm -f $(DESTDIR)${mandir}/man1/cpupower-powercap-info.1
3357fe2f639SDominik Brodowski	- for HLANG in $(LANGUAGES); do \
336ee3db6fcSThomas Renninger		rm -f $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo; \
3377fe2f639SDominik Brodowski	  done;
3387fe2f639SDominik Brodowski
339705c80dfSRoman Storozhenkohelp:
340705c80dfSRoman Storozhenko	@echo  'Building targets:'
341705c80dfSRoman Storozhenko	@echo  '  all		  - Default target. Could be omitted. Put build artifacts'
342705c80dfSRoman Storozhenko	@echo  '                    to "O" cmdline option dir (default: current dir)'
343705c80dfSRoman Storozhenko	@echo  '  install	  - Install previously built project files from the output'
344705c80dfSRoman Storozhenko	@echo  '                    dir defined by "O" cmdline option (default: current dir)'
345705c80dfSRoman Storozhenko	@echo  '                    to the install dir  defined by "DESTDIR" cmdline or'
346705c80dfSRoman Storozhenko	@echo  '                    Makefile config block option (default: "")'
347705c80dfSRoman Storozhenko	@echo  '  install-lib	  - Install previously built library binary from the output'
348705c80dfSRoman Storozhenko	@echo  '                    dir defined by "O" cmdline option (default: current dir)'
349705c80dfSRoman Storozhenko	@echo  '                    and library headers from "lib/" for userspace to the install'
350705c80dfSRoman Storozhenko	@echo  '                    dir  defined by "DESTDIR" cmdline (default: "")'
351705c80dfSRoman Storozhenko	@echo  '  install-tools	  - Install previously built "cpupower" util from the output'
352705c80dfSRoman Storozhenko	@echo  '                    dir defined by "O" cmdline option (default: current dir) and'
353705c80dfSRoman Storozhenko	@echo  '                    "cpupower-completion.sh" script from the src dir to the'
354705c80dfSRoman Storozhenko	@echo  '                    install dir  defined by "DESTDIR" cmdline or Makefile'
355705c80dfSRoman Storozhenko	@echo  '                    config block option (default: "")'
356705c80dfSRoman Storozhenko	@echo  '  install-man	  - Install man pages from the "man" src subdir to the'
357705c80dfSRoman Storozhenko	@echo  '                    install dir  defined by "DESTDIR" cmdline or Makefile'
358705c80dfSRoman Storozhenko	@echo  '                    config block option (default: "")'
359705c80dfSRoman Storozhenko	@echo  '  install-gmo	  - Install previously built language files from the output'
360705c80dfSRoman Storozhenko	@echo  '                    dir defined by "O" cmdline option (default: current dir)'
361705c80dfSRoman Storozhenko	@echo  '                    to the install dir defined by "DESTDIR" cmdline or Makefile'
362705c80dfSRoman Storozhenko	@echo  '                    config block option (default: "")'
363705c80dfSRoman Storozhenko	@echo  '  install-bench	  - Install previously built "cpufreq-bench" util files from the'
364705c80dfSRoman Storozhenko	@echo  '                    output dir defined by "O" cmdline option (default: current dir)'
365705c80dfSRoman Storozhenko	@echo  '                    to the install dir  defined by "DESTDIR" cmdline or Makefile'
366705c80dfSRoman Storozhenko	@echo  '                    config block option (default: "")'
367705c80dfSRoman Storozhenko	@echo  ''
368705c80dfSRoman Storozhenko	@echo  'Cleaning targets:'
369705c80dfSRoman Storozhenko	@echo  '  clean		  - Clean build artifacts from the dir defined by "O" cmdline'
370705c80dfSRoman Storozhenko	@echo  '                    option (default: current dir)'
371705c80dfSRoman Storozhenko	@echo  '  uninstall	  - Remove previously installed files from the dir defined by "DESTDIR"'
372705c80dfSRoman Storozhenko	@echo  '                    cmdline or Makefile config block option (default: "")'
373705c80dfSRoman Storozhenko
374705c80dfSRoman Storozhenko.PHONY: all utils libcpupower update-po create-gmo install-lib install-tools install-man install-gmo install uninstall clean help
375