NetTest - Compiles, doesn't yet do much
[tpg/acess2.git] / Tools / NetTest / 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 MODULE_SRC = ../../KernelLand/Modules/
13
14 BIN = ../nettest
15 # Kernel Sources (compiled with -ffreestanding)
16 K_OBJ := lib.o adt.o
17 K_OBJ += vfs/acls.o vfs/io.o vfs/fs/devfs.o
18 #K_OBJ += vfs/main.o vfs/open.o vfs/io.o vfs/dir.o
19 #K_OBJ += vfs/nodecache.o vfs/mount.o vfs/memfile.o # vfs/select.o
20 #K_OBJ += vfs/fs/root.o vfs/fs/devfs.o
21 #K_OBJ += drvutil_disk.o drv/proc.o
22 # Modules
23 MODULES := IPStack
24 # Local kernel soruces (same as above, but located in same directory as Makefile)
25 L_OBJ = vfs_shim.o nic.o tcpclient.o tcpserver.o
26 # Native Sources (compiled as usual)
27 N_OBJ = main.o tap.o
28
29 # Compilation Options
30 CFLAGS := -Wall -std=gnu99 -g -Werror
31 CPPFLAGS := -I include/ -I ../nativelib/include
32 K_CPPFLAGS := -I $(KERNEL_SRC)include -I $(MODULE_SRC)
33 LDFLAGS += -Wl,--defsym,__buildnum=$(BUILD_NUM) -g -L .. -lnativelib
34
35 BUILDINFO_OBJ := obj/$(TARGET)/buildinfo.o
36 BUILDINFO_SRC := $(BUILDINFO_OBJ:%.o=%.c)
37
38 # ====================
39 # == Start of Magic ==
40 # ====================
41 # -- Load modules ---
42 $(foreach module,$(MODULES), $(eval include $(MODULE_SRC)$(module)/Makefile) $(eval M_OBJ += $(addprefix $(module)/,$(OBJ))) )
43
44 # -- Apply Prefixes to object paths
45 OBJ_PREFIX = obj/$(TARGET)/
46 K_OBJ_PREFIX = $(OBJ_PREFIX)_Kernel/
47 M_OBJ_PREFIX = $(OBJ_PREFIX)_Module/
48 K_OBJ := $(addprefix $(K_OBJ_PREFIX),$(K_OBJ))
49 M_OBJ := $(addprefix $(M_OBJ_PREFIX),$(M_OBJ))
50 L_OBJ := $(addprefix $(OBJ_PREFIX),$(L_OBJ))
51 N_OBJ := $(addprefix $(OBJ_PREFIX),$(N_OBJ))
52
53 OBJ := $(N_OBJ) $(L_OBJ) $(K_OBJ) $(M_OBJ) $(BUILDINFO_OBJ)
54
55 DEPFILES  = $(filter %.o,$(OBJ))
56 DEPFILES := $(DEPFILES:%=%.dep)
57
58
59 .PHONY: all clean
60
61 all: $(BIN)
62
63 clean:
64         $(RM) -f $(OBJ) $(DEPFILES) $(BIN)
65
66 $(BIN): $(OBJ)
67         @echo [CC Link] -o $(BIN)
68         @$(CC) -o $(BIN) $(OBJ) $(LDFLAGS)
69         @echo BUILD_NUM = $$(( $(BUILD_NUM) + 1 )) > Makefile.BuildNum
70
71 $(M_OBJ): $(M_OBJ_PREFIX)%.o: $(MODULE_SRC)%.c
72         @mkdir -p $(dir $@)
73         @echo [CC Module] -o $@
74         @$(CC) -c $< -o $@ -ffreestanding $(CFLAGS) $(CPPFLAGS) $(K_CPPFLAGS) -MMD -MP -MF [email protected]
75
76 $(K_OBJ): $(K_OBJ_PREFIX)%.o: $(KERNEL_SRC)%.c
77         @mkdir -p $(dir $@)
78         @echo [CC Kernel] -o $@
79         @$(CC) -c $< -o $@ -ffreestanding $(CFLAGS) $(CPPFLAGS) $(K_CPPFLAGS) -MMD -MP -MF [email protected]
80
81 $(L_OBJ): $(OBJ_PREFIX)%.o: %.c
82         @mkdir -p $(dir $@)
83         @echo [CC Local] -o $@
84         @$(CC) -c $< -o $@ -ffreestanding $(CFLAGS) $(CPPFLAGS) $(K_CPPFLAGS) -MMD -MP -MF [email protected]
85
86 $(N_OBJ): $(OBJ_PREFIX)%.o: %.c
87         @mkdir -p $(dir $@)
88         @echo [CC Native] -o $@
89         @$(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS) -MMD -MP -MF [email protected]
90
91 # Hacky buildinfo.c file
92 $(BUILDINFO_SRC): $(filter-out $(BUILDINFO_OBJ), $(OBJ)) Makefile
93         @echo "" > $@
94         @echo "const char gsKernelVersion[] = \"$(ACESS_VERSION)\";" >> $@
95         @echo "const char gsGitHash[] = \""`git log -n 1 | head -n 1 | awk '{print $$2}'`"\";" >> $@
96         @echo "const int giBuildNumber = $(BUILD_NUM);" >> $@
97         @echo "const char gsBuildInfo[] = \"Acess2 DiskTool v$(ACESS_VERSION)\";" >> $@
98 $(BUILDINFO_OBJ): $(BUILDINFO_SRC)
99         @echo [CC] -o $@
100         @$(CC) -o $@ -c $< $(CFLAGS) $(CPPFLAGS)
101
102 $(OBJ): Makefile
103
104 -include $(DEPFILES)

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