Revert patch to build versioned .so files

Inhibit building shared libraries
Add linker scripts to include PIC static libraries in the link if dynamic
 linking is desired. This is slightly suboptimal when linking applications,
 but it is better to err on the side of caution here.
This commit is contained in:
srichter 2006-10-18 02:58:24 +00:00
parent d965a85322
commit 9a4e9451c4
6 changed files with 90 additions and 61 deletions

View File

@ -1,53 +1,62 @@
SOMAJOR=0
SOMINOR=0.0
SOVERSION=$(SOMAJOR).$(SOMINOR)
CC = gcc
AR = ar
RANLIB = ranlib
all: libisdnnet.a libisdnnet.so.$(SOVERSION)
all: libisdnnet.a libisdnnet_pic.a libisdnnet.so
install:
install -m 755 libisdnnet.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)
ln -sf libisdnnet.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)/libisdnnet.so.$(SOMAJOR)
ln -sf libisdnnet.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)/libisdnnet.so
install -m 644 libisdnnet.a $(INSTALL_PREFIX)/$(LIBDIR)
install -m 644 libisdnnet.a $(INSTALL_PREFIX)/usr/lib
install -m 644 libisdnnet_pic.a $(INSTALL_PREFIX)/usr/lib
install -m 644 libisdnnet.so $(INSTALL_PREFIX)/usr/lib
cp *.h $(INSTALL_PREFIX)/usr/include/mISDNuser/
ISDNNETOBJ = net_if.o isdn_debug.o isdn_msg.o fsm.o net_l2.o tei.o net_l3.o \
ISDNNET_OBJ = net_if.o isdn_debug.o isdn_msg.o fsm.o net_l2.o tei.o net_l3.o \
manager.o tone.o bchannel.o g711.o
ISDNNET_PICOBJ = $(ISDNNET_OBJ:%.o=%.lo)
libisdnnet.so.$(SOVERSION): $(ISDNNETOBJ)
$(CC) -shared -Xlinker -x -Wl,-soname,libisdnnet.so.$(SOMAJOR) -o $@ $^
libisdnnet_pic.a: $(ISDNNET_PICOBJ)
$(AR) cru $@ $^
$(RANLIB) $@
libisdnnet.a: $(ISDNNETOBJ)
ar cr $@ $^
ar s $@
libisdnnet.a: $(ISDNNET_OBJ)
$(AR) cru $@ $^
$(RANLIB) $@
isdn_msg.o : isdn_msg.c $(INCLUDEDIR)/isdn_msg.h $(INCLUDEDIR)/isdn_net.h
.c.o:
$(CC) $(CFLAGS) -o $@ -c $<
isdn_debug.o : isdn_debug.c $(INCLUDEDIR)/isdn_debug.h
.c.lo:
$(CC) $(CFLAGS) -fPIC -o $@ -c $<
net_l2.o : net_l2.c net_l2.h $(INCLUDEDIR)/isdn_net.h fsm.h
isdn_msg.o isdn_msg.lo: isdn_msg.c $(INCLUDEDIR)/isdn_msg.h $(INCLUDEDIR)/isdn_net.h
fsm.o : fsm.c fsm.h $(INCLUDEDIR)/isdn_net.h
isdn_debug.o isdn_debug.lo: isdn_debug.c $(INCLUDEDIR)/isdn_debug.h
tei.o : tei.c net_l2.h $(INCLUDEDIR)/isdn_net.h
net_l2.o net_l2.lo: net_l2.c net_l2.h $(INCLUDEDIR)/isdn_net.h fsm.h
net_l3.o : net_l3.c $(INCLUDEDIR)/isdn_net.h net_l3.h
fsm.o fsm.lo: fsm.c fsm.h $(INCLUDEDIR)/isdn_net.h
manager.o : manager.c $(INCLUDEDIR)/isdn_net.h $(INCLUDEDIR)/bchannel.h
tei.o tei.lo: tei.c net_l2.h $(INCLUDEDIR)/isdn_net.h
net_if.o : net_if.c $(INCLUDEDIR)/isdn_net.h
net_l3.o net_l3.lo: net_l3.c $(INCLUDEDIR)/isdn_net.h net_l3.h
tone.o: tone.c $(INCLUDEDIR)/tone.h $(INCLUDEDIR)/bchannel.h \
manager.o manager.lo: manager.c $(INCLUDEDIR)/isdn_net.h $(INCLUDEDIR)/bchannel.h
net_if.o net_if.lo: net_if.c $(INCLUDEDIR)/isdn_net.h
tone.o tone.lo: tone.c $(INCLUDEDIR)/tone.h $(INCLUDEDIR)/bchannel.h \
$(INCLUDEDIR)/isdn_net.h $(INCLUDEDIR)/ibuffer.h
bchannel.o: bchannel.c $(INCLUDEDIR)/isdn_net.h $(INCLUDEDIR)/tone.h \
bchannel.o bchannel.lo: bchannel.c $(INCLUDEDIR)/isdn_net.h $(INCLUDEDIR)/tone.h \
$(INCLUDEDIR)/bchannel.h net_l3.h $(INCLUDEDIR)/ibuffer.h
g711.o: g711.c $(INCLUDEDIR)/g711.h
g711.o g711.lo: g711.c $(INCLUDEDIR)/g711.h
clean:
rm -f *.o *~ DEADJOE
rm -f libisdnnet.a
rm -f *.o *.lo *~ DEADJOE
rm -f libisdnnet.a libisdnnet_pic.a
distclean: clean
rm -f *.a
.SUFFIXES: .lo

1
i4lnet/libisdnnet.so Normal file
View File

