4 # (Oh man! This is hacky, but beautiful at the same time, much like the
11 SUBMAKE = $(MAKE) --no-print-directory
14 USRLIBS = ld-acess.so libacess.so libgcc.so libc.so
15 USRAPPS = init login CLIShell cat ls mount ifconfig
17 ALL_MODULES = $(addprefix all-,$(MODULES))
18 ALL_USRLIBS = $(addprefix all-,$(USRLIBS))
19 ALL_USRAPPS = $(addprefix all-,$(USRAPPS))
20 CLEAN_MODULES = $(addprefix clean-,$(MODULES))
21 CLEAN_USRLIBS = $(addprefix clean-,$(USRLIBS))
22 CLEAN_USRAPPS = $(addprefix clean-,$(USRAPPS))
23 INSTALL_MODULES = $(addprefix install-,$(MODULES))
24 INSTALL_USRLIBS = $(addprefix install-,$(USRLIBS))
25 INSTALL_USRAPPS = $(addprefix install-,$(USRAPPS))
26 ALLINSTALL_MODULES = $(addprefix allinstall-,$(MODULES))
27 ALLINSTALL_USRLIBS = $(addprefix allinstall-,$(USRLIBS))
28 ALLINSTALL_USRAPPS = $(addprefix allinstall-,$(USRAPPS))
30 .PHONY: all clean install \
31 $(ALL_MODULES) all-Kernel $(ALL_USRLIBS) $(ALL_USRAPPS) \
32 $(ALLINSTALL_MODULES) allinstall-Kernel $(ALLINSTALL_USRLIBS) $(ALLINSTALL_USRAPPS) \
33 $(CLEAN_MODULES) clean-Kernel $(CLEAN_USRLIBS) $(CLEAN_USRAPPS) \
34 $(INSTALL_MODULES) install-Kernel $(INSTALL_USRLIBS) $(INSTALL_USRAPPS)
36 kmode: $(ALLINSTALL_MODULES) allinstall-Kernel
38 all: $(ALL_MODULES) all-Kernel $(ALL_USRLIBS) $(ALL_USRAPPS)
39 all-install: $(ALLINSTALL_MODULES) allinstall-Kernel $(ALLINSTALL_USRLIBS) $(ALLINSTALL_USRAPPS)
40 clean: $(CLEAN_MODULES) clean-Kernel $(CLEAN_USRLIBS) $(CLEAN_USRAPPS)
41 install: $(INSTALL_MODULES) install-Kernel $(INSTALL_USRLIBS) $(INSTALL_USRAPPS)
44 $(ALL_MODULES): all-%:
45 @echo === Module: $* && $(SUBMAKE) all -C Modules/$*
47 @echo === Kernel && $(SUBMAKE) all -C Kernel
48 $(ALL_USRLIBS): all-%:
49 @echo === User Library: $* && $(SUBMAKE) all -C Usermode/Libraries/$*_src
50 $(ALL_USRAPPS): all-%:
51 @echo === User Application: $* && $(SUBMAKE) all -C Usermode/Applications/$*_src
54 $(ALLINSTALL_MODULES): allinstall-%:
55 @echo === Module: $* && $(SUBMAKE) all install -C Modules/$*
57 @echo === Kernel && $(SUBMAKE) all install -C Kernel
58 $(ALLINSTALL_USRLIBS): allinstall-%:
59 @echo === User Library: $* && $(SUBMAKE) all install -C Usermode/Libraries/$*_src
60 $(ALLINSTALL_USRAPPS): allinstall-%:
61 @echo === User Application: $* && $(SUBMAKE) all install -C Usermode/Applications/$*_src
63 # Clean up compilation
64 $(CLEAN_MODULES): clean-%:
65 @$(SUBMAKE) clean -C Modules/$*
67 @$(SUBMAKE) clean -C Kernel
68 $(CLEAN_USRLIBS): clean-%:
69 @$(SUBMAKE) clean -C Usermode/Libraries/$*_src
70 $(CLEAN_USRAPPS): clean-%:
71 @$(SUBMAKE) clean -C Usermode/Applications/$*_src
74 $(INSTALL_MODULES): install-%:
75 @$(SUBMAKE) install -C Modules/$*
77 @$(SUBMAKE) install -C Kernel
78 $(INSTALL_USRLIBS): install-%:
79 @$(SUBMAKE) install -C Usermode/Libraries/$*_src
80 $(INSTALL_USRAPPS): install-%:
81 @$(SUBMAKE) install -C Usermode/Applications/$*_src