41 lines
1.2 KiB
Makefile
41 lines
1.2 KiB
Makefile
# Base compiler flags. Only change if you *explicitly* know what you're doing.
|
|
|
|
# replace this
|
|
VS2022_PATH := ~/vs2022
|
|
|
|
RC_INCLUDES := /I $(VS2022_PATH)/winsdk/include/um /I $(VS2022_PATH)/winsdk/include/shared
|
|
SDK_INCLUDES := -isystem $(VS2022_PATH)/ucrt/include -isystem $(VS2022_PATH)/crt/include -isystem $(VS2022_PATH)/winsdk/include/shared -isystem $(VS2022_PATH)/winsdk/include/um
|
|
|
|
# Windows 6.1
|
|
BASE_CCFLAGS := $(SDK_INCLUDES) -D_WIN32_WINNT=0x0601 -Ires -std=c17
|
|
BASE_CXXFLAGS := $(SDK_INCLUDES) -D_CRT_SECURE_NO_WARNINGS -fno-exceptions -fno-rtti -D_WIN32_WINNT=0x0601 -Isrc -Ires -std=c++23
|
|
|
|
Release_Valid = yes
|
|
Release_CCFLAGS = -O3 -ffast-math -DNDEBUG
|
|
Release_CXXFLAGS = -O3 -ffast-math -DNDEBUG
|
|
#-ffunction-sections -fdata-sections
|
|
Release_LDFLAGS = -s
|
|
#-Wl,--gc-sections
|
|
|
|
Debug_Valid = yes
|
|
Debug_CCFLAGS = -O0 -g -D_DEBUG
|
|
Debug_CXXFLAGS = -O0 -g -D_DEBUG -D_ITERATOR_DEBUG_LEVEL=2
|
|
Debug_LDFLAGS =
|
|
|
|
# select a default configuration or validate configuration
|
|
ifeq ($(CONFIG),)
|
|
CONFIG = Release
|
|
endif
|
|
|
|
|
|
ifneq ($($(CONFIG)_Valid),yes)
|
|
$(error Please select a valid configuration)
|
|
endif
|
|
|
|
# for debug msvc libs. FUCK microsoft
|
|
ifeq ($(CONFIG),Debug)
|
|
D = d
|
|
else
|
|
D =
|
|
endif
|
|
|