-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathMake.defines
52 lines (42 loc) · 1.1 KB
/
Make.defines
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
ifndef GCCPREFIX
GCCPREFIX :=
endif
AS := nasm
CC := $(GCCPREFIX)gcc
LD := $(GCCPREFIX)ld
OBJCOPY := $(GCCPREFIX)objcopy
QEMU := qemu-system-i386
LIBC_DIR := ../libc
CFLAGS += -Wall -Wno-format -Wno-unused
CFLAGS += -std=gnu99 -static -m32
CFLAGS += -I ./include -I $(LIBC_DIR)/include
CFLAGS += -ffunction-sections -nostdlib -nostdinc -fno-builtin -ffreestanding
CFLAGS += -fno-pie
APP_CFLAGS = -Wall -Wno-format -Wno-unused -std=gnu99 -fno-pie -m32
APP_LDFLAGS = -m elf_i386 --oformat elf32-i386 -e main -pie
QEMU_FLAGS += -no-reboot -d in_asm -m size=128
ifdef DEBUG
QEMU_FLAGS += -gdb tcp::1234 -S
CFLAGS += -g
endif
# C Library Objects
L_OBJS := $(LIBC_DIR)/stdio/stdio.bin $(LIBC_DIR)/string/strcmp.bin \
$(LIBC_DIR)/string/strncmp.bin $(LIBC_DIR)/stdlib/rand.bin $(LIBC_DIR)/ssp/ssp.bin
SYS := haribote.sys
IMG := haribote.img
clean:
rm -rf $(IMG)
rm -rf *.bin
rm -rf *.lst
rm -rf *.obj
rm -rf *.sys
rm -rf app/*.hrb
rm -rf **/*.bin
rm -rf **/*.lib
rm -rf **/*.lst
rm -rf **/*.o
rm -rf **/*.sys
rm -rf **/**/*.bin
rm -rf $(LIBC_DIR)/**/*.bin
qemu: clean all
$(QEMU) -fda $(IMG) $(QEMU_FLAGS)