1
XCOMM $OpenBSD: OpenBSDLib.rules,v 1.1 2000/10/09 20:43:58 matthieu Exp $
7
* OpenBSD shared library rules
10
XCOMM $XFree86: xc/config/cf/OpenBSDLib.rules,v 1.5 2003/02/17 21:46:44 herrb Exp $
13
#define UseElfFormat NO
16
#ifndef HasSharedLibraries
17
#define HasSharedLibraries YES
19
#ifndef ForceNormalLib
20
#define ForceNormalLib YES
24
#define BaseShLibReqs /* -lc implied by $(CC) */
27
#ifndef SharedDataSeparation
28
#define SharedDataSeparation NO
31
#define SharedCodeDef /**/
33
#ifndef SharedLibraryDef
34
#define SharedLibraryDef /**/
36
#ifndef ShLibIncludeFile
37
#define ShLibIncludeFile <OpenBSDLib.tmpl>
39
#ifndef SharedLibraryLoadFlags
40
#define SharedLibraryLoadFlags -shared PositionIndependentCFlags -Wl,-rpath,$(USRLIBDIR)
42
#ifndef PositionIndependentCFlags
43
#define PositionIndependentCFlags -fPIC
45
#ifndef PositionIndependentCplusplusFlags
46
#define PositionIndependentCplusplusFlags -fPIC
49
#ifndef ExtraLoadFlags
51
#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
53
#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH) -Wl,-rpath-link,$(BUILDLIBDIR)
59
* InstallSharedLibrary - generate rules to install the shared library.
60
* NOTE: file must be executable, hence "INSTBINFLAGS"
62
#ifndef InstallSharedLibrary
63
#define InstallSharedLibrary(libname,rev,dest) @@\
64
install:: Concat(lib,libname.so.rev) @@\
65
MakeDir($(DESTDIR)dest) @@\
66
$(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest
67
#endif /* InstallSharedLibrary */
70
* InstallSharedLibraryData - generate rules to install the shared library data
72
#ifndef InstallSharedLibraryData
73
#define InstallSharedLibraryData(libname,rev,dest)
74
#endif /* InstallSharedLibraryData */
78
* SharedLibraryTarget - generate rules to create a shared library;
79
* build it into a different name so that we do not hose people by having
80
* the library gone for long periods.
82
#ifndef SharedLibraryTarget
84
#define LinkBuildSonameLibrary(lib) true
86
#define LinkBuildSonameLibrary(lib) (RemoveFile($(BUILDLIBDIR)/lib); \
87
cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/lib .)
90
#define SharedLibraryTarget(libname,rev,solist,down,up) @@\
91
AllTarget(Concat(lib,libname.so.rev)) @@\
93
Concat(lib,libname.so.rev): solist @@\
96
(cd down; $(CC) -o up/$@~ $(SHLIBLDFLAGS) -Wl,-soname,$@\ @@\
97
solist $(REQUIREDLIBS) BaseShLibReqs); @@\
98
LinkBuildSonameLibrary($@) @@\
103
$(RM) Concat(lib,libname.so.rev)
105
#endif /* SharedLibraryTarget */
109
* SharedDepLibraryTarget - generate rules to create a shared library.
111
#ifndef SharedDepLibraryTarget
112
#define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\
113
AllTarget(Concat(lib,libname.so.rev)) @@\
115
Concat(lib,libname.so.rev): deplist $(EXTRALIBRARYDEPS) @@\
117
(cd down; $(CC) -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\
120
LinkBuildLibrary($@) @@\
123
$(RM) Concat(lib,libname.so.rev)
125
#endif /* SharedDepLibraryTarget */
127
#ifndef SharedDepModuleTarget
128
#define SharedDepModuleTarget(name,deps,solist) @@\
133
$(CC) -o $@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) @@\
140
#endif /* SharedDepModuleTarget */
143
* SharedLibraryDataTarget - generate rules to create shlib data file;
145
#ifndef SharedLibraryDataTarget
146
#define SharedLibraryDataTarget(libname,rev,salist)
147
#endif /* SharedLibraryTarget */
150
* DynamicModuleTarget - build a module to be dynamically loaded
152
#ifdef DynamicModuleTarget
153
#undef DynamicModuleTarget
154
#define DynamicModuleTarget(module,modlist) @@\
155
AllTarget(module) @@\
159
$(CC) -o $@ $(SHLIBLDFLAGS) modlist @@\
163
#endif /* DynamicModuleTarget */