X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=doc%2Frelocatable-maint.texi;h=7c24b28239d7685ce357180c8770e3b7c0f0c791;hb=f2f428037cd5dcf93c4cc8cfacf4dd92f0f250bd;hp=da57402a4b4b9601fc981407cabc0c51dffa0cef;hpb=d762128fe864268596a074db7da796216613f0b8;p=gnulib.git diff --git a/doc/relocatable-maint.texi b/doc/relocatable-maint.texi index da57402a4..7c24b2823 100644 --- a/doc/relocatable-maint.texi +++ b/doc/relocatable-maint.texi @@ -15,22 +15,22 @@ privileges to install a binary package, and prevents installing two different versions of the same binary package. A relocatable program can be moved or copied to a different location -on the filesystem. It is possible to make symlinks to the installed +on the file system. It is possible to make symlinks to the installed and moved programs, and invoke them through the symlink. It is possible to do the same thing with a hard link @emph{only} if the hard link file is in the same directory as the real program. -The @code{relocatable} module aims to ease the process of making a GNU -program relocatable. It helps overcome two obstacles. First, it aids +The @code{relocatable-prog} module aims to ease the process of making a +GNU program relocatable. It helps overcome two obstacles. First, it aids with relocating the hard-coded references to absolute file names that GNU programs often contain. These references must be fixed up at runtime if a program is to be successfully relocated. The -@code{relocatable} module provides a function @code{relocate} that +@code{relocatable-prog} module provides a function @code{relocate} that does this job. Second, the loader must be able to find shared libraries linked to relocatable executables or referenced by other shared libraries linked -to relocatable executables. The @code{relocatable} module helps out +to relocatable executables. The @code{relocatable-prog} module helps out here in a platform-specific way: @itemize @@ -46,7 +46,7 @@ sets the environment variable that controls shared library searching This approach does not always work. On OpenBSD and OpenServer, prereleases of Libtool 1.5 put absolute file names of libraries in -executables, which prevents searching any other locations. +executables, which prevents searching any other locations. @item On Windows, the executable's own directory is searched for libraries, @@ -58,7 +58,7 @@ You can make your program relocatable by following these steps: @enumerate @item -Import the @code{relocatable} module. +Import the @code{relocatable-prog} module. @item In every program, add to @code{main} as the first statement (even @@ -82,7 +82,7 @@ bindtextdomain (PACKAGE, LOCALEDIR); @noindent becomes: -@example +@example bindtextdomain (PACKAGE, relocate (LOCALEDIR)); @end example @@ -102,8 +102,10 @@ if test "@@RELOCATABLE@@" = yes; then func_find_curr_installdir # determine curr_installdir func_find_prefixes # Relocate the directory variables that we use. - gettext_dir=`echo "$gettext_dir/" | sed -e -"s%^$@{orig_installprefix@}/%$@{curr_installprefix@}/%" | sed -e 's,/$,,'` + gettext_dir=` + echo "$gettext_dir/" \ + | sed -e "s%^$@{orig_installprefix@}/%$@{curr_installprefix@}/%" \ + | sed -e 's,/$,,'` fi @end example @@ -123,8 +125,8 @@ endif @end example @item -You may also need to add one or two variable assignments to your -@file{configure.ac}. +You may also need to add a couple of variable assignments to your +@file{configure.ac}. If your package (or any package you rely on, e.g.@: gettext-runtime) will be relocated together with a set of installed shared libraries, @@ -140,3 +142,6 @@ If your @file{config.h} is not in @file{$(top_builddir)}, then set RELOCATABLE_CONFIG_H_DIR='$(top_builddir)/src' @end example @end enumerate + +Set @var{RELOCATABLE_STRIP} to @code{:}. This is needed so that +@samp{make install} installs executables without stripping them.