4 -include ../../Makefile.Version.cfg
\r
5 -include Makefile.BuildNum
\r
14 KERNEL_SRC = ../../KernelLand/Kernel/
\r
16 KERNEL_OBJ := logging.o adt.o lib.o debug.o messages.o drvutil_disk.o drvutil_video.o
\r
17 #KERNEL_OBJ += libc.o
\r
18 KERNEL_OBJ += vfs/main.o vfs/open.o vfs/acls.o vfs/io.o vfs/dir.o
\r
19 KERNEL_OBJ += vfs/nodecache.o vfs/mount.o vfs/memfile.o vfs/select.o
\r
20 KERNEL_OBJ += vfs/fs/root.o vfs/fs/devfs.o
\r
21 KERNEL_OBJ += drv/fifo.o drv/proc.o
\r
22 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
26 BUILDINFO_OBJ := obj-$(PLATFORM)/buildinfo.o
\r
27 BUILDINFO_SRC := $(BUILDINFO_OBJ:%.o=%.c)
\r
29 OBJ := helpers.o threads.o threads_glue.o server.o syscalls.o time.o
\r
30 OBJ += video.o keyboard.o mouse.o nativefs.o vfs_handle.o ui_sdl.o
\r
31 OBJ := $(addprefix obj-$(PLATFORM)/,$(OBJ))
\r
32 N_OBJ := $(addprefix obj-$(PLATFORM)/,$(N_OBJ))
\r
33 K_OBJ := $(addprefix $(KERNEL_SRC)obj-native-$(PLATFORM)/,$(KERNEL_OBJ))
\r
35 DEPFILES = $(filter %.o,$(OBJ) $(N_OBJ) $(K_OBJ))
\r
36 DEPFILES := $(DEPFILES:%=%.dep)
\r
38 KCPPFLAGS = -I include/ -I $(KERNEL_SRC)include/
\r
39 CFLAGS += -Wall -g -std=gnu99
\r
40 CPPFLAGS += $(shell sdl-config --cflags) -I /usr/include/
\r
41 LDFLAGS += $(shell sdl-config --libs) -g -Wl,--defsym,__buildnum=$(BUILD_NUM)
\r
43 ifeq ($(PLATFORM),win)
\r
44 BIN := ../AcessKernel.exe
\r
45 LDFLAGS += -lws2_32 -lpthread
\r
47 ifeq ($(PLATFORM),lin)
\r
48 BIN := ../AcessKernel
\r
50 LDFLAGS += -lpthread
\r
58 $(RM) $(BIN) $(OBJ) $(N_OBJ) $(K_OBJ) $(DEPFILES)
\r
60 $(BIN): $(OBJ) $(N_OBJ) $(K_OBJ) $(BUILDINFO_OBJ)
\r
62 @$(CC) -o $@ $(N_OBJ) $(K_OBJ) $(OBJ) $(BUILDINFO_OBJ) $(LDFLAGS)
\r
63 @echo BUILD_NUM = $$(( $(BUILD_NUM) + 1 )) > Makefile.BuildNum
\r
65 $(OBJ): obj-$(PLATFORM)/%.o: %.c
\r
68 @$(CC) -c $< -o $@ $(CFLAGS) $(KCPPFLAGS) $(CPPFLAGS)
\r
71 $(K_OBJ): $(KERNEL_SRC)obj-native-$(PLATFORM)/%.o: $(KERNEL_SRC)%.c
\r
74 @$(CC) -ffreestanding -c $< -o $@ $(CFLAGS) $(KCPPFLAGS) $(CPPFLAGS)
\r
78 $(N_OBJ): obj-$(PLATFORM)/%.o: %.c
\r
81 @$(CC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
\r
84 $(BUILDINFO_SRC): $(filter-out $(BUILDINFO_OBJ), $(OBJ)) Makefile
\r
86 $(eval _GITHASH=$(shell (git log -n 1 | head -n 1 | awk '{print $$2}') 2>/dev/null || echo UNK))
\r
87 $(eval _GITCHANGED=$(shell (git status --porcelain | grep -c '^ M ') 2>/dev/null || echo UNK))
\r
88 $(eval _HOSTNAME=$(shell hostname --fqdn 2>/dev/null || hostname || echo UNK))
\r
89 @echo "const char gsKernelVersion[] = \"$(ACESS_VERSION)\";" >> $@
\r
90 @echo "const char gsGitHash[] = \"$(_GITHASH)\";" >> $@
\r
91 @echo "const char gsBuildInfo[] = \"AcessNative $(ACESS_VERSION) $(ARCH)-$(PLATFORM)\\\\r\\\\n\"" >> $@
\r
92 @echo " \"Build $(_HOSTNAME):$(BUILD_NUM) Git $(_GITHASH) - $(_GITCHANGED) modified\";" >> $@
\r
93 @echo "const int giBuildNumber = $(BUILD_NUM);" >> $@
\r
94 $(BUILDINFO_OBJ): $(BUILDINFO_SRC)
\r
96 @$(CC) -o $@ -c $< $(CFLAGS) $(CPPFLAGS)
\r
98 -include $(DEPFILES)
\r