--include ../../Makefile.cfg
-
-CPPFLAGS = -I../../Kernel/include -I../../Kernel/arch/$(ARCHDIR)/include -DARCH=$(ARCH)
-CFLAGS = -Wall -Werror -fno-stack-protector $(CPPFLAGS)
-
-OBJ := $(addsuffix .$(ARCH),$(OBJ))
-BIN = ../$(NAME).kmd.$(ARCH)
-KOBJ = ../$(NAME).xo.$(ARCH)
-
-DEPFILES = $(filter %.o.$(ARCH),$(OBJ))
-DEPFILES := $(DEPFILES:%.o.$(ARCH)=%.d.$(ARCH))
+_CPPFLAGS := $(CPPFLAGS)
+
+CFGFILES :=
+CFGFILES += $(shell test -f ../../../Makefile.cfg && echo ../../../Makefile.cfg)
+CFGFILES += $(shell test -f ../../Makefile.cfg && echo ../../Makefile.cfg)
+CFGFILES += $(shell test -f ../Makefile.cfg && echo ../Makefile.cfg)
+CFGFILES += $(shell test -f Makefile.cfg && echo Makefile.cfg)
+-include $(CFGFILES)
+
+CPPFLAGS := -I$(ACESSDIR)/Kernel/include -I$(ACESSDIR)/Kernel/arch/$(ARCHDIR)/include -DARCH=$(ARCH) $(_CPPFLAGS)
+CFLAGS := $(KERNEL_CFLAGS) -Wall -Werror -fno-stack-protector $(CPPFLAGS) -O3 -fno-builtin
+
+ifeq ($(BUILDTYPE),dynamic)
+ _SUFFIX := dyn_$(ARCH)
+ ifneq ($(CATEGORY),)
+ BIN := ../$(CATEGORY)_$(NAME).kmd.$(ARCH)
+ else
+ BIN := ../$(NAME).kmd.$(ARCH)
+ endif
+ CFLAGS += -fPIC
+else
+ _SUFFIX := st_$(ARCH)
+ BIN := ../$(NAME).xo.$(ARCH)
+endif
+
+OBJ := $(addsuffix .$(_SUFFIX),$(OBJ))
+
+DEPFILES := $(filter %.o.$(_SUFFIX),$(OBJ))
+DEPFILES := $(DEPFILES:%.o.$(_SUFFIX)=%.d.$(ARCH))