f7d72569e1eb7ee28350a47dd4192fc19872c8a4
[tpg/acess2.git] / Tools / DiskTool / src / Makefile
1
2 TARGET := $(shell gcc -v 2>&1 | grep Targ | awk '{print $$2}')
3
4 -include ../../Makefile.Version.cfg
5 -include Makefile.BuildNum
6 ifeq ($(BUILD_NUM),)
7 BUILD_NUM = 1
8 endif
9
10
11 KERNEL_SRC = ../../../KernelLand/Kernel/
12
13 BIN = ../DiskTool
14 # Kernel Sources (compiled with -ffreestanding)
15 K_OBJ  = vfs/main.o vfs/open.o vfs/acls.o vfs/io.o vfs/dir.o
16 K_OBJ += vfs/nodecache.o vfs/mount.o vfs/memfile.o # vfs/select.o
17 K_OBJ += vfs/fs/root.o vfs/fs/devfs.o
18 K_OBJ += drv/proc.o
19 # Local kernel soruces (same as above, but located in same directory as Makefile)
20 L_OBJ = vfs_handles.o threads.o nativefs.o time.o
21 # Native Sources (compiled as usual)
22 N_OBJ = main.o script.o logging.o
23
24 # Compilation Options
25 CFLAGS := -Wall
26 CPPFLAGS := -I include/
27 K_CPPFLAGS := -I $(KERNEL_SRC)include
28 LDFLAGS += -Wl,--defsym,__buildnum=$(BUILD_NUM)
29
30 BUILDINFO_OBJ := obj/$(TARGET)/buildinfo.o
31 BUILDINFO_SRC := $(BUILDINFO_OBJ:%.o=%.c)
32
33 # == Start of Magic ==
34 OBJ_PREFIX = obj/$(TARGET)/
35 K_OBJ_PREFIX = $(OBJ_PREFIX)_Kernel/
36 K_OBJ := $(addprefix $(K_OBJ_PREFIX),$(K_OBJ))
37 L_OBJ := $(addprefix $(OBJ_PREFIX),$(L_OBJ))
38 N_OBJ := $(addprefix $(OBJ_PREFIX),$(N_OBJ))
39
40 OBJ := $(N_OBJ) $(L_OBJ) $(K_OBJ) $(BUILDINFO_OBJ)
41
42 DEPFILES  = $(filter %.o,$(OBJ))
43 DEPFILES := $(DEPFILES:%=%.dep)
44
45
46 .PHONY: all clean
47
48 all: $(BIN)
49
50 clean:
51         $(RM) -f $(OBJ) $(DEPFILES) $(BIN)
52
53 $(BIN): $(OBJ)
54         @echo [CC Link] -o $(BIN)
55         @$(CC) -o $(BIN) $(OBJ) $(LDFLAGS)
56         @echo BUILD_NUM = $$(( $(BUILD_NUM) + 1 )) > Makefile.BuildNum
57
58 $(K_OBJ): $(K_OBJ_PREFIX)%.o: $(KERNEL_SRC)%.c
59         @mkdir -p $(dir $@)
60         @echo [CC Acess] -o $@
61         @$(CC) -c $< -o $@ -ffreestanding $(CFLAGS) $(CPPFLAGS) $(K_CPPFLAGS) -MMD -MP -MF [email protected]
62
63 $(L_OBJ): $(OBJ_PREFIX)%.o: %.c
64         @mkdir -p $(dir $@)
65         @echo [CC Acess] -o $@
66         @$(CC) -c $< -o $@ -ffreestanding $(CFLAGS) $(CPPFLAGS) $(K_CPPFLAGS) -MMD -MP -MF [email protected]
67
68 $(N_OBJ): $(OBJ_PREFIX)%.o: %.c
69         @mkdir -p $(dir $@)
70         @echo [CC Native] -o $@
71         @$(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS) -MMD -MP -MF [email protected]
72
73 # Hacky buildinfo.c file
74 $(BUILDINFO_SRC): $(filter-out $(BUILDINFO_OBJ), $(OBJ)) Makefile
75         @echo "" > $@
76         @echo "const char gsKernelVersion[] = \"$(ACESS_VERSION)\";" >> $@
77         @echo "const char gsGitHash[] = \""`git log -n 1 | head -n 1 | awk '{print $$2}'`"\";" >> $@
78         @echo "const int giBuildNumber = $(BUILD_NUM);" >> $@
79 $(BUILDINFO_OBJ): $(BUILDINFO_SRC)
80         @echo [CC] -o $@
81         @$(CC) -o $@ -c $< $(CFLAGS) $(CPPFLAGS)
82
83 $(OBJ): Makefile
84
85 -include $(DEPFILES)

UCC git Repository :: git.ucc.asn.au