fixed sys_usleep system call - lot of apps were unstable; fixed sys_getchar system...
[ZeXOS.git] / kernel / lib / Makefile
blobd21ed73dc6441017bfadce9b6f7e8fa0f614c7f5
1 .SUFFIXES: .asm
3 # defines
4 MAKEFILE=Makefile
5 MAKEDEP=$(MAKEFILE)
6 INCDIR =../include
7 NASM =nasm -f elf -i$(INCDIR)/
8 CC =gcc -m32
9 CFLAGS =-g -Wall -W -O2 -nostdinc -fno-builtin -fno-stack-protector -I$(INCDIR) -I../build/main
10 CCASM =arm-linux-gcc -D__ASSEMBLY__ -g -Os -pipe -mcpu=arm926ej-s -mabi=apcs-gnu -fno-strict-aliasing -fno-common -ffixed-r8 -msoft-float -fno-builtin -ffreestanding -nostdinc
11 STDIO =stdio/doprintf.o stdio/delay.o stdio/kprintf.o stdio/printf.o stdio/sprintf.o stdio/puts.o stdio/fopen.o stdio/fclose.o stdio/fgets.o stdio/open.o stdio/close.o stdio/write.o stdio/read.o
12 STDLIB =stdlib/atoi.o stdlib/abort.o stdlib/strtol.o
13 STRING =string/memsetw.o string/memcpy.o string/strlen.o string/strcpy.o string/strcat.o string/memset.o string/strcmp.o
14 ARCHDEP =x86/dma.o x86/setjmp.o x86/longjmp.o
15 CTYPE =ctype/ctype.o
16 MEMMGR =mm/mem.o mm/protmem.o
17 UNISTD =unistd/fcntl.o
19 ifeq ($(ARCH),x86_64)
20 CC=gcc -m64
21 endif
23 ifeq ($(ARCH),arm)
24 CC=arm-linux-gcc
25 CFLAGS=-g -Os -fno-builtin -ffreestanding -nostdinc -pipe -mcpu=arm926ej-s -mabi=apcs-gnu -nostdlib -nostartfiles -nodefaultlibs -ffixed-r8 -msoft-float -I$(INCDIR) -I../build/main
26 ARCHDEP=arm/divsi3.o arm/div0.o arm/modsi3.o
27 endif
29 OBJS =$(STDIO) $(STDLIB) $(STRING) $(ARCHDEP) $(CTYPE) $(MEMMGR) $(UNISTD)
31 ifneq ($(V),1)
32 Q := @
33 endif
35 # targets
36 all: libc.a
38 clean:
39 $(Q)rm -f libc.a $(OBJS)
40 @printf " CLEAN\n";
42 # implicit rules
43 .asm.o:
44 @printf " ASM $(subst $(shell pwd)/,,$(@))\n";
45 $(Q)$(NASM) -o$@ $<
47 .S.o:
48 @printf " ASM $(subst $(shell pwd)/,,$(@))\n";
49 $(Q)$(CCASM) -c -o$@ $<
51 .c.o:
52 @printf " CC $(subst $(shell pwd)/,,$(@))\n";
53 $(Q)$(CC) $(CFLAGS) -c -o$@ $<
55 # dependencies
56 stdio/doprintf.o: stdio/doprintf.c $(MAKEDEP)
57 stdio/kprintf.o: stdio/kprintf.c $(MAKEDEP)
58 stdio/printf.o: stdio/printf.c $(MAKEDEP)
59 stdio/sprintf.o: stdio/sprintf.c $(MAKEDEP)
60 stdio/delay.o: stdio/delay.c $(MAKEDEP)
61 stdio/fopen.o: stdio/fopen.c $(MAKEDEP)
62 stdio/fclose.o: stdio/fclose.c $(MAKEDEP)
63 stdio/fgets.o: stdio/fgets.c $(MAKEDEP)
64 stdio/open.o: stdio/open.c $(MAKEDEP)
65 stdio/close.o: stdio/close.c $(MAKEDEP)
66 stdio/write.o: stdio/write.c $(MAKEDEP)
67 stdio/read.o: stdio/read.c $(MAKEDEP)
68 stdlib/atoi.o: stdlib/atoi.c $(MAKEDEP)
69 stdlib/abort.o: stdlib/abort.c $(MAKEDEP)
70 stdlib/strtol.o: stdlib/strtol.c $(MAKEDEP)
71 string/memsetw.o: string/memsetw.c $(MAKEDEP)
72 string/memcpy.o: string/memcpy.c $(MAKEDEP)
73 string/strlen.o: string/strlen.c $(MAKEDEP)
74 ctype/ctype.o: ctype/ctype.c $(MAKEDEP)
75 string/strcpy.o: string/strcpy.c $(MAKEDEP)
76 string/strcat.o: string/strcat.c $(MAKEDEP)
77 string/strcmp.o: string/strcmp.c $(MAKEDEP)
78 string/memset.o: string/memset.c $(MAKEDEP)
79 mm/mem.o: mm/mem.c $(MAKEDEP)
80 mm/protmem.o: mm/protmem.c $(MAKEDEP)
81 unistd/fcntl.o: unistd/fcntl.c $(MAKEDEP)
83 #arch depending stuff
84 ifneq ($(ARCH),arm)
85 x86/dma.o: x86/dma.c $(MAKEDEP)
86 x86/setjmp.o: x86/setjmp.asm $(MAKEDEP)
87 x86/longjmp.o: x86/longjmp.c $(MAKEDEP)
88 endif
90 ifeq ($(ARCH),arm)
91 arm/divsi3.o: arm/divsi3.S $(MAKEDEP)
92 arm/div0.o: arm/div0.c $(MAKEDEP)
93 arm/modsi3.o: arm/modsi3.S $(MAKEDEP)
94 endif
96 # explicit rules
97 libc.a: $(OBJS) $(MAKEDEP)
98 @printf " AR $(subst $(shell pwd)/,,$(@))\n";
99 $(Q)ar rcs libc.a $(OBJS)