@@ -42,6 +42,7 @@ ARTIFACT_LIBLINK = $(LIBRARY_PREFIX)$(ARTIFACT_NAME)$(LIBRARY_EXT)
42
42
ARTIFACT_SLIBLINK = $(LIBRARY_PREFIX )$(ARTIFACT_NAME )$(STATICLIB_EXT )
43
43
ARTIFACT_PC = $(ARTIFACT_BIN ) /$(ARTIFACT_NAME )$(PKGCONFIG_EXT )
44
44
ARTIFACT_OBJ = $($(ARTIFACT_ID ) _OBJ)
45
+ ARTIFACT_OBJ_TEST = $($(ARTIFACT_ID ) _OBJ_TEST)
45
46
ARTIFACT_MFLAGS = $($(ARTIFACT_ID ) _MFLAGS) $(foreach dep,$(DEPENDENCIES ) ,-DUSE_$(dep ) )
46
47
ARTIFACT_DEPS = $(call dquery, OBJ, $(DEPENDENCIES ) )
47
48
ARTIFACT_CFLAGS = $(call query, CFLAGS, $(DEPENDENCIES ) $(ARTIFACT_ID ) )
@@ -53,11 +54,13 @@ ARTIFACT_TARGETS = $(ARTIFACT_LIB) $(ARTIFACT_SLIB) $(ARTIFACT_PC)
53
54
# Source code
54
55
CXX_SRC_MAIN = $(call rwildcard, main, * .cpp)
55
56
CXX_SRC_TEST = $(call rwildcard, test, * .cpp)
57
+ CXX_SRC_NOTEST =
56
58
CXX_SRC_EXT =
57
59
CXX_SRC = $(CXX_SRC_MAIN ) $(CXX_SRC_EXT )
58
60
59
61
CXX_OBJ_MAIN = $(patsubst % .cpp, $($(ARTIFACT_ID ) _BIN) /% .o, $(CXX_SRC_MAIN ) )
60
62
CXX_OBJ_TEST = $(patsubst % .cpp, $($(ARTIFACT_ID ) _BIN) /% .o, $(CXX_SRC_TEST ) )
63
+ CXX_OBJ_NOTEST = $(patsubst % .cpp, $($(ARTIFACT_ID ) _BIN) /% .o, $(CXX_SRC_NOTEST ) )
61
64
CXX_OBJ_EXT = $(patsubst % .cpp, $($(ARTIFACT_ID ) _BIN) /% .o, $(CXX_SRC_EXT ) )
62
65
CXX_OBJ = $(CXX_OBJ_MAIN ) $(CXX_OBJ_EXT )
63
66
@@ -70,8 +73,6 @@ CXX_INSTHEADERS = $(patsubst $($(ARTIFACT_ID)_INC)/%,$(DESTDIR)$(INCDIR)
70
73
BUILD_ALL = $(ARTIFACT_LIB ) $(ARTIFACT_SLIB ) $(ARTIFACT_PC )
71
74
72
75
ifeq ($($(ARTIFACT_ID ) _TESTING) ,1)
73
- CXX_SRC += $(CXX_SRC_TEST )
74
- CXX_OBJ += $(CXX_OBJ_TEST )
75
76
ARTIFACT_TARGETS += $(ARTIFACT_TEST_BIN )
76
77
endif
77
78
@@ -109,7 +110,7 @@ $(ARTIFACT_DEPS):
109
110
# Compilation
110
111
compile : $(ARTIFACT_OBJ )
111
112
112
- $(CXX_OBJ_MAIN ) $(CXX_OBJ_EXT ) $(CXX_OBJ_TEST ) :
113
+ $(CXX_OBJ_MAIN ) $(CXX_OBJ_EXT ) $(CXX_OBJ_TEST ) $( CXX_OBJ_NOTEST ) :
113
114
@echo " $( CXX) [$( ARTIFACT_NAME) ] $( CXX_FILE) "
114
115
@mkdir -p $(dir $@ )
115
116
@$(CXX ) -o $(@ ) -c $(CXX_FILE ) -fPIC $(CXXFLAGS ) $(ARTIFACT_MFLAGS ) $(EXT_FLAGS ) $(INCLUDE ) $(ARTIFACT_CFLAGS )
@@ -118,21 +119,25 @@ $(CXX_OBJ_MAIN) $(CXX_OBJ_EXT) $(CXX_OBJ_TEST):
118
119
$(ARTIFACT_OBJ ) : $(CXX_OBJ )
119
120
@echo " $( LD) [$( ARTIFACT_NAME) ] $( notdir $( ARTIFACT_OBJ) ) "
120
121
@$(LD ) -o $(ARTIFACT_OBJ ) -r $(CXX_OBJ )
121
-
122
+
123
+ $(ARTIFACT_OBJ_TEST ) : $(CXX_OBJ_TEST )
124
+ @echo " $( LD) [$( ARTIFACT_NAME) ] $( notdir $( ARTIFACT_OBJ_TEST) ) "
125
+ @$(LD ) -o $(ARTIFACT_OBJ_TEST ) -r $(CXX_OBJ_TEST )
126
+
122
127
# Linking
123
128
all : $(ARTIFACT_TARGETS )
124
129
125
- $(ARTIFACT_LIB ) : $(ARTIFACT_DEPS ) $(ARTIFACT_OBJ )
130
+ $(ARTIFACT_LIB ) : $(ARTIFACT_DEPS ) $(ARTIFACT_OBJ ) $( CXX_OBJ_NOTEST )
126
131
@echo " $( CXX) [$( ARTIFACT_NAME) ] $( notdir $( ARTIFACT_LIB) ) "
127
- @$(CXX ) -o $(ARTIFACT_LIB ) $(ARTIFACT_OBJFILES ) $(SO_FLAGS ) $(ARTIFACT_LDFLAGS )
132
+ @$(CXX ) -o $(ARTIFACT_LIB ) $(ARTIFACT_OBJFILES ) $(CXX_OBJ_NOTEST ) $( SO_FLAGS ) $(ARTIFACT_LDFLAGS )
128
133
129
- $(ARTIFACT_SLIB ) : $(ARTIFACT_DEPS ) $(ARTIFACT_OBJ )
134
+ $(ARTIFACT_SLIB ) : $(ARTIFACT_DEPS ) $(ARTIFACT_OBJ ) $( CXX_OBJ_NOTEST )
130
135
@echo " $( AR) [$( ARTIFACT_NAME) ] $( notdir $( ARTIFACT_SLIB) ) "
131
- @$(AR ) rcs $(ARTIFACT_SLIB ) $(ARTIFACT_OBJFILES )
136
+ @$(AR ) rcs $(ARTIFACT_SLIB ) $(ARTIFACT_OBJFILES ) $( CXX_OBJ_NOTEST )
132
137
133
- $(ARTIFACT_TEST_BIN ) : $(ARTIFACT_DEPS ) $(ARTIFACT_OBJ ) $(ARTIFACT_TEST_OBJ )
138
+ $(ARTIFACT_TEST_BIN ) : $(ARTIFACT_DEPS ) $(ARTIFACT_OBJ ) $(ARTIFACT_OBJ_TEST )
134
139
@echo " $( CXX) [$( ARTIFACT_NAME) ] $( notdir $( ARTIFACT_TEST_BIN) ) "
135
- @$(CXX ) -o $(ARTIFACT_TEST_BIN ) $(ARTIFACT_OBJFILES ) $(EXE_FLAGS ) $(ARTIFACT_LDFLAGS )
140
+ @$(CXX ) -o $(ARTIFACT_TEST_BIN ) $(ARTIFACT_OBJFILES ) $(ARTIFACT_OBJ_TEST ) $( EXE_FLAGS ) $(ARTIFACT_LDFLAGS )
136
141
137
142
$(ARTIFACT_PC ) :
138
143
@mkdir -p $(dir $(ARTIFACT_PC ) )
0 commit comments