--- a/makefile
+++ b/makefile
@@ -226,7 +226,7 @@ CPP = cpp
 #So, -nostdinc will prevent the whole own comment blob of cpp to get generated
 #in the first place, as we never asked for it:
 #CPPFLAGS = -C -P -nostdinc
-CPPFLAGS = -x c -E -Wp,-C,-P,-nostdinc,-Wno-format-overflow
+CPPFLAGS = -x c -E -Wp,-C,-P,-nostdinc,-Wno-format-overflow $(GENTOO_CPPFLAGS)
 
 # gcc variant:
 #CPP = gcc
@@ -237,6 +237,21 @@ CPPFLAGS = -x c -E -Wp,-C,-P,-nostdinc,-Wno-format-overflow
 # For variations with X11
 X11BASE = /usr/X11R6
 
+# Defines
+ifdef USE_SDL
+CFLAGS += -DSOUND_SDL $(shell ${PKG_CONFIG} --cflags sdl2) $(shell ${PKG_CONFIG} --cflags SDL2_mixer)
+SDL_LIBS = $(shell ${PKG_CONFIG} --libs sdl2) $(shell ${PKG_CONFIG} --libs SDL2_mixer)
+endif
+
+ifdef USE_X
+CFLAGS += -DUSE_X11
+LIBS += -lX11
+endif
+
+CFLAGS += -Wall
+CFLAGS += -DUSE_GCU -DMEXP=19937 -std=gnu99
+LIBS += $(shell ${PKG_CONFIG} --libs ncurses) -lcrypt -lm ${SDL_LIBS}
+
 
 # Account editor
 ACCEDIT_LIBS = -lncurses -lcrypt
@@ -291,12 +306,10 @@ SERVER_EXTRA_LIBS = -lcrypt
 
 # With SDL2
 #  With sdl2-config
-CFLAGS = -pipe -Wall -DUSE_GCU -D_XOPEN_SOURCE -D_BSD_SOURCE -DMEXP=19937 -std=c99 -D_DEFAULT_SOURCE -DACC32 -fPIE -fsigned-char -Wno-macro-redefined
 # Note: -fsigned-char is important for ARM64, as there 'char' is by default unsigned, while on x86/AM64 it is by default signed!
 #  With manually set prefix
 #CFLAGS = -pipe -Wall -DUSE_X11 -DUSE_GCU -I${X11BASE}/include -D_XOPEN_SOURCE -D_BSD_SOURCE -DMEXP=19937 -std=c99 -DSOUND_SDL -I/usr/local/include/SDL2 -I/usr/include/SDL2 -D_REENTRANT -D_DEFAULT_SOURCE -DACC32 -fPIE -fsigned-char -Wno-format-truncation
 #  With sdl2-config
-LIBS = -L/usr/pkg/lib -lncurses -lm
 #  With manually set prefix
 #LIBS = -L${X11BASE}/lib -L/usr/pkg/lib -lX11 -lncurses -lm -L/usr/local/lib -L/usr/lib -pthread -lSDL2 -lSDL2_mixer
 
@@ -308,8 +321,6 @@ ifneq (${HAVE_TINFO}, 0)
 endif
 
 # Security hardening
-CFLAGS += -fstack-protector -D_FORTIFY_SOURCE=2 -fPIE
-LDFLAGS += -Wl,-z,relro -Wl,-z,now
 
 # Optional: Compile with Link Time Optimization (LTO)
 #CFLAGS += -flto=auto
@@ -420,17 +431,17 @@ LDFLAGS += -Wl,-z,relro -Wl,-z,now
 CFLAGS += $(shell ./os-check.sh)
 
 # Normal (non-test) client uses optimizations
-tomenet: CFLAGS += -g -O2 -DSOUND_SDL `sdl2-config --cflags` -DUSE_X11 -I${X11BASE}/include
-tomenet: LIBS += -L${X11BASE}/lib -lX11 `sdl2-config --libs` -lSDL2_mixer
+tomenet: CFLAGS += -DSOUND_SDL $(${PKG_CONFIG} --cflags sdl2) $(${PKG_CONFIG} --cflags SDL2_mixer) -DUSE_X11 -I${X11BASE}/include
+tomenet: LIBS += -L${X11BASE}/lib -lX11 $(${PKG_CONFIG} --libs sdl2) $(${PKG_CONFIG} --libs SDL2_mixer)
 # Compile a client with 'test client' version/tag
 #tomenet.test: CFLAGS += -DTEST_CLIENT -g3 -O0
 #disable 3 warning spams: 'accessing n bytes in a region of size m', '_FORTIFY_SOURCE requires compiling with optimization', 'directive writing up to 159 bytes into a region of size'
-tomenet.test: CFLAGS += -DTEST_CLIENT -g3 -O0 -Wno-stringop-overflow -Wno-cpp -Wno-format-overflow -DSOUND_SDL `sdl2-config --cflags` -DUSE_X11 -I${X11BASE}/include
-tomenet.test: PPFLAGS = -DTEST_CLIENT -DSOUND_SDL `sdl2-config --cflags` 
-tomenet.test: LIBS += -L${X11BASE}/lib -lX11 `sdl2-config --libs` -lSDL2_mixer
-accedit: CFLAGS += -g -O2
+tomenet.test: CFLAGS += -DTEST_CLIENT -g3 -O0 -Wno-stringop-overflow -Wno-cpp -Wno-format-overflow -DSOUND_SDL $(${PKG_CONFIG} --cflags sdl2) $(${PKG_CONFIG} --cflags SDL2_mixer) -DUSE_X11 -I${X11BASE}/include
+tomenet.test: PPFLAGS = -DTEST_CLIENT -DSOUND_SDL $(${PKG_CONFIG} --cflags sdl2) $(${PKG_CONFIG} --cflags SDL2_mixer)
+tomenet.test: LIBS += -L${X11BASE}/lib -lX11 $(${PKG_CONFIG} --libs sdl2) $(${PKG_CONFIG} --libs SDL2_mixer)
+#accedit: CFLAGS += -g -O2
 # Server is compiled with optimizations:
-tomenet.server: CFLAGS += -g -O2
+#tomenet.server: CFLAGS += -g -O2
 # Server is compiled without optimizations, for debugging with gdb specifically:
 #tomenet.server: CFLAGS += -ggdb -O0
 
