1 ifeq ($(ThreadSystem),Solaris)
3 DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS)
6 ifeq ($(ThreadSystem),Posix)
8 DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS) $(OMNITHREAD_POSIX_CPPFLAGS)
11 ifeq ($(ThreadSystem),NT)
13 DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS)
14 MSVC_STATICLIB_CXXNODEBUGFLAGS += -D_WINSTATIC
15 MSVC_STATICLIB_CXXDEBUGFLAGS += -D_WINSTATIC
16 MSVC_DLL_CXXNODEBUGFLAGS += -D_OMNITHREAD_DLL
17 MSVC_DLL_CXXDEBUGFLAGS += -D_OMNITHREAD_DLL
20 ifeq ($(ThreadSystem),NTPosix)
22 DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS)
23 MSVC_STATICLIB_CXXNODEBUGFLAGS += -D_WINSTATIC
24 MSVC_STATICLIB_CXXDEBUGFLAGS += -D_WINSTATIC
25 MSVC_DLL_CXXNODEBUGFLAGS += -D_OMNITHREAD_DLL
26 MSVC_DLL_CXXDEBUGFLAGS += -D_OMNITHREAD_DLL
29 ifeq ($(ThreadSystem),Mach)
31 DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS)
34 ifeq ($(ThreadSystem),vxWorks)
37 DIR_CPPFLAGS = $(OMNITHREAD_CPPFLAGS)
40 LIB_NAME := omnithread
41 LIB_VERSION := $(OMNITHREAD_VERSION)
42 LIB_OBJS := $(CXXSRCS:.cc=.o)
43 LIB_IMPORTS := $(OMNITHREAD_PLATFORM_LIB)
45 all:: mkstatic mkshared
47 export:: mkstatic mkshared
50 install:: mkstatic mkshared
53 vers := $(subst ., ,$(LIB_VERSION))
54 ifeq ($(words $(vers)), 2)
58 major := $(word 1, $(vers))
61 namespec := $(LIB_NAME) $(vers)
63 ##############################################################################
64 # Build Static library
65 ##############################################################################
67 ifndef NoStaticLibrary
69 staticlib := static/$(patsubst %,$(LibNoDebugPattern),$(LIB_NAME)$(major))
72 @(dir=static; $(CreateDir))
74 mkstatic:: $(staticlib)
76 $(staticlib): $(patsubst %, static/%, $(LIB_OBJS))
83 install:: $(staticlib)
102 ##############################################################################
103 # Build Shared library
104 ##############################################################################
105 ifdef BuildSharedLibrary
107 shlib := shared/$(shell $(SharedLibraryFullName) $(namespec))
110 # in case of Win32 lossage:
111 imps := $(patsubst $(DLLDebugSearchPattern),$(DLLNoDebugSearchPattern), \
114 imps := $(LIB_IMPORTS)
118 @(dir=shared; $(CreateDir))
122 $(shlib): $(patsubst %, shared/%, $(LIB_OBJS))
123 @(namespec="$(namespec)" extralibs="$(imps)" nodeffile=1; \
124 $(MakeCXXSharedLibrary))
127 @(namespec="$(namespec)"; \
128 $(ExportSharedLibrary))
132 @(namespec="$(namespec)"; \
133 $(InstallSharedLibrary))
138 (dir=shared; $(CleanSharedLibrary))
142 @(dir=shared; $(CleanSharedLibrary))
150 ##############################################################################
151 # Build debug libraries for Win32
152 ##############################################################################
155 ifdef BuildSharedLibrary
157 all:: mkstaticdbug mkshareddbug
159 export:: mkstaticdbug mkshareddbug
165 export:: mkstaticdbug
170 #####################################################
171 # Static debug libraries
172 #####################################################
174 dbuglib := debug/$(patsubst %,$(LibDebugPattern),$(LIB_NAME)$(major))
177 @(dir=debug; $(CreateDir))
179 mkstaticdbug:: $(dbuglib)
181 $(dbuglib): $(patsubst %, debug/%, $(LIB_OBJS))
182 @$(StaticLinkLibrary)
195 #####################################################
196 # DLL debug libraries
197 #####################################################
199 ifdef BuildSharedLibrary
201 dbugshlib := shareddebug/$(shell $(SharedLibraryDebugFullName) $(namespec))
203 dbugimps := $(patsubst $(DLLNoDebugSearchPattern),$(DLLDebugSearchPattern), \
207 @(dir=shareddebug; $(CreateDir))
209 mkshareddbug:: $(dbugshlib)
211 $(dbugshlib): $(patsubst %, shareddebug/%, $(LIB_OBJS))
212 (namespec="$(namespec)" debug=1 extralibs="$(dbugimps)" nodeffile=1; \
213 $(MakeCXXSharedLibrary))
215 export:: $(dbugshlib)
216 @(namespec="$(namespec)" debug=1; \
217 $(ExportSharedLibrary))
220 $(RM) shareddebug/*.o
221 @(dir=shareddebug; $(CleanSharedLibrary))
224 $(RM) shareddebug/*.o
225 @(dir=shareddebug; $(CleanSharedLibrary))