| OLD | NEW |
| 1 # | 1 # |
| 2 # Helper makefile to link shared libraries in a portable way. | 2 # Helper makefile to link shared libraries in a portable way. |
| 3 # This is much simpler than libtool, and hopefully not too error-prone. | 3 # This is much simpler than libtool, and hopefully not too error-prone. |
| 4 # | 4 # |
| 5 # The following variables need to be set on the command line to build | 5 # The following variables need to be set on the command line to build |
| 6 # properly | 6 # properly |
| 7 | 7 |
| 8 # CC contains the current compiler. This one MUST be defined | 8 # CC contains the current compiler. This one MUST be defined |
| 9 CC=cc | 9 CC=cc |
| 10 CFLAGS=$(CFLAG) | 10 CFLAGS=$(CFLAG) |
| 11 # LDFLAGS contains flags to be used when temporary object files (when building | 11 # LDFLAGS contains flags to be used when temporary object files (when building |
| 12 # shared libraries) are created, or when an application is linked. | 12 # shared libraries) are created, or when an application is linked. |
| 13 # SHARED_LDFLAGS contains flags to be used when the shared library is created. | 13 # SHARED_LDFLAGS contains flags to be used when the shared library is created. |
| 14 LDFLAGS= | 14 LDFLAGS= |
| 15 SHARED_LDFLAGS= | 15 SHARED_LDFLAGS= |
| 16 | 16 |
| 17 NM=nm |
| 18 |
| 17 # LIBNAME contains just the name of the library, without prefix ("lib" | 19 # LIBNAME contains just the name of the library, without prefix ("lib" |
| 18 # on Unix, "cyg" for certain forms under Cygwin...) or suffix (.a, .so, | 20 # on Unix, "cyg" for certain forms under Cygwin...) or suffix (.a, .so, |
| 19 # .dll, ...). This one MUST have a value when using this makefile to | 21 # .dll, ...). This one MUST have a value when using this makefile to |
| 20 # build shared libraries. | 22 # build shared libraries. |
| 21 # For example, to build libfoo.so, you need to do the following: | 23 # For example, to build libfoo.so, you need to do the following: |
| 22 #LIBNAME=foo | 24 #LIBNAME=foo |
| 23 LIBNAME= | 25 LIBNAME= |
| 24 | 26 |
| 25 # APPNAME contains just the name of the application, without suffix ("" | 27 # APPNAME contains just the name of the application, without suffix ("" |
| 26 # on Unix, ".exe" on Windows, ...). This one MUST have a value when using | 28 # on Unix, ".exe" on Windows, ...). This one MUST have a value when using |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 SHLIB_COMPAT="$$SHLIB_COMPAT .$$prev"; \ | 86 SHLIB_COMPAT="$$SHLIB_COMPAT .$$prev"; \ |
| 85 fi; \ | 87 fi; \ |
| 86 prev=$$v; \ | 88 prev=$$v; \ |
| 87 done; \ | 89 done; \ |
| 88 fi | 90 fi |
| 89 | 91 |
| 90 LINK_APP= \ | 92 LINK_APP= \ |
| 91 ( $(SET_X); \ | 93 ( $(SET_X); \ |
| 92 LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ | 94 LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ |
| 93 LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ | 95 LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ |
| 94 LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1;
then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \ | 96 LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d |
uniq`; \ |
| 95 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ | 97 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ |
| 96 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ | 98 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ |
| 97 $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} ) | 99 $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} ) |
| 98 | 100 |
| 99 LINK_SO= \ | 101 LINK_SO= \ |
| 100 ( $(SET_X); \ | 102 ( $(SET_X); \ |
| 101 LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ | 103 LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ |
| 102 SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \ | 104 SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \ |
| 103 SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ | 105 SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ |
| 104 LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1;
then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \ | 106 LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d |
uniq`; \ |
| 105 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ | 107 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ |
| 106 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ | 108 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ |
| 107 $${SHAREDCMD} $${SHAREDFLAGS} \ | 109 $${SHAREDCMD} $${SHAREDFLAGS} \ |
| 108 -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ | 110 -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ |
| 109 $$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \ | 111 $$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \ |
| 110 ) && $(SYMLINK_SO) | 112 ) && $(SYMLINK_SO) |
| 111 | 113 |
| 112 SYMLINK_SO= \ | 114 SYMLINK_SO= \ |
| 113 if [ -n "$$INHIBIT_SYMLINKS" ]; then :; else \ | 115 if [ -n "$$INHIBIT_SYMLINKS" ]; then :; else \ |
| 114 prev=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ | 116 prev=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ |
| (...skipping 11 matching lines...) Expand all Loading... |
| 126 fi | 128 fi |
| 127 | 129 |
| 128 LINK_SO_A= SHOBJECTS="lib$(LIBNAME).a $(LIBEXTRAS)"; $(LINK_SO) | 130 LINK_SO_A= SHOBJECTS="lib$(LIBNAME).a $(LIBEXTRAS)"; $(LINK_SO) |
| 129 LINK_SO_O= SHOBJECTS="$(LIBEXTRAS)"; $(LINK_SO) | 131 LINK_SO_O= SHOBJECTS="$(LIBEXTRAS)"; $(LINK_SO) |
| 130 | 132 |
| 131 LINK_SO_A_VIA_O= \ | 133 LINK_SO_A_VIA_O= \ |
| 132 SHOBJECTS=lib$(LIBNAME).o; \ | 134 SHOBJECTS=lib$(LIBNAME).o; \ |
| 133 ALL=$$ALLSYMSFLAGS; ALLSYMSFLAGS=; NOALLSYMSFLAGS=; \ | 135 ALL=$$ALLSYMSFLAGS; ALLSYMSFLAGS=; NOALLSYMSFLAGS=; \ |
| 134 ( $(SET_X); \ | 136 ( $(SET_X); \ |
| 135 ld $(LDFLAGS) -r -o lib$(LIBNAME).o $$ALL lib$(LIBNAME).a $(LIBEXTRAS) ); \ | 137 ld $(LDFLAGS) -r -o lib$(LIBNAME).o $$ALL lib$(LIBNAME).a $(LIBEXTRAS) ); \ |
| 136 $(LINK_SO) && rm -f $(LIBNAME).o | 138 $(LINK_SO) && rm -f lib$(LIBNAME).o |
| 137 | 139 |
| 138 LINK_SO_A_UNPACKED= \ | 140 LINK_SO_A_UNPACKED= \ |
| 139 UNPACKDIR=link_tmp.$$$$; rm -rf $$UNPACKDIR; mkdir $$UNPACKDIR; \ | 141 UNPACKDIR=link_tmp.$$$$; rm -rf $$UNPACKDIR; mkdir $$UNPACKDIR; \ |
| 140 (cd $$UNPACKDIR; ar x ../lib$(LIBNAME).a) && \ | 142 (cd $$UNPACKDIR; ar x ../lib$(LIBNAME).a) && \ |
| 141 ([ -z "$(LIBEXTRAS)" ] || cp $(LIBEXTRAS) $$UNPACKDIR) && \ | 143 ([ -z "$(LIBEXTRAS)" ] || cp $(LIBEXTRAS) $$UNPACKDIR) && \ |
| 142 SHOBJECTS=$$UNPACKDIR/*.o; \ | 144 SHOBJECTS=$$UNPACKDIR/*.o; \ |
| 143 $(LINK_SO) && rm -rf $$UNPACKDIR | 145 $(LINK_SO) && rm -rf $$UNPACKDIR |
| 144 | 146 |
| 145 DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null | 147 DETECT_GNU_LD=($(CC) -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null |
| 146 | 148 |
| 147 DO_GNU_SO=$(CALC_VERSIONS); \ | 149 DO_GNU_SO=$(CALC_VERSIONS); \ |
| 148 SHLIB=lib$(LIBNAME).so; \ | 150 SHLIB=lib$(LIBNAME).so; \ |
| 149 SHLIB_SUFFIX=; \ | 151 SHLIB_SUFFIX=; \ |
| 150 ALLSYMSFLAGS='-Wl,--whole-archive'; \ | 152 ALLSYMSFLAGS='-Wl,--whole-archive'; \ |
| 151 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ | 153 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ |
| 152 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-son
ame=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" | 154 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-son
ame=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" |
| 153 | 155 |
| 154 DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" | 156 DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" |
| 155 | 157 |
| 156 #This is rather special. It's a special target with which one can link | 158 #This is rather special. It's a special target with which one can link |
| 157 #applications without bothering with any features that have anything to | 159 #applications without bothering with any features that have anything to |
| 158 #do with shared libraries, for example when linking against static | 160 #do with shared libraries, for example when linking against static |
| 159 #libraries. It's mostly here to avoid a lot of conditionals everywhere | 161 #libraries. It's mostly here to avoid a lot of conditionals everywhere |
| 160 #else... | 162 #else... |
| 161 link_app.: | 163 link_app.: |
| 162 $(LINK_APP) | 164 $(LINK_APP) |
| 163 | 165 |
| 164 link_o.gnu: | 166 link_o.gnu: |
| 165 @ $(DO_GNU_SO); $(LINK_SO_O) | 167 @ $(DO_GNU_SO); $(LINK_SO_O) |
| 166 link_a.gnu: | 168 link_a.gnu: |
| 167 @ $(DO_GNU_SO); $(LINK_SO_A) | 169 @ $(DO_GNU_SO); $(LINK_SO_A) |
| 168 link_app.gnu: | 170 link_app.gnu: |
| 169 @ $(DO_GNU_APP); $(LINK_APP) | 171 @ $(DO_GNU_APP); $(LINK_APP) |
| 170 | 172 |
| 173 DO_BEOS_SO= SHLIB=lib$(LIBNAME).so; \ |
| 174 SHLIB_SUFFIX=; \ |
| 175 ALLSYMSFLAGS='-Wl,--whole-archive'; \ |
| 176 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ |
| 177 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-son
ame=$$SHLIB$$SHLIB_SUFFIX" |
| 178 |
| 179 link_o.beos: |
| 180 @ $(DO_BEOS_SO); $(LINK_SO_O) |
| 181 link_a.beos: |
| 182 @ $(DO_BEOS_SO); $(LINK_SO_A) |
| 183 |
| 171 link_o.bsd: | 184 link_o.bsd: |
| 172 » @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ | 185 » @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ |
| 173 $(CALC_VERSIONS); \ | 186 $(CALC_VERSIONS); \ |
| 174 SHLIB=lib$(LIBNAME).so; \ | 187 SHLIB=lib$(LIBNAME).so; \ |
| 175 SHLIB_SUFFIX=; \ | 188 SHLIB_SUFFIX=; \ |
| 176 LIBDEPS=" "; \ | 189 LIBDEPS=" "; \ |
| 177 ALLSYMSFLAGS="-Wl,-Bforcearchive"; \ | 190 ALLSYMSFLAGS="-Wl,-Bforcearchive"; \ |
| 178 NOALLSYMSFLAGS=; \ | 191 NOALLSYMSFLAGS=; \ |
| 179 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -nostdlib"; \ | 192 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -nostdlib"; \ |
| 180 fi; $(LINK_SO_O) | 193 fi; $(LINK_SO_O) |
| 181 link_a.bsd: | 194 link_a.bsd: |
| 182 » @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ | 195 » @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ |
| 183 $(CALC_VERSIONS); \ | 196 $(CALC_VERSIONS); \ |
| 184 SHLIB=lib$(LIBNAME).so; \ | 197 SHLIB=lib$(LIBNAME).so; \ |
| 185 SHLIB_SUFFIX=; \ | 198 SHLIB_SUFFIX=; \ |
| 186 LIBDEPS=" "; \ | 199 LIBDEPS=" "; \ |
| 187 ALLSYMSFLAGS="-Wl,-Bforcearchive"; \ | 200 ALLSYMSFLAGS="-Wl,-Bforcearchive"; \ |
| 188 NOALLSYMSFLAGS=; \ | 201 NOALLSYMSFLAGS=; \ |
| 189 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -nostdlib"; \ | 202 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -nostdlib"; \ |
| 190 fi; $(LINK_SO_A) | 203 fi; $(LINK_SO_A) |
| 191 link_app.bsd: | 204 link_app.bsd: |
| 192 » @if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \ | 205 » @if $(DETECT_GNU_LD); then $(DO_GNU_APP); else \ |
| 193 LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBPATH)"; \ | 206 LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBPATH)"; \ |
| 194 fi; $(LINK_APP) | 207 fi; $(LINK_APP) |
| 195 | 208 |
| 196 # For Darwin AKA Mac OS/X (dyld) | 209 # For Darwin AKA Mac OS/X (dyld) |
| 197 # link_o.darwin produces .so, because we let it use dso_dlfcn module, | 210 # Originally link_o.darwin produced .so, because it was hard-coded |
| 198 # which has .so extension hard-coded. One can argue that one should | 211 # in dso_dlfcn module. At later point dso_dlfcn switched to .dylib |
| 199 # develop special dso module for MacOS X. At least manual encourages | 212 # extension in order to allow for run-time linking with vendor- |
| 200 # to use native NSModule(3) API and refers to dlfcn as termporary hack. | 213 # supplied shared libraries such as libz, so that link_o.darwin had |
| 214 # to be harmonized with it. This caused minor controversy, because |
| 215 # it was believed that dlopen can't be used to dynamically load |
| 216 # .dylib-s, only so called bundle modules (ones linked with -bundle |
| 217 # flag). The belief seems to be originating from pre-10.4 release, |
| 218 # where dlfcn functionality was emulated by dlcompat add-on. In |
| 219 # 10.4 dlopen was rewritten as native part of dyld and is documented |
| 220 # to be capable of loading both dynamic libraries and bundles. In |
| 221 # order to provide compatibility with pre-10.4 dlopen, modules are |
| 222 # linked with -bundle flag, which makes .dylib extension misleading. |
| 223 # It works, because dlopen is [and always was] extension-agnostic. |
| 224 # Alternative to this heuristic approach is to develop specific |
| 225 # MacOS X dso module relying on whichever "native" dyld interface. |
| 201 link_o.darwin: | 226 link_o.darwin: |
| 202 @ $(CALC_VERSIONS); \ | 227 @ $(CALC_VERSIONS); \ |
| 203 » SHLIB=`expr "$$THIS" : '.*/\([^/\.]*\)\.'`; \ | 228 » SHLIB=lib$(LIBNAME); \ |
| 204 » SHLIB=$${SHLIB:-lib$(LIBNAME)}; \ | 229 » SHLIB_SUFFIX=.dylib; \ |
| 205 » SHLIB_SUFFIX=`expr "$$THIS" : '.*\(\.[^\.]*\)$$'`; \ | |
| 206 » SHLIB_SUFFIX=$${SHLIB_SUFFIX:-.so}; \ | |
| 207 ALLSYMSFLAGS='-all_load'; \ | 230 ALLSYMSFLAGS='-all_load'; \ |
| 208 NOALLSYMSFLAGS=''; \ | 231 NOALLSYMSFLAGS=''; \ |
| 209 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \ | 232 » SHAREDFLAGS="$(CFLAGS) `echo $(SHARED_LDFLAGS) | sed s/dynamiclib/bundle
/`"; \ |
| 210 if [ -n "$(LIBVERSION)" ]; then \ | 233 if [ -n "$(LIBVERSION)" ]; then \ |
| 211 SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ | 234 SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ |
| 212 fi; \ | 235 fi; \ |
| 213 if [ -n "$$SHLIB_SOVER_NODOT" ]; then \ | 236 if [ -n "$$SHLIB_SOVER_NODOT" ]; then \ |
| 214 SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_
NODOT"; \ | 237 SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_
NODOT"; \ |
| 215 fi; \ | 238 fi; \ |
| 216 $(LINK_SO_O) | 239 $(LINK_SO_O) |
| 217 link_a.darwin: | 240 link_a.darwin: |
| 218 @ $(CALC_VERSIONS); \ | 241 @ $(CALC_VERSIONS); \ |
| 219 SHLIB=lib$(LIBNAME); \ | 242 SHLIB=lib$(LIBNAME); \ |
| 220 SHLIB_SUFFIX=.dylib; \ | 243 SHLIB_SUFFIX=.dylib; \ |
| 221 ALLSYMSFLAGS='-all_load'; \ | 244 ALLSYMSFLAGS='-all_load'; \ |
| 222 NOALLSYMSFLAGS=''; \ | 245 NOALLSYMSFLAGS=''; \ |
| 223 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \ | 246 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \ |
| 224 if [ -n "$(LIBVERSION)" ]; then \ | 247 if [ -n "$(LIBVERSION)" ]; then \ |
| 225 SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ | 248 SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \ |
| 226 fi; \ | 249 fi; \ |
| 227 if [ -n "$$SHLIB_SOVER_NODOT" ]; then \ | 250 if [ -n "$$SHLIB_SOVER_NODOT" ]; then \ |
| 228 SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_
NODOT"; \ | 251 SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_
NODOT"; \ |
| 229 fi; \ | 252 fi; \ |
| 230 » SHAREDFLAGS="$$SHAREDFLAGS -install_name ${INSTALLTOP}/lib/$$SHLIB${SHLI
B_EXT}"; \ | 253 » SHAREDFLAGS="$$SHAREDFLAGS -install_name $(INSTALLTOP)/$(LIBDIR)/$$SHLIB
$(SHLIB_EXT)"; \ |
| 231 $(LINK_SO_A) | 254 $(LINK_SO_A) |
| 232 link_app.darwin: # is there run-path on darwin? | 255 link_app.darwin: # is there run-path on darwin? |
| 233 $(LINK_APP) | 256 $(LINK_APP) |
| 234 | 257 |
| 235 link_o.cygwin: | 258 link_o.cygwin: |
| 236 @ $(CALC_VERSIONS); \ | 259 @ $(CALC_VERSIONS); \ |
| 237 INHIBIT_SYMLINKS=yes; \ | 260 INHIBIT_SYMLINKS=yes; \ |
| 238 SHLIB=cyg$(LIBNAME); \ | 261 SHLIB=cyg$(LIBNAME); \ |
| 239 base=-Wl,--enable-auto-image-base; \ | 262 base=-Wl,--enable-auto-image-base; \ |
| 263 deffile=; \ |
| 240 if expr $(PLATFORM) : 'mingw' > /dev/null; then \ | 264 if expr $(PLATFORM) : 'mingw' > /dev/null; then \ |
| 241 SHLIB=$(LIBNAME)eay32; base=; \ | 265 SHLIB=$(LIBNAME)eay32; base=; \ |
| 266 if test -f $(LIBNAME)eay32.def; then \ |
| 267 deffile=$(LIBNAME)eay32.def; \ |
| 268 fi; \ |
| 242 fi; \ | 269 fi; \ |
| 243 SHLIB_SUFFIX=.dll; \ | 270 SHLIB_SUFFIX=.dll; \ |
| 244 LIBVERSION="$(LIBVERSION)"; \ | 271 LIBVERSION="$(LIBVERSION)"; \ |
| 245 SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \ | 272 SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \ |
| 246 ALLSYMSFLAGS='-Wl,--whole-archive'; \ | 273 ALLSYMSFLAGS='-Wl,--whole-archive'; \ |
| 247 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ | 274 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ |
| 248 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -
Wl,--out-implib,lib$(LIBNAME).dll.a"; \ | 275 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base $$deffile -Wl,-s
,-Bsymbolic"; \ |
| 249 $(LINK_SO_O) | 276 $(LINK_SO_O) |
| 277 #for mingw target if def-file is in use dll-name should match library-name |
| 250 link_a.cygwin: | 278 link_a.cygwin: |
| 251 @ $(CALC_VERSIONS); \ | 279 @ $(CALC_VERSIONS); \ |
| 252 INHIBIT_SYMLINKS=yes; \ | 280 INHIBIT_SYMLINKS=yes; \ |
| 253 » SHLIB=cyg$(LIBNAME); \ | 281 » SHLIB=cyg$(LIBNAME); SHLIB_SOVER=-$(LIBVERSION); SHLIB_SUFFIX=.dll; \ |
| 282 » dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; extras=; \ |
| 254 base=-Wl,--enable-auto-image-base; \ | 283 base=-Wl,--enable-auto-image-base; \ |
| 255 if expr $(PLATFORM) : 'mingw' > /dev/null; then \ | 284 if expr $(PLATFORM) : 'mingw' > /dev/null; then \ |
| 256 » » SHLIB=$(LIBNAME)eay32; \ | 285 » » case $(LIBNAME) in \ |
| 257 » » base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x630
00000; \ | 286 » » » crypto) SHLIB=libeay;; \ |
| 287 » » » ssl) SHLIB=ssleay;; \ |
| 288 » » esac; \ |
| 289 » » SHLIB_SOVER=32; \ |
| 290 » » extras="$(LIBNAME).def"; \ |
| 291 » » $(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \ |
| 292 » » base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x6300
0000; \ |
| 258 fi; \ | 293 fi; \ |
| 259 » SHLIB_SUFFIX=.dll; \ | 294 » dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ |
| 260 » SHLIB_SOVER=-$(LIBVERSION); \ | 295 » $(PERL) util/mkrc.pl $$dll_name | \ |
| 296 » » $(CROSS_COMPILE)windres -o rc.o; \ |
| 297 » extras="$$extras rc.o"; \ |
| 261 ALLSYMSFLAGS='-Wl,--whole-archive'; \ | 298 ALLSYMSFLAGS='-Wl,--whole-archive'; \ |
| 262 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ | 299 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ |
| 263 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -
Wl,--out-implib,lib$(LIBNAME).dll.a"; \ | 300 » SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymboli
c -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \ |
| 264 » [ -f apps/$$SHLIB$$SHLIB_SUFFIX ] && rm apps/$$SHLIB$$SHLIB_SUFFIX; \ | 301 » [ -f apps/$$dll_name ] && rm apps/$$dll_name; \ |
| 265 » [ -f test/$$SHLIB$$SHLIB_SUFFIX ] && rm test/$$SHLIB$$SHLIB_SUFFIX; \ | 302 » [ -f test/$$dll_name ] && rm test/$$dll_name; \ |
| 266 $(LINK_SO_A) || exit 1; \ | 303 $(LINK_SO_A) || exit 1; \ |
| 267 » cp -p $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX apps/; \ | 304 » rm $$extras; \ |
| 268 » cp -p $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX test/ | 305 » cp -p $$dll_name apps/; \ |
| 306 » cp -p $$dll_name test/ |
| 269 link_app.cygwin: | 307 link_app.cygwin: |
| 308 @if expr "$(CFLAGS)" : '.*OPENSSL_USE_APPLINK' > /dev/null; then \ |
| 309 LIBDEPS="$(TOP)/crypto/applink.o $${LIBDEPS:-$(LIBDEPS)}"; \ |
| 310 export LIBDEPS; \ |
| 311 fi; \ |
| 270 $(LINK_APP) | 312 $(LINK_APP) |
| 271 | 313 |
| 272 link_o.alpha-osf1: | 314 link_o.alpha-osf1: |
| 273 » @ if ${DETECT_GNU_LD}; then \ | 315 » @ if $(DETECT_GNU_LD); then \ |
| 274 $(DO_GNU_SO); \ | 316 $(DO_GNU_SO); \ |
| 275 else \ | 317 else \ |
| 276 SHLIB=lib$(LIBNAME).so; \ | 318 SHLIB=lib$(LIBNAME).so; \ |
| 277 SHLIB_SUFFIX=; \ | 319 SHLIB_SUFFIX=; \ |
| 278 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e
's/ */:/'`; \ | 320 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e
's/ */:/'`; \ |
| 279 if [ -n "$$SHLIB_HIST" ]; then \ | 321 if [ -n "$$SHLIB_HIST" ]; then \ |
| 280 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \ | 322 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \ |
| 281 else \ | 323 else \ |
| 282 SHLIB_HIST="$(LIBVERSION)"; \ | 324 SHLIB_HIST="$(LIBVERSION)"; \ |
| 283 fi; \ | 325 fi; \ |
| 284 SHLIB_SOVER=; \ | 326 SHLIB_SOVER=; \ |
| 285 ALLSYMSFLAGS='-all'; \ | 327 ALLSYMSFLAGS='-all'; \ |
| 286 NOALLSYMSFLAGS='-none'; \ | 328 NOALLSYMSFLAGS='-none'; \ |
| 287 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic
"; \ | 329 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic
"; \ |
| 288 if [ -n "$$SHLIB_HIST" ]; then \ | 330 if [ -n "$$SHLIB_HIST" ]; then \ |
| 289 SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \ | 331 SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \ |
| 290 fi; \ | 332 fi; \ |
| 291 fi; \ | 333 fi; \ |
| 292 $(LINK_SO_O) | 334 $(LINK_SO_O) |
| 293 link_a.alpha-osf1: | 335 link_a.alpha-osf1: |
| 294 » @ if ${DETECT_GNU_LD}; then \ | 336 » @ if $(DETECT_GNU_LD); then \ |
| 295 $(DO_GNU_SO); \ | 337 $(DO_GNU_SO); \ |
| 296 else \ | 338 else \ |
| 297 SHLIB=lib$(LIBNAME).so; \ | 339 SHLIB=lib$(LIBNAME).so; \ |
| 298 SHLIB_SUFFIX=; \ | 340 SHLIB_SUFFIX=; \ |
| 299 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e
's/ */:/'`; \ | 341 SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e
's/ */:/'`; \ |
| 300 if [ -n "$$SHLIB_HIST" ]; then \ | 342 if [ -n "$$SHLIB_HIST" ]; then \ |
| 301 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \ | 343 SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \ |
| 302 else \ | 344 else \ |
| 303 SHLIB_HIST="$(LIBVERSION)"; \ | 345 SHLIB_HIST="$(LIBVERSION)"; \ |
| 304 fi; \ | 346 fi; \ |
| 305 SHLIB_SOVER=; \ | 347 SHLIB_SOVER=; \ |
| 306 ALLSYMSFLAGS='-all'; \ | 348 ALLSYMSFLAGS='-all'; \ |
| 307 NOALLSYMSFLAGS='-none'; \ | 349 NOALLSYMSFLAGS='-none'; \ |
| 308 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic
"; \ | 350 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic
"; \ |
| 309 if [ -n "$$SHLIB_HIST" ]; then \ | 351 if [ -n "$$SHLIB_HIST" ]; then \ |
| 310 SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \ | 352 SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \ |
| 311 fi; \ | 353 fi; \ |
| 312 fi; \ | 354 fi; \ |
| 313 $(LINK_SO_A) | 355 $(LINK_SO_A) |
| 314 link_app.alpha-osf1: | 356 link_app.alpha-osf1: |
| 315 » @if ${DETECT_GNU_LD}; then \ | 357 » @if $(DETECT_GNU_LD); then \ |
| 316 $(DO_GNU_APP); \ | 358 $(DO_GNU_APP); \ |
| 317 else \ | 359 else \ |
| 318 LDFLAGS="$(CFLAGS) -rpath $(LIBRPATH)"; \ | 360 LDFLAGS="$(CFLAGS) -rpath $(LIBRPATH)"; \ |
| 319 fi; \ | 361 fi; \ |
| 320 $(LINK_APP) | 362 $(LINK_APP) |
| 321 | 363 |
| 322 link_o.solaris: | 364 link_o.solaris: |
| 323 » @ if ${DETECT_GNU_LD}; then \ | 365 » @ if $(DETECT_GNU_LD); then \ |
| 324 $(DO_GNU_SO); \ | 366 $(DO_GNU_SO); \ |
| 325 else \ | 367 else \ |
| 326 $(CALC_VERSIONS); \ | 368 $(CALC_VERSIONS); \ |
| 327 MINUSZ='-z '; \ | 369 MINUSZ='-z '; \ |
| 328 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ | 370 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ |
| 329 SHLIB=lib$(LIBNAME).so; \ | 371 SHLIB=lib$(LIBNAME).so; \ |
| 330 SHLIB_SUFFIX=; \ | 372 SHLIB_SUFFIX=; \ |
| 331 ALLSYMSFLAGS="$${MINUSZ}allextract"; \ | 373 ALLSYMSFLAGS="$${MINUSZ}allextract"; \ |
| 332 NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ | 374 NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ |
| 333 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER
$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \ | 375 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER
$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \ |
| 334 fi; \ | 376 fi; \ |
| 335 $(LINK_SO_O) | 377 $(LINK_SO_O) |
| 336 link_a.solaris: | 378 link_a.solaris: |
| 337 » @ if ${DETECT_GNU_LD}; then \ | 379 » @ if $(DETECT_GNU_LD); then \ |
| 338 $(DO_GNU_SO); \ | 380 $(DO_GNU_SO); \ |
| 339 else \ | 381 else \ |
| 340 $(CALC_VERSIONS); \ | 382 $(CALC_VERSIONS); \ |
| 341 MINUSZ='-z '; \ | 383 MINUSZ='-z '; \ |
| 342 » » (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ | 384 » » ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \ |
| 343 SHLIB=lib$(LIBNAME).so; \ | 385 SHLIB=lib$(LIBNAME).so; \ |
| 344 SHLIB_SUFFIX=;\ | 386 SHLIB_SUFFIX=;\ |
| 345 ALLSYMSFLAGS="$${MINUSZ}allextract"; \ | 387 ALLSYMSFLAGS="$${MINUSZ}allextract"; \ |
| 346 NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ | 388 NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ |
| 347 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER
$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \ | 389 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -h $$SHLIB$$SHLIB_SOVER
$$SHLIB_SUFFIX -Wl,-Bsymbolic"; \ |
| 348 fi; \ | 390 fi; \ |
| 349 $(LINK_SO_A) | 391 $(LINK_SO_A) |
| 350 link_app.solaris: | 392 link_app.solaris: |
| 351 » @ if ${DETECT_GNU_LD}; then \ | 393 » @ if $(DETECT_GNU_LD); then \ |
| 352 $(DO_GNU_APP); \ | 394 $(DO_GNU_APP); \ |
| 353 else \ | 395 else \ |
| 354 LDFLAGS="$(CFLAGS) -R $(LIBRPATH)"; \ | 396 LDFLAGS="$(CFLAGS) -R $(LIBRPATH)"; \ |
| 355 fi; \ | 397 fi; \ |
| 356 $(LINK_APP) | 398 $(LINK_APP) |
| 357 | 399 |
| 358 # OpenServer 5 native compilers used | 400 # OpenServer 5 native compilers used |
| 359 link_o.svr3: | 401 link_o.svr3: |
| 360 » @ if ${DETECT_GNU_LD}; then \ | 402 » @ if $(DETECT_GNU_LD); then \ |
| 361 $(DO_GNU_SO); \ | 403 $(DO_GNU_SO); \ |
| 362 else \ | 404 else \ |
| 363 $(CALC_VERSIONS); \ | 405 $(CALC_VERSIONS); \ |
| 364 SHLIB=lib$(LIBNAME).so; \ | 406 SHLIB=lib$(LIBNAME).so; \ |
| 365 SHLIB_SUFFIX=; \ | 407 SHLIB_SUFFIX=; \ |
| 366 ALLSYMSFLAGS=''; \ | 408 ALLSYMSFLAGS=''; \ |
| 367 NOALLSYMSFLAGS=''; \ | 409 NOALLSYMSFLAGS=''; \ |
| 368 SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
; \ | 410 SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
; \ |
| 369 fi; \ | 411 fi; \ |
| 370 $(LINK_SO_O) | 412 $(LINK_SO_O) |
| 371 link_a.svr3: | 413 link_a.svr3: |
| 372 » @ if ${DETECT_GNU_LD}; then \ | 414 » @ if $(DETECT_GNU_LD); then \ |
| 373 $(DO_GNU_SO); \ | 415 $(DO_GNU_SO); \ |
| 374 else \ | 416 else \ |
| 375 $(CALC_VERSIONS); \ | 417 $(CALC_VERSIONS); \ |
| 376 SHLIB=lib$(LIBNAME).so; \ | 418 SHLIB=lib$(LIBNAME).so; \ |
| 377 SHLIB_SUFFIX=; \ | 419 SHLIB_SUFFIX=; \ |
| 378 ALLSYMSFLAGS=''; \ | 420 ALLSYMSFLAGS=''; \ |
| 379 NOALLSYMSFLAGS=''; \ | 421 NOALLSYMSFLAGS=''; \ |
| 380 SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
; \ | 422 SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
; \ |
| 381 fi; \ | 423 fi; \ |
| 382 $(LINK_SO_A_UNPACKED) | 424 $(LINK_SO_A_UNPACKED) |
| 383 link_app.svr3: | 425 link_app.svr3: |
| 384 » @${DETECT_GNU_LD} && $(DO_GNU_APP); \ | 426 » @$(DETECT_GNU_LD) && $(DO_GNU_APP); \ |
| 385 $(LINK_APP) | 427 $(LINK_APP) |
| 386 | 428 |
| 387 # UnixWare 7 and OpenUNIX 8 native compilers used | 429 # UnixWare 7 and OpenUNIX 8 native compilers used |
| 388 link_o.svr5: | 430 link_o.svr5: |
| 389 » @ if ${DETECT_GNU_LD}; then \ | 431 » @ if $(DETECT_GNU_LD); then \ |
| 390 $(DO_GNU_SO); \ | 432 $(DO_GNU_SO); \ |
| 391 else \ | 433 else \ |
| 392 $(CALC_VERSIONS); \ | 434 $(CALC_VERSIONS); \ |
| 393 SHARE_FLAG='-G'; \ | 435 SHARE_FLAG='-G'; \ |
| 394 ($(CC) -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared';
\ | 436 ($(CC) -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared';
\ |
| 395 SHLIB=lib$(LIBNAME).so; \ | 437 SHLIB=lib$(LIBNAME).so; \ |
| 396 SHLIB_SUFFIX=; \ | 438 SHLIB_SUFFIX=; \ |
| 397 ALLSYMSFLAGS=''; \ | 439 ALLSYMSFLAGS=''; \ |
| 398 NOALLSYMSFLAGS=''; \ | 440 NOALLSYMSFLAGS=''; \ |
| 399 SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$S
HLIB_SUFFIX"; \ | 441 SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$S
HLIB_SUFFIX"; \ |
| 400 fi; \ | 442 fi; \ |
| 401 $(LINK_SO_O) | 443 $(LINK_SO_O) |
| 402 link_a.svr5: | 444 link_a.svr5: |
| 403 » @ if ${DETECT_GNU_LD}; then \ | 445 » @ if $(DETECT_GNU_LD); then \ |
| 404 $(DO_GNU_SO); \ | 446 $(DO_GNU_SO); \ |
| 405 else \ | 447 else \ |
| 406 $(CALC_VERSIONS); \ | 448 $(CALC_VERSIONS); \ |
| 407 SHARE_FLAG='-G'; \ | 449 SHARE_FLAG='-G'; \ |
| 408 » » (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared';
\ | 450 » » ($(CC) -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared';
\ |
| 409 SHLIB=lib$(LIBNAME).so; \ | 451 SHLIB=lib$(LIBNAME).so; \ |
| 410 SHLIB_SUFFIX=; \ | 452 SHLIB_SUFFIX=; \ |
| 411 ALLSYMSFLAGS=''; \ | 453 ALLSYMSFLAGS=''; \ |
| 412 NOALLSYMSFLAGS=''; \ | 454 NOALLSYMSFLAGS=''; \ |
| 413 SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$S
HLIB_SUFFIX"; \ | 455 SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$S
HLIB_SUFFIX"; \ |
| 414 fi; \ | 456 fi; \ |
| 415 $(LINK_SO_A_UNPACKED) | 457 $(LINK_SO_A_UNPACKED) |
| 416 link_app.svr5: | 458 link_app.svr5: |
| 417 » @${DETECT_GNU_LD} && $(DO_GNU_APP); \ | 459 » @$(DETECT_GNU_LD) && $(DO_GNU_APP); \ |
| 418 $(LINK_APP) | 460 $(LINK_APP) |
| 419 | 461 |
| 420 link_o.irix: | 462 link_o.irix: |
| 421 » @ if ${DETECT_GNU_LD}; then \ | 463 » @ if $(DETECT_GNU_LD); then \ |
| 422 $(DO_GNU_SO); \ | 464 $(DO_GNU_SO); \ |
| 423 else \ | 465 else \ |
| 424 $(CALC_VERSIONS); \ | 466 $(CALC_VERSIONS); \ |
| 425 SHLIB=lib$(LIBNAME).so; \ | 467 SHLIB=lib$(LIBNAME).so; \ |
| 426 SHLIB_SUFFIX=; \ | 468 SHLIB_SUFFIX=; \ |
| 427 MINUSWL=""; \ | 469 MINUSWL=""; \ |
| 428 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \ | 470 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \ |
| 429 ALLSYMSFLAGS="$${MINUSWL}-all"; \ | 471 ALLSYMSFLAGS="$${MINUSWL}-all"; \ |
| 430 NOALLSYMSFLAGS="$${MINUSWL}-none"; \ | 472 NOALLSYMSFLAGS="$${MINUSWL}-none"; \ |
| 431 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$S
HLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \ | 473 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$S
HLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \ |
| 432 fi; \ | 474 fi; \ |
| 433 $(LINK_SO_O) | 475 $(LINK_SO_O) |
| 434 link_a.irix: | 476 link_a.irix: |
| 435 » @ if ${DETECT_GNU_LD}; then \ | 477 » @ if $(DETECT_GNU_LD); then \ |
| 436 $(DO_GNU_SO); \ | 478 $(DO_GNU_SO); \ |
| 437 else \ | 479 else \ |
| 438 $(CALC_VERSIONS); \ | 480 $(CALC_VERSIONS); \ |
| 439 SHLIB=lib$(LIBNAME).so; \ | 481 SHLIB=lib$(LIBNAME).so; \ |
| 440 SHLIB_SUFFIX=; \ | 482 SHLIB_SUFFIX=; \ |
| 441 MINUSWL=""; \ | 483 MINUSWL=""; \ |
| 442 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \ | 484 ($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \ |
| 443 ALLSYMSFLAGS="$${MINUSWL}-all"; \ | 485 ALLSYMSFLAGS="$${MINUSWL}-all"; \ |
| 444 NOALLSYMSFLAGS="$${MINUSWL}-none"; \ | 486 NOALLSYMSFLAGS="$${MINUSWL}-none"; \ |
| 445 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$S
HLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \ | 487 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$S
HLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \ |
| 446 fi; \ | 488 fi; \ |
| 447 $(LINK_SO_A) | 489 $(LINK_SO_A) |
| 448 link_app.irix: | 490 link_app.irix: |
| 449 @LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"; \ | 491 @LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"; \ |
| 450 $(LINK_APP) | 492 $(LINK_APP) |
| 451 | 493 |
| 452 # 32-bit PA-RISC HP-UX embeds the -L pathname of libs we link with, so | 494 # 32-bit PA-RISC HP-UX embeds the -L pathname of libs we link with, so |
| 453 # we compensate for it with +cdp ../: and +cdp ./:. Yes, these rewrite | 495 # we compensate for it with +cdp ../: and +cdp ./:. Yes, these rewrite |
| 454 # rules imply that we can only link one level down in catalog structure, | 496 # rules imply that we can only link one level down in catalog structure, |
| 455 # but that's what takes place for the moment of this writing. +cdp option | 497 # but that's what takes place for the moment of this writing. +cdp option |
| 456 # was introduced in HP-UX 11.x and applies in 32-bit PA-RISC link | 498 # was introduced in HP-UX 11.x and applies in 32-bit PA-RISC link |
| 457 # editor context only [it's simply ignored in other cases, which are all | 499 # editor context only [it's simply ignored in other cases, which are all |
| 458 # ELFs by the way]. | 500 # ELFs by the way]. |
| 459 # | 501 # |
| 460 link_o.hpux: | 502 link_o.hpux: |
| 461 » @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ | 503 » @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ |
| 462 $(CALC_VERSIONS); \ | 504 $(CALC_VERSIONS); \ |
| 463 SHLIB=lib$(LIBNAME).sl; \ | 505 SHLIB=lib$(LIBNAME).sl; \ |
| 464 expr "$(CFLAGS)" : '.*DSO_DLFCN' > /dev/null && SHLIB=lib$(LIBNAME).so;
\ | 506 expr "$(CFLAGS)" : '.*DSO_DLFCN' > /dev/null && SHLIB=lib$(LIBNAME).so;
\ |
| 465 SHLIB_SUFFIX=; \ | 507 SHLIB_SUFFIX=; \ |
| 466 ALLSYMSFLAGS='-Wl,-Fl'; \ | 508 ALLSYMSFLAGS='-Wl,-Fl'; \ |
| 467 NOALLSYMSFLAGS=''; \ | 509 NOALLSYMSFLAGS=''; \ |
| 468 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'
; \ | 510 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'
; \ |
| 469 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarni
ngs,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \ | 511 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarni
ngs,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \ |
| 470 fi; \ | 512 fi; \ |
| 471 rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \ | 513 rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \ |
| 472 $(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX | 514 $(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX |
| 473 link_a.hpux: | 515 link_a.hpux: |
| 474 » @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \ | 516 » @if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \ |
| 475 $(CALC_VERSIONS); \ | 517 $(CALC_VERSIONS); \ |
| 476 SHLIB=lib$(LIBNAME).sl; \ | 518 SHLIB=lib$(LIBNAME).sl; \ |
| 477 expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ | 519 expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ |
| 478 SHLIB_SUFFIX=; \ | 520 SHLIB_SUFFIX=; \ |
| 479 ALLSYMSFLAGS='-Wl,-Fl'; \ | 521 ALLSYMSFLAGS='-Wl,-Fl'; \ |
| 480 NOALLSYMSFLAGS=''; \ | 522 NOALLSYMSFLAGS=''; \ |
| 481 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'
; \ | 523 expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'
; \ |
| 482 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarni
ngs,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \ | 524 SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarni
ngs,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \ |
| 483 fi; \ | 525 fi; \ |
| 484 rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \ | 526 rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \ |
| 485 $(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX | 527 $(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX |
| 486 link_app.hpux: | 528 link_app.hpux: |
| 487 » @if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \ | 529 » @if $(DETECT_GNU_LD); then $(DO_GNU_APP); else \ |
| 488 LDFLAGS="$(CFLAGS) -Wl,+s,+cdp,../:,+cdp,./:,+b,$(LIBRPATH)"; \ | 530 LDFLAGS="$(CFLAGS) -Wl,+s,+cdp,../:,+cdp,./:,+b,$(LIBRPATH)"; \ |
| 489 fi; \ | 531 fi; \ |
| 490 $(LINK_APP) | 532 $(LINK_APP) |
| 491 | 533 |
| 492 link_o.aix: | 534 link_o.aix: |
| 493 @ $(CALC_VERSIONS); \ | 535 @ $(CALC_VERSIONS); \ |
| 494 OBJECT_MODE=`expr "x$(SHARED_LDFLAGS)" : 'x\-[a-z]*\(64\)'` || :; \ | 536 OBJECT_MODE=`expr "x$(SHARED_LDFLAGS)" : 'x\-[a-z]*\(64\)'` || :; \ |
| 495 OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \ | 537 OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \ |
| 496 SHLIB=lib$(LIBNAME).so; \ | 538 SHLIB=lib$(LIBNAME).so; \ |
| 497 SHLIB_SUFFIX=; \ | 539 SHLIB_SUFFIX=; \ |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 542 @ $(CALC_VERSIONS); \ | 584 @ $(CALC_VERSIONS); \ |
| 543 SHLIB=lib$(LIBNAME); \ | 585 SHLIB=lib$(LIBNAME); \ |
| 544 SHLIB_SUFFIX=.dylib; \ | 586 SHLIB_SUFFIX=.dylib; \ |
| 545 $(SYMLINK_SO) | 587 $(SYMLINK_SO) |
| 546 symlink.hpux: | 588 symlink.hpux: |
| 547 @ $(CALC_VERSIONS); \ | 589 @ $(CALC_VERSIONS); \ |
| 548 SHLIB=lib$(LIBNAME).sl; \ | 590 SHLIB=lib$(LIBNAME).sl; \ |
| 549 expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ | 591 expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \ |
| 550 $(SYMLINK_SO) | 592 $(SYMLINK_SO) |
| 551 # The following lines means those specific architectures do no symlinks | 593 # The following lines means those specific architectures do no symlinks |
| 552 symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath: | 594 symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath symlink.beos
: |
| 553 | 595 |
| 554 # Compatibility targets | 596 # Compatibility targets |
| 555 link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu | 597 link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu |
| 556 link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu | 598 link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu |
| 557 link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu | 599 link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu |
| 558 symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-share
d: symlink.gnu | 600 symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-share
d: symlink.gnu |
| 559 link_o.bsd-shared: link_o.bsd | 601 link_o.bsd-shared: link_o.bsd |
| 560 link_a.bsd-shared: link_a.bsd | 602 link_a.bsd-shared: link_a.bsd |
| 561 link_app.bsd-shared: link_app.bsd | 603 link_app.bsd-shared: link_app.bsd |
| 562 link_o.darwin-shared: link_o.darwin | 604 link_o.darwin-shared: link_o.darwin |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 link_app.hpux-shared: link_app.hpux | 642 link_app.hpux-shared: link_app.hpux |
| 601 symlink.hpux-shared: symlink.hpux | 643 symlink.hpux-shared: symlink.hpux |
| 602 link_o.aix-shared: link_o.aix | 644 link_o.aix-shared: link_o.aix |
| 603 link_a.aix-shared: link_a.aix | 645 link_a.aix-shared: link_a.aix |
| 604 link_app.aix-shared: link_app.aix | 646 link_app.aix-shared: link_app.aix |
| 605 symlink.aix-shared: symlink.aix | 647 symlink.aix-shared: symlink.aix |
| 606 link_o.reliantunix-shared: link_o.reliantunix | 648 link_o.reliantunix-shared: link_o.reliantunix |
| 607 link_a.reliantunix-shared: link_a.reliantunix | 649 link_a.reliantunix-shared: link_a.reliantunix |
| 608 link_app.reliantunix-shared: link_app.reliantunix | 650 link_app.reliantunix-shared: link_app.reliantunix |
| 609 symlink.reliantunix-shared: symlink.reliantunix | 651 symlink.reliantunix-shared: symlink.reliantunix |
| 652 link_o.beos-shared: link_o.beos |
| 653 link_a.beos-shared: link_a.beos |
| 654 link_app.beos-shared: link_app.gnu |
| 655 symlink.beos-shared: symlink.beos |
| OLD | NEW |