summaryrefslogtreecommitdiffstats
path: root/src/Makefile.am
blob: d2f2f8f8204f7d3077be7f99f166fa211b90717e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
bin_PROGRAMS = game

common_sources = state.h

debug_flags = -O2 -DVKDEBUG
release_flags = -O3
common_flags = $(release_flags) -Wall -Wextra -march=native -fno-math-errno -funroll-loops -flto -pthread -ggdb -Wno-string-plus-int

AM_LDFLAGS = -fuse-ld=lld -flto

# -fwhole-program allows cross-file inlining, but only works when you put all
# the source files on one gcc command-line. -flto is another way to get the
# same effect. (Link-Time Optimization). clang supports -flto but not
# -fwhole-program.

# If your program doesn't depend on strict FP rounding
# behaviour, use -ffast-math. If it does, you can usually still use
# -fno-math-errno and stuff like that, without enabling
# -funsafe-math-optimizations. Some FP code can get big speedups from
# fast-math, like auto-vectorization.
AM_CFLAGS = $(common_flags)
# AM_CFLAGS = -O0 -march=native -fno-math-errno -funroll-loops -flto -pthread -ggdb -fsanitize=address

AM_CXXFLAGS = $(common_flags) -std=c++17

game_SOURCES = render.c cplusplus.cpp $(common_sources)
game_LDADD = -lSDL2 -lm -lvulkan -lshaderc_shared -lstdc++

cplusplus.$(OBJEXT) : CXXFLAGS += -Wno-nullability-completeness -Wno-unused-function -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-variable