Updated build system to remove `install` from `all`
[tpg/acess2.git] / Makefile
1 #
2 # Acess2 Core Makefile
3 #
4 # (Oh man! This is hacky, but beautiful at the same time, much like the
5 # rest of Acess)
6
7 .PHONY: all clean
8
9 SUBMAKE = $(MAKE) --no-print-directory
10
11 MODULES = FS_Ext2 FDD BochsGA IPStack NE2000 USB
12 USRLIBS = ld-acess.so libacess.so libgcc.so libc.so
13 USRAPPS = init login CLIShell cat ls mount ifconfig
14
15 ALL_MODULES = $(addprefix all-,$(MODULES))
16 ALL_USRLIBS = $(addprefix all-,$(USRLIBS))
17 ALL_USRAPPS = $(addprefix all-,$(USRAPPS))
18 CLEAN_MODULES = $(addprefix clean-,$(MODULES))
19 CLEAN_USRLIBS = $(addprefix clean-,$(USRLIBS))
20 CLEAN_USRAPPS = $(addprefix clean-,$(USRAPPS))
21 INSTALL_MODULES = $(addprefix install-,$(MODULES))
22 INSTALL_USRLIBS = $(addprefix install-,$(USRLIBS))
23 INSTALL_USRAPPS = $(addprefix install-,$(USRAPPS))
24
25 .PHONY: all clean install \
26         $(ALL_MODULES) all-Kernel $(ALL_USRLIBS) $(ALL_USRAPPS) \
27         $(CLEAN_MODULES) clean-Kernel $(CLEAN_USRLIBS) $(CLEAN_USRAPPS) \
28         $(INSTALL_MODULES) install-Kernel $(INSTALL_USRLIBS) $(INSTALL_USRAPPS)
29
30 all:    $(ALL_MODULES) all-Kernel $(ALL_USRLIBS) $(ALL_USRAPPS)
31 clean:  $(CLEAN_MODULES) clean-Kernel $(CLEAN_USRLIBS) $(CLEAN_USRAPPS)
32 install:        $(INSTALL_MODULES) install-Kernel $(INSTALL_USRLIBS) $(INSTALL_USRAPPS)
33
34
35 $(ALL_MODULES): all-%:
36         @echo === Module: $* && $(SUBMAKE) all -C Modules/$*
37 all-Kernel:
38         @echo === Kernel && $(SUBMAKE) all -C Kernel
39 $(ALL_USRLIBS): all-%:
40         @echo === User Library: $* && $(SUBMAKE) all -C Usermode/Libraries/$*_src
41 $(ALL_USRAPPS): all-%:
42         @echo === User Application: $* && $(SUBMAKE) all -C Usermode/Applications/$*_src
43
44 $(CLEAN_MODULES): clean-%:
45         @$(SUBMAKE) clean -C Modules/$*
46 clean-Kernel:
47         @$(SUBMAKE) clean -C Kernel
48 $(CLEAN_USRLIBS): clean-%:
49         @$(SUBMAKE) clean -C Usermode/Libraries/$*_src
50 $(CLEAN_USRAPPS): clean-%:
51         @$(SUBMAKE) clean -C Usermode/Applications/$*_src
52
53 $(INSTALL_MODULES): install-%:
54         @$(SUBMAKE) install -C Modules/$*
55 install-Kernel:
56         @$(SUBMAKE) install -C Kernel
57 $(INSTALL_USRLIBS): install-%:
58         @$(SUBMAKE) install -C Usermode/Libraries/$*_src
59 $(INSTALL_USRAPPS): install-%:
60         @$(SUBMAKE) install -C Usermode/Applications/$*_src

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