Mercurial > hg > xemacs-beta
annotate aclocal.m4 @ 5939:96fb76dd98df cygwin
fix bad interaction with Cygwin 3.3
author | Henry Thompson <ht@markup.co.uk> |
---|---|
date | Wed, 08 Dec 2021 18:49:22 +0000 |
parents | 4dee0387b9de |
children |
rev | line source |
---|---|
265 | 1 dnl aclocal.m4 --- Dynamically linked library support for XEmacs |
388 | 2 dnl Copyright (C) 1998, 1999 J. Kean Johnston. |
3 dnl Author: J. Kean Johnston <jkj@sco.com>, based on work in libtool. | |
4 dnl This file is part of XEmacs. | |
5290
e6508b64ee08
More permission consistency.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4932
diff
changeset
|
5 dnl |
5410
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
6 dnl XEmacs is free software: you can redistribute it and/or modify it |
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
7 dnl under the terms of the GNU General Public License as published by the |
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
8 dnl Free Software Foundation, either version 3 of the License, or (at your |
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
9 dnl option) any later version. |
5290
e6508b64ee08
More permission consistency.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4932
diff
changeset
|
10 dnl |
5410
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
11 dnl XEmacs is distributed in the hope that it will be useful, but WITHOUT |
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
12 dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
13 dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
14 dnl for more details. |
5290
e6508b64ee08
More permission consistency.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4932
diff
changeset
|
15 dnl |
e6508b64ee08
More permission consistency.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4932
diff
changeset
|
16 dnl You should have received a copy of the GNU General Public License |
5410
ff554e6a2d29
Convert aclocal.m4 to GPLv3 as it was GPLv2 by the author.
Mats Lidell <matsl@xemacs.org>
parents:
4932
diff
changeset
|
17 dnl along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
388 | 18 dnl |
19 dnl There are several things we care about here. First, we need to find | |
20 dnl out how we create an executable that has its symbols exported, so | |
21 dnl that dynamically loaded modules have access to the internal XEmacs | |
22 dnl symbols. This is stored in ``ld_dynamic_link_flags'' and is used | |
23 dnl in the main Makefile. | |
24 dnl Next, we need to know how we compile actual shared libraries, and | |
25 dnl the objects in them. For these purposes, we need to determine the | |
26 dnl C compiler flags used to produce shared objects (``dll_cflags''), | |
27 dnl what linker to use to create the final shared object that will be | |
28 dnl loaded (``dll_ld'') and the flags to pass to that linker | |
29 dnl (``dll_ldflags''). This information is used by ellcc to build up | |
30 dnl the command line when compiling modules. We build up two other commands | |
31 dnl for extremely weird systems where special things need to be done. | |
32 dnl The first is ``dll_ldo'', which is the flag used to specify the output | |
33 dnl file name, and the second is ``dll_post'' which is inserted after the | |
34 dnl list of objects. | |
35 dnl After all of this, we should be able to: | |
36 dnl $(CC) $(CFLAGS) $(dll_cflags) -c module.c | |
37 dnl to produce a single shared object | |
38 dnl And then: | |
39 dnl $(dll_ld) $(dll_ldflags) $(dll_ldo) module.ell module.o $(dll_post) | |
40 dnl to create the loadable shared library. | |
41 dnl | |
42 dnl NOTE: In the code below, where I have modified things to work with | |
43 dnl XEmacs, we use $canonical instead of libtool's $host, and we use | |
44 dnl $internal_configuration instead of $host_alias. To make typing | |
45 dnl shorter we assign these to $xehost and $xealias | |
46 | |
47 AC_DEFUN(XE_SHLIB_STUFF,[ | |
48 dll_ld= | |
49 dll_ldflags= | |
50 dll_cflags= | |
51 dll_post= | |
52 dll_ldo="-o" | |
53 ld_dynamic_link_flags= | |
2651 | 54 xehost=$ac_cv_build |
55 xealias=$ac_cv_build_alias | |
388 | 56 |
3312 | 57 AC_MSG_CHECKING([how to build dynamic libraries for ${xehost}]) |
58 AC_MSG_RESULT() | |
388 | 59 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. |
60 case "$xehost" in | |
61 *-*-linux-gnu*) ;; | |
62 *-*-linux*) xehost=`echo $xehost | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` | |
63 esac | |
64 | |
2651 | 65 xehost_cpu=`echo $xehost | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'` |
66 xehost_vendor=`echo $xehost | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'` | |
67 xehost_os=`echo $xehost | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'` | |
388 | 68 |
69 # Now see if the compiler is really GCC. | |
70 if test "$GCC" = "yes"; then | |
71 XEGCC=yes | |
72 else | |
2651 | 73 AC_MSG_CHECKING([whether we are using GNU C]) |
388 | 74 AC_EGREP_CPP(yes,[ |
75 #ifdef __GNUC__ | |
76 yes; | |
77 #endif | |
78 ],XEGCC=yes, XEGCC=no) | |
79 AC_MSG_RESULT([${XEGCC}]) | |
80 fi | |
81 | |
2651 | 82 AC_MSG_CHECKING([how to produce PIC code]) |
388 | 83 wl= |
84 | |
85 can_build_shared=yes | |
1756 | 86 if test "$XEGCC" = yes -o "$__ICC" = yes; then |
388 | 87 wl='-Wl,' |
88 | |
89 case "$xehost_os" in | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
3773
diff
changeset
|
90 aix[[4-9]]* | irix[[5-9]]* | osf[[3-9]]) |
388 | 91 # PIC is the default for these OSes. |
92 ;; | |
93 | |
1678 | 94 *darwin*) dll_cflags='-dynamic' |
95 ;; | |
96 | |
460 | 97 os2*) |
388 | 98 # We can build DLLs from non-PIC. |
99 ;; | |
100 amigaos*) | |
101 # FIXME: we need at least 68020 code to build shared libraries, but | |
102 # adding the `-m68020' flag to GCC prevents building anything better, | |
103 # like `-m68040'. | |
104 dll_cflags='-m68020 -resident32 -malways-restore-a4' | |
105 ;; | |
442 | 106 *cygwin* | *mingw* ) |
107 # PIC is the default | |
108 ;; | |
388 | 109 *) |
110 dll_cflags='-fPIC' | |
111 ;; | |
112 esac | |
113 else | |
114 # PORTME Check for PIC flags for the system compiler. | |
115 case "$xehost_os" in | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
3773
diff
changeset
|
116 hpux1[[0-9]]*) |
388 | 117 # Is there a better link_static_flag that works with the bundled CC? |
118 wl='-Wl,' | |
119 dll_cflags='+Z' | |
120 ;; | |
121 | |
460 | 122 irix[[5-9]]*) |
388 | 123 wl='-Wl,' |
124 # PIC (with -KPIC) is the default. | |
125 ;; | |
126 | |
127 os2*) | |
128 # We can build DLLs from non-PIC. | |
129 ;; | |
130 | |
460 | 131 osf[[3-9]]*) |
388 | 132 # All OSF/1 code is PIC. |
133 wl='-Wl,' | |
134 ;; | |
135 | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
3773
diff
changeset
|
136 aix[[4-9]]*) |
460 | 137 # All AIX code is PIC. |
138 wl='-Wl,' | |
139 ;; | |
140 | |
388 | 141 sco3.2v5*) |
142 dll_cflags='-belf -Kpic' | |
143 wl='-Wl,' | |
144 ;; | |
265 | 145 |
388 | 146 unixware*) |
147 dll_cflags="-KPIC" | |
148 wl="-Wl," | |
149 ;; | |
150 | |
151 sysv4*) | |
152 dll_cflags="-KPIC" | |
153 wl="-Wl," | |
154 ;; | |
155 | |
156 sysv5*) | |
157 dll_cflags="-KPIC" | |
158 wl="-Wl," | |
159 ;; | |
160 | |
161 solaris2*) | |
162 dll_cflags='-KPIC' | |
163 wl='-Wl,' | |
164 ;; | |
165 | |
166 uts4*) | |
167 dll_cflags='-pic' | |
168 ;; | |
169 | |
170 *) | |
171 can_build_shared=no | |
172 ;; | |
173 esac | |
174 fi | |
175 | |
176 if test -n "$dll_cflags"; then | |
177 AC_MSG_RESULT([${dll_cflags}]) | |
442 | 178 |
388 | 179 # Check to make sure the dll_cflags actually works. |
180 AC_MSG_CHECKING([if PIC flag ${dll_cflags} really works]) | |
181 save_CFLAGS="$CFLAGS" | |
182 CFLAGS="$CFLAGS $dll_cflags -DPIC" | |
3312 | 183 AC_COMPILE_IFELSE([AC_LANG_SOURCE([int x=0;])],[ |
388 | 184 # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also |
185 # reports no error. So, we need to grep stderr for (Bundled). | |
186 if grep '(Bundled)' config.log >/dev/null; then | |
187 AC_MSG_RESULT(no) | |
188 can_build_shared=no | |
189 dll_cflags= | |
190 else | |
191 AC_MSG_RESULT(yes) | |
192 fi], [AC_MSG_RESULT(no) | |
193 can_build_shared=no | |
194 dll_cflags=]) | |
195 CFLAGS="$save_CFLAGS" | |
196 else | |
197 AC_MSG_RESULT(none) | |
198 fi | |
199 | |
200 dnl | |
201 dnl Now comes the LD trickery. We do things differently to libtool here. | |
202 dnl I believe that libtool is incorrect in trying to drive the linker | |
203 dnl directly. This can cause considerable problems if the module you are | |
204 dnl compiling has C++ or other static initializers. If we use ld directly, | |
442 | 205 dnl we don't end up with the crt stuff being linked in, and we don't end up |
388 | 206 dnl with any .init or .fini sections (or the moral equivalent thereof). |
442 | 207 dnl gcc takes great care to do this properly when invoked in -shared |
208 dnl mode, and we really do want this behavior. Perhaps the libtool folks | |
388 | 209 dnl are not aware that any SVR4 based dynamic loader will automatically |
210 dnl execute code in the .init section before dlopen() returns. This is | |
442 | 211 dnl vital, as the module may have been compiled to rely on that behavior. |
388 | 212 dnl |
213 dnl So, having said all of that, we diverge from libtool significantly | |
214 dnl here. We want to try and use the C compiler as much as possible. Only | |
2079 | 215 dnl if the C compiler itself cannot create shared libraries do we try to |
388 | 216 dnl find the linker. |
217 dnl | |
5384
3889ef128488
Fix misspelled words, and some grammar, across the entire source tree.
Jerry James <james@xemacs.org>
parents:
5290
diff
changeset
|
218 dnl The other advantage to my scheme is that it removes the dependency |
388 | 219 dnl on a given compiler version remaining static with relation to the |
220 dnl version of XEmacs. With the libtool way, it picks up the linker that | |
221 dnl gcc uses, which can be the internal collect2 that comes with gcc. | |
222 dnl If the user ever changes their compiler version, the paths will no | |
223 dnl longer be correct, and ellcc will break. This is clearly unacceptable. | |
442 | 224 dnl By using the compiler driver on the path, we don't have this problem. |
388 | 225 dnl If that is not clear, consider that gcc -print-prog-name=ld can |
226 dnl produce something along the lines of: | |
227 dnl /usr/local/lib/gcc-lib/OS-NAME/GCC-VERSION/ld | |
228 dnl If you ever change GCC versions, then that path no longer exists. | |
229 dnl | |
230 dnl So, we change the check order here. We first check to see if we are | |
231 dnl using GCC, and if so, we see if -shared works. If it does, great. | |
232 dnl If we are not using gcc, but the system C compiler can produce | |
233 dnl shared objects, we try that. Only if all of that fails do we revert | |
234 dnl back to the libtool ld trickery. | |
235 dnl | |
442 | 236 dnl We don't do ANY of this if we can't produce shared objects. |
388 | 237 dnl |
238 if test "$can_build_shared" = "yes"; then | |
239 cc_produces_so=no | |
240 xldf= | |
241 xcldf= | |
2651 | 242 AC_MSG_CHECKING([if C compiler can produce shared libraries]) |
1756 | 243 if test "$XEGCC" = yes -o "$__ICC" = yes; then |
1678 | 244 case "$xehost_os" in |
245 *darwin*) | |
246 xcldf='-bundle' | |
247 xldf='-bundle -bundle_loader ../../src/xemacs' | |
248 ;; | |
249 *) | |
250 xcldf="-shared" | |
251 xldf="-shared" | |
252 ;; | |
253 esac | |
388 | 254 else # Not using GCC |
255 case "$xehost_os" in | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
3773
diff
changeset
|
256 aix[[4-9]]*) |
388 | 257 xldf="-bE:ELLSONAME.exp -H512 -T512 -bhalt:4 -bM:SRE -bnoentry -lc" |
258 xcldf="${wl}-bE:ELLSONAME.exp ${wl}-H512 ${wl}-T512 ${wl}-bhalt:4 ${wl}-bM:SRE ${wl}-bnoentry ${wl}-lc" | |
259 ;; | |
260 | |
261 freebsd2* | netbsd* | openbsd*) | |
262 xldf="-Bshareable" | |
263 xcldf="${wl}-Bshareable" | |
264 ;; | |
265 | |
266 freebsd3*) | |
267 xcldf="-shared" | |
268 ;; | |
269 | |
270 hpux*) | |
271 xldf="-b +s" | |
272 xcldf="${wl}-b ${wl}+s" | |
273 ;; | |
274 | |
460 | 275 irix[[5-9]]* | osf[[3-9]]*) |
388 | 276 xcldf="${wl}-shared" |
277 xldf="-shared" | |
278 ;; | |
279 | |
280 sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7* | uts4*) | |
281 xcldf="-G" | |
282 xldf="-G" | |
283 ;; | |
284 esac | |
285 fi # End if if we are using gcc | |
265 | 286 |
388 | 287 if test -n "$xcldf"; then |
288 save_LDFLAGS=$LDFLAGS | |
289 save_LIBS=$LIBS | |
290 save_xe_libs=$xe_libs | |
291 LDFLAGS="$xcldf $LDFLAGS" | |
292 LIBS= | |
293 xe_libs= | |
3312 | 294 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AS_MESSAGE_LOG_FD' |
295 AC_LINK_IFELSE([AC_LANG_SOURCE([int x=0;])], | |
296 [cc_produces_so=yes],[cc_produces_so=no]) | |
388 | 297 LDFLAGS=$save_LDFLAGS |
298 LIBS=$save_LIBS | |
299 xe_libs=$save_xe_libs | |
3312 | 300 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AS_MESSAGE_LOG_FD' |
388 | 301 else |
302 cc_produces_so=no | |
303 fi | |
304 AC_MSG_RESULT([${cc_produces_so}]) | |
305 | |
306 LTLD=$LD | |
307 if test -z "$LTLD"; then | |
308 ac_prog=ld | |
309 if test "$XEGCC" = yes; then | |
310 # Check if gcc -print-prog-name=ld gives a path. | |
2651 | 311 AC_MSG_CHECKING([for ld used by GCC]) |
388 | 312 ac_prog=`($CC -print-prog-name=ld) 2>&5` |
313 case "$ac_prog" in | |
314 # Accept absolute paths. | |
315 /*) | |
316 if test -z "$LTLD"; then | |
724 | 317 # case "$ac_prog" in |
318 # *gcc-lib*) LTLD="$CC" | |
319 # ;; | |
320 # *) | |
321 LTLD="$ac_prog" | |
322 # ;; | |
323 # esac | |
388 | 324 fi |
325 ;; | |
326 "") | |
327 # If it fails, then pretend we aren't using GCC. | |
328 ac_prog=ld | |
329 ;; | |
330 *) | |
331 # If it is relative, then search for the first ld in PATH. | |
332 with_gnu_ld=unknown | |
333 ;; | |
334 esac | |
335 else | |
2651 | 336 AC_MSG_CHECKING([for GNU ld]) |
388 | 337 fi |
338 | |
339 if test -z "$LTLD"; then | |
340 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
341 for ac_dir in $PATH; do | |
342 test -z "$ac_dir" && ac_dir=. | |
343 if test -f "$ac_dir/$ac_prog"; then | |
344 LTLD="$ac_dir/$ac_prog" | |
345 # Check to see if the program is GNU ld. I'd rather use --version, | |
346 # but apparently some GNU ld's only accept -v. | |
347 # Break only if it was the GNU/non-GNU ld that we prefer. | |
3773 | 348 if "$LTLD" -v 2>&1 < /dev/null | $EGREP '(GNU|with BFD)' > /dev/null; then |
388 | 349 xe_gnu_ld=yes |
350 else | |
351 xe_gnu_ld=no | |
352 fi | |
353 fi | |
354 done | |
355 IFS="$ac_save_ifs" | |
356 fi | |
357 | |
358 if test -n "$LTLD"; then | |
359 AC_MSG_RESULT([${LTLD}]) | |
360 else | |
361 AC_MSG_RESULT(no) | |
362 fi | |
363 | |
364 if test -z "$LTLD" -a "$cc_produces_so" = no; then | |
365 AC_MSG_ERROR(no acceptable linker found in \$PATH) | |
366 exit 1 | |
367 fi | |
368 fi | |
369 | |
370 dnl | |
371 dnl Order of the tests changed somewhat to prevent repetition | |
372 dnl | |
373 ld_dynamic_link_flags= | |
374 | |
375 # Check to see if it really is or isn't GNU ld. | |
2651 | 376 AC_MSG_CHECKING([if the linker is GNU ld]) |
388 | 377 # I'd rather use --version here, but apparently some GNU ld's only accept -v. |
3773 | 378 if $LTLD -v 2>&1 </dev/null | $EGREP '(GNU|with BFD)' 1>&5; then |
388 | 379 xe_gnu_ld=yes |
380 else | |
381 xe_gnu_ld=no | |
382 fi | |
383 AC_MSG_RESULT([${xe_gnu_ld}]) | |
384 | |
385 case "$xehost_os" in | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
3773
diff
changeset
|
386 amigaos*) |
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
3773
diff
changeset
|
387 # On this operating system, we should treat GNU ld like the system ld. |
388 | 388 gnu_ld_acts_native=yes |
389 ;; | |
390 *) | |
391 gnu_ld_acts_native=no | |
392 ;; | |
393 esac | |
394 | |
395 if test "$cc_produces_so" = "yes"; then | |
396 dll_ld=$CC | |
1678 | 397 case "$xehost_os" in |
398 *darwin*) | |
399 dnl On Darwin, we test with xcldf, but we use xldf | |
400 dll_ldflags=$xldf | |
401 ;; | |
402 *) | |
403 dll_ldflags=$xcldf | |
404 ;; | |
405 esac | |
388 | 406 can_build_shared=yes |
442 | 407 ld_shlibs=yes |
388 | 408 else |
409 # OK - only NOW do we futz about with ld. | |
410 # See if the linker supports building shared libraries. | |
2651 | 411 AC_MSG_CHECKING([whether the linker supports shared libraries]) |
388 | 412 dll_ld=$CC |
413 dll_ldflags=$LDFLAGS | |
414 ld_shlibs=yes | |
415 can_build_shared=yes | |
416 if test "$xe_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then | |
417 # See if GNU ld supports shared libraries. | |
3773 | 418 if $LTLD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null; then |
388 | 419 dll_ld=$CC |
420 dll_ldflags="-shared" | |
421 ld_shlibs=yes | |
422 else | |
423 ld_shlibs=no | |
424 fi | |
425 else | |
426 # PORTME fill in a description of your system's linker (not GNU ld) | |
427 case "$xehost_os" in | |
460 | 428 aix[[4-9]]*) |
388 | 429 dll_ldflags=$xcldf |
430 ;; | |
431 | |
432 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor | |
433 # support. Future versions do this automatically, but an explicit c++rt0.o | |
434 # doesn't break anything, and helps significantly (at the cost of a little | |
435 # extra space). | |
436 freebsd2.2*) | |
437 dll_ld=$LTLD | |
438 dll_ldflags=$xldf | |
439 dll_post="/usr/lib/c++rt0.o" | |
440 ;; | |
441 | |
442 # Unfortunately, older versions of FreeBSD 2 don't have this feature. | |
443 freebsd2*) | |
444 dll_ld=$LTLD | |
445 dll_ldflags="-Bshareable" | |
446 ;; | |
265 | 447 |
388 | 448 # FreeBSD 3, at last, uses gcc -shared to do shared libraries. |
449 freebsd3*) | |
450 dll_ldflags="-shared" | |
451 ;; | |
452 | |
453 hpux*) | |
454 dll_ld=$LTLD | |
455 dll_ldflags=$xldf | |
456 ;; | |
457 | |
460 | 458 irix[[5-9]]*) |
388 | 459 dll_ld=$LTLD |
460 dll_ldflags=$xldf | |
461 ;; | |
462 | |
463 netbsd*) | |
464 # Tested with NetBSD 1.2 ld | |
465 dll_ld=$LTLD | |
466 dll_ldflags=$xldf | |
467 ;; | |
468 | |
469 openbsd*) | |
470 dll_ld=$LTLD | |
471 dll_ldflags=$xldf | |
472 ;; | |
473 | |
474 osf3* | osf4*) | |
475 dll_ld=$LTLD | |
476 dll_ldflags=$xldf | |
477 ;; | |
478 | |
479 # For both SCO and Solaris we MAY want to have LDFLAGS include -z text | |
480 sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7*) | |
481 dll_ld=$LTLD | |
482 case "$dll_ld" in | |
483 *gcc*) dll_ldflags="-shared" | |
484 dll_ld=$CC | |
485 ;; | |
486 *) dll_ldflags="-G" | |
487 ;; | |
488 esac | |
489 ;; | |
490 | |
491 uts4*) | |
492 dll_ld=$LTLD | |
493 dll_ldflags="-G" | |
494 ;; | |
495 | |
496 bsdi*) | |
497 dll_ldflags="-r" | |
498 dll_ld="shlicc2" | |
499 ;; | |
1470 | 500 |
388 | 501 *) |
502 ld_shlibs=no | |
503 can_build_shared=no | |
504 ;; | |
505 esac | |
506 fi | |
507 AC_MSG_RESULT([${ld_shlibs}]) | |
508 if test "$ld_shlibs" = "no"; then | |
509 can_build_shared=no | |
510 fi | |
511 fi # End of if cc_produces_so = no | |
265 | 512 |
388 | 513 dnl |
514 dnl Last thing, check how to get a linked executable to have its symbols | |
515 dnl exported, so that the modules have access to them. | |
516 dnl | |
442 | 517 dnl XEmacs FIXME - we need to set ld_dynamic_link_flags properly for |
388 | 518 dnl most of these systems, which was missing from libtool. I know they |
519 dnl all have a way of doing this, but someone needs to look at this | |
520 dnl for each OS and make sure it is correct. Remember that the arguments | |
521 dnl are passed when temacs is linked, this is NOT for modules. The sole | |
522 dnl purpose of the argument is to get the internal XEmacs symbols exposed | |
523 dnl for modules to use. This means that the COMPILER (and NOT the linker) | |
524 dnl is most often used to create temacs, so arguments to the linker will | |
525 dnl usually need to be prefix with ${wl} or some other such thing. | |
526 dnl | |
527 | |
4932 | 528 if test "$xe_gnu_ld" = yes -a "$ld_shlibs" = yes; then |
529 case "$xehost_os" in | |
530 *cygwin* | *mingw* ) | |
531 # -export-all-symbols is the PE equivalent of ELF-specific -export-dynamic | |
532 ld_dynamic_link_flags="${wl}-export-all-symbols" | |
533 ;; | |
534 | |
535 *) | |
388 | 536 ld_dynamic_link_flags="${wl}-export-dynamic" |
4932 | 537 ;; |
538 esac | |
388 | 539 fi |
540 | |
541 if test -z "$ld_dynamic_link_flags"; then | |
542 case "$xehost_os" in | |
460 | 543 aix[[3-9]]*) |
388 | 544 ld_dynamic_link_flags= |
545 ;; | |
546 | |
1678 | 547 *darwin*) |
548 ld_dynamic_link_flags= | |
549 ;; | |
550 | |
388 | 551 freebsd2.2*) |
552 ld_dynamic_link_flags= | |
553 ;; | |
554 | |
555 freebsd2*) | |
556 ld_dynamic_link_flags= | |
557 ;; | |
558 | |
559 freebsd3*) | |
560 ld_dynamic_link_flags= | |
561 ;; | |
562 | |
563 hpux*) | |
564 ld_dynamic_link_flags="${wl}-E" | |
565 ;; | |
566 | |
460 | 567 irix[[5-9]]*) |
388 | 568 ld_dynamic_link_flags= |
569 ;; | |
570 | |
571 netbsd*) | |
572 ld_dynamic_link_flags= | |
573 ;; | |
574 | |
575 openbsd*) | |
576 ld_dynamic_link_flags= | |
577 ;; | |
578 | |
579 osf3* | osf4*) | |
580 ld_dynamic_link_flags= | |
581 ;; | |
582 | |
398 | 583 solaris2* | solaris7*) |
426 | 584 ld_dynamic_link_flags= |
398 | 585 ;; |
586 | |
4759
aa5ed11f473b
Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
3773
diff
changeset
|
587 unixware* | sysv5* | sysv4*) |
388 | 588 ld_dynamic_link_flags="${wl}-Bexport" |
589 ;; | |
590 | |
591 uts4*) | |
592 ld_dynamic_link_flags= | |
593 ;; | |
594 | |
595 esac | |
596 fi # End of if -z ld_dynamic_link_flags | |
597 fi # End of if test "$can_build_shared" = "yes" | |
598 | |
265 | 599 AC_SUBST(dll_ld) |
600 AC_SUBST(dll_cflags) | |
388 | 601 AC_SUBST(dll_ldflags) |
602 AC_SUBST(dll_post) | |
603 AC_SUBST(dll_ldo) | |
604 AC_SUBST(ld_dynamic_link_flags) | |
265 | 605 ])dnl |
388 | 606 |