Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 3dbc921

Browse files
Romeusshuahkh
authored andcommitted
cpupower: Improve cpupower build process description
Enhance cpupower build process description with the information on building and installing the utility to the user defined directories as well as with the information on the way of running the utility from the custom defined installation directory. Signed-off-by: Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
1 parent 705c80d commit 3dbc921

File tree

1 file changed

+150
-10
lines changed

1 file changed

+150
-10
lines changed

tools/power/cpupower/README

Lines changed: 150 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,156 @@ interfaces [depending on configuration, see below].
2222
compilation and installation
2323
----------------------------
2424

25-
make
26-
su
27-
make install
28-
29-
should suffice on most systems. It builds libcpupower to put in
30-
/usr/lib; cpupower, cpufreq-bench_plot.sh to put in /usr/bin; and
31-
cpufreq-bench to put in /usr/sbin. If you want to set up the paths
32-
differently and/or want to configure the package to your specific
33-
needs, you need to open "Makefile" with an editor of your choice and
34-
edit the block marked CONFIGURATION.
25+
There are 2 output directories - one for the build output and another for
26+
the installation of the build results, that is the utility, library,
27+
man pages, etc...
28+
29+
default directory
30+
-----------------
31+
32+
In the case of default directory, build and install process requires no
33+
additional parameters:
34+
35+
build
36+
-----
37+
38+
$ make
39+
40+
The output directory for the 'make' command is the current directory and
41+
its subdirs in the kernel tree:
42+
tools/power/cpupower
43+
44+
install
45+
-------
46+
47+
$ sudo make install
48+
49+
'make install' command puts targets to default system dirs:
50+
51+
-----------------------------------------------------------------------
52+
| Installing file | System dir |
53+
-----------------------------------------------------------------------
54+
| libcpupower | /usr/lib |
55+
-----------------------------------------------------------------------
56+
| cpupower | /usr/bin |
57+
-----------------------------------------------------------------------
58+
| cpufreq-bench_plot.sh | /usr/bin |
59+
-----------------------------------------------------------------------
60+
| man pages | /usr/man |
61+
-----------------------------------------------------------------------
62+
63+
To put it in other words it makes build results available system-wide,
64+
enabling any user to simply start using it without any additional steps
65+
66+
custom directory
67+
----------------
68+
69+
There are 2 make's command-line variables 'O' and 'DESTDIR' that setup
70+
appropriate dirs:
71+
'O' - build directory
72+
'DESTDIR' - installation directory. This variable could also be setup in
73+
the 'CONFIGURATION' block of the "Makefile"
74+
75+
build
76+
-----
77+
78+
$ make O=<your_custom_build_catalog>
79+
80+
Example:
81+
$ make O=/home/hedin/prj/cpupower/build
82+
83+
install
84+
-------
85+
86+
$ make O=<your_custom_build_catalog> DESTDIR=<your_custom_install_catalog>
87+
88+
Example:
89+
$ make O=/home/hedin/prj/cpupower/build DESTDIR=/home/hedin/prj/cpupower \
90+
> install
91+
92+
Notice that both variables 'O' and 'DESTDIR' have been provided. The reason
93+
is that the build results are saved in the custom output dir defined by 'O'
94+
variable. So, this dir is the source for the installation step. If only
95+
'DESTDIR' were provided then the 'install' target would assume that the
96+
build directory is the current one, build everything there and install
97+
from the current dir.
98+
99+
The files will be installed to the following dirs:
100+
101+
-----------------------------------------------------------------------
102+
| Installing file | System dir |
103+
-----------------------------------------------------------------------
104+
| libcpupower | ${DESTDIR}/usr/lib |
105+
-----------------------------------------------------------------------
106+
| cpupower | ${DESTDIR}/usr/bin |
107+
-----------------------------------------------------------------------
108+
| cpufreq-bench_plot.sh | ${DESTDIR}/usr/bin |
109+
-----------------------------------------------------------------------
110+
| man pages | ${DESTDIR}/usr/man |
111+
-----------------------------------------------------------------------
112+
113+
If you look at the table for the default 'make' output dirs you will
114+
notice that the only difference with the non-default case is the
115+
${DESTDIR} prefix. So, the structure of the output dirs remains the same
116+
regardles of the root output directory.
117+
118+
119+
clean and uninstall
120+
-------------------
121+
122+
'clean' target is intended for cleanup the build catalog from build results
123+
'uninstall' target is intended for removing installed files from the
124+
installation directory
125+
126+
default directory
127+
-----------------
128+
129+
This case is a straightforward one:
130+
$ make clean
131+
$ make uninstall
132+
133+
custom directory
134+
----------------
135+
136+
Use 'O' command line variable to remove previously built files from the
137+
build dir:
138+
$ make O=<your_custom_build_catalog> clean
139+
140+
Example:
141+
$ make O=/home/hedin/prj/cpupower/build clean
142+
143+
Use 'DESTDIR' command line variable to uninstall previously installed files
144+
from the given dir:
145+
$ make DESTDIR=<your_custom_install_catalog>
146+
147+
Example:
148+
make DESTDIR=/home/hedin/prj/cpupower uninstall
149+
150+
151+
running the tool
152+
----------------
153+
154+
default directory
155+
-----------------
156+
157+
$ sudo cpupower
158+
159+
custom directory
160+
----------------
161+
162+
When it comes to run the utility from the custom build catalog things
163+
become a little bit complicated as 'just run' approach doesn't work.
164+
Assuming that the current dir is '<your_custom_install_catalog>/usr',
165+
issuing the following command:
166+
167+
$ sudo ./bin/cpupower
168+
will produce the following error output:
169+
./bin/cpupower: error while loading shared libraries: libcpupower.so.1:
170+
cannot open shared object file: No such file or directory
171+
172+
The issue is that binary cannot find the 'libcpupower' library. So, we
173+
shall point to the lib dir:
174+
sudo LD_LIBRARY_PATH=lib64/ ./bin/cpupower
35175

36176

37177
THANKS

0 commit comments

Comments
 (0)