-
Notifications
You must be signed in to change notification settings - Fork 1
/
Rules.inc
38 lines (27 loc) · 907 Bytes
/
Rules.inc
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
INCLUDE=-I. -I $(SOURCE_ROOT)/include
CC=gcc
AT=@
C_SOURCES=$(wildcard *.c)
ASM_SOURCES=$(wildcard *.S)
SOURCES=$(C_SOURCES) $(ASM_SOURCES)
C_OBJECTS=$(patsubst %.c,%.o,$(C_SOURCES))
ASM_OBJECTS=$(patsubst %.S,%.o,$(ASM_SOURCES))
OBJECTS=$(C_OBJECTS) $(ASM_OBJECTS)
CFLAGS= -O0 -static -Wall -nostartfiles -nostdlib \
-nodefaultlibs -nostdinc -fno-builtin \
-DKERNEL_VERSION="\"$(KERNEL_VERSION)\"" \
-D_KERNEL_ -I$(INCLUDE)
%o:%c
@echo "$<"
$(AT)$(CC) -c $(CFLAGS) $< -o $@
%o:%S
@echo "$<"
$(AT)$(CC) -c $(CFLAGS) $< -o $@
dummy: all
process_sub_dirs:
$(AT)for file in $(SUB_DIRS); do make SOURCE_ROOT=$(SOURCE_ROOT) -C $$file; done
clean_sub_dirs:
$(AT)for file in $(SUB_DIRS); do make SOURCE_ROOT=$(SOURCE_ROOT) -C $$file clean; done
library: $(OBJECTS)
$(AT)ar -rc $(SOURCE_ROOT)/kernel/`basename $$PWD`.a $(OBJECTS)
LIBRARIES=$(patsubst %,%.a,$(SUB_DIRS))