1#! /bin/sh 2# $Id: config.sh,v 1.4 2006-10-06 05:28:42 dhmunro Exp $ 3 4debug=no 5 6echo "" 7echo " ============= begin play/unix configuration =============" 8echo "" 9 10rm -f cfg* config.h 11 12curdate=`date` 13cursystem=`uname -a` 14fatality=0 15cat >config.h <<EOF 16/* config.h used during config.sh script */ 17#ifndef CONFIG_SCRIPT 18# error destroy this config.h and rerun configure script 19#endif 20EOF 21cat >config.0h <<EOF 22/* config.h from config.sh script $curdate 23 * $cursystem 24 * always empty -- see D_... defines in Make.cfg 25 */ 26EOF 27# should LD_LIBRARY_PATH, LIBPATH (AIX), LPATH, SHLIB_PATH (HPUX) be saved? 28 29commonargs="-DCONFIG_SCRIPT $CFLAGS -I. -I.. $LDFLAGS -o cfg config.c" 30 31# find CPU time function (getrusage is best if present) 32args="-DTEST_UTIME $commonargs" 33if $CC -DUSE_GETRUSAGE $args >cfg.01a 2>&1; then 34 echo "using getrusage() (CPU timer)" 35 echo "D_TIMEU=-DUSE_GETRUSAGE" >>../../Make.cfg 36elif $CC -DUSE_TIMES $args >cfg.01b 2>&1; then 37 echo "using times() (CPU timer)" 38 echo "D_TIMEU=-DUSE_TIMES" >>../../Make.cfg 39 if test $debug = no; then rm -f cfg.01a; fi 40elif $CC $args >cfg.01c 2>&1; then 41 echo "fallback to clock(), getrusage() and times() missing (CPU timer)" 42 echo "D_TIMEU=" >>../../Make.cfg 43else 44 echo "FATAL getrusage(), times(), and clock() all missing (timeu.c)" 45 fatality=1 46fi 47 48# find wall time function (gettimeofday is best if present) 49args="-DTEST_WTIME $commonargs" 50if $CC -DUSE_GETTIMEOFDAY $args >cfg.02a 2>&1; then 51 echo "using gettimeofday() (wall timer)" 52 echo "D_TIMEW=-DUSE_GETTIMEOFDAY" >>../../Make.cfg 53elif $CC $args >cfg.02b 2>&1; then 54 echo "fallback to time()+difftime(), gettimeofday() missing (wall timer)" 55 echo "D_TIMEW=" >>../../Make.cfg 56else 57 echo "FATAL gettimeofday(), and time() or difftime() missing (timew.c)" 58 fatality=1 59fi 60 61# find function to get user name 62if test -z "$NO_PASSWD"; then 63 args="-DTEST_USERNM $commonargs" 64 if $CC $args >cfg.03a 2>&1; then 65 echo "using POSIX getlogin(), getpwuid(), getuid() functions" 66 echo "D_USERNM=" >>../../Make.cfg 67 elif $CC -DNO_PASSWD $args >cfg.03b 2>&1; then 68 echo "fallback to cuserid(), POSIX getlogin() family missing" 69 echo "D_USERNM=-DNO_PASSWD" >>../../Make.cfg 70 else 71 echo "FATAL cuserid(), POSIX getlogin() family both missing (usernm.c)" 72 fatality=1 73 fi 74else 75 if test -z "$NO_CUSERID"; then 76 echo "using cuserid(), POSIX getlogin() family missing" 77 echo "D_USERNM=-DNO_PASSWD" >>../../Make.cfg 78 else 79 echo "using getenv(LOGNAME), cuserid(), POSIX getlogin() family missing" 80 echo "D_USERNM=-DNO_PASSWD -DNO_CUSERID" >>../../Make.cfg 81 fi 82fi 83 84# find function to get controlling terminal process group 85if test -z "$NO_PROCS"; then 86args="-DTEST_TIOCGPGRP $commonargs" 87cargs="-DTEST_TIOCGPGRP -DCONFIG_SCRIPT $CFLAGS -I. -I.. $LDFLAGS -c config.c" 88if $CC $cargs >cfg.04a 2>&1; then 89 : 90 echo "D_UINBG1=" >>../../Make.cfg 91elif $CC -DUSE_POSIX_GETPGRP $cargs >cfg.04a 2>&1; then 92 echo "using strict POSIX getpgrp prototype" 93 args="-DUSE_POSIX_GETPGRP -DTEST_TIOCGPGRP $commonargs" 94 echo "D_UINBG1=-DUSE_POSIX_GETPGRP" >>../../Make.cfg 95fi 96if $CC $args >cfg.04a 2>&1; then 97 echo "using POSIX tcgetpgrp() function" 98 echo "D_UINBG2=" >>../../Make.cfg 99elif $CC '-DUSE_TIOCGPGRP_IOCTL=<sys/termios.h>' $args >cfg.04b 2>&1; then 100 echo "fallback to TIOCGPGRP in sys/termios.h, POSIX tcgetpgrp() missing" 101 echo "D_UINBG2=-DUSE_TIOCGPGRP_IOCTL=<sys/termios.h>" >>../../Make.cfg 102elif $CC '-DUSE_TIOCGPGRP_IOCTL=<sgtty.h>' $args >cfg.04c 2>&1; then 103 echo "fallback to TIOCGPGRP in sgtty.h, POSIX tcgetpgrp() missing" 104 echo "D_UINBG2=-DUSE_TIOCGPGRP_IOCTL='<sgtty.h>'" >>../../Make.cfg 105 if test $debug = no; then rm -f cfg.04b; fi 106else 107 echo "FATAL unable to find TIOCGPGRP ioctl header (uinbg.c)" 108 fatality=1 109fi 110 echo "D_NO_PROCS=" >>../../Make.cfg 111else 112 echo "using no processes, tcgetpgrp(), popen(), system() missing" 113 echo "D_UINBG1=-DNO_PROCS" >>../../Make.cfg 114 echo "D_UINBG2=" >>../../Make.cfg 115 echo "D_NO_PROCS=-DNO_PROCS" >>../../Make.cfg 116fi 117 118# find function to get current working directory 119args="-DTEST_GETCWD $commonargs" 120if $CC $args >cfg.05a 2>&1; then 121 echo "using POSIX getcwd() function" 122 echo "D_DIR1=" >>../../Make.cfg 123elif $CC -DUSE_GETWD $args >cfg.05b 2>&1; then 124 echo "fallback to getwd(), POSIX getcwd() missing" 125 echo "D_DIR1=-DUSE_GETWD" >>../../Make.cfg 126else 127 echo "FATAL getcwd(), getwd() both missing (dir.c)" 128 fatality=1 129fi 130 131# find headers required to read directories 132args="-DTEST_DIRENT $commonargs" 133if $CC $args >cfg.06a 2>&1; then 134 echo "using POSIX dirent.h header for directory ops" 135 echo "D_DIR2=" >>../../Make.cfg 136elif $CC '-DDIRENT_HEADER=<sys/dir.h>' $args >cfg.06b 2>&1; then 137 echo "using sys/dir.h header for directory ops" 138 echo "D_DIR2=-DDIRENT_HEADER=<sys/dir.h>" >>../../Make.cfg 139 if test $debug = no; then rm -f cfg.06a; fi 140elif $CC '-DDIRENT_HEADER=<sys/ndir.h>' $args >cfg.06c 2>&1; then 141 echo "using sys/ndir.h header for directory ops" 142 echo "D_DIR2=-DDIRENT_HEADER=<sys/ndir.h>" >>../../Make.cfg 143 if test $debug = no; then rm -f cfg.06a cfg.06b; fi 144elif $CC '-DDIRENT_HEADER=<ndir.h>' $args >cfg.06d 2>&1; then 145 echo "using ndir.h header for directory ops" 146 echo "D_DIR2=-DDIRENT_HEADER=<ndir.h>" >>../../Make.cfg 147 if test $debug = no; then rm -f cfg.06a cfg.06b cfg.06c; fi 148else 149 echo "FATAL dirent.h, sys/dir.h, sys/ndir.h, ndir.h all missing (dir.c)" 150 fatality=1 151fi 152 153# find headers and functions required for poll/select functionality 154# NO_PROCS=yes produces crippled yorick that blocks waiting for stdin 155# NO_POLL=yes forces use of select(), otherwise poll() used if found 156if test -z "$NO_PROCS"; then 157 if test -x /usr/bin/sw_vers; then 158 # Mac OS X 10.4 poll() is broken, but select() works 159 swv="`/usr/bin/sw_vers -productVersion`" 160 case "$swv" in 161 # 10.4*) NO_POLL=yes ;; 162 # even though poll works before 10.4, want yorick built on 163 # 10.3 system to be able to run on a 10.4 system! 164 10.*) NO_POLL=yes ;; 165 esac 166 fi 167 if test -z "$NO_POLL"; then 168 args="-DTEST_POLL $commonargs" 169 if $CC $args >cfg.07a 2>&1; then 170 echo "using poll(), poll.h header" 171 echo "D_UEVENT=" >>../../Make.cfg 172 elif $CC -DUSE_SYS_POLL_H $args >cfg.07b 2>&1; then 173 echo "using poll(), sys/poll.h header" 174 echo "D_UEVENT=-DUSE_SYS_POLL_H" >>../../Make.cfg 175 if test $debug = no; then rm -f cfg.07a; fi 176 else 177 NO_POLL=yes 178 fi 179 fi 180 if test -n "$NO_POLL"; then 181 maxdefs="-DUSE_SELECT -DNO_SYS_TIME_H -DNEED_SELECT_PROTO" 182 if $CC -DUSE_SELECT -DHAVE_SYS_SELECT_H $args >cfg.07c 2>&1; then 183 echo "using select(), sys/select.h header" 184 echo "D_UEVENT=-DUSE_SELECT -DHAVE_SYS_SELECT_H" >>../../Make.cfg 185 if test $debug = no; then rm -f cfg.07a cfg.07b; fi 186 elif $CC -DUSE_SELECT -DNEED_SELECT_PROTO $args >cfg.07d 2>&1; then 187 echo "using select(), sys/time.h, sys/types.h headers" 188 echo "D_UEVENT=-DUSE_SELECT -DNEED_SELECT_PROTO" >>../../Make.cfg 189 if test $debug = no; then rm -f cfg.07[a-c]; fi 190 elif $CC $maxdefs $args >cfg.07e 2>&1; then 191 echo "using select(), time.h, sys/types.h headers" 192 echo "D_UEVENT=$maxdefs" >>../../Make.cfg 193 if test $debug = no; then rm -f cfg.07[a-d]; fi 194 elif $CC -DUSE_SELECT $args >cfg.07f 2>&1; then 195 echo "using select(), sys/time.h header" 196 echo "D_UEVENT=-DUSE_SELECT" >>../../Make.cfg 197 if test $debug = no; then rm -f cfg.07[a-e]; fi 198 elif $CC -DUSE_SELECT -DNO_SYS_TIME_H $args >cfg.07g 2>&1; then 199 echo "using select(), time.h header" 200 echo "D_UEVENT=-DUSE_SELECT -DNO_SYS_TIME_H" >>../../Make.cfg 201 if test $debug = no; then rm -f cfg.07[a-f]; fi 202 else 203 echo "FATAL neither poll() nor select() usable? (uevent.c, upoll.c)" 204 fatality=1 205 fi 206 fi 207else 208# NO_PROCS is not really related to NO_POLLING, but is intended for 209# the catamount parallel kernel, which is missing both process 210# fork and select/poll 211 echo "missing poll() and select(), using blocking stdin" 212 echo "D_UEVENT=-DUSE_SELECT -DNO_POLLING" >>../../Make.cfg 213fi 214 215if test -z "$NO_SOCKETS"; then 216 args="-DTEST_SOCKETS $commonargs" 217 if $CC $args >cfg.10 2>&1; then 218 echo "using BSD sockets" 219 echo "D_NO_SOCKETS=" >>../../Make.cfg 220 if test $debug = no; then rm -f cfg.10; fi 221 else 222 echo "missing BSD sockets, socket interface disabled" 223 echo "D_NO_SOCKETS=-DNO_SOCKETS" >>../../Make.cfg 224 fi 225else 226 echo "skipping sockets, socket interface disabled" 227 echo "D_NO_SOCKETS=-DNO_SOCKETS" >>../../Make.cfg 228fi 229 230#---------------------------------------------------------------------- 231# try to figure out how to get SIGFPE delivered 232#---------------------------------------------------------------------- 233args="-DCONFIG_SCRIPT $CFLAGS -I. -I.. $LDFLAGS -o fputest fputest.c" 234fpedef= 235fpelib= 236fpelibm= 237if test -n "$FPU_IGNORE"; then 238 fpedef= 239elif $CC -DFPU_DIGITAL $args >cfg.08 2>&1; then 240 echo "using FPU_DIGITAL (SIGFPE delivery)" 241 fpedef=-DFPU_DIGITAL 242elif $CC -DFPU_AIX $args >cfg.08 2>&1; then 243 echo "using FPU_AIX (SIGFPE delivery)" 244 fpedef=-DFPU_AIX 245elif $CC -DFPU_HPUX $args $MATHLIB >cfg.08 2>&1; then 246 echo "using FPU_HPUX (SIGFPE delivery)" 247 fpedef=-DFPU_HPUX 248 fpelibm=$MATHLIB 249elif $CC -DFPU_SOLARIS $args >cfg.08 2>&1; then 250 echo "using FPU_SOLARIS (SIGFPE delivery)" 251 fpedef=-DFPU_SOLARIS 252 # note this works under IRIX 6.3, while FPU_IRIX does not?? 253elif $CC -DFPU_SUN4 $args $MATHLIB >cfg.08 2>&1; then 254 echo "using FPU_SUN4 (-lm) (SIGFPE delivery)" 255 fpedef=-DFPU_SUN4 256 fpelibm=$MATHLIB 257elif $CC -DFPU_SUN4 $args -lsunmath >cfg.08 2>&1; then 258 echo "using FPU_SUN4 (-lsunmath) (SIGFPE delivery)" 259 fpedef=-DFPU_SUN4 260 fpelib=-lsunmath 261elif $CC -DFPU_IRIX $args -lfpe >cfg.08 2>&1; then 262 # FPU_SOLARIS seems to work better?? 263 echo "using FPU_IRIX (SIGFPE delivery)" 264 fpedef=-DFPU_IRIX 265 fpelib=-lfpe 266elif $CC -DFPU_IRIX $args >cfg.08 2>&1; then 267 echo "using FPU_IRIX (SIGFPE delivery), but no libfpe??" 268 fpedef=-DFPU_IRIX 269elif $CC -DFPU_GCC_X86_64 $args >cfg.08 2>&1; then 270 echo "using FPU_GCC_X86_64 (SIGFPE delivery)" 271 fpedef=-DFPU_GCC_X86_64 272elif $CC -DFPU_GCC_X86 $args >cfg.08 2>&1; then 273 echo "using FPU_GCC_X86 (SIGFPE delivery)" 274 fpedef=-DFPU_GCC_X86 275elif $CC -DFPU_MACOSX $args >cfg.08 2>&1; then 276 echo "using FPU_MACOSX (SIGFPE delivery)" 277 fpedef=-DFPU_MACOSX 278elif $CC -DFPU_GNU_FENV $args $MATHLIB >cfg.08 2>&1; then 279 echo "using FPU_GNU_FENV (SIGFPE delivery)" 280 fpedef=-DFPU_GNU_FENV 281 fpelibm=$MATHLIB 282elif $CC -DFPU_UNICOS $args $MATHLIB >cfg.08 2>&1; then 283 echo "using FPU_UNICOS (SIGFPE delivery)" 284 fpedef=-DFPU_UNICOS 285 fpelibm=$MATHLIB 286elif $CC -DTEST_GCC $commonargs >cfg.08 2>&1; then 287 if $CC -DFPU_ALPHA_LINUX $args >cfg.08 2>&1; then 288 echo "using FPU_ALPHA_LINUX (SIGFPE delivery)" 289 fpedef=-DFPU_ALPHA_LINUX 290 echo "...libm may be broken -- read play/unix/README.fpu for more" 291 echo "...fputest failure may not mean that yorick itself is broken" 292 # CC="$CC -mfp-trap-mode=su -mtrap-precision=i" 293 elif $CC -DFPU_GCC_I86 $args >cfg.08 2>&1; then 294 echo "using FPU_GCC_I86 (SIGFPE delivery)" 295 fpedef=-DFPU_GCC_I86 296 elif $CC -DFPU_GCC_SPARC $args >cfg.08 2>&1; then 297 echo "using FPU_GCC_SPARC (SIGFPE delivery)" 298 fpedef=-DFPU_GCC_SPARC 299 elif $CC -DFPU_GCC_M68K $args >cfg.08 2>&1; then 300 echo "using FPU_GCC_M68K (SIGFPE delivery)" 301 fpedef=-DFPU_GCC_M68K 302 elif $CC -DFPU_GCC_POWERPC $args >cfg.08 2>&1; then 303 echo "using FPU_GCC_POWERPC (SIGFPE delivery)" 304 fpedef=-DFPU_GCC_POWERPC 305 elif $CC -DFPU_GCC_ARM $args >cfg.08 2>&1; then 306 echo "using FPU_GCC_ARM (SIGFPE delivery)" 307 fpedef=-DFPU_GCC_ARM 308 fi 309fi 310if test -z "$fpedef"; then 311 if $CC -DFPU_IGNORE $args $MATHLIB >cfg.08 2>&1; then 312 echo "using FPU_IGNORE (SIGFPE delivery)" 313 fpedef=-DFPU_IGNORE 314 else 315 echo "FATAL unable to build SIGFPE fputest? (fputest.c, fpuset.c)" 316 fatality=1 317 fi 318fi 319echo "D_FPUSET=$fpedef" >>../../Make.cfg 320if test -z "$fpelib"; then 321 echo "FPELIB=" >>../../Make.cfg 322else 323 echo "FPELIB=$fpelib" >>../../Make.cfg 324fi 325if test -z "$fpelibm"; then 326 echo "FPELIBM=" >>../../Make.cfg 327else 328 echo "FPELIBM=$fpelibm" >>../../Make.cfg 329fi 330if test -n "$fpedef"; then 331 # on IRIX be sure that TRAP_FPE environment variable is turned off 332 unset TRAP_FPE 333 if ./fputest; then 334 : 335 else 336 echo "" 337 echo "*************************WARNING***************************" 338 echo "*** play/unix configuration failed to get SIGFPE delivered" 339 echo "*** read the notes in play/unix/README.fpu" 340 echo "*************************WARNING***************************" 341 echo "" 342 fi 343fi 344rm -f fputest 345 346# check if fenv.h present 347softfpe= 348args="-DTEST_FENV_H $commonargs" 349if $CC $args $MATHLIB >cfg.11 2>&1; then 350 echo "found fenv.h header" 351 echo "D_HAS_FENV_H=-DHAS_FENV_H" >>../../Make.cfg 352 if test "$fpedef" = "-DFPU_IGNORE"; then 353 echo "...activating software SIGFPE support" 354 softfpe=-DUSE_SOFTFPE 355 fi 356 if test $debug = no; then rm -f cfg.11; fi 357else 358 echo "WARNING fenv.h missing, no floating point environment control" 359 echo "D_HAS_FENV_H=" >>../../Make.cfg 360fi 361echo "D_USE_SOFTFPE=$softfpe" >>../../Make.cfg 362 363#---------------------------------------------------------------------- 364# try to figure out how dynamic linking for plugins works 365#---------------------------------------------------------------------- 366 367PLUG_DEF="" 368os_name=`(uname -s) 2>/dev/null` || os_name=unknown 369case "$os_name" in 370 AIX) # IBM RS/6000 (powerpc) architecture 371 # no such thing as non-PIC so no PLUG_PIC flag 372 # -bexpall fails for symbols beginning with _ <--WARNING 373 PLUG_UDL=-DPLUG_LIBDL 374 PLUG_EXPORT='-Wl,-bexpall,-brtl' 375 PLUG_LIB= 376 PLUG_PIC= 377 PLUG_SHARED=-G 378 PLUG_SFX=.so 379 ;; 380 IRIX*) # SGI MIPS architecture 381 # PLUG_EXPORT with -Wl,-hidden_symbol ?? 382 PLUG_UDL=-DPLUG_LIBDL 383 PLUG_EXPORT= 384 PLUG_LIB= 385 PLUG_PIC= 386 PLUG_SHARED=-shared 387 PLUG_SFX=.so 388 ;; 389 SunOS) # Sun SPARC architecture 390 PLUG_UDL=-DPLUG_LIBDL 391 PLUG_EXPORT= 392 PLUG_LIB= 393 PLUG_PIC=-KPIC 394 PLUG_SHARED="-KPIC -G" 395 PLUG_SFX=.so 396 ;; 397 OSF1) # DEC/Compaq/HP alpha architecture 398 # PLUG_EXPORT with -Wl,-non_hidden ?? 399 PLUG_UDL=-DPLUG_LIBDL 400 PLUG_EXPORT= 401 PLUG_LIB= 402 PLUG_PIC= 403 PLUG_SHARED="-shared -Wl,-expect_unresolved,*" 404 PLUG_SFX=.so 405 ;; 406 HP-UX) # HP PA-RISC architecture 407 PLUG_UDL=-DPLUG_HPUX 408 PLUG_EXPORT=-Wl,-E 409 PLUG_LIB=-ldld 410 PLUG_PIC=+Z 411 PLUG_SHARED=-n 412 PLUG_SFX=.sl 413 ;; 414 Darwin) # Apple MacOS X powerpc architecture (ignore i86 versions?) 415 # for Mac OS X 10.3 and earlier, use -DPLUG_MACOSX 416 # see https://developer.apple.com/library/mac/#qa/qa1180/_index.html 417 PLUG_UDL=-DPLUG_LIBDL 418 PLUG_EXPORT= 419 PLUG_LIB= 420 PLUG_PIC= 421 PLUG_SHARED="-bundle -bundle_loader ./cfg" 422 PLUG_SFX=.so 423 ;; 424 CYGWIN*) # CygWin i86 UNIX environment for MS Windows 425 PLUG_UDL=-DPLUG_LIBDL 426 PLUG_EXPORT= 427 PLUG_LIB= 428 PLUG_PIC=-DPLUG_IN 429 PLUG_SHARED=-shared 430 PLUG_SFX=.dll 431 PLUG_DEF=cygyor.def 432 ;; 433 *) # Linux, Free/Net/OpenBSD i86 architecture 434 # these are generic GNU/gcc values, also work for Intel/icc 435 PLUG_UDL=-DPLUG_LIBDL 436 PLUG_EXPORT=-Wl,-E 437 PLUG_LIB= 438 PLUG_PIC=-fPIC 439 PLUG_SHARED="-fPIC -shared" 440 PLUG_SFX=.so 441 ;; 442esac 443 444# command to link plugin 445LD_PLUGIN="$CC $CFLAGS $LDFLAGS $PLUG_SHARED" 446 447# no compiler switch to make Mac OS X .dylib 448# need special env var to be able to call things in loading program 449# none of this is necessary with -bundle instead of .dylib 450# Makefile needs two lines to link with either CC or libtool 451#PLUG_UNIX="" 452#PLUG_OSX=":" 453# export MACOSX_DEPLOYMENT_TARGET 454# MACOSX_DEPLOYMENT_TARGET=10.3 455# LD_PLUGIN="libtool -dynamic $PLUG_SHARED" 456# PLUG_UNIX=":" 457# PLUG_OSX='MACOSX_DEPLOYMENT_TARGET=10.3 libtool -dynamic $(PLUG_SHARED)' 458 459# find functions to do dynamic linking for plugins 460# first check that TEST_PLUG branch of config.c/udltest.c compiles and loads 461# this checks PLUG_UDL, PLUG_EXPORT, and PLUG_LIB settings 462dl_works=no 463if test -z "$NO_PLUGINS"; then 464args="$CFLAGS $PLUG_EXPORT $PLUG_UDL -I. $LDFLAGS -o cfg config.c" 465if $CC -DTEST_PLUG $args $PLUG_LIB >cfg.09 2>&1; then 466 # next check that PLUG_PIC flag works, so can build shareable object code 467 args="$CFLAGS $PLUG_PIC" 468 if $CC -DTEST_SHARED $args -c udltest.c >cfg.09a 2>&1; then 469 # next check that PLUG_SHARED flag works, so can build dynamic libraries 470 if $LD_PLUGIN -o udltest$PLUG_SFX $PLUG_DEF udltest.o >cfg.09b 2>&1; then 471 # finally check that dynamically linked main program runs 472 if ./cfg; then 473 echo "configured plugins for $os_name" 474 dl_works=yes 475 else 476 echo "*** WARNING *** no plugins - shared lib run failed" 477 fi 478 else 479 echo "*** WARNING *** no plugins - shared lib link failed" 480 fi 481 rm -f udltest$PLUG_SFX 482 else 483 echo "*** WARNING *** no plugins - shared object compile failed" 484 fi 485 rm -f udltest.o 486 487else 488 echo "*** WARNING *** no plugins - dynamic linking main failed to build" 489fi 490fi 491 492ALT_LIBS= 493IF_TGT='$(IF_DLL)' 494if test $dl_works = no; then 495 PLUG_UDL=-DPLUG_UNSUPPORTED 496 PLUG_EXPORT= 497 PLUG_LIB= 498 PLUG_PIC= 499 PLUG_SHARED= 500 PLUG_DEF= 501 echo "DEFAULT_TGT=exe" >>../../Make.cfg 502 ALT_LIBS='$(DIST_LIBS)' 503 IF_TGT='$(IF_EXE)' 504else 505 case "$os_name" in 506 AIX) 507 PLUG_EXPORT='-Wl,-bE:$(Y_LIBEXE)/yorapi.def,-brtl' 508 ;; 509 OSF1) 510 # fix quoting to account for difference between make and sh variable 511 PLUG_SHARED="-shared -Wl,-expect_unresolved,'*'" 512 rm -f so_locations 513 ;; 514 Darwin) 515 # fix exe name for Makefiles 516 PLUG_SHARED='-bundle -bundle_loader $(Y_EXE)' 517 ;; 518 esac 519 echo "DEFAULT_TGT=dll" >>../../Make.cfg 520fi 521if test "$LD_STATIC" = yes; then 522 ALT_LIBS='$(DIST_LIBS)' 523 IF_TGT='$(IF_EXE)' 524 echo "DISTRIB_TGT=exe" >>../../Make.cfg 525else 526 echo 'DISTRIB_TGT=$(DEFAULT_TGT)' >>../../Make.cfg 527fi 528echo "ALT_LIBS=$ALT_LIBS" >>../../Make.cfg 529echo "IF_TGT=$IF_TGT" >>../../Make.cfg 530 531echo "PLUG_UDL=$PLUG_UDL" >>../../Make.cfg 532echo "PLUG_EXPORT=$PLUG_EXPORT" >>../../Make.cfg 533echo "PLUG_LIB=$PLUG_LIB" >>../../Make.cfg 534echo "PLUG_PIC=$PLUG_PIC" >>../../Make.cfg 535echo "PLUG_SHARED=$PLUG_SHARED" >>../../Make.cfg 536echo "PLUG_SFX=$PLUG_SFX" >>../../Make.cfg 537echo "PLUG_DEF=$PLUG_DEF" >>../../Make.cfg 538 539#---------------------------------------------------------------------- 540 541# clean up, issue warning if compiler gave fishy output 542rm -f config.h config.o cfg cfg.c cfg.o 543for f in cfg.[0-9]*; do 544 if grep ... $f >/dev/null 2>&1; then # or use test -s $f ? 545 echo "WARNING - check compiler message in $f" 546 else # remove empty files 547 rm -f $f 548 fi 549done 550 551if test $fatality = 1; then 552 echo "*** at least one play/unix component could not be configured" 553 echo "*** see configuration notes in play/unix/README.cfg" 554else 555 mv config.0h config.h 556 echo "wrote config.h, ../../Make.cfg" 557fi 558 559echo "" 560echo " ============== end play/unix configuration ==============" 561exit $fatality 562