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
|
INCLUDE_DIRS::=include
|
||||||
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
||||||
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
||||||
|
DEBUG_CFLAGS::=
|
||||||
|
DEBUG_CXXFLAGS::=
|
||||||
EXT::=cpp
|
EXT::=cpp
|
||||||
LANG::=$(EXT)
|
LANG::=$(EXT)
|
||||||
MAIN_EXECUTABLE::=tester
|
MAIN_EXECUTABLE::=tester
|
||||||
@ -41,6 +43,8 @@ ifneq ($(WINDOWS),1)
|
|||||||
CXX::=g++
|
CXX::=g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=
|
LDFLAGS::=
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=
|
||||||
STRIP::=strip
|
STRIP::=strip
|
||||||
RANLIB::=ranlib
|
RANLIB::=ranlib
|
||||||
AR::=ar
|
AR::=ar
|
||||||
@ -53,6 +57,8 @@ else #windows
|
|||||||
CXX::=$(MINGW_PREFIX)g++
|
CXX::=$(MINGW_PREFIX)g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=
|
LDFLAGS::=
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=
|
||||||
STRIP::=$(MINGW_PREFIX)strip
|
STRIP::=$(MINGW_PREFIX)strip
|
||||||
RANLIB::=$(MINGW_PREFIX)ranlib
|
RANLIB::=$(MINGW_PREFIX)ranlib
|
||||||
AR::=$(MINGW_PREFIX)ar
|
AR::=$(MINGW_PREFIX)ar
|
||||||
@ -100,13 +106,18 @@ endif
|
|||||||
#setup compiler and flags based on language
|
#setup compiler and flags based on language
|
||||||
ifeq ($(LANG),cpp)
|
ifeq ($(LANG),cpp)
|
||||||
COMPILER_FLAGS::=$(CXXFLAGS)
|
COMPILER_FLAGS::=$(CXXFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+= $(DEBUG_CXXFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CXX)
|
COMPILER::=$(CXX)
|
||||||
else ifeq ($(LANG),c)
|
else ifeq ($(LANG),c)
|
||||||
COMPILER_FLAGS::=$(CFLAGS)
|
COMPILER_FLAGS::=$(CFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+= $(DEBUG_CFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CC)
|
COMPILER::=$(CC)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(RELEASE),1)
|
ifeq ($(RELEASE),1)
|
||||||
#a lot of false strict aliasing warnings from gcc 9
|
#a lot of false strict aliasing warnings from gcc 9
|
||||||
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
|
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))))
|
INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
||||||
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
||||||
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
||||||
|
ifeq ($(RELEASE),1)
|
||||||
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
|
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
|
#just a variable for a newline
|
||||||
define \n
|
define \n
|
||||||
|
|
||||||
@ -168,7 +184,7 @@ flags-update: cflags-update ldflags-update
|
|||||||
|
|
||||||
#Link executable
|
#Link executable
|
||||||
$(MAIN_EXECUTABLE): $(OBJECTS) $(LDFLAGS_TMPFILE)
|
$(MAIN_EXECUTABLE): $(OBJECTS) $(LDFLAGS_TMPFILE)
|
||||||
$(COMPILER) $(OBJECTS) -o "$(basename $@)" $(ALL_LINKFLAGS) $(LDLIBS)
|
$(COMPILER) $(OBJECTS) -o "$(basename $@)" $(ALL_LINKFLAGS) $(ALL_LDLIBS)
|
||||||
ifeq ($(RELEASE),1)
|
ifeq ($(RELEASE),1)
|
||||||
$(STRIP) --strip-all "$(MAIN_EXECUTABLE)"
|
$(STRIP) --strip-all "$(MAIN_EXECUTABLE)"
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -27,6 +27,8 @@ LIBDIRS::=lib
|
|||||||
INCLUDE_DIRS::=include
|
INCLUDE_DIRS::=include
|
||||||
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
||||||
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
||||||
|
DEBUG_CFLAGS::=
|
||||||
|
DEBUG_CXXFLAGS::=
|
||||||
EXT::=cpp
|
EXT::=cpp
|
||||||
LANG::=$(EXT)
|
LANG::=$(EXT)
|
||||||
MAIN_EXECUTABLE::=tester
|
MAIN_EXECUTABLE::=tester
|
||||||
@ -45,6 +47,8 @@ ifneq ($(WINDOWS),1)
|
|||||||
CXX::=g++
|
CXX::=g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=
|
LDFLAGS::=
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=
|
||||||
STRIP::=strip
|
STRIP::=strip
|
||||||
RANLIB::=ranlib
|
RANLIB::=ranlib
|
||||||
AR::=ar
|
AR::=ar
|
||||||
@ -57,6 +61,8 @@ else #windows
|
|||||||
CXX::=$(MINGW_PREFIX)g++
|
CXX::=$(MINGW_PREFIX)g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=
|
LDFLAGS::=
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=
|
||||||
STRIP::=$(MINGW_PREFIX)strip
|
STRIP::=$(MINGW_PREFIX)strip
|
||||||
RANLIB::=$(MINGW_PREFIX)ranlib
|
RANLIB::=$(MINGW_PREFIX)ranlib
|
||||||
AR::=$(MINGW_PREFIX)ar
|
AR::=$(MINGW_PREFIX)ar
|
||||||
@ -97,9 +103,15 @@ endif
|
|||||||
#setup compiler and flags based on language
|
#setup compiler and flags based on language
|
||||||
ifeq ($(LANG),cpp)
|
ifeq ($(LANG),cpp)
|
||||||
COMPILER_FLAGS::=$(CXXFLAGS)
|
COMPILER_FLAGS::=$(CXXFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+= $(DEBUG_CXXFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CXX)
|
COMPILER::=$(CXX)
|
||||||
else ifeq ($(LANG),c)
|
else ifeq ($(LANG),c)
|
||||||
COMPILER_FLAGS::=$(CFLAGS)
|
COMPILER_FLAGS::=$(CFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+= $(DEBUG_CFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CC)
|
COMPILER::=$(CC)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -133,11 +145,12 @@ THIS_MAKEFILE_NAME::=$(lastword $(MAKEFILE_LIST))
|
|||||||
INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
||||||
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
||||||
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
||||||
|
ifeq ($(RELEASE),1)
|
||||||
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
|
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
|
||||||
ifeq ($(VERBOSE),1)
|
ALL_LDLIBS=$(LDLIBS)
|
||||||
SILENCER::=
|
|
||||||
else
|
else
|
||||||
SILENCER::=@
|
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS) $(DEBUG_LDFLAGS)
|
||||||
|
ALL_LDLIBS=$(LDLIBS) $(DEBUG_LDLIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#Arguments to make submake use this makefile without "Entering directory" stuff
|
#Arguments to make submake use this makefile without "Entering directory" stuff
|
||||||
@ -189,7 +202,7 @@ do_strip:
|
|||||||
#Link executable
|
#Link executable
|
||||||
$(MAIN_EXECUTABLE): $(OBJECTS)
|
$(MAIN_EXECUTABLE): $(OBJECTS)
|
||||||
@$(call PRINT_PERCENT,Linking $@)
|
@$(call PRINT_PERCENT,Linking $@)
|
||||||
$(SILENCER)$(COMPILER) $^ -o "$(basename $@)" $(ALL_LINKFLAGS) $(LDLIBS)
|
$(SILENCER)$(COMPILER) $^ -o "$(basename $@)" $(ALL_LINKFLAGS) $(ALL_LDLIBS)
|
||||||
|
|
||||||
#Object target recipe
|
#Object target recipe
|
||||||
define GENERATE_OBJECTS
|
define GENERATE_OBJECTS
|
||||||
|
|||||||
@ -27,6 +27,8 @@ LIBDIRS::=lib
|
|||||||
INCLUDE_DIRS::=include
|
INCLUDE_DIRS::=include
|
||||||
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
||||||
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
||||||
|
DEBUG_CFLAGS::=
|
||||||
|
DEBUG_CXXFLAGS::=
|
||||||
EXT::=cpp
|
EXT::=cpp
|
||||||
LANG::=$(EXT)
|
LANG::=$(EXT)
|
||||||
MAIN_LIBRARY::=tester
|
MAIN_LIBRARY::=tester
|
||||||
@ -43,6 +45,8 @@ ifneq ($(WINDOWS),1)
|
|||||||
CXX::=g++
|
CXX::=g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=
|
LDFLAGS::=
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=
|
||||||
STRIP::=strip
|
STRIP::=strip
|
||||||
RANLIB::=ranlib
|
RANLIB::=ranlib
|
||||||
AR::=ar
|
AR::=ar
|
||||||
@ -58,6 +62,8 @@ else #windows
|
|||||||
CXX::=$(MINGW_PREFIX)g++
|
CXX::=$(MINGW_PREFIX)g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=-static-libgcc -static-libstdc++
|
LDFLAGS::=-static-libgcc -static-libstdc++
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=-static-libgcc -static-libstdc++
|
||||||
STRIP::=$(MINGW_PREFIX)strip
|
STRIP::=$(MINGW_PREFIX)strip
|
||||||
RANLIB::=$(MINGW_PREFIX)ranlib
|
RANLIB::=$(MINGW_PREFIX)ranlib
|
||||||
AR::=$(MINGW_PREFIX)ar
|
AR::=$(MINGW_PREFIX)ar
|
||||||
@ -113,9 +119,15 @@ endif
|
|||||||
#setup compiler and flags based on language
|
#setup compiler and flags based on language
|
||||||
ifeq ($(LANG),cpp)
|
ifeq ($(LANG),cpp)
|
||||||
COMPILER_FLAGS::=$(CXXFLAGS)
|
COMPILER_FLAGS::=$(CXXFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+=$(DEBUG_CXXFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CXX)
|
COMPILER::=$(CXX)
|
||||||
else ifeq ($(LANG),c)
|
else ifeq ($(LANG),c)
|
||||||
COMPILER_FLAGS::=$(CFLAGS)
|
COMPILER_FLAGS::=$(CFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+=$(DEBUG_CFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CC)
|
COMPILER::=$(CC)
|
||||||
endif
|
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)))))
|
STATIC_OBJECTS::=$(addprefix $(OBJDIR)/static/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
||||||
SHARED_OBJECTS::=$(addprefix $(OBJDIR)/shared/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
SHARED_OBJECTS::=$(addprefix $(OBJDIR)/shared/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
||||||
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
||||||
|
ifeq ($(RELEASE),1)
|
||||||
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
|
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
|
.PHONY: cflags-update
|
||||||
cflags-update:
|
cflags-update:
|
||||||
@ -178,7 +196,7 @@ flags-update: cflags-update ldflags-update
|
|||||||
|
|
||||||
#target for shared library
|
#target for shared library
|
||||||
$(INTERNAL_SHARED_LIBRARY): $(SHARED_OBJECTS) $(LDFLAGS_TMPFILE)
|
$(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)
|
ifeq ($(RELEASE),1)
|
||||||
$(STRIP) --strip-debug "$@"
|
$(STRIP) --strip-debug "$@"
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -27,6 +27,8 @@ LIBDIRS::=lib
|
|||||||
INCLUDE_DIRS::=include
|
INCLUDE_DIRS::=include
|
||||||
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
||||||
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
||||||
|
DEBUG_CFLAGS::=
|
||||||
|
DEBUG_CXXFLAGS::=
|
||||||
EXT::=cpp
|
EXT::=cpp
|
||||||
LANG::=$(EXT)
|
LANG::=$(EXT)
|
||||||
MAIN_LIBRARY::=tester
|
MAIN_LIBRARY::=tester
|
||||||
@ -46,6 +48,8 @@ ifneq ($(WINDOWS),1)
|
|||||||
CXX::=g++
|
CXX::=g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=
|
LDFLAGS::=
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=
|
||||||
STRIP::=strip
|
STRIP::=strip
|
||||||
RANLIB::=ranlib
|
RANLIB::=ranlib
|
||||||
AR::=ar
|
AR::=ar
|
||||||
@ -58,6 +62,8 @@ else #windows
|
|||||||
CXX::=$(MINGW_PREFIX)g++
|
CXX::=$(MINGW_PREFIX)g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=-static-libgcc -static-libstdc++
|
LDFLAGS::=-static-libgcc -static-libstdc++
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=-static-libgcc -static-libstdc++
|
||||||
STRIP::=$(MINGW_PREFIX)strip
|
STRIP::=$(MINGW_PREFIX)strip
|
||||||
RANLIB::=$(MINGW_PREFIX)ranlib
|
RANLIB::=$(MINGW_PREFIX)ranlib
|
||||||
AR::=$(MINGW_PREFIX)ar
|
AR::=$(MINGW_PREFIX)ar
|
||||||
@ -105,9 +111,15 @@ endif
|
|||||||
#setup compiler and flags based on language
|
#setup compiler and flags based on language
|
||||||
ifeq ($(LANG),cpp)
|
ifeq ($(LANG),cpp)
|
||||||
COMPILER_FLAGS::=$(CXXFLAGS)
|
COMPILER_FLAGS::=$(CXXFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+=$(DEBUG_CXXFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CXX)
|
COMPILER::=$(CXX)
|
||||||
else ifeq ($(LANG),c)
|
else ifeq ($(LANG),c)
|
||||||
COMPILER_FLAGS::=$(CFLAGS)
|
COMPILER_FLAGS::=$(CFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+=$(DEBUG_CFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CC)
|
COMPILER::=$(CC)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -151,7 +163,13 @@ ifeq ($(SHARED),1)
|
|||||||
SHARED_OBJECTS::=$(addprefix $(OBJDIR)/shared/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
SHARED_OBJECTS::=$(addprefix $(OBJDIR)/shared/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
||||||
endif
|
endif
|
||||||
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
||||||
|
ifeq ($(RELEASE),1)
|
||||||
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
|
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
|
#Arguments to make submake use this makefile without "Entering directory" stuff
|
||||||
SUBMAKE_ARGUMENTS::=--no-print-directory -e -f "$(THIS_MAKEFILE_NAME)"
|
SUBMAKE_ARGUMENTS::=--no-print-directory -e -f "$(THIS_MAKEFILE_NAME)"
|
||||||
@ -197,12 +215,12 @@ endif #static
|
|||||||
ifeq ($(WINDOWS),1)
|
ifeq ($(WINDOWS),1)
|
||||||
#target for windows shared library
|
#target for windows shared library
|
||||||
$(DLLOUT): $(SHARED_OBJECTS) $(LDFLAGS_TMPFILE)
|
$(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
|
else #windows
|
||||||
|
|
||||||
#target for *nix shared library
|
#target for *nix shared library
|
||||||
$(INTERNAL_SHARED_LIBRARY): $(SHARED_OBJECTS) $(LDFLAGS_TMPFILE)
|
$(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
|
endif #windows
|
||||||
|
|
||||||
#target for static library
|
#target for static library
|
||||||
|
|||||||
@ -27,6 +27,8 @@ LIBDIRS::=lib
|
|||||||
INCLUDE_DIRS::=include
|
INCLUDE_DIRS::=include
|
||||||
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
|
||||||
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
|
||||||
|
DEBUG_CFLAGS::=
|
||||||
|
DEBUG_CXXFLAGS::=
|
||||||
EXT::=cpp
|
EXT::=cpp
|
||||||
LANG::=$(EXT)
|
LANG::=$(EXT)
|
||||||
MAIN_EXECUTABLE::=tester
|
MAIN_EXECUTABLE::=tester
|
||||||
@ -44,6 +46,8 @@ ifneq ($(WINDOWS),1)
|
|||||||
CXX::=g++
|
CXX::=g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=
|
LDFLAGS::=
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=
|
||||||
STRIP::=strip
|
STRIP::=strip
|
||||||
RANLIB::=ranlib
|
RANLIB::=ranlib
|
||||||
AR::=ar
|
AR::=ar
|
||||||
@ -56,6 +60,8 @@ else #windows
|
|||||||
CXX::=$(MINGW_PREFIX)g++
|
CXX::=$(MINGW_PREFIX)g++
|
||||||
LDLIBS::=
|
LDLIBS::=
|
||||||
LDFLAGS::=
|
LDFLAGS::=
|
||||||
|
DEBUG_LDLIBS::=
|
||||||
|
DEBUG_LDFLAGS::=
|
||||||
STRIP::=$(MINGW_PREFIX)strip
|
STRIP::=$(MINGW_PREFIX)strip
|
||||||
RANLIB::=$(MINGW_PREFIX)ranlib
|
RANLIB::=$(MINGW_PREFIX)ranlib
|
||||||
AR::=$(MINGW_PREFIX)ar
|
AR::=$(MINGW_PREFIX)ar
|
||||||
@ -97,9 +103,15 @@ endif
|
|||||||
#setup compiler and flags based on language
|
#setup compiler and flags based on language
|
||||||
ifeq ($(LANG),cpp)
|
ifeq ($(LANG),cpp)
|
||||||
COMPILER_FLAGS::=$(CXXFLAGS)
|
COMPILER_FLAGS::=$(CXXFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+=$(DEBUG_CXXFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CXX)
|
COMPILER::=$(CXX)
|
||||||
else ifeq ($(LANG),c)
|
else ifeq ($(LANG),c)
|
||||||
COMPILER_FLAGS::=$(CFLAGS)
|
COMPILER_FLAGS::=$(CFLAGS)
|
||||||
|
ifneq ($(RELEASE),1)
|
||||||
|
COMPILER_FLAGS+=$(DEBUG_CFLAGS)
|
||||||
|
endif
|
||||||
COMPILER::=$(CC)
|
COMPILER::=$(CC)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -134,7 +146,13 @@ THIS_MAKEFILE_NAME::=$(lastword $(MAKEFILE_LIST))
|
|||||||
INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
INTERNAL_SOURCES::=$(SOURCES) $(foreach source,$(SOURCE_DIRS),$(foreach ext,$(EXT),$(wildcard $(source)/*.$(ext))))
|
||||||
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
OBJECTS::=$(addprefix $(OBJDIR)/,$(subst \,.,$(subst /,.,$(addsuffix .o,$(INTERNAL_SOURCES)))))
|
||||||
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
ALL_COMPILEFLAGS=$(COMPILER_FLAGS) $(INTERNAL_COMPILERFLAGS)
|
||||||
|
ifeq ($(RELEASE),1)
|
||||||
ALL_LINKFLAGS=$(INTERNAL_LINKFLAGS) $(LDFLAGS)
|
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
|
#Arguments to make submake use this makefile without "Entering directory" stuff
|
||||||
SUBMAKE_ARGUMENTS::=--no-print-directory -e -f "$(THIS_MAKEFILE_NAME)"
|
SUBMAKE_ARGUMENTS::=--no-print-directory -e -f "$(THIS_MAKEFILE_NAME)"
|
||||||
@ -170,7 +188,7 @@ all: flags-update
|
|||||||
|
|
||||||
#Link executable
|
#Link executable
|
||||||
$(MAIN_EXECUTABLE): $(OBJECTS) $(LDFLAGS_TMPFILE)
|
$(MAIN_EXECUTABLE): $(OBJECTS) $(LDFLAGS_TMPFILE)
|
||||||
$(COMPILER) $(OBJECTS) -o "$(basename $@)" $(ALL_LINKFLAGS) $(LDLIBS)
|
$(COMPILER) $(OBJECTS) -o "$(basename $@)" $(ALL_LINKFLAGS) $(ALL_LDLIBS)
|
||||||
ifeq ($(RELEASE),1)
|
ifeq ($(RELEASE),1)
|
||||||
$(STRIP) --strip-all "$@"
|
$(STRIP) --strip-all "$@"
|
||||||
endif
|
endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user