Bug 586675 – Runtime library location
authorDavid Zeuthen <davidz@redhat.com>
Mon, 22 Jun 2009 19:33:41 +0000 (15:33 -0400)
committerDavid Zeuthen <davidz@redhat.com>
Tue, 23 Jun 2009 16:58:35 +0000 (12:58 -0400)
Introduce an option to specify the runtime location for libraries via
a relative path to libdir.

Signed-off-by: David Zeuthen <davidz@redhat.com>
configure.in
docs/reference/glib/building.sgml
docs/reference/glib/tmpl/fileutils.sgml
gio/Makefile.am
glib/Makefile.am
gmodule/Makefile.am
gobject/Makefile.am
gthread/Makefile.am

index 1e070d8a5d3487fa5f0009a39ca6a70e56fab7bc..73e948219afad12e70a61fe5639110c5bdcc2a71 100644 (file)
@@ -245,6 +245,17 @@ else
   AC_MSG_RESULT([yes])
 fi
 
+dnl location to install runtime libraries, e.g. ../../lib to install
+dnl to /lib if libdir is /usr/lib
+AC_ARG_WITH(runtime-libdir,
+           [AC_HELP_STRING([--with-runtime-libdir=RELPATH],
+                           [Install runtime libraries relative to libdir])],
+           [],
+          [with_runtime_libdir=""])
+GLIB_RUNTIME_LIBDIR=$with_runtime_libdir
+AC_SUBST(GLIB_RUNTIME_LIBDIR)
+AM_CONDITIONAL(HAVE_GLIB_RUNTIME_LIBDIR, [test "x$with_runtime_libdir" != "x"])
+
 dnl Checks for programs.
 AC_PROG_CC
 AC_PROG_CPP
index 0274f3d18d9bcf3fe2cb5c1024b73603f1a5430e..72c82b344ac9cfb3ed033f7f157df8edc87dff77 100644 (file)
@@ -234,6 +234,9 @@ How to compile GLib itself
             <arg>--disable-selinux</arg>
             <arg>--enable-selinux</arg>
           </group>
+          <group>
+            <arg>--with-runtime-libdir=RELPATH</arg>
+          </group>
         </cmdsynopsis>
       </para>
 
@@ -555,6 +558,24 @@ How to compile GLib itself
          be included.
         </para>
      </formalpara>
+
+      <formalpara>
+        <title><systemitem>--with-runtime-libdir=RELPATH</systemitem></title>
+
+        <para>
+          Allows specifying a relative path to where to install the runtime
+          libraries (meaning library files used for running, not developing,
+          GLib applications). This can be used in operating system setups where
+          programs using GLib needs to run before e.g. <filename>/usr</filename>
+          is mounted.
+          For example, if LIBDIR is <filename>/usr/lib</filename> and
+          <filename>../../lib</filename> is passed to
+          <systemitem>--with-runtime-libdir</systemitem> then the
+          runtime libraries are installed into <filename>/lib</filename> rather
+          than <filename>/usr/lib</filename>.
+        </para>
+      </formalpara>
+
    </refsect1>
 
 </refentry>
index 0b9ef6c7465c7f5331e3715a33c9cda951ae09cc..eeef84c48d9128d809f84d47af738c141436e67c 100644 (file)
@@ -294,6 +294,23 @@ not be accessed directly.
 @Returns: 
 
 
+<!-- ##### FUNCTION g_mapped_file_ref ##### -->
+<para>
+
+</para>
+
+@file: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_mapped_file_unref ##### -->
+<para>
+
+</para>
+
+@file: 
+
+
 <!-- ##### FUNCTION g_mapped_file_free ##### -->
 <para>
 
index 3f8f1805512e4d8a8efbf5f9600817416ee0fbea..1376443bf814f55423d7761cfbc3aec923cead6f 100644 (file)
@@ -424,3 +424,12 @@ gioenumtypes.c: $(gio_headers) gioenumtypes.c.template
 
 gio-2.0.lib: libgio-2.0.la gio.def
        lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:gio.def -out:$@
+
+if HAVE_GLIB_RUNTIME_LIBDIR
+install-data-hook:
+       mkdir -p $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libgio-2.0.so.0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libgio-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       rm -f $(DESTDIR)$(libdir)/libgio-2.0.so
+       ln -s $(GLIB_RUNTIME_LIBDIR)/libgio-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/libgio-2.0.so
+endif
index eb220e66ec2d3aae013d9d19e7b022358cd3b1e2..af077165477b68b7d381939f293b308036f2804c 100644 (file)
@@ -364,3 +364,12 @@ dist-hook: $(BUILT_EXTRA_DIST)
        for f in $$files; do \
          if test -f $$f; then d=.; else d=$(srcdir); fi; \
          cp $$d/$$f $(distdir) || exit 1; done
+
+if HAVE_GLIB_RUNTIME_LIBDIR
+install-data-hook:
+       mkdir -p $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libglib-2.0.so.0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libglib-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       rm -f $(DESTDIR)$(libdir)/libglib-2.0.so
+       ln -s $(GLIB_RUNTIME_LIBDIR)/libglib-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/libglib-2.0.so
+endif
index 80a5605b65618902331422337f8c0bacb91ab0a5..f0e63d1abc817fd5867980a8a2e439158c3f11cd 100644 (file)
@@ -116,3 +116,12 @@ dist-hook: $(BUILT_EXTRA_DIST)
 install-data-local: install-ms-lib install-def-file
 
 uninstall-local: uninstall-ms-lib uninstall-def-file
+
+if HAVE_GLIB_RUNTIME_LIBDIR
+install-data-hook:
+       mkdir -p $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libgmodule-2.0.so.0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libgmodule-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       rm -f $(DESTDIR)$(libdir)/libgmodule-2.0.so
+       ln -s $(GLIB_RUNTIME_LIBDIR)/libgmodule-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/libgmodule-2.0.so
+endif
index f8a7de4c1c745d061ea9625fd4c02bbd3289a7f7..ec27aa12ddede68b8a4410aea5b5a99b0034b709 100644 (file)
@@ -260,3 +260,12 @@ distclean-local:
        if test $(srcdir) = .; then :; else \
            rm -f $(BUILT_EXTRA_DIST); \
        fi
+
+if HAVE_GLIB_RUNTIME_LIBDIR
+install-data-hook:
+       mkdir -p $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libgobject-2.0.so.0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libgobject-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       rm -f $(DESTDIR)$(libdir)/libgobject-2.0.so
+       ln -s $(GLIB_RUNTIME_LIBDIR)/libgobject-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/libgobject-2.0.so
+endif
index a7b53cf585c41a24d9fc5a9ed763c7a26bdfd177..a65c15f293d62a9d329f240a818b89aa84cd1460 100644 (file)
@@ -92,3 +92,11 @@ install-data-local: install-ms-lib install-def-file
 
 uninstall-local: uninstall-ms-lib uninstall-def-file
 
+if HAVE_GLIB_RUNTIME_LIBDIR
+install-data-hook:
+       mkdir -p $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libgthread-2.0.so.0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       mv $(DESTDIR)$(libdir)/libgthread-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
+       rm -f $(DESTDIR)$(libdir)/libgthread-2.0.so
+       ln -s $(GLIB_RUNTIME_LIBDIR)/libgthread-2.0.so.0.$(LT_CURRENT).0 $(DESTDIR)$(libdir)/libgthread-2.0.so
+endif