Subversion Repositories Kolibri OS

Rev

Rev 8640 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8622 Boppan 1
AR = ar -rcs
8625 turbocat 2
CLINK = ../linuxtools/clink
8640 turbocat 3
MKEXP = ../linuxtools/mkexp
8625 turbocat 4
KPACK = kpack
8622 Boppan 5
 
6
INCLUDE = include
8625 turbocat 7
LIB_DIR = ../lib
8622 Boppan 8
 
9
LIBC.A = $(LIB_DIR)/libc.a
10
LIBC.OBJ = $(LIB_DIR)/libc.obj
11
 
12
CFLAGS = -I$(INCLUDE) -m32 -nostdinc -nostdlib -DGNUC -Os -fno-common -fno-builtin -fno-leading-underscore -fno-pie
8629 turbocat 13
DIRS :=  string stdlib stdio sys math ctype exports setjmp shell_api
8622 Boppan 14
 
15
cfiles := $(foreach dir,$(DIRS),$(patsubst %.c, %.o, $(wildcard $(dir)/*.c)))
16
asmfiles := $(foreach dir,$(DIRS),$(patsubst %.s, %.o, $(wildcard $(dir)/*.s)))
17
.PHONY: clean all
18
 
19
ifdef windir
20
cfiles := $(subst /,\,$(cfiles))
21
asmfiles := $(subst /,\,$(asmfiles))
22
LIB_DIR := $(subst /,\,$(LIB_DIR))
23
LIBNAME := $(subst /,\,$(LIBNAME))
24
RM = del /F /Q
25
MKDIR_P = md
26
else
27
RM = rm -rf
28
MKDIR_P = mkdir -p
29
endif
30
 
8642 turbocat 31
all: $(cfiles) $(asmfiles) $(LIB_DIR) $(LIBC.A)
8622 Boppan 32
	fasm crt/crt0.asm $(LIB_DIR)/crt0.o
33
 
34
$(LIBC.A): $(cfiles) $(asmfiles)
35
	$(AR) $(LIBC.A) $^
36
 
37
$(LIB_DIR):
38
	$(MKDIR_P) $(LIB_DIR)
39
 
40
$(asmfiles):
41
	$(CC) -E -x c -nostdinc -Imath $*.s > $*.sx
42
	$(AS) --32 $*.sx -o $*.o
43
	$(RM) $*.sx
44
 
45
clean:
8642 turbocat 46
	$(RM) $(cfiles) $(asmfiles) exports/exports.c
8622 Boppan 47
	$(RM) $(LIBNAME)
48
 
49
shared: $(cfiles) $(asmfiles)
50
	$(CLINK) $^
8632 turbocat 51
	$(KPACK) a.out.obj
8622 Boppan 52
	mv a.out.obj $(LIBC.OBJ)
8640 turbocat 53
 
8622 Boppan 54
test:
55
	make -C ../test -f Makefile.tcc
56
	kex ../test/test