Maynard,

Applied your README changes. Need to think a bit more about
LDCONFIG. The reason I added this was because as root
running just make install may not be enough to start using the
library. If you install the library is a standard place, then running
ldconfig is all you need. As a regular user you cannot run ldconfig
and you have to use LD_LIBRARY_PATH. So maybe the Makefile
could be smart and detect those conditions and possibly suggest
what to do for regular users.

On Thu, Dec 6, 2012 at 3:53 PM, Maynard Johnson <mayna...@us.ibm.com> wrote:
> On 12/05/2012 11:10 PM, Stephane Eranian wrote:
>> On Wed, Dec 5, 2012 at 12:43 AM, Maynard Johnson <mayna...@us.ibm.com> wrote:
>>> Fix installation to honor PREFIX and LIBDIR
>>>
>>> This patch changes the behavior of 'make install' so
>>> that a user can pass PREFIX to have the libpfm4 files
>>> installed somewhere other than the standard /usr/local
>>> directory.
>>>
>>> This patch also allows for a user to pass LIBDIR to
>>> specify a non-standard install directory for the
>>> libpfm library files. The standard library install
>>> directory is <install-dir>/lib, but on some architectures
>>> (including x86_64 and ppc64), 64-bit libraries are
>>> typically installed into a "lib64" subdirectory.
>>>
>>> This patch also removes the invocation of ldconfig from
>>> the lib/Makefile install target, since that results in
>>> and error when a non-root user is trying to install.
>>>
>>> The README was updated to document the three changes
>>> made in this patch.
>>>
>>> Signed-off-by: Maynard Johnson <mayna...@us.ibm.com>
>>> ---
>>>  README       |   14 ++++++++++++++
>>>  config.mk    |    8 ++++++--
>>>  lib/Makefile |    1 -
>>>  3 files changed, 20 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/README b/README
>>> index 70bb052..cf2fcc3 100644
>>> --- a/README
>>> +++ b/README
>>> @@ -104,6 +104,20 @@ INSTALLATION
>>>         - type make
>>>         - type make install
>>>
>>> +       - The default installation location is /usr/local. You can specify
>>> +         a diffierent install location as follows:
>      oops!  typo --^
>>> +               $ make PREFIX=<install-dir> install
>>> +         Depending on your install location, you may need to run the 
>>> 'ldconfig'
>>> +         command or use LD_LIBRARY_PATH when you build and run tools that
>>> +         link to the libpfm4 library.
>>> +
>>> +       - By default, libpfm library files are installed in 
>>> <install-dir>/lib.
>>> +         If 'make' builds 64-bit libraries on your system, and your target
>>> +         architecture expects 64-bit libraries to be located in a library
>>> +         named "lib64", then you should use the LIBDIR variable when 
>>> installing,
>>> +         as follows:
>>> +               $ make LIBDIR=<install-dir>/lib64 install
>>> +
>>>         - To compile and install the Python bindings, you need to go to the
>>>           python sub-directory and type make. Python may not be 
>>> systematically
>>>           built.
>>> diff --git a/config.mk b/config.mk
>>> index 9e5504c..1a38d87 100644
>>> --- a/config.mk
>>> +++ b/config.mk
>>> @@ -101,8 +101,12 @@ AGE=0
>>>  #
>>>  # Where should things (lib, headers, man) go in the end.
>>>  #
>>> -PREFIX=/usr/local
>>> -LIBDIR=$(PREFIX)/lib
>>> +ifeq (${PREFIX},)
>>> +       PREFIX=/usr/local
>>> +endif
>> What's the point of the ifeq compared to leaving
>> PREFIX=/usr/local? The user can always override from cmdline: make
>> PREFIX=/tmp/foo
>
> Yeah, you're right.  Dumb mistake. I got confused at first when trying 
> various options to install into a location other than /usr/local.  In 
> particular, installing on ppc64 was problematic.  For example, the following 
> install attempt failed:
>
> --------------------------------
> $ make BITMODE=64 PREFIX=/home/mpj/mylibpfm  install
> installing in
> make[1]: Entering directory `/home/mpj/temp/libpfm-4.3.0/lib'
> building: libpfm.a libpfm.so.4.3.0
> mkdir -p /lib64
> install -m 644 libpfm.a /lib64
> install: cannot create regular file `/lib64/libpfm.a': Permission denied
> make[1]: *** [install] Error 1
> make[1]: Leaving directory `/home/mpj/temp/libpfm-4.3.0/lib'
> make: *** [install] Error 2
> --------------------------------
>
> In fact, my patch #2 of this 2 patch series resolved that issue, but I 
> somehow misled myself to thinking I also needed the ifeq tests for PREFIX and 
> LIBDIR.
>
> So, please ignore those two changes.  Do you think the updates to the README 
> are helpful?  I know they would have been for me.  ;-)
>
> And what's your opinion on removing the LDCONFIG invocation below?  As I said 
> in my patch description, running ldconfig will fail when you try to install 
> libpfm as a non-root user.
>
> Thanks.
> -Maynard
>
>
>>
>>> +ifeq (${LIBDIR},)
>>> +       LIBDIR=$(PREFIX)/lib
>>> +endif
>>
>> What's wrong with: make LIBDIR=/tmp/foo/lib64 PREFIX=/tmp/foo?
>>
>>>  INCDIR=$(PREFIX)/include
>>>  MANDIR=$(PREFIX)/share/man
>>>  DOCDIR=$(PREFIX)/share/doc/libpfm-$(VERSION).$(REVISION).$(AGE)
>>> diff --git a/lib/Makefile b/lib/Makefile
>>> index d2f00a9..1df6894 100644
>>> --- a/lib/Makefile
>>> +++ b/lib/Makefile
>>> @@ -281,7 +281,6 @@ ifeq ($(CONFIG_PFMLIB_SHARED),y)
>>>         $(INSTALL) $(SLIBPFM) $(DESTDIR)$(LIBDIR)
>>>         cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) $(VLIBPFM)
>>>         cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) libpfm.$(SOLIBEXT)
>>> -       $(LDCONFIG)
>>>  endif
>>>
>>>  tags:
>>> --
>>> 1.7.1
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
>>> Remotely access PCs and mobile devices and provide instant support
>>> Improve your efficiency, and focus on delivering more value-add services
>>> Discover what IT Professionals Know. Rescue delivers
>>> http://p.sf.net/sfu/logmein_12329d2d
>>> _______________________________________________
>>> perfmon2-devel mailing list
>>> perfmon2-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/perfmon2-devel
>>
>

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to