# AcessNative Server\r
# Makefile\r
\r
+-include ../../Makefile.Version.cfg\r
+-include Makefile.BuildNum\r
+ifeq ($(BUILD_NUM),)\r
+BUILD_NUM = 1\r
+endif\r
+\r
ifeq ($(PLATFORM),)\r
PLATFORM := lin\r
endif\r
\r
-KERNEL_SRC = ../../Kernel/\r
+KERNEL_SRC = ../../KernelLand/Kernel/\r
\r
-KERNEL_OBJ := logging.o adt.o lib.o drvutil.o debug.o\r
+KERNEL_OBJ := logging.o adt.o lib.o drvutil.o debug.o messages.o\r
KERNEL_OBJ += vfs/main.o vfs/open.o vfs/acls.o vfs/io.o vfs/dir.o\r
KERNEL_OBJ += vfs/nodecache.o vfs/mount.o vfs/memfile.o vfs/select.o\r
KERNEL_OBJ += vfs/fs/root.o vfs/fs/devfs.o\r
-KERNEL_OBJ += drv/vterm.o drv/fifo.o drv/proc.o\r
+KERNEL_OBJ += drv/fifo.o drv/proc.o\r
+KERNEL_OBJ += drv/vterm.o drv/vterm_font.o drv/vterm_vt100.o drv/vterm_output.o drv/vterm_input.o drv/vterm_termbuf.o\r
\r
N_OBJ := main.o\r
\r
-OBJ := helpers.o threads.o server.o syscalls.o\r
+BUILDINFO_OBJ := obj-$(PLATFORM)/buildinfo.o\r
+BUILDINFO_SRC := $(BUILDINFO_OBJ:%.o=%.c)\r
+\r
+OBJ := helpers.o threads.o server.o syscalls.o time.o\r
OBJ += video.o keyboard.o mouse.o nativefs.o vfs_handle.o ui_sdl.o\r
OBJ := $(addprefix obj-$(PLATFORM)/,$(OBJ))\r
N_OBJ := $(addprefix obj-$(PLATFORM)/,$(N_OBJ))\r
-K_OBJ := $(addprefix $(KERNEL_SRC)obj-$(PLATFORM)/,$(KERNEL_OBJ))\r
+K_OBJ := $(addprefix $(KERNEL_SRC)obj-native-$(PLATFORM)/,$(KERNEL_OBJ))\r
\r
DEPFILES = $(filter %.o,$(OBJ) $(N_OBJ) $(K_OBJ))\r
DEPFILES := $(DEPFILES:%=%.dep)\r
\r
CPPFLAGS += -I include/ -I $(KERNEL_SRC)include/\r
CFLAGS += -Wall -g\r
-LDFLAGS += -lSDL -lSDLmain -g\r
+LDFLAGS += -lSDL -lSDLmain -g -Wl,--defsym,__buildnum=$(BUILD_NUM)\r
\r
ifeq ($(PLATFORM),win)\r
BIN := ../AcessKernel.exe\r
clean:\r
$(RM) $(BIN) $(OBJ) $(N_OBJ) $(K_OBJ) $(DEPFILES)\r
\r
-$(BIN): $(OBJ) $(N_OBJ) $(K_OBJ)\r
+$(BIN): $(OBJ) $(N_OBJ) $(K_OBJ) $(BUILDINFO_OBJ)\r
@echo [LINK] -o $@\r
- @$(CC) $(LDFLAGS) -o $@ $(N_OBJ) $(K_OBJ) $(OBJ)\r
+ @$(CC) -o $@ $(N_OBJ) $(K_OBJ) $(OBJ) $(BUILDINFO_OBJ) $(LDFLAGS)\r
+ @echo BUILD_NUM = $$(( $(BUILD_NUM) + 1 )) > Makefile.BuildNum\r
\r
$(OBJ): obj-$(PLATFORM)/%.o: %.c\r
@mkdir -p $(dir $@)\r
@$(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS)\r
\r
-$(K_OBJ): $(KERNEL_SRC)obj-$(PLATFORM)/%.o: $(KERNEL_SRC)%.c\r
+$(K_OBJ): $(KERNEL_SRC)obj-native-$(PLATFORM)/%.o: $(KERNEL_SRC)%.c\r
@mkdir -p $(dir $@)\r
@echo [CC] -o $@\r
@$(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS)\r
@$(CC) -c $< -o $@ $(CFLAGS)\r
\r
+$(BUILDINFO_SRC): $(filter-out $(BUILDINFO_OBJ), $(OBJ)) Makefile\r
+ @echo "" > $@\r
+ @echo "const char gsKernelVersion[] = \"$(ACESS_VERSION)\";" >> $@\r
+ @echo "const char gsGitHash[] = \""`git log -n 1 | head -n 1 | awk '{print $$2}'`"\";" >> $@\r
+ @echo "const int giBuildNumber = $(BUILD_NUM);" >> $@\r
+$(BUILDINFO_OBJ): $(BUILDINFO_SRC)\r
+ @echo [CC] -o $@\r
+ @$(CC) -o $@ -c $< $(CFLAGS) $(CPPFLAGS)\r
+\r
-include $(DEPFILES)\r