Subversion Repositories Kolibri OS

Rev

Rev 864 | Rev 889 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 864 Rev 886
1
CC = gcc
1
CC = gcc
2
FASM = fasm.exe
2
FASM = fasm.exe
3
 
3
 
4
INCLUDE = include/
4
INCLUDE = include/
5
 
5
 
6
DEFS = -DUSE_SMP -DCONFIG_DEBUG
6
DEFS = -DUSE_SMP -DCONFIG_DEBUG
7
 
7
 
8
CFLAGS = -c -O2 -I $(INCLUDE) -fomit-frame-pointer -fno-builtin-printf -masm=intel
8
CFLAGS = -c -O2 -I $(INCLUDE) -fomit-frame-pointer -fno-builtin-printf
9
LDFLAGS = -shared -s -Map kernel.map --image-base 0x100000 --file-alignment 32 
9
LDFLAGS = -shared -s -Map kernel.map --image-base 0x100000 --file-alignment 32 
10
 
10
 
11
KERNEL_SRC:=				\
11
KERNEL_SRC:=				\
12
		kernel.asm		\
12
		kernel.asm		\
13
		data32.inc		\
13
		data32.inc		\
14
		core/memory.inc		\
14
		core/memory.inc		\
15
		core/heap.inc		\
15
		core/heap.inc		\
16
		core/malloc.inc		\
16
		core/malloc.inc		\
17
		core/taskman.inc	\
17
		core/taskman.inc	\
18
		core/v86.inc		\
18
		core/v86.inc		\
19
		core/sys32.inc		\
19
		core/sys32.inc		\
20
		core/dll.inc		\
20
		core/dll.inc		\
21
		core/exports.inc	\
21
		core/exports.inc	\
22
		fs/ntfs.inc		\
22
		fs/ntfs.inc		\
23
		gui/event.inc		\
23
		gui/event.inc		\
24
		video/cursors.inc
24
		video/cursors.inc
25
 
25
 
26
 
26
 
27
PE_SRC:=			\
27
PE_SRC:=			\
28
		init.c		\
28
		init.c		\
29
		mm.c		\
29
		mm.c		\
30
		slab.c		\
30
		slab.c		\
31
		heap.c		\
31
		heap.c		\
32
		spinlock.c	\
32
		spinlock.c	\
33
		boot/boot.asm	\
33
		boot/boot.asm	\
34
		boot/start.asm
34
		boot/start.asm
35
 
35
 
36
#include 
36
#include 
37
#include 
37
#include 
38
#include 
38
#include 
39
#include 
39
#include 
40
#include 
40
#include 
41
#include 
41
#include 
42
	   	
42
	   	
43
H_SRC:=					\
43
H_SRC:=					\
44
		include/types.h		\
44
		include/types.h		\
45
		include/atomic.h	\
45
		include/atomic.h	\
46
		include/spinlock.h	\
46
		include/spinlock.h	\
47
		include/link.h		\
47
		include/link.h		\
48
		include/core.h		\
48
		include/core.h		\
49
		include/mm.h		\
49
		include/mm.h		\
50
		include/slab.h
50
		include/slab.h
51
 
51
 
52
PE_OBJS = $(patsubst %.s, bin/%.obj, $(patsubst %.asm, bin/%.obj,\
52
PE_OBJS = $(patsubst %.s, bin/%.obj, $(patsubst %.asm, bin/%.obj,\
53
            $(patsubst %.c, bin/%.obj, $(PE_SRC))))
53
            $(patsubst %.c, bin/%.obj, $(PE_SRC))))
54
 
54
 
55
 
55
 
56
all: kernel.gz
56
all: kernel.gz
57
 
57
 
58
kernel.gz :kernel.mnt
58
kernel.gz :kernel.mnt
59
	7z a -tgzip kernel.gz kernel.mnt   
59
	7z a -tgzip kernel.gz kernel.mnt   
60
 
60
 
61
kernel.mnt: kernel.obj $(PE_OBJS) Makefile ld.x
61
kernel.mnt: kernel.obj $(PE_OBJS) Makefile ld.x
62
	ld $(LDFLAGS) -T ld.x -o $@ kernel.obj $(PE_OBJS) 
62
	ld $(LDFLAGS) -T ld.x -o $@ kernel.obj $(PE_OBJS) 
63
 
63
 
64
bin/%.obj : core/%.c $(H_SRC) Makefile
64
bin/%.obj : core/%.c $(H_SRC) Makefile
65
	$(CC) $(CFLAGS) -o $@ $<
65
	$(CC) $(CFLAGS) -o $@ $<
66
	
66
	
67
bin/%.obj: %.asm
67
bin/%.obj: %.asm
68
	$(FASM) $< $@
68
	$(FASM) $< $@
69
 
69
 
70
kernel.obj: $(KERNEL_SRC)
70
kernel.obj: $(KERNEL_SRC)
71
	$(FASM) kernel.asm
71
	$(FASM) kernel.asm
72
 
72
 
73
all: $(SUBDIRS)
73
all: $(SUBDIRS)
74
 
74
 
75
.PHONY: all
75
.PHONY: all
76
>
76
>