Added pipe() syscall; Fixed some memleaks;
[ZeXOS.git] / libc / Makefile
bloba6f2d6c205187398fb0eecad4007c34b5a18ab04
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 -g -Wall -W -O2 -nostdinc -fno-builtin -I$(INCDIR)
10 STDIO =stdio/doprintf.o stdio/delay.o stdio/printf.o stdio/sprintf.o stdio/puts.o stdio/putch.o stdio/cls.o stdio/getch.o stdio/getkey.o stdio/gotoxy.o stdio/setcolor.o stdio/beep.o stdio/open.o stdio/close.o stdio/read.o stdio/write.o stdio/doscanf.o stdio/scanf.o stdio/getchar.o
11 STRING =string/memset.o string/memsetw.o string/memcpy.o string/memcmp.o string/memchr.o string/strlen.o string/strchr.o string/strcpy.o string/strncpy.o string/strcat.o string/strncat.o string/strcmp.o string/strstr.o string/strspn.o string/strdup.o string/strpbrk.o
12 X86 =x86/inportb.o x86/outportb.o x86/disable.o x86/enable.o x86/dma.o
13 STDLIB =stdlib/memory.o stdlib/exit.o stdlib/schedule.o stdlib/strtol.o stdlib/atoi.o stdlib/itoa.o stdlib/abort.o stdlib/abs.o stdlib/system.o stdlib/rand.o
14 UNISTD =unistd/sleep.o unistd/fcntl.o unistd/dup.o unistd/lseek.o unistd/unlink.o unistd/pipe.o
15 SOCKET =socket/connect.o socket/socket.o socket/send.o socket/gethostbyname.o socket/htons.o socket/recv.o socket/bind.o socket/listen.o socket/accept.o socket/sendto.o socket/recvfrom.o socket/inet_ntop.o
16 SIGNAL =signal/signal.o
17 VFS =vfs/mount.o
18 TIME =time/time.o time/localtime.o
19 CTYPE =ctype/ctype.o
21 OBJS =$(STDIO) $(STRING) $(X86) $(STDLIB) $(UNISTD) $(SOCKET) $(SIGNAL) $(VFS) $(TIME) $(CTYPE)
23 ifneq ($(V),1)
24 Q := @
25 endif
27 # targets
28 all: libc.a
30 clean:
31 $(Q)rm -f libc.a $(OBJS)
32 @printf " CLEAN\n";
34 # implicit rules
35 .asm.o:
36 @printf " ASM $(subst $(shell pwd)/,,$(@))\n";
37 $(Q)$(NASM) -o$@ $<
39 .c.o:
40 @printf " CC $(subst $(shell pwd)/,,$(@))\n";
41 $(Q)$(CC) -c -o$@ $<
43 # dependencies
44 stdio/doprintf.o: stdio/doprintf.c $(MAKEDEP)
45 stdio/printf.o: stdio/printf.c $(MAKEDEP)
46 stdio/sprintf.o: stdio/sprintf.c $(MAKEDEP)
47 stdio/puts.o: stdio/puts.c $(MAKEDEP)
48 stdio/putch.o: stdio/putch.c $(MAKEDEP)
49 stdio/delay.o: stdio/delay.c $(MAKEDEP)
50 stdio/cls.o: stdio/cls.c $(MAKEDEP)
51 stdio/getch.o: stdio/getch.c $(MAKEDEP)
52 stdio/getkey.o: stdio/getkey.c $(MAKEDEP)
53 stdio/gotoxy.o: stdio/gotoxy.c $(MAKEDEP)
54 stdio/setcolor.o: stdio/setcolor.c $(MAKEDEP)
55 stdio/beep.o: stdio/beep.c $(MAKEDEP)
56 stdio/open.o: stdio/open.c $(MAKEDEP)
57 stdio/close.o: stdio/close.c $(MAKEDEP)
58 stdio/read.o: stdio/read.c $(MAKEDEP)
59 stdio/write.o: stdio/write.c $(MAKEDEP)
60 stdio/doscanf.o: stdio/doscanf.c $(MAKEDEP)
61 stdio/scanf.o: stdio/scanf.c $(MAKEDEP)
62 stdio/getchar.o: stdio/getchar.c $(MAKEDEP)
63 stdlib/memory.o: stdlib/memory.c $(MAKEDEP)
64 stdlib/exit.o: stdlib/exit.c $(MAKEDEP)
65 stdlib/schedule.o: stdlib/schedule.c $(MAKEDEP)
66 stdlib/strtol.o: stdlib/strtol.c $(MAKEDEP)
67 stdlib/atoi.o: stdlib/atoi.c $(MAKEDEP)
68 stdlib/itoa.o: stdlib/itoa.c $(MAKEDEP)
69 stdlib/abort.o: stdlib/abort.c $(MAKEDEP)
70 stdlib/abs.o: stdlib/abs.c $(MAKEDEP)
71 stdlib/rand.o: stdlib/rand.c $(MAKEDEP)
72 unistd/sleep.o: unistd/sleep.c $(MAKEDEP)
73 unistd/fcntl.o: unistd/fcntl.c $(MAKEDEP)
74 unistd/dup.o: unistd/dup.c $(MAKEDEP)
75 unistd/lseek.o: unistd/lseek.c $(MAKEDEP)
76 unistd/unlink.o: unistd/unlink.c $(MAKEDEP)
77 string/memset.o: string/memset.c $(MAKEDEP)
78 string/memsetw.o: string/memsetw.c $(MAKEDEP)
79 string/memcpy.o: string/memcpy.c $(MAKEDEP)
80 string/memcmp.o: string/memcmp.c $(MAKEDEP)
81 string/memchr.o: string/memchr.c $(MAKEDEP)
82 string/strlen.o: string/strlen.c $(MAKEDEP)
83 string/strchr.o: string/strchr.c $(MAKEDEP)
84 string/strcpy.o: string/strcpy.c $(MAKEDEP)
85 string/strncpy.o: string/strncpy.c $(MAKEDEP)
86 string/strcat.o: string/strcat.c $(MAKEDEP)
87 string/strncat.o: string/strncat.c $(MAKEDEP)
88 string/strcmp.o: string/strcmp.c $(MAKEDEP)
89 string/strstr.o: string/strstr.c $(MAKEDEP)
90 string/strspn.o: string/strspn.c $(MAKEDEP)
91 string/strpbrk.o: string/strpbrk.c $(MAKEDEP)
92 string/strdup.o: string/strdup.c $(MAKEDEP)
93 x86/dma.o: x86/dma.c $(MAKEDEP)
94 x86/inportb.o: x86/inportb.c $(MAKEDEP)
95 x86/outportb.o: x86/outportb.c $(MAKEDEP)
96 x86/disable.o: x86/disable.c $(MAKEDEP)
97 x86/enable.o: x86/enable.c $(MAKEDEP)
98 socket/connect.o: socket/connect.c $(MAKEDEP)
99 socket/socket.o: socket/socket.c $(MAKEDEP)
100 socket/send.o: socket/send.c $(MAKEDEP)
101 socket/gethostbyname.o: socket/gethostbyname.c $(MAKEDEP)
102 socket/htons.o: socket/htons.c $(MAKEDEP)
103 socket/recv.o: socket/recv.c $(MAKEDEP)
104 socket/bind.o: socket/bind.c $(MAKEDEP)
105 socket/listen.o: socket/listen.c $(MAKEDEP)
106 socket/accept.o: socket/accept.c $(MAKEDEP)
107 socket/sendto.o: socket/sendto.c $(MAKEDEP)
108 socket/recvfrom.o: socket/recvfrom.c $(MAKEDEP)
109 socket/inet_ntop.o: socket/inet_ntop.c $(MAKEDEP)
110 signal/signal.o: signal/signal.c $(MAKEDEP)
111 vfs/mount.o: vfs/mount.c $(MAKEDEP)
112 time/time.o: time/time.c $(MAKEDEP)
113 time/localtime.o: time/localtime.c $(MAKEDEP)
114 ctype/ctype.o: ctype/ctype.c $(MAKEDEP)
116 # explicit rules
117 libc.a: $(OBJS) $(MAKEDEP)
118 @printf " AR $(subst $(shell pwd)/,,$(@))\n";
119 $(Q)ar rcs libc.a $(OBJS)