1
0
ithewei 2 жил өмнө
parent
commit
767031ed5a
1 өөрчлөгдсөн 28 нэмэгдсэн , 20 устгасан
  1. 28 20
      Makefile.in

+ 28 - 20
Makefile.in

@@ -115,6 +115,20 @@ SRCDIRS += $(shell find $(SRCDIR) -type d)
 override INCDIRS += $(INCDIR) $(DEPDIR) $(DEPDIR)/include
 override LIBDIRS += $(LIBDIR) $(DEPDIR)/lib $(DEPDIR)/lib/$(TARGET_PLATFORM)
 
+ALL_SRCS += $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c $(dir)/*.cc $(dir)/*.cpp))
+ifeq ($(ALL_SRCS), )
+	ALL_SRCS = $(wildcard *.c *.cc *.cpp)
+endif
+override SRCS += $(filter-out %_test.c %_test.cc %_test.cpp, $(ALL_SRCS))
+# OBJS += $(patsubst %.c, %.o, $(SRCS))
+# OBJS += $(patsubst %.cc, %.o, $(SRCS))
+# OBJS += $(patsubst %.cpp, %.o, $(SRCS))
+OBJS := $(addsuffix .o, $(basename $(SRCS)))
+
+INSTALLED_INCS=$(addprefix $(PREFIX)/$(INCDIR)/, $(shell ls $(INCDIR)))
+INSTALLED_LIBS=$(addprefix $(PREFIX)/$(LIBDIR)/, $(shell ls $(LIBDIR)))
+INSTALLED_BINS=$(addprefix $(PREFIX)/$(BINDIR)/, $(shell ls $(BINDIR)))
+
 # CPPFLAGS
 ifeq ($(OS), Windows)
 	CPPFLAGS += -D_WIN32_WINNT=0x600
@@ -185,10 +199,16 @@ ifeq ($(ENABLE_WINDUMP), yes)
 endif
 	LDFLAGS += -Wl,-Bstatic -lstdc++ -lpthread -lm
 else
+ifeq ($(filter %.cc %.cpp, $(SRCS)), )
+	LINK = $(CC)
+else
+	LINK = $(CXX)
+	LDFLAGS += -lstdc++
+endif
 ifeq ($(OS), Android)
-	LDFLAGS += -lstdc++ -lm -llog -ldl
+	LDFLAGS += -lm -llog -ldl
 else
-	LDFLAGS += -lstdc++ -lpthread -lm -ldl
+	LDFLAGS += -lpthread -lm -ldl
 	LINK_RT=$(shell echo "int main(){return 0;}" | $(CC) -x c - -lrt 2>&1)
 ifeq ($(LINK_RT), )
 	LDFLAGS += -lrt
@@ -200,19 +220,7 @@ ifeq ($(OS), Darwin)
 	LDFLAGS += -framework CoreFoundation -framework Security
 endif
 
-ALL_SRCS += $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c $(dir)/*.cc $(dir)/*.cpp))
-ifeq ($(ALL_SRCS), )
-	ALL_SRCS = $(wildcard *.c *.cc *.cpp)
-endif
-override SRCS += $(filter-out %_test.c %_test.cc %_test.cpp, $(ALL_SRCS))
-# OBJS += $(patsubst %.c, %.o, $(SRCS))
-# OBJS += $(patsubst %.cc, %.o, $(SRCS))
-# OBJS += $(patsubst %.cpp, %.o, $(SRCS))
-OBJS := $(addsuffix .o, $(basename $(SRCS)))
-
-INSTALLED_INCS=$(addprefix $(PREFIX)/$(INCDIR)/, $(shell ls $(INCDIR)))
-INSTALLED_LIBS=$(addprefix $(PREFIX)/$(LIBDIR)/, $(shell ls $(LIBDIR)))
-INSTALLED_BINS=$(addprefix $(PREFIX)/$(BINDIR)/, $(shell ls $(BINDIR)))
+LINK ?= $(CC)
 
 # info
 $(info $(CC_VERSION))
@@ -250,12 +258,12 @@ prepare:
 $(TARGET): $(OBJS)
 ifneq ($(findstring SHARED, $(TARGET_TYPE)), )
 ifeq ($(OS), Windows)
-	$(CC) -shared $^ -o $(LIBDIR)/$@.dll $(LDFLAGS) -Wl,--output-def,$(LIBDIR)/$(@).def
+	$(LINK) -shared $^ -o $(LIBDIR)/$@.dll $(LDFLAGS) -Wl,--output-def,$(LIBDIR)/$(@).def
 else
 ifeq ($(OS), Darwin)
-	$(CC) -dynamiclib -install_name @rpath/$@.dylib $^ -o $(LIBDIR)/$@.dylib $(LDFLAGS)
+	$(LINK) -dynamiclib -install_name @rpath/$@.dylib $^ -o $(LIBDIR)/$@.dylib $(LDFLAGS)
 else
-	$(CC) -shared $^ -o $(LIBDIR)/$@.so $(LDFLAGS)
+	$(LINK) -shared $^ -o $(LIBDIR)/$@.so $(LDFLAGS)
 endif
 endif
 endif
@@ -266,9 +274,9 @@ endif
 
 ifneq ($(findstring EXECUTABLE, $(TARGET_TYPE)), )
 ifeq ($(OS), Windows)
-	$(CC) $^ -o $(BINDIR)/$@.exe $(LDFLAGS)
+	$(LINK) $^ -o $(BINDIR)/$@.exe $(LDFLAGS)
 else
-	$(CC) $^ -o $(BINDIR)/$@ $(LDFLAGS)
+	$(LINK) $^ -o $(BINDIR)/$@ $(LDFLAGS)
 endif
 endif