+CPPFLAGS += -I$(cmdlist_dir)
+
+CFLAGS += -Os
+CFLAGS += -Wuninitialized
+CFLAGS += -Wchar-subscripts
+CFLAGS += -Werror-implicit-function-declaration
+CFLAGS += -Wmissing-noreturn
+CFLAGS += -Wbad-function-cast
+CFLAGS += -fno-strict-aliasing
+
+STRICT_CFLAGS = $(CFLAGS)
+STRICT_CFLAGS += -g -Wundef -W
+STRICT_CFLAGS += -Wredundant-decls
+STRICT_CFLAGS += -Wno-sign-compare -Wno-unknown-pragmas
+STRICT_CFLAGS += -Wformat -Wformat-security
+STRICT_CFLAGS += -Wmissing-format-attribute
+STRICT_CFLAGS += -Wdeclaration-after-statement
+
+ifeq ($(uname_s),Linux)
+ # these cause warnings on *BSD
+ CPPFLAGS += -Wunused-macros
+ STRICT_CFLAGS += -fdata-sections -ffunction-sections
+ STRICT_CFLAGS += -Wstrict-prototypes
+ STRICT_CFLAGS += -Wshadow
+ STRICT_CFLAGS += -Wunused -Wall
+ LDFLAGS += -Wl,--gc-sections
+endif