1XCOMM $Xorg: necLib.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $
2
3/*
4 * NECOS shared library rules
5 */
6
7XCOMM $XFree86: xc/config/cf/necLib.rules,v 1.2 1999/01/11 05:13:07 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
17#endif
18#ifndef SharedLibraryDef
19#define SharedLibraryDef
20#endif
21#ifndef ShLibIncludeFile
22#define ShLibIncludeFile <necLib.tmpl>
23#endif
24#ifndef SharedLibraryLoadFlags
25#define SharedLibraryLoadFlags
26#endif
27#ifndef PositionIndependentCFlags
28#define PositionIndependentCFlags
29#endif
30
31
32#ifndef SeparateSharedCompile
33#define SeparateSharedCompile NO
34#endif
35
36#define SharedLibObjCompile(options) $(_NULLCMD_)
37
38/*
39 * InstallSharedLibrary - generate rules to install the shared library.
40 */
41#ifndef InstallSharedLibrary
42#define	InstallSharedLibrary(libname,rev,dest)				@@\
43install:: Concat(lib,libname.so.rev) 					@@\
44	MakeDir($(DESTDIR)dest)						@@\
45	$(INSTALL) -c $(INSTLIBFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\
46	cd $(DESTDIR)/dest; $(LN) Concat(lib,libname.so.rev) Concat(lib,libname.so)	@@\
47
48#endif /* InstallSharedLibrary */
49
50/*
51 * InstallSharedLibraryData - generate rules to install the shared library data
52 */
53#ifndef InstallSharedLibraryData
54#define	InstallSharedLibraryData(libname,rev,dest)			@@\
55install:: Concat(lib,libname.sa.rev)					@@\
56	MakeDir($(DESTDIR)dest)						@@\
57	$(INSTALL) -c $(INSTLIBFLAGS) Concat(lib,libname.sa.rev) $(DESTDIR)dest @@\
58	RanLibrary($(RANLIBINSTFLAGS) Concat($(DESTDIR)dest/lib,libname.sa.rev))
59
60#endif /* InstallSharedLibraryData */
61
62/*
63 * SharedLibraryTarget - generate rules to create a shared library;
64 * build it into a different name so that we do not hose people by having
65 * the library gone for long periods.
66 */
67#ifndef SharedLibraryTarget
68#define SharedLibraryTarget(libname,rev,solist,down,up)			@@\
69AllTarget(Concat(lib,libname.so.rev))					@@\
70									@@\
71Concat(lib,libname.so.rev):  solist $(EXTRALIBRARYDEPS)			@@\
72	$(RM) $@~							@@\
73	$(CC) -G -o $@~ $(SHLIBLDFLAGS) solist				@@\
74	$(RM) $@ 							@@\
75	$(MV) $@~ $@							@@\
76									@@\
77AllTarget(Concat(lib,libname.so))					@@\
78									@@\
79Concat(lib,libname.so):  Concat(lib,libname.so.rev)			@@\
80	$(RM) $@ 							@@\
81	$(LN) $? $@							@@\
82	LinkBuildLibrary($@)						@@\
83	LinkBuildLibrary(Concat(lib,libname.so))			@@\
84									@@\
85clean::									@@\
86	$(RM) Concat(lib,libname.so.rev)
87
88#endif /* SharedLibraryTarget */
89
90/*
91 * SharedDepLibraryTarget - generate rules to create a shared library.
92 */
93#ifndef SharedDepLibraryTarget
94#define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up)	@@\
95AllTarget(Concat(lib,libname.so.rev))					@@\
96									@@\
97Concat(lib,libname.so.rev):  deplist $(EXTRALIBRARYDEPS)		@@\
98	$(RM) $@~							@@\
99	$(CC) -G -o $@~ $(SHLIBLDFLAGS) solist				@@\
100	$(RM) $@ 							@@\
101	$(MV) $@~ $@							@@\
102									@@\
103AllTarget(Concat(lib,libname.so))					@@\
104									@@\
105Concat(lib,libname.so):  Concat(lib,libname.so.rev)			@@\
106	$(RM) $@ 							@@\
107	$(LN) $? $@							@@\
108	LinkBuildLibrary($@)						@@\
109	LinkBuildLibrary(Concat(lib,libname.so))			@@\
110									@@\
111clean::									@@\
112	$(RM) Concat(lib,libname.so.rev)
113
114#endif /* SharedDepLibraryTarget */
115
116/*
117 * SharedLibraryDataTarget - generate rules to create shlib data file;
118 */
119#ifndef SharedLibraryDataTarget
120#define SharedLibraryDataTarget(libname,rev,salist)			@@\
121AllTarget(Concat(lib,libname.sa.rev))					@@\
122									@@\
123Concat(lib,libname.sa.rev):  salist $(EXTRALIBRARYDEPS)			@@\
124	$(RM) $@							@@\
125	$(AR) $@ salist							@@\
126	RanLibrary($@)							@@\
127									@@\
128clean::									@@\
129	$(RM) Concat(lib,libname.sa.rev)
130
131#endif /* SharedLibraryDataTarget */
132