@ -0,0 +1 @@
INPUT(libisdnnet_pic.a libmISDN_pic.a)

View File

@ -1,33 +1,41 @@
SOMAJOR=0
SOMINOR=0.0
SOVERSION=$(SOMAJOR).$(SOMINOR)
CC = gcc
AR = ar
RANLIB = ranlib
all: libmISDN.a libmISDN.so.$(SOVERSION)
all: libmISDN.a libmISDN_pic.a libmISDN.so
install:
install -m 755 libmISDN.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)
ln -sf libmISDN.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)/libmISDN.so.$(SOMAJOR)
ln -sf libmISDN.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)/libmISDN.so
install -m 644 libmISDN.a $(INSTALL_PREFIX)/$(LIBDIR)
install -m 644 libmISDN.so $(INSTALL_PREFIX)/usr/lib
install -m 644 libmISDN_pic.a $(INSTALL_PREFIX)/usr/lib
install -m 644 libmISDN.a $(INSTALL_PREFIX)/usr/lib
LIBMISDN_OBJS = device.o layer.o stack.o status.o
LIBMISDN_PICOBJS = $(LIBMISDN_OBJS:%.o=%.lo)
libmISDN.so.$(SOVERSION): $(LIBMISDN_OBJS)
$(CC) -shared -Xlinker -x -Wl,-soname,libmISDN.so.$(SOMAJOR) -o $@ $^
libmISDN_pic.a: $(LIBMISDN_PICOBJS)
$(AR) cru $@ $^
$(RANLIB) $@
libmISDN.a: $(LIBMISDN_OBJS)
ar cr $@ $^
ar s $@
$(AR) cru $@ $^
$(RANLIB) $@
device.o : device.c ../include/mISDNlib.h
layer.o : layer.c ../include/mISDNlib.h
stack.o : stack.c ../include/mISDNlib.h
status.o : status.c ../include/mISDNlib.h
.c.o:
$(CC) $(CFLAGS) -o $@ -c $<
.c.lo:
$(CC) $(CFLAGS) -fPIC -o $@ -c $<
device.o device.lo: device.c ../include/mISDNlib.h
layer.o layer.lo: layer.c ../include/mISDNlib.h
stack.o stack.lo: stack.c ../include/mISDNlib.h
status.o status.lo: status.c ../include/mISDNlib.h
clean:
rm -f *.o *~ DEADJOE
rm -f libmISDN.a
rm -f libmISDN.a libMISDN_pic.a
rm -f *.o *.lo *~ DEADJOE
distclean: clean
rm -f *.a
.SUFFIXES: .lo

1
lib/libmISDN.so Normal file
View File

@ -0,0 +1 @@
INPUT(libmISDN_pic.a)

View File

@ -1,32 +1,41 @@
SOMAJOR=0
SOMINOR=0.0
SOVERSION=$(SOMAJOR).$(SOMINOR)
CC = gcc
AR = ar
RANLIB = ranlib
#CFLAGS += -DASN1_DEBUG
SUPPSERVOBJ = asn1.o asn1_enc.o asn1_generic.o asn1_aoc.o asn1_basic_service.o asn1_comp.o asn1_diversion.o asn1_address.o fac.o
SUPPSERV_OBJ = asn1.o asn1_enc.o asn1_generic.o asn1_aoc.o asn1_basic_service.o asn1_comp.o asn1_diversion.o asn1_address.o fac.o
SUPPSERV_PICOBJ = $(SUPPSERV_OBJ:%.o=%.lo)
all: libsuppserv.a libsuppserv.so.$(SOVERSION)
all: libsuppserv.a libsuppserv_pic.a libsuppserv.so
main: $(SUPPSERVOBJ)
install:
install -m 755 libsuppserv.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)
ln -sf libsuppserv.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)/libsuppserv.so.$(SOMAJOR)
ln -sf libsuppserv.so.$(SOVERSION) $(INSTALL_PREFIX)/$(LIBDIR)/libsuppserv.so
install -m 644 libsuppserv.a $(INSTALL_PREFIX)/$(LIBDIR)
install -m 644 libsuppserv.a $(INSTALL_PREFIX)/usr/lib
install -m 644 libsuppserv_pic.a $(INSTALL_PREFIX)/usr/lib
install -m 644 libsuppserv.so $(INSTALL_PREFIX)/usr/lib
cp *.h $(INSTALL_PREFIX)/usr/include/mISDNuser/
libsuppserv.so.$(SOVERSION): $(SUPPSERVOBJ)
$(CC) -shared -Xlinker -x -Wl,-soname,libsuppserv.so.$(SOMAJOR) -o $@ $^
libsuppserv_pic.a: $(SUPPSERV_PICOBJ)
$(AR) cru $@ $<
$(RANLIB) $@
libsuppserv.a: $(SUPPSERVOBJ)
ar cr $@ $^
ar s $@
libsuppserv.a: $(SUPPSERV_OBJ)
$(AR) cru $@ $<
$(RANLIB) $@
.c.o:
$(CC) $(CFLAGS) -o $@ -c $<
.c.lo:
$(CC) $(CFLAGS) -fPIC -o $@ -c $<
clean:
rm -f *.o *~ DEADJOE
rm -f libsuppserv.a libsuppserv.so
rm -f *.o *.lo *~ DEADJOE
rm -f libsuppserv.a libsuppserv_pic.a
distclean: clean
rm -f *.a
.SUFFIXES: .lo

1
suppserv/libsuppserv.so Normal file
View File

@ -0,0 +1 @@
INPUT(libsuppserv_pic.a)