-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
70 lines (43 loc) · 1.47 KB
/
makefile
File metadata and controls
70 lines (43 loc) · 1.47 KB
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
CFLAGS = -Iinclude -Iinclude/core/modules -m32 -ffreestanding
GASFLAGS = --32
C_FILES := ${shell find sources -type f -name "*.c" -printf "%p "}
GAS_FILES := ${shell find sources -type f -name "*.s" -printf "%p "}
NASM_FILES := ${shell find sources -type f -name "*.n" -printf "%p "}
OBJECT_C_FILES := ${C_FILES:.c=.o}
OBJECT_GAS_FILES := ${GAS_FILES:.s=.o}
OBJECT_NASM_FILES := ${NASM_FILES:.n=.o}
all: clean $(OBJECT_C_FILES) $(OBJECT_GAS_FILES) $(OBJECT_NASM_FILES) kernel.bin image vmwareDisk
restore:
@echo "Restore in progress..."
@cp ${shell find ../RandomOS_Boosted_Backup/* -type f -name "*.c" -printf "%p "}
@echo "Restore done!"
backup:
@echo "Backup in progress..."
@rm -rf ../RandomOS_Boosted_Backup
@cp -r ../RandomOS_Boosted ../RandomOS_Boosted_Backup
@echo "Backup done!"
image:
@echo "Creating hdd.img..."
@echo "Copy kernel and grub files on partition..."
@rm -f hdd.img
@cp kernel.bin img/boot/
@grub-mkrescue img/ -o hdd.img
@echo "Done!"
@make clean
run:
@qemu-system-i386 -vga vmware -drive file=hdd.img,format=raw
flash:
@sudo dd if=./hdd.img of=/dev/sdb
%.o: %.n
@nasm -f elf32 $< -o $@
%.o: %.s
@as $(GASFLAGS) -o $@ $<
%.o: %.c
@gcc $(CFLAGS) -o $@ -c $<
kernel.bin:
@ld -m elf_i386 -T linker.ld -o $@ $^
vmwareDisk:
@qemu-img convert -f raw hdd.img -O vmdk ./RandomOS.vmdk
clean:
@echo ${OBJECT_C_FILES} ${OBJECT_GAS_FILES} ${OBJECT_NASM_FILES}
# @rm -rf ${OBJECT_C_FILES} ${OBJECT_GAS_FILES} ${OBJECT_NASM_FILES}