Separate LDFLAGS and LDLIBS. Add debug settings

This commit is contained in:
2021-04-12 13:41:25 -07:00
parent 53e3e5bf78
commit 46ad8869b8
5 changed files with 99 additions and 16 deletions

View File

@@ -27,6 +27,8 @@ LIBDIRS::=lib
INCLUDE_DIRS::=include
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
DEBUG_CFLAGS::=
DEBUG_CXXFLAGS::=
EXT::=cpp
LANG::=$(EXT)
MAIN_LIBRARY::=tester
@@ -43,6 +45,8 @@ ifneq ($(WINDOWS),1)
CXX::=g++
LDLIBS::=
LDFLAGS::=
DEBUG_LDLIBS::=
DEBUG_LDFLAGS::=
STRIP::=strip
RANLIB::=ranlib
AR::=ar
@@ -58,6 +62,8 @@ else #windows
CXX::=$(MINGW_PREFIX)g++
LDLIBS::=
LDFLAGS::=-static-libgcc -static-libstdc++
DEBUG_LDLIBS::=
DEBUG_LDFLAGS::=-static-libgcc -static-libstdc++
STRIP::=$(MINGW_PREFIX)strip
RANLIB::=$(MINGW_PREFIX)ranlib
AR::=$(MINGW_PREFIX)ar
@@ -113,9 +119,15 @@ endif
#setup compiler and flags based on language
ifeq ($(LANG),cpp)
COMPILER_FLAGS::=$(CXXFLAGS)
ifneq ($(RELEASE),1)
COMPILER_FLAGS+=$(DEBUG_CXXFLAGS)
endif
COMPILER::=$(CXX)
else ifeq ($(LANG),c)
COMPILER_FLAGS::=$(CFLAGS)
ifneq ($(RELEASE),1)
COMPILER_FLAGS+=$(DEBUG_CFLAGS)
endif
COMPILER::=$(CC)
endif
@@ -154,7 +166,13 @@ INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EX
STATIC_OBJECTS::=$(addprefix $(OBJDIR)/static/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
SHARED_OBJECTS::=$(addprefix $(OBJDIR)/shared/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
ifeq ($(RELEASE),1)
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
ALL_LDLIBS=$(LDLIBS)
else
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS) $(DEBUG_LDFLAGS)
ALL_LDLIBS=$(LDLIBS) $(DEBUG_LDLIBS)
endif
.PHONY: cflags-update
cflags-update:
@@ -178,7 +196,7 @@ flags-update: cflags-update ldflags-update
#target for shared library
$(INTERNAL_SHARED_LIBRARY): $(SHARED_OBJECTS) $(LDFLAGS_TMPFILE)
$(COMPILER) -shared -o "$@" $(SHARED_OBJECTS) -fPIC $(ALL_LINKFLAGS) $(LDLIBS)
$(COMPILER) -shared -o "$@" $(SHARED_OBJECTS) -fPIC $(ALL_LINKFLAGS) $(ALL_LDLIBS)
ifeq ($(RELEASE),1)
$(STRIP) --strip-debug "$@"
endif