Helps if I add it to the main makefile
[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 -include Makefile.cfg
8
9 .PHONY: all clean
10
11 SUBMAKE = $(MAKE) --no-print-directory
12
13 MODULES += $(DYNMODS)
14 USRLIBS = crt0.o acess.ld ld-acess.so libacess.so libgcc.so libc.so
15 USRAPPS = init login CLIShell cat ls mount ifconfig
16
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))
29
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)
35
36 kmode:  $(ALLINSTALL_MODULES) allinstall-Kernel
37
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)
42
43 # Compile Only
44 $(ALL_MODULES): all-%:
45         @echo === Module: $* && $(SUBMAKE) all -C Modules/$*
46 all-Kernel:
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
52
53 # Compile & Install
54 $(ALLINSTALL_MODULES): allinstall-%:
55         @echo === Module: $* && $(SUBMAKE) all install -C Modules/$*
56 allinstall-Kernel:
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
62
63 # Clean up compilation
64 $(CLEAN_MODULES): clean-%:
65         @$(SUBMAKE) clean -C Modules/$*
66 clean-Kernel:
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
72
73 # Install
74 $(INSTALL_MODULES): install-%:
75         @$(SUBMAKE) install -C Modules/$*
76 install-Kernel:
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

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