📄 shobj-conf
字号:
#! /bin/sh## shobj-conf -- output a series of variable assignments to be substituted# into a Makefile by configure which specify system-dependent# information for creating shared objects that may be loaded# into bash with `enable -f'## usage: shobj-conf [-C compiler] -c host_cpu -o host_os -v host_vendor## Chet Ramey# chet@po.cwru.edu# Copyright (C) 1996-2002 Free Software Foundation, Inc.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.## defaults#SHOBJ_STATUS=supportedSHLIB_STATUS=supportedSHOBJ_CC=ccSHOBJ_CFLAGS=SHOBJ_LD=SHOBJ_LDFLAGS=SHOBJ_XLDFLAGS=SHOBJ_LIBS=SHLIB_XLDFLAGS=SHLIB_LIBS=SHLIB_LIBSUFF='so'SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'PROGNAME=`basename $0`USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"while [ $# -gt 0 ]; do case "$1" in -C) shift; SHOBJ_CC="$1"; shift ;; -c) shift; host_cpu="$1"; shift ;; -o) shift; host_os="$1"; shift ;; -v) shift; host_vendor="$1"; shift ;; *) echo "$USAGE" >&2 ; exit 2;; esacdonecase "${host_os}-${SHOBJ_CC}" insunos4*-*gcc*) SHOBJ_CFLAGS=-fpic SHOBJ_LD=/usr/bin/ld SHOBJ_LDFLAGS='-assert pure-text' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ;;sunos4*) SHOBJ_CFLAGS=-pic SHOBJ_LD=/usr/bin/ld SHOBJ_LDFLAGS='-assert pure-text' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ;;sunos5*-*gcc*|solaris2*-*gcc*) SHOBJ_CFLAGS=-fpic SHOBJ_LD='${CC}' # This line works for the Solaris linker in /usr/ccs/bin/ld SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@' # This line works for the GNU ld# SHOBJ_LDFLAGS='-shared -Wl,-h,$@'# SHLIB_XLDFLAGS='-R $(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;sunos5*|solaris2*) SHOBJ_CFLAGS='-K pic' SHOBJ_LD=/usr/ccs/bin/ld SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'# SHLIB_XLDFLAGS='-R $(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;# All versions of Linux or the semi-mythical GNU Hurd.linux*|gnu*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ;;freebsd2* | netbsd*) SHOBJ_CFLAGS=-fpic SHOBJ_LD=ld SHOBJ_LDFLAGS='-x -Bshareable' SHLIB_XLDFLAGS='-R$(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ;;# FreeBSD-3.x ELFfreebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*) SHOBJ_CFLAGS=-fpic SHOBJ_LD='${CC}' if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' else SHOBJ_LDFLAGS='-shared' SHLIB_XLDFLAGS='-R$(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' fi ;;# Darwin/MacOS Xdarwin*|macosx*) SHOBJ_STATUS=unsupported SHLIB_STATUS=supported SHOBJ_CFLAGS='-dynamic -fno-common' SHOBJ_LD=/usr/bin/libtool SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)' SHLIB_LIBSUFF='dylib' SHOBJ_LDFLAGS='-dynamic' SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' SHLIB_LIBS='-lSystem' ;;openbsd*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared' SHLIB_XLDFLAGS='-R$(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ;;bsdi2*) SHOBJ_CC=shlicc2 SHOBJ_CFLAGS= SHOBJ_LD=ld SHOBJ_LDFLAGS=-r SHOBJ_LIBS=-lc_s.2.1.0 # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in # the ass -- they require changing {/usr/lib,etc}/shlib.map on # each system, and the library creation process is byzantine SHLIB_STATUS=unsupported ;;bsdi3*) SHOBJ_CC=shlicc2 SHOBJ_CFLAGS= SHOBJ_LD=ld SHOBJ_LDFLAGS=-r SHOBJ_LIBS=-lc_s.3.0.0 # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in # the ass -- they require changing {/usr/lib,etc}/shlib.map on # each system, and the library creation process is byzantine SHLIB_STATUS=unsupported ;;bsdi4*) # BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked # shared libraries. gcc 2.x is the standard compiler, and the # `normal' gcc options should work as they do in Linux. SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ;;osf*-*gcc*) # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' SHLIB_XLDFLAGS='-rpath $(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;osf*) SHOBJ_LD=ld SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"' SHLIB_XLDFLAGS='-rpath $(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com SHOBJ_CFLAGS=-fpic SHOBJ_LD='ld' SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall' SHOBJ_XLDFLAGS='-G' SHLIB_XLDFLAGS='-bM:SRE' SHLIB_LIBS='-lcurses -lc' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;aix4.[2-9]*) SHOBJ_CFLAGS=-K SHOBJ_LD='ld' SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall' SHOBJ_XLDFLAGS='-G' SHLIB_XLDFLAGS='-bM:SRE' SHLIB_LIBS='-lcurses -lc' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;## THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface#irix[56]*-*gcc*) SHOBJ_CFLAGS='-fpic' SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;irix[56]*) SHOBJ_CFLAGS='-K PIC' SHOBJ_LD=ld# SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'# Change from David Kaelbling <drk@sgi.com>. If you have problems,# remove the `-no_unresolved' SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@' SHLIB_XLDFLAGS='-rpath $(libdir)' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;hpux9*-*gcc*) # must use gcc; the bundled cc cannot compile PIC code SHOBJ_CFLAGS='-fpic' SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s' SHLIB_XLDFLAGS='-Wl,+b,$(libdir)' SHLIB_LIBSUFF='sl' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;hpux9*) SHOBJ_STATUS=unsupported SHLIB_STATUS=unsupported # If you are using the HP ANSI C compiler, you can uncomment and use # this code (I have not tested it)# SHOBJ_STATUS=supported# SHLIB_STATUS=supported## SHOBJ_CFLAGS='+z'# SHOBJ_LD='ld'# SHOBJ_LDFLAGS='-b +s'## SHLIB_XLDFLAGS='+b $(libdir)'# SHLIB_LIBSUFF='sl'# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;hpux10*-*gcc*) # must use gcc; the bundled cc cannot compile PIC code SHOBJ_CFLAGS='-fpic' SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s' SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)' SHLIB_LIBSUFF='sl' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;hpux10*) SHOBJ_STATUS=unsupported SHLIB_STATUS=unsupported # If you are using the HP ANSI C compiler, you can uncomment and use # this code (I have not tested it)# SHOBJ_STATUS=supported# SHLIB_STATUS=supported## SHOBJ_CFLAGS='+z'# SHOBJ_LD='ld'# SHOBJ_LDFLAGS='-b +s +h $@'## SHLIB_XLDFLAGS='+b $(libdir)'# SHLIB_LIBSUFF='sl'# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;hpux11*-*gcc*) # must use gcc; the bundled cc cannot compile PIC code SHOBJ_CFLAGS='-fpic' SHOBJ_LD='${CC}'# SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@' SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@' SHLIB_XLDFLAGS='-Wl,+b,$(libdir)' SHLIB_LIBSUFF='sl' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;hpux11*) SHOBJ_STATUS=unsupported SHLIB_STATUS=unsupported # If you are using the HP ANSI C compiler, you can uncomment and use # this code (I have not tested it)# SHOBJ_STATUS=supported# SHLIB_STATUS=supported## SHOBJ_CFLAGS='+z'# SHOBJ_LD='ld'# SHOBJ_LDFLAGS='-b +s +h $@'## SHLIB_XLDFLAGS='+b $(libdir)'# SHLIB_LIBSUFF='sl'# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;sysv4*-*gcc*) SHOBJ_CFLAGS=-shared SHOBJ_LDFLAGS='-shared -h $@' SHOBJ_LD='${CC}' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;sysv4*) SHOBJ_CFLAGS='-K PIC' SHOBJ_LD=ld SHOBJ_LDFLAGS='-dy -z text -G -h $@' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;sco3.2v5*-*gcc*) SHOBJ_CFLAGS='-fpic' # DEFAULTS TO ELF SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;sco3.2v5*) SHOBJ_CFLAGS='-K pic -b elf' SHOBJ_LD=ld SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;sysv5uw7*-*gcc*) SHOBJ_CFLAGS='-fpic' SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;sysv5uw7*) SHOBJ_CFLAGS='-K PIC' SHOBJ_LD=ld SHOBJ_LDFLAGS='-G -dy -z text -h $@' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;; dgux*-*gcc*) SHOBJ_CFLAGS=-fpic SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;dgux*) SHOBJ_CFLAGS='-K pic' SHOBJ_LD=ld SHOBJ_LDFLAGS='-G -dy -h $@' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;msdos*) SHOBJ_STATUS=unsupported SHLIB_STATUS=unsupported ;;## Rely on correct gcc configuration for everything else#*-*gcc*) SHOBJ_CFLAGS=-fpic SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;;*) SHOBJ_STATUS=unsupported SHLIB_STATUS=unsupported ;;esacecho SHOBJ_CC=\'"$SHOBJ_CC"\'echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'echo SHOBJ_LD=\'"$SHOBJ_LD"\'echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'exit 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -