source: git/ppcc/autosetup/cc-shared.tcl @ 2b7db4b

fieker-DuValspielwiese
Last change on this file since 2b7db4b was 2b7db4b, checked in by Matthias Koeppe <mkoeppe@…>, 3 years ago
Replace '-Wl,-rpath -Wl,...' by '-Wl,-rpath,...'
  • Property mode set to 100644
File size: 3.6 KB
Line 
1# Copyright (c) 2010 WorkWare Systems http://www.workware.net.au/
2# All rights reserved
3
4# @synopsis:
5#
6# The 'cc-shared' module provides support for shared libraries and shared objects.
7# It defines the following variables:
8#
9## SH_CFLAGS         Flags to use compiling sources destined for a shared library
10## SH_LDFLAGS        Flags to use linking (creating) a shared library
11## SH_SOPREFIX       Prefix to use to set the soname when creating a shared library
12## SH_SOFULLPATH     Set to 1 if the shared library soname should include the full install path
13## SH_SOEXT          Extension for shared libs
14## SH_SOEXTVER       Format for versioned shared libs - %s = version
15## SHOBJ_CFLAGS      Flags to use compiling sources destined for a shared object
16## SHOBJ_LDFLAGS     Flags to use linking a shared object, undefined symbols allowed
17## SHOBJ_LDFLAGS_R   - as above, but all symbols must be resolved
18## SH_LINKRPATH      Format for setting the rpath when linking an executable, %s = path
19## SH_LINKFLAGS      Flags to use linking an executable which will load shared objects
20## LD_LIBRARY_PATH   Environment variable which specifies path to shared libraries
21## STRIPLIBFLAGS     Arguments to strip a dynamic library
22
23module-options {}
24
25# Defaults: gcc on unix
26define SHOBJ_CFLAGS -fPIC
27define SHOBJ_LDFLAGS -shared
28define SH_CFLAGS -fPIC
29define SH_LDFLAGS -shared
30define SH_LINKFLAGS -rdynamic
31define SH_LINKRPATH "-Wl,-rpath,%s"
32define SH_SOEXT .so
33define SH_SOEXTVER .so.%s
34define SH_SOPREFIX -Wl,-soname,
35define LD_LIBRARY_PATH LD_LIBRARY_PATH
36define STRIPLIBFLAGS --strip-unneeded
37
38# Note: This is a helpful reference for identifying the toolchain
39#       http://sourceforge.net/apps/mediawiki/predef/index.php?title=Compilers
40
41switch -glob -- [get-define host] {
42        *-*-darwin* {
43                define SHOBJ_CFLAGS "-dynamic -fno-common"
44                define SHOBJ_LDFLAGS "-bundle -undefined dynamic_lookup"
45                define SHOBJ_LDFLAGS_R -bundle
46                define SH_CFLAGS -dynamic
47                define SH_LDFLAGS -dynamiclib
48                define SH_LINKFLAGS ""
49                define SH_SOEXT .dylib
50                define SH_SOEXTVER .%s.dylib
51                define SH_SOPREFIX -Wl,-install_name,
52                define SH_SOFULLPATH
53                define LD_LIBRARY_PATH DYLD_LIBRARY_PATH
54                define STRIPLIBFLAGS -x
55        }
56        *-*-ming* - *-*-cygwin - *-*-msys {
57                define SHOBJ_CFLAGS ""
58                define SHOBJ_LDFLAGS -shared
59                define SH_CFLAGS ""
60                define SH_LDFLAGS -shared
61                define SH_LINKRPATH ""
62                define SH_LINKFLAGS ""
63                define SH_SOEXT .dll
64                define SH_SOEXTVER .dll
65                define SH_SOPREFIX ""
66                define LD_LIBRARY_PATH PATH
67        }
68        sparc* {
69                if {[msg-quiet cc-check-decls __SUNPRO_C]} {
70                        msg-result "Found sun stdio compiler"
71                        # sun stdio compiler
72                        # XXX: These haven't been fully tested.
73                        define SHOBJ_CFLAGS -KPIC
74                        define SHOBJ_LDFLAGS "-G"
75                        define SH_CFLAGS -KPIC
76                        define SH_LINKFLAGS -Wl,-export-dynamic
77                        define SH_SOPREFIX -Wl,-h,
78                }
79        }
80        *-*-solaris* {
81                if {[msg-quiet cc-check-decls __SUNPRO_C]} {
82                        msg-result "Found sun stdio compiler"
83                        # sun stdio compiler
84                        # XXX: These haven't been fully tested.
85                        define SHOBJ_CFLAGS -KPIC
86                        define SHOBJ_LDFLAGS "-G"
87                        define SH_CFLAGS -KPIC
88                        define SH_LINKFLAGS -Wl,-export-dynamic
89                        define SH_SOPREFIX -Wl,-h,
90                }
91        }
92        *-*-hpux {
93                # XXX: These haven't been tested
94                define SHOBJ_CFLAGS "+O3 +z"
95                define SHOBJ_LDFLAGS -b
96                define SH_CFLAGS +z
97                define SH_LINKFLAGS -Wl,+s
98                define LD_LIBRARY_PATH SHLIB_PATH
99        }
100        *-*-haiku {
101                define SHOBJ_CFLAGS ""
102                define SHOBJ_LDFLAGS -shared
103                define SH_CFLAGS ""
104                define SH_LDFLAGS -shared
105                define SH_LINKFLAGS ""
106                define SH_SOPREFIX ""
107                define LD_LIBRARY_PATH LIBRARY_PATH
108        }
109}
110
111if {![is-defined SHOBJ_LDFLAGS_R]} {
112        define SHOBJ_LDFLAGS_R [get-define SHOBJ_LDFLAGS]
113}
Note: See TracBrowser for help on using the repository browser.