1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
.PHONY: clean, mrproper, Init.rfs, commit
Projects = Kernel Library Tools/MakeRamFS Applications/Shell Applications/SampleApps
Kernel = Source/Kernel/Melon.ke
RamFS = Init.rfs
RamFSFiles = :/System :/System/Applications :/System/Configuration :/System/Keymaps \
:/Applications :/Applications/Demos \
Source/Kernel/Ressources/Configuration/Users:/System/Configuration/Users \
Source/Kernel/Ressources/Configuration/Groups:/System/Configuration/Groups \
Source/Kernel/Ressources/Keymaps/fr.mkm:/System/Keymaps/fr.mkm \
Source/Kernel/Ressources/Texts/Welcome.txt:/Welcome.txt \
Source/Applications/SampleApps/asmdemo:/Applications/Demos/ASMDemo.app \
Source/Applications/SampleApps/cxxdemo:/Applications/Demos/CPPDemo.app \
Source/Applications/Shell/Shell:/Applications/Shell.app \
:/Useless \
Source/Kernel/Ressources/Graphics/logo.text.cxd:/Useless/Melon-logo
Files = $(Kernel) $(RamFS)
Floppy = Melon.img
all:
for p in $(Projects); do \
echo "=> Building $$p"; \
make -C Source/$$p -s; \
done
$(Files): all
rebuild:
for p in $(Projects); do \
echo "=> Building $$p"; \
make -C Source/$$p rebuild -s; \
done
clean:
for p in $(Projects); do \
echo "=> Building $$p"; \
make -C Source/$$p clean -s; \
done
mrproper:
for p in $(Projects); do \
echo "=> Building $$p"; \
make -C Source/$$p mrproper -s; \
done
commit: mrproper
git add .
git commit -a
git push origin
$(RamFS):
Source/Tools/MakeRamFS/MakeRamFS $(RamFS) $(RamFSFiles)
floppy: $(Files)
sudo mount $(Floppy) Mount -o loop
for f in $(Files); do \
sudo cp $$f Mount; \
done
sleep 0.4
sudo umount Mount
bochs:
bochs -f Bochs.cfg
qemu:
qemu -fda $(Floppy) -m 16
qemu_debug:
qemu -fda $(Floppy) -m 16 -s -S & gdb Source/Kernel/Melon.ke -x Qemu-GDB-Debug-CMD
stats:
echo; echo " ** Statistics for project O3S ** "; \
echo -n "Lines of code : "; \
cat Source/*/{*,*/*,*/*/*}.{c,asm,cpp,h} 2> /dev/null | wc -l; \
echo "TODOs : "; \
git grep TODO
#cat Source/*/{*,*/*,*/*/*}.{c,asm,cpp,h} 2> /dev/null | grep TODO;
|