Generate static library on non-Windows platforms too.

This commit is contained in:
Brian Smith 2015-07-27 13:51:14 -04:00
parent 5007fb3af0
commit 375e02bc73
4 changed files with 17 additions and 4 deletions

View File

@ -24,6 +24,10 @@ OBJS += \
$(RING_TEST_MAIN_OBJS) \
$(NULL)
LIBS += \
$(RING_LIB) \
$(NULL)
EXES += $(RING_TEST_EXES)
TESTS += $(RING_TESTS)

View File

@ -15,6 +15,8 @@
GENERATED = \
$(EXES) \
$(OBJS) \
$(OBJS:.o=.d) \
$(LIBS) \
$(OTHER_GENERATED) \
$(NULL)
@ -49,7 +51,7 @@ check:
.PHONY: clean
clean:
$(RM) $(EXES) $(OBJS) $(OBJS:.o=.d)
$(RM) $(GENERATED)
# The C/C++ compiler generates dependency info for #includes.

View File

@ -187,6 +187,12 @@ RING_OBJS = $(addprefix $(OBJ_PREFIX), \
$(RING_$(ARCH)_EXTRA_OBJS) \
$(NULL)
RING_LIB = $(LIB_PREFIX)libring.a
$(RING_LIB): ARFLAGS = cDrs
$(RING_LIB): $(RING_OBJS) $(PREFIX)mk/ring.mk
$(RM) $@
$(AR) $(ARFLAGS) $@ $(filter-out $(PREFIX)mk/ring.mk, $^)
RING_TEST_LIB_SRCS = \
crypto/test/file_test.cc \
crypto/test/malloc.cc \
@ -232,10 +238,11 @@ $(RING_TEST_EXES): LDLIBS += $(RING_LDLIBS)
$(RING_TEST_EXES): $(EXE_PREFIX)% : \
$(OBJ_PREFIX)%.o \
$(RING_OBJS) \
$(RING_LIB) \
$(RING_TEST_LIB_OBJS) \
$(NULL)
$(CXX) $^ $(LDFLAGS) $(LDLIBS) -o $@
$(CXX) $(filter-out $(RING_LIB),$^) \
-L$(LIB_PREFIX) -lring $(LDFLAGS) $(LDLIBS) -o $@
# TODO: Have -DOPENSSL_NO_ASM controlled by a flag.
# TODO: Fix the code so -Wno-error overrides are not needed.

View File

@ -25,8 +25,8 @@ endif
BUILD_PREFIX ?= build/
EXE_PREFIX ?= $(BUILD_PREFIX)bin/
OBJ_PREFIX ?= $(BUILD_PREFIX)obj/
LIB_PREFIX ?= $(BUILD_PREFIX)lib/
CFLAGS_STD ?= -std=c11
CXXFLAGS_STD ?= -std=c++11