summaryrefslogtreecommitdiff
path: root/make/makeshlb.unx
blob: b4bc4ca315e75f40ca7217cb21719ef47136484a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# -*- makefile -*-
#
#	$Id: makeshlb.unx,v 6.1 1999/03/18 17:31:11 beloslyu Exp $
#
# Builds shared NCBI libraries
#  Defaults below are for Solaris; other platforms are driven from
#  makeall.unx and makenet.unx
#
# For OSF/1 the "$<" below should be manually changed to "$?"
#
SH1 = ld -G -o
SH2 = `lorder *.o | tsort` $(NCBI_OTHERLIBS)

%.so: %.a
	rm -f *.o *.glo __*
	ar x $<
	case $< in \
	    *OGL.a) for f in *.glo; do mv $$f `basename $$f .glo`.o; done ;; \
	esac
	$(SH1) $@ $(SH2)
	rm -f *.o __*

so=so.$(NCBI_VERSION_MAJOR).$(NCBI_VERSION_MINOR)

%.$(so): %.a
	$(CC) -shared -Wl,-soname=$*.so.$(NCBI_VERSION_MAJOR) -o $@ \
	    -Wl,--whole-archive $< -Wl,--no-whole-archive $(LDFLAGS) \
	    $($*_deps) $($*_sysdeps)

%.so.$(NCBI_VERSION_MAJOR): %.$(so)
	ln -s $< $@
	ln -s $< $*.so

# Make libncbiCacc and libncbiacc pointers to libncbiNacc, since it's
# the most useful variant in the usual (net-only) case.  Do the same
# for libnetentr, and link the static version into libncbiNacc.so, due
# to a circular dependency.
libnetentr.$(so) libncbiCacc.$(so) libncbiacc.$(so):
	ln -s libncbiNacc.$(so) $@

# Standardize on the OpenGL-enabled versions of Vibrant, since there's
# no longer any real penalty in doing so.
libvibrant.$(so):
	ln -s libvibrantOGL.$(so) $@
libncbicn3d.$(so):
	ln -s libncbicn3dOGL.$(so) $@

libblast_deps       = libblastcompadj.$(so) libncbi.$(so)
libblast_sysdeps    = -lm
libblastapi_deps    = libblast.$(so) libncbitool.$(so) libncbiobj.$(so) \
                      libncbi.$(so)
libblastapi_sysdeps = -lm
libblastcompadj_sysdeps = -lm
libconnssl_deps     = libncbi.$(so)
libconnssl_sysdeps  = -lgnutls
libncbi_sysdeps     = -lm
# libncbiCacc_deps    = libncbicdr.$(so) libnetentr.a libnetcli.$(so)
libncbiNacc_deps    = libncbicdr.$(so) libnetentr.a libnetcli.$(so) \
                      libncbiobj.$(so) libncbi.$(so)
libncbiNacc_sysdeps = -lm
# libncbiacc_deps     = libncbicdr.$(so)
libncbicdr_deps     = libncbiobj.$(so) libncbi.$(so)
libncbiid1_deps     = libncbiobj.$(so) libnetcli.$(so) libncbi.$(so)
libncbimla_deps     = libncbiobj.$(so) libnetcli.$(so) libncbi.$(so)
libncbimmdb_deps    = libncbiid1.$(so) libncbitool.$(so) libncbiobj.$(so) \
                      libncbi.$(so)
libncbimmdb_sysdeps = -lm
libncbiobj_deps     = libncbi.$(so)
libncbiobj_sysdeps  = -lm
libncbitool_deps    = libblastcompadj.$(so) libncbiobj.$(so) libncbi.$(so)
libncbitool_sysdeps = -lm
libncbitxc2_deps    = libncbitool.$(so) libnetcli.$(so) libncbiobj.$(so) \
                      libncbi.$(so)
libncbitxc2_sysdeps = -lm
libnetblast_deps    = libncbitool.$(so) libnetcli.$(so) libncbiobj.$(so) \
                      libncbi.$(so)
libnetcli_deps      = libncbi.$(so)
# libnetentr_deps     = libncbiacc.$(so) libnetcli.$(so)
libvibgif_deps      = libncbi.$(so)
libvibgif_sysdeps   = -lm

libddvlib_deps        = libncbidesk.$(so) libvibrantOGL.$(so) \
                        libncbitool.$(so) libncbiobj.$(so) libncbi.$(so)
libncbicn3d_deps      = libncbiNacc.$(so) libddvlib.$(so) libncbidesk.$(so) \
                        libncbimmdb.$(so) libncbitool.$(so) libncbiobj.$(so) \
                        libncbi.$(so)
libncbicn3dOGL_deps   = $(libncbicn3d_deps) libvibrantOGL.$(so)
libncbicn3dOGL_sysdeps = -lm
libncbidesk_deps      = libblastapi.$(so) libncbimmdb.$(so) libncbitool.$(so) \
                        libvibrantOGL.$(so) libncbiobj.$(so) libncbi.$(so)
libncbidesk_sysdeps   = -lm
libvibnet_deps        = libncbiNacc.$(so) libncbidesk.$(so) libncbimmdb.$(so) \
                        libvibrantOGL.$(so) libncbitool.$(so) \
                        libncbicdr.$(so) libncbiobj.$(so) libncbi.$(so)
# libvibrant_deps     = libncbi.$(so)
# libvibrant_sysdeps  = $(VIBLIBS)
# for ddvcolor stuff
libvibrantOGL_deps    = libncbiobj.$(so) libncbi.$(so)
libvibrantOGL_sysdeps = $(OGLLIBS) $(VIBLIBS) -lm

# XXX - is there a way to express these programmatically?
libblast.$(so):    $(libblast_deps)
libblastapi.$(so): $(libblastapi_deps)
libconnssl.$(so):  $(libconnssl_deps)
# libncbiCacc.$(so): $(libncbiCacc_deps)
libncbiNacc.$(so): $(libncbiNacc_deps)
# libncbiacc.$(so):  $(libncbiacc_deps)
libncbicdr.$(so):  $(libncbicdr_deps)
libncbiid1.$(so):  $(libncbiid1_deps)
libncbimla.$(so):  $(libncbimla_deps)
libncbimmdb.$(so): $(libncbimmdb_deps)
libncbiobj.$(so):  $(libncbiobj_deps)
libncbitool.$(so): $(libncbitool_deps)
libncbitxc2.$(so): $(libncbitxc2_deps)
libnetblast.$(so): $(libnetblast_deps)
libnetcli.$(so):   $(libnetcli_deps)
# libnetentr.$(so): $(libnetentr_deps)

libddvlib.$(so):      $(libddvlib_deps)
# libncbicn3d.$(so):  $(libncbicn3d_deps)
libncbicn3dOGL.$(so): $(libncbicn3dOGL_deps)
libncbidesk.$(so):    $(libncbidesk_deps)
libvibgif.$(so):      $(libvibgif_deps)
libvibnet.$(so):      $(libvibnet_deps)
# libvibrant.$(so):   $(libvibrant_deps)
libvibrantOGL.$(so):  $(libvibrantOGL_deps)