Separate LDFLAGS and LDLIBS. Add debug settings
This commit is contained in:
parent
53e3e5bf78
commit
46ad8869b8
@ -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_EXECUTABLE::=tester
|
||||
@ -41,6 +43,8 @@ ifneq ($(WINDOWS),1)
|
||||
CXX::=g++
|
||||
LDLIBS::=
|
||||
LDFLAGS::=
|
||||
DEBUG_LDLIBS::=
|
||||
DEBUG_LDFLAGS::=
|
||||
STRIP::=strip
|
||||
RANLIB::=ranlib
|
||||
AR::=ar
|
||||
@ -53,6 +57,8 @@ else #windows
|
||||
CXX::=$(MINGW_PREFIX)g++
|
||||
LDLIBS::=
|
||||
LDFLAGS::=
|
||||
DEBUG_LDLIBS::=
|
||||
DEBUG_LDFLAGS::=
|
||||
STRIP::=$(MINGW_PREFIX)strip
|
||||
RANLIB::=$(MINGW_PREFIX)ranlib
|
||||
AR::=$(MINGW_PREFIX)ar
|
||||
@ -100,13 +106,18 @@ 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
|
||||
|
||||
|
||||
ifeq ($(RELEASE),1)
|
||||
#a lot of false strict aliasing warnings from gcc 9
|
||||
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
||||
@ -138,8 +149,13 @@ INTERNAL_LINKFLAGS=$(foreach dir,$(LIBDIRS),-L"$(dir)")
|
||||
INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
||||
OBJECTS::=$(addprefix $(OBJDIR)/,$(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
|
||||
#just a variable for a newline
|
||||
define \n
|
||||
|
||||
@ -168,7 +184,7 @@ flags-update: cflags-update ldflags-update
|
||||
|
||||
#Link executable
|
||||
$(MAIN_EXECUTABLE): $(OBJECTS) $(LDFLAGS_TMPFILE)
|
||||
$(COMPILER) $(OBJECTS) -o "$(basename $@)" $(ALL_LINKFLAGS) $(LDLIBS)
|
||||
$(COMPILER) $(OBJECTS) -o "$(basename $@)" $(ALL_LINKFLAGS) $(ALL_LDLIBS)
|
||||
ifeq ($(RELEASE),1)
|
||||
$(STRIP) --strip-all "$(MAIN_EXECUTABLE)"
|
||||
endif
|
||||
|
||||
@ -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_EXECUTABLE::=tester
|
||||
@ -45,6 +47,8 @@ ifneq ($(WINDOWS),1)
|
||||
CXX::=g++
|
||||
LDLIBS::=
|
||||
LDFLAGS::=
|
||||
DEBUG_LDLIBS::=
|
||||
DEBUG_LDFLAGS::=
|
||||
STRIP::=strip
|
||||
RANLIB::=ranlib
|
||||
AR::=ar
|
||||
@ -57,6 +61,8 @@ else #windows
|
||||
CXX::=$(MINGW_PREFIX)g++
|
||||
LDLIBS::=
|
||||
LDFLAGS::=
|
||||
DEBUG_LDLIBS::=
|
||||
DEBUG_LDFLAGS::=
|
||||
STRIP::=$(MINGW_PREFIX)strip
|
||||
RANLIB::=$(MINGW_PREFIX)ranlib
|
||||
AR::=$(MINGW_PREFIX)ar
|
||||
@ -97,9 +103,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
|
||||
|
||||
@ -133,11 +145,12 @@ THIS_MAKEFILE_NAME::=$(lastword $(MAKEFILE_LIST))
|
||||
INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
||||
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
||||
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
||||
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
|
||||
ifeq ($(VERBOSE),1)
|
||||
SILENCER::=
|
||||
ifeq ($(RELEASE),1)
|
||||
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
|
||||
ALL_LDLIBS=$(LDLIBS)
|
||||
else
|
||||
SILENCER::=@
|
||||
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS) $(DEBUG_LDFLAGS)
|
||||
ALL_LDLIBS=$(LDLIBS) $(DEBUG_LDLIBS)
|
||||
endif
|
||||
|
||||
#Arguments to make submake use this makefile without "Entering directory" stuff
|
||||
@ -189,7 +202,7 @@ do_strip:
|
||||
#Link executable
|
||||
$(MAIN_EXECUTABLE): $(OBJECTS)
|
||||
@$(call PRINT_PERCENT,Linking $@)
|
||||
$(SILENCER)$(COMPILER) $^ -o "$(basename $@)" $(ALL_LINKFLAGS) $(LDLIBS)
|
||||
$(SILENCER)$(COMPILER) $^ -o "$(basename $@)" $(ALL_LINKFLAGS) $(ALL_LDLIBS)
|
||||
|
||||
#Object target recipe
|
||||
define GENERATE_OBJECTS
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -46,6 +48,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
|
||||
@ -105,9 +111,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
|
||||
|
||||
@ -151,7 +163,13 @@ ifeq ($(SHARED),1)
|
||||
SHARED_OBJECTS::=$(addprefix $(OBJDIR)/shared/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
||||
endif
|
||||
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
|
||||
|
||||
#Arguments to make submake use this makefile without "Entering directory" stuff
|
||||
SUBMAKE_ARGUMENTS::=--no-print-directory -e -f "$(THIS_MAKEFILE_NAME)"
|
||||
@ -197,12 +215,12 @@ endif #static
|
||||
ifeq ($(WINDOWS),1)
|
||||
#target for windows shared library
|
||||
$(DLLOUT): $(SHARED_OBJECTS) $(LDFLAGS_TMPFILE)
|
||||
$(COMPILER) -shared -o "$(DLLOUT)" $(SHARED_OBJECTS) -Wl,--out-implib,"lib$(MAIN_LIBRARY).a" $(SHARED_LIBRARY_FLAGS) $(ALL_LINKFLAGS) $(LDLIBS)
|
||||
$(COMPILER) -shared -o "$(DLLOUT)" $(SHARED_OBJECTS) -Wl,--out-implib,"lib$(MAIN_LIBRARY).a" $(SHARED_LIBRARY_FLAGS) $(ALL_LINKFLAGS) $(ALL_LDLIBS)
|
||||
else #windows
|
||||
|
||||
#target for *nix shared library
|
||||
$(INTERNAL_SHARED_LIBRARY): $(SHARED_OBJECTS) $(LDFLAGS_TMPFILE)
|
||||
$(COMPILER) -shared -o "$@" $(SHARED_OBJECTS) $(SHARED_LIBRARY_FLAGS) $(ALL_LINKFLAGS) $(LDLIBS)
|
||||
$(COMPILER) -shared -o "$@" $(SHARED_OBJECTS) $(SHARED_LIBRARY_FLAGS) $(ALL_LINKFLAGS) $(ALL_LDLIBS)
|
||||
endif #windows
|
||||
|
||||
#target for static library
|
||||
|
||||
@ -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_EXECUTABLE::=tester
|
||||
@ -44,6 +46,8 @@ ifneq ($(WINDOWS),1)
|
||||
CXX::=g++
|
||||
LDLIBS::=
|
||||
LDFLAGS::=
|
||||
DEBUG_LDLIBS::=
|
||||
DEBUG_LDFLAGS::=
|
||||
STRIP::=strip
|
||||
RANLIB::=ranlib
|
||||
AR::=ar
|
||||
@ -56,6 +60,8 @@ else #windows
|
||||
CXX::=$(MINGW_PREFIX)g++
|
||||
LDLIBS::=
|
||||
LDFLAGS::=
|
||||
DEBUG_LDLIBS::=
|
||||
DEBUG_LDFLAGS::=
|
||||
STRIP::=$(MINGW_PREFIX)strip
|
||||
RANLIB::=$(MINGW_PREFIX)ranlib
|
||||
AR::=$(MINGW_PREFIX)ar
|
||||
@ -97,9 +103,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
|
||||
|
||||
@ -134,7 +146,13 @@ THIS_MAKEFILE_NAME::=$(lastword $(MAKEFILE_LIST))
|
||||
INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
||||
OBJECTS::=$(addprefix $(OBJDIR)/,$(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
|
||||
|
||||
#Arguments to make submake use this makefile without "Entering directory" stuff
|
||||
SUBMAKE_ARGUMENTS::=--no-print-directory -e -f "$(THIS_MAKEFILE_NAME)"
|
||||
@ -170,7 +188,7 @@ all: flags-update
|
||||
|
||||
#Link executable
|
||||
$(MAIN_EXECUTABLE): $(OBJECTS) $(LDFLAGS_TMPFILE)
|
||||
$(COMPILER) $(OBJECTS) -o "$(basename $@)" $(ALL_LINKFLAGS) $(LDLIBS)
|
||||
$(COMPILER) $(OBJECTS) -o "$(basename $@)" $(ALL_LINKFLAGS) $(ALL_LDLIBS)
|
||||
ifeq ($(RELEASE),1)
|
||||
$(STRIP) --strip-all "$@"
|
||||
endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user