sunLib.rules revision 11d341ca
1XCOMM $Xorg: sunLib.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $
2
3/*
4 * SunOS shared library rules
5 */
6
7XCOMM $XFree86: xc/config/cf/sunLib.rules,v 1.3 2001/01/17 16:38:49 dawes Exp $
8
9#ifndef HasSharedLibraries
10#define HasSharedLibraries YES
11#endif
12#ifndef SharedDataSeparation
13#define SharedDataSeparation YES
14#endif
15#ifndef SharedCodeDef
16#define SharedCodeDef -DSHAREDCODE
17#endif
18#ifndef SharedLibraryDef
19#define SharedLibraryDef -DSUNSHLIB
20#endif
21#ifndef ShLibIncludeFile
22#define ShLibIncludeFile <sunLib.tmpl>
23#endif
24#ifndef SharedLibraryLoadFlags
25#define SharedLibraryLoadFlags -assert pure-text
26#endif
27#ifndef PositionIndependentCFlags
28#if HasGcc2
29#define PositionIndependentCFlags -fPIC
30#else
31#define PositionIndependentCFlags -pic
32#endif
33#endif
34#ifndef PositionIndependentCplusplusFlags
35#if HasGcc2ForCplusplus
36#define PositionIndependentCplusplusFlags -fPIC
37#else
38#define PositionIndependentCplusplusFlags -pic
39#endif
40#endif
41
42/*
43 * SharedDSLibDependencies - shared library dependencies with data separation
44 */
45#ifndef SharedDSLibDependencies
46#define SharedDSLibDependencies(libname,libsource,revname) _UseCat($(USRLIBDIR)/lib,libsource/lib,libname.sa.$(revname))
47#endif
48
49/*
50 * InstallSharedLibrary - generate rules to install the shared library.
51 */
52#ifndef InstallSharedLibrary
53#define	InstallSharedLibrary(libname,rev,dest)				@@\
54InstallTarget(install,Concat(lib,libname.so.rev),$(INSTLIBFLAGS),dest)
55#endif /* InstallSharedLibrary */
56
57/*
58 * InstallSharedLibraryData - generate rules to install the shared library data
59 */
60#ifndef InstallSharedLibraryData
61#define	InstallSharedLibraryData(libname,rev,dest)			@@\
62install:: Concat(lib,libname.sa.rev)					@@\
63	MakeDir($(DESTDIR)dest)						@@\
64	$(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) Concat(lib,libname.sa.rev) $(DESTDIR)dest @@\
65	RanLibrary($(RANLIBINSTFLAGS) Concat($(DESTDIR)dest/lib,libname.sa.rev))
66#endif /* InstallSharedLibraryData */
67
68#if HasPurify
69#define PureCleanSharedLibrary(libname,rev)				@@\
70clean clean.pure::							@@\
71	$(RM) Concat3(lib,libname,_pure_*.so.rev)
72#else
73#define PureCleanSharedLibrary(libname,rev) /**/
74#endif
75
76/*
77 * SharedLibraryTarget - generate rules to create a shared library;
78 * build it into a different name so that we do not hose people by having
79 * the library gone for long periods.
80 */
81#ifndef SharedLibraryTarget
82#define SharedLibraryTarget(libname,rev,solist,down,up)			@@\
83AllTarget(Concat(lib,libname.so.rev))					@@\
84									@@\
85Concat(lib,libname.so.rev):  solist $(EXTRALIBRARYDEPS)			@@\
86	$(RM) $@~							@@\
87	(cd down; $(LD) -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\
88	$(RM) $@ 							@@\
89	$(MV) $@~ $@							@@\
90	LinkBuildLibrary($@)						@@\
91									@@\
92clean::									@@\
93	$(RM) Concat(lib,libname.so.rev)				@@\
94									@@\
95PureCleanSharedLibrary(libname,rev)
96#endif /* SharedLibraryTarget */
97
98/*
99 * SharedDepLibraryTarget - generate rules to create a shared library.
100 */
101#ifndef SharedDepLibraryTarget
102#define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up)	@@\
103AllTarget(Concat(lib,libname.so.rev))					@@\
104									@@\
105Concat(lib,libname.so.rev):  deplist $(EXTRALIBRARYDEPS)		@@\
106	$(RM) $@~							@@\
107	(cd down; $(LD) -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\
108	$(RM) $@ 							@@\
109	$(MV) $@~ $@							@@\
110	LinkBuildLibrary($@)						@@\
111									@@\
112clean::									@@\
113	$(RM) Concat(lib,libname.so.rev)				@@\
114									@@\
115PureCleanSharedLibrary(libname,rev)
116#endif /* SharedDepLibraryTarget */
117
118/*
119 * SharedLibraryDataTarget - generate rules to create shlib data file;
120 */
121#ifndef SharedLibraryDataTarget
122#define SharedLibraryDataTarget(libname,rev,salist)			@@\
123AllTarget(Concat(lib,libname.sa.rev))					@@\
124									@@\
125Concat(lib,libname.sa.rev):  salist					@@\
126	$(RM) $@							@@\
127	$(AR) $@ salist							@@\
128	RanLibrary($@)							@@\
129	LinkBuildLibrary($@)						@@\
130									@@\
131clean::									@@\
132	$(RM) Concat(lib,libname.sa.rev)
133#endif /* SharedLibraryDataTarget */
134