-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
70 lines (54 loc) · 1.22 KB
/
Makefile
File metadata and controls
70 lines (54 loc) · 1.22 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
ARCH := i386
SRC_DIRS := lib arch/$(ARCH)
SCRIPTS := scripts
BUILD := $(abspath build)
INCLUDE := $(abspath include)
ISO_SHELL := $(SCRIPTS)/cdimage.sh
IMG_SHELL := $(SCRIPTS)/hdimage.sh
MAKE_INCL := $(abspath Makefile.include)
MK_FILES := $(abspath Makefile) $(abspath Makefile.include)
FS := ext2
KRNL := roskrnl
KRNL_PATH := arch/$(ARCH)/$(KRNL)
Q=@
CC=gcc
AS=as
LD=ld
CFLAGS+= \
-m32 \
-ffreestanding \
-Wall \
-Wextra \
-fno-pic \
-I $(INCLUDE)
LDFLAGS+=-nostdlib -static -z noexecstack
ifeq ($(MAKECMDGOALS),debug)
CFLAGS+=-g
endif
export Q KRNL MAKE_INCL CC AS LD CFLAGS LDFLAGS INCLUDE BUILD MK_FILES
.PHONY: all deps run debug run-dbg clean iso img
all debug: deps $(BUILD)
$(Q)for dir in $(SRC_DIRS); do \
echo "ENTERING $$dir"; \
$(MAKE) -C $$dir --no-print-directory; \
done
$(BUILD):
$(Q)mkdir $(BUILD)
$(Q)echo "CREATED BUILD DIR"
deps:
$(Q)for dir in $(SRC_DIRS); do \
$(MAKE) -C $$dir deps --no-print-directory; \
done
clean:
$(Q)for dir in $(SRC_DIRS); do \
$(MAKE) -C $$dir clean --no-print-directory; \
done
-$(RM) -r build/
iso:
$(Q)$(ISO_SHELL) $(KRNL_PATH)
img:
$(Q)$(IMG_SHELL) $(KRNL_PATH) $(FS)
run:
$(SCRIPTS)/run.sh $(ARCH)
run-dbg:
$(SCRIPTS)/run.sh $(ARCH) -d