SF.net SVN: gar:[24715] csw/mgar/pkg/opencsw-manual/trunk/files/ for-developers/index.rst
wahwah at users.sourceforge.net
wahwah at users.sourceforge.net
Wed Mar 11 01:15:15 CET 2015
Revision: 24715
http://sourceforge.net/p/gar/code/24715
Author: wahwah
Date: 2015-03-11 00:15:14 +0000 (Wed, 11 Mar 2015)
Log Message:
-----------
opencsw-manual/trunk: Updates to the developer docs
Modified Paths:
--------------
csw/mgar/pkg/opencsw-manual/trunk/files/for-developers/index.rst
Modified: csw/mgar/pkg/opencsw-manual/trunk/files/for-developers/index.rst
===================================================================
--- csw/mgar/pkg/opencsw-manual/trunk/files/for-developers/index.rst 2015-03-10 09:55:08 UTC (rev 24714)
+++ csw/mgar/pkg/opencsw-manual/trunk/files/for-developers/index.rst 2015-03-11 00:15:14 UTC (rev 24715)
@@ -14,15 +14,30 @@
relevant ``*_dev`` packages. They contain the header files, and ``*.so``
symlinks necessary during linking.
-When building againt OpenCSW software, aside from setting the ``PATH``
-correctly, these flags will typically make it work::
+Typical file layout of libraries::
+ CSWfoo_dev: /opt/csw/include/foo.h
+ /opt/csw/lib/libfoo.so -> libfoo.so.1
+ CSWlibfoo1: /opt/csw/lib/libfoo.so.1 -> libfoo.so.1.0.0
+ /opt/csw/lib/libfoo.so.1.0.0 (regular file)
+
+Autotools and GCC
+-----------------
+
+Set ``PATH`` to include the path to the compiler you wish to use. If you're
+using GCC from OpenCSW, you set it to ``/opt/csw/bin``.
+
+Autotools-based projects by default accept a standard set of environment
+variables. Here are values for a 32-bit build::
+
+ CFLAGS="-m32" # if you're using GCC
CPPFLAGS="-I/opt/csw/include"
LDFLAGS="-L/opt/csw/lib -R/opt/csw/lib"
PKG_CONFIG_PATH="/opt/csw/lib/pkgconfig"
If you're building a 64-bit binary, use these::
+ CFLAGS="-m64" # if you're using GCC
CPPFLAGS="-I/opt/csw/include"
LDFLAGS="-L/opt/csw/lib/64 -R/opt/csw/lib/64"
PKG_CONFIG_PATH="/opt/csw/lib/64/pkgconfig"
@@ -40,3 +55,27 @@
that path and find their corresponding sparcv9 or amd64 libraries. This way you
can use the same ``-R`` flag for both sparc and intel 64-bit builds.
+We recommend the `Autotools Mythbuster`_ as a reference to Autotools.
+
+A non-autotools project
+-----------------------
+
+If you're building a project which does not use autotools, you need to
+tell the compiler to do the following:
+
+1. Look into ``/opt/csw/include`` for the ``.h`` files. In GCC, it's achieved
+ with ``-I/opt/csw/include``. Without it, compilation will fail.
+2. Look into ``/opt/csw/lib`` for the ``.so`` files. In GCC, it's achieved
+ with ``-L/opt/csw/lib``. Without it, linking will fail.
+3. Put ``/opt/csw/lib`` into the ``RPATH`` field in the ELF header. In GCC,
+ this is achieved with ``-R/otp/csw/lib/``. Without it, binaries will build,
+ but won't run.
+
+For 64-bit builds, use ``/opt/csw/lib/64``.
+
+If your compiler is not GCC, you might need to pass different flags.
+
+How to add flags to the compiler invocations, depends on the build system of
+the software you're building.
+
+.. _Autotools Mythbuster: https://autotools.io/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list