From: Alan Maguire <alan.maguire@oracle.com>
To: Ben Olson <matthew.olson@intel.com>, dwarves@vger.kernel.org
Cc: acme@kernel.org
Subject: Re: [PATCH dwarves v2] Respect CMAKE_INSTALL_LIBDIR
Date: Mon, 25 Nov 2024 19:19:53 +0000 [thread overview]
Message-ID: <7b845bdc-6374-4c95-bc71-353f69f785b8@oracle.com> (raw)
In-Reply-To: <Z0TGPw6P8y3c1lKO@bolson-desk>
On 25/11/2024 18:47, Ben Olson wrote:
> This patch changes the `cmake` configuration to honor `CMAKE_INSTALL_LIBDIR`
> and use either `lib` or `lib64` by default so that installations match the
> conventional placement of libraries.
> For example, it will now install `libdwarves.so` into `${PREFIX}/lib` or
> `${PREFIX}/lib64`, depending on the distribution.
>
> Signed-off-by: Brandon Kammerdiener <brandon.kammerdiener@intel.com>
> Signed-off-by: Ben Olson <matthew.olson@intel.com>
> Cc: Alan Maguire <alan.maguire@oracle.com>
Reviewed-by: Alan Maguire <alan.maguire@oracle.com>
Tested-by: Alan Maguire <alan.maguire@oracle.com>
(tested on Oracle Linux which uses lib64 for libraries; specifying cmake
with no arguments did the right thing and "make install" installed into
/usr/local/lib64 as expected; nice!)
One small nit I noticed, sorry missed this last time - the README
has another reference to -D__LIB:
" Ex. cmake -D__LIB=lib -DBUILD_SHARED_LIBS=OFF .."
I think we should probably remove that reference also, right?
> ---
>
> Changes in v2:
> - Included the proper built-in CMake module
> - Made commit message distro-agnostic
>
> CMakeLists.txt | 19 ++++++-------------
> README | 3 +--
> 2 files changed, 7 insertions(+), 15 deletions(-)
>
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index 8ca1bf2..1d0dadf 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -21,18 +21,9 @@ else()
> LINK_DIRECTORIES(${LIBBPF_LIBRARY_DIRS})
> endif()
>
> -# Try to parse this later, Helio just showed me a KDE4 example to support
> -# x86-64 builds.
> -# the following are directories where stuff will be installed to
> -set(__LIB "" CACHE STRING "Define suffix of directory name (32/64)" )
> -
> -macro(_set_fancy _var _value _comment)
> - if (NOT DEFINED ${_var})
> - set(${_var} ${_value})
> - else (NOT DEFINED ${_var})
> - set(${_var} "${${_var}}" CACHE PATH "${_comment}")
> - endif (NOT DEFINED ${_var})
> -endmacro(_set_fancy)
> +# Use the standard library installation directory
> +include(GNUInstallDirs)
> +set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "libdir name")
>
> # where to look first for cmake modules,
> # before ${CMAKE_ROOT}/Modules/ is checked
> @@ -84,7 +75,9 @@ if(NOT LIBBPF_FOUND AND NOT EXISTS "${PROJECT_SOURCE_DIR}/lib/bpf/src/btf.h")
> message(FATAL_ERROR "The submodules were not downloaded! GIT_SUBMODULE was turned off or failed. Please update submodules and try again.")
> endif()
>
> -_set_fancy(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${__LIB}" "libdir")
> +if (NOT DEFINED LIB_INSTALL_DIR)
> + set(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
> +endif()
>
> # libbpf uses reallocarray, which is not available in all versions of glibc
> # libbpf's include/tools/libc_compat.h provides implementation, but needs
> diff --git a/README b/README
> index f9aeef7..0627872 100644
> --- a/README
> +++ b/README
> @@ -3,8 +3,7 @@ Build instructions:
> 1. install cmake
> 2. mkdir build
> 3. cd build
> -4. cmake -D__LIB=lib ..
> -5. make install
> +4. make install
>
> cmake Options:
> -DBUILD_SHARED_LIBS
next prev parent reply other threads:[~2024-11-25 19:20 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-25 18:47 [PATCH dwarves v2] Respect CMAKE_INSTALL_LIBDIR Ben Olson
2024-11-25 19:19 ` Alan Maguire [this message]
2024-11-25 20:28 ` Olson, Matthew
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7b845bdc-6374-4c95-bc71-353f69f785b8@oracle.com \
--to=alan.maguire@oracle.com \
--cc=acme@kernel.org \
--cc=dwarves@vger.kernel.org \
--cc=matthew.olson@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.