Skip to content
Snippets Groups Projects
Commit 906e3e9e authored by deuce's avatar deuce
Browse files

Use $(PTHREAD_CFLAGS) for MT objects.

parent f7de9316
No related branches found
No related tags found
No related merge requests found
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
# # # #
# Common Build Macros Defined: # # Common Build Macros Defined: #
# DELETE - Delete files (Preferrably verbose) # # DELETE - Delete files (Preferrably verbose) #
# MTOBJODIR - Object output dir #
# OBJODIR - Object output dir # # OBJODIR - Object output dir #
# LIBODIR - Library output dir # # LIBODIR - Library output dir #
# EXEODIR - Executable output dir # # EXEODIR - Executable output dir #
...@@ -164,7 +165,8 @@ else ...@@ -164,7 +165,8 @@ else
endif endif
LIBODIR := $(CCPRE).$(machine).lib.$(BUILDPATH) LIBODIR := $(CCPRE).$(machine).lib.$(BUILDPATH)
OBJODIR := $(CCPRE).$(machine).obj.$(BUILDPATH)$(OBJPATH_SUFFIX) OBJODIR := $(CCPRE).$(machine).obj.$(BUILDPATH)
MTOBJODIR := $(CCPRE).$(machine).obj.$(BUILDPATH)-mt
EXEODIR := $(CCPRE).$(machine).exe.$(BUILDPATH) EXEODIR := $(CCPRE).$(machine).exe.$(BUILDPATH)
LDFLAGS += -L$(LIBODIR) LDFLAGS += -L$(LIBODIR)
...@@ -212,6 +214,51 @@ ifeq ($(os),darwin) ...@@ -212,6 +214,51 @@ ifeq ($(os),darwin)
LDFLAGS += -lm LDFLAGS += -lm
endif endif
# PThread-specific flags
ifeq ($(os),linux) # Linux
ifndef THREADS_ACTUALLY_WORK
PTHREAD_CFLAGS += -D_THREAD_SUID_BROKEN
endif
endif
PTHREAD_CFLAGS += -D_THREAD_SAFE -D_REENTRANT
ifeq ($(os),freebsd) # FreeBSD
PTHREAD_CFLAGS += -DUSE_XP_SEMAPHORES
PTHREAD_LDFLAGS += -pthread
XP_SEM := 1
else
ifeq ($(os),openbsd) # OpenBSD
PTHREAD_CFLAGS += -DUSE_XP_SEMAPHORES
PTHREAD_LDFLAGS += -pthread
XP_SEM := 1
else
ifeq ($(os),netbsd) # NetBSD
PTHREAD_CFLAGS += -D__unix__ -DUSE_XP_SEMAPHORES
PTHREAD_LDFLAGS += -L/usr/pkg/lib -L/usr/pkg/pthreads/lib -lpthread
XP_SEM := 1
else
ifeq ($(os),qnx) # QNX
else
ifeq ($(os),darwin) # Darwin/Mac OS X
PTHREAD_CFLAGS += -D__unix__ -DUSE_XP_SEMAPHORES -D__DARWIN__
PTHREAD_LDFLAGS += -lpthread
XP_SEM := 1
else
ifeq ($(os),sunos) # Solaris
XP_SEM := 1
PTHREAD_CFLAGS += -D_POSIX_PTHREAD_SEMANTICS
PTHREAD_CFLAGS += -DUSE_XP_SEMAPHORES
PTHREAD_LDFLAGS += -lpthread
else # Linux / Other UNIX
XP_SEM := 1
PTHREAD_CFLAGS += -DUSE_XP_SEMAPHORES
PTHREAD_LDFLAGS += -lpthread
endif
endif
endif
endif
endif
endif
# Paths # Paths
XPDEV_SRC := $(SRC_ROOT)$(DIRSEP)xpdev XPDEV_SRC := $(SRC_ROOT)$(DIRSEP)xpdev
CIOLIB_SRC := $(SRC_ROOT)$(DIRSEP)conio CIOLIB_SRC := $(SRC_ROOT)$(DIRSEP)conio
...@@ -245,17 +292,30 @@ $(OBJODIR)/%.o : %.cpp $(BUILD_DEPENDS) ...@@ -245,17 +292,30 @@ $(OBJODIR)/%.o : %.cpp $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $< @echo $(COMPILE_MSG) $<
$(QUIET)$(CXX) $(CFLAGS) $(CXXFLAGS) -o $@ -c $< $(QUIET)$(CXX) $(CFLAGS) $(CXXFLAGS) -o $@ -c $<
# Implicit MT C Compile Rule
$(MTOBJODIR)/%.o : %.c $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CC) $(CFLAGS) $(CCFLAGS) $(PTHREAD_CFLAGS) -o $@ -c $<
# Implicit MT C++ Compile Rule
$(MTOBJODIR)/%.o : %.cpp $(BUILD_DEPENDS)
@echo $(COMPILE_MSG) $<
$(QUIET)$(CXX) $(CFLAGS) $(CXXFLAGS) $(PTHREAD_CFLAGS) -o $@ -c $<
depend: depend:
$(QUIET)$(DELETE) $(OBJODIR)/.depend $(QUIET)$(DELETE) $(OBJODIR)/.depend
$(QUIET)$(DELETE) $(MTOBJODIR)/.depend
$(QUIET)$(DELETE) $(LIBODIR)/.depend $(QUIET)$(DELETE) $(LIBODIR)/.depend
$(QUIET)$(DELETE) $(EXEODIR)/.depend $(QUIET)$(DELETE) $(EXEODIR)/.depend
$(QUIET)$(MAKE) BUILD_DEPENDS=FORCE $(QUIET)$(MAKE) BUILD_DEPENDS=FORCE
FORCE: FORCE:
-include $(MTOBJODIR)/.depend
-include $(OBJODIR)/.depend -include $(OBJODIR)/.depend
-include $(LIBODIR)/.depend -include $(LIBODIR)/.depend
-include $(EXEODIR)/.depend -include $(EXEODIR)/.depend
-include $(MTOBJODIR)/*.d
-include $(OBJODIR)/*.d -include $(OBJODIR)/*.d
-include $(LIBODIR)/*.d -include $(LIBODIR)/*.d
-include $(EXEODIR)/*.d -include $(EXEODIR)/*.d
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
$(OBJODIR): $(OBJODIR):
$(QUIET)$(IFNOTEXIST) mkdir $(OBJODIR) $(QUIET)$(IFNOTEXIST) mkdir $(OBJODIR)
$(MTOBJODIR):
$(QUIET)$(IFNOTEXIST) mkdir $(MTOBJODIR)
$(LIBODIR): $(LIBODIR):
$(QUIET)$(IFNOTEXIST) mkdir $(LIBODIR) $(QUIET)$(IFNOTEXIST) mkdir $(LIBODIR)
...@@ -16,6 +19,8 @@ $(EXEODIR): ...@@ -16,6 +19,8 @@ $(EXEODIR):
clean: clean:
@echo Deleting $(OBJODIR)$(DIRSEP) @echo Deleting $(OBJODIR)$(DIRSEP)
$(QUIET)$(DELETE) $(OBJODIR)$(DIRSEP)* $(QUIET)$(DELETE) $(OBJODIR)$(DIRSEP)*
@echo Deleting $(MTOBJODIR)$(DIRSEP)
$(QUIET)$(DELETE) $(MTOBJODIR)$(DIRSEP)*
@echo Deleting $(LIBODIR)$(DIRSEP) @echo Deleting $(LIBODIR)$(DIRSEP)
$(QUIET)$(DELETE) $(LIBODIR)$(DIRSEP)* $(QUIET)$(DELETE) $(LIBODIR)$(DIRSEP)*
@echo Deleting $(EXEODIR)$(DIRSEP) @echo Deleting $(EXEODIR)$(DIRSEP)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment