|
@@ -0,0 +1,63 @@
|
|
|
+GARBAGE_PATTERNS := *.o *.s~ *.s *.S~ *.c~ *.h~ kernel
|
|
|
+GARBAGE := $(foreach DIR,$(DIRS),$(addprefix $(DIR)/,$(GARBAGE_PATTERNS)))
|
|
|
+
|
|
|
+all: libc
|
|
|
+
|
|
|
+CFLAGS += -I .
|
|
|
+
|
|
|
+libc_sub_dirs=math sys
|
|
|
+
|
|
|
+ifeq ($(ARCH), __x86_64__)
|
|
|
+libc_sub_dirs += sysdeps/x86_64
|
|
|
+endif
|
|
|
+
|
|
|
+clean:
|
|
|
+ cargo clean
|
|
|
+ rm -rf $(GARBAGE)
|
|
|
+ @list='$(libc_sub_dirs)'; for subdir in $$list; do \
|
|
|
+ echo "Clean in dir: $$subdir";\
|
|
|
+ cd $$subdir && $(MAKE) clean;\
|
|
|
+ cd .. ;\
|
|
|
+ done
|
|
|
+
|
|
|
+libc: unistd.o fcntl.o malloc.o errno.o printf.o stdlib.o ctype.o string.o dirent.o time.o libc_rust
|
|
|
+ @list='$(libc_sub_dirs)'; for subdir in $$list; do \
|
|
|
+ echo "make all in $$subdir";\
|
|
|
+ cd $$subdir;\
|
|
|
+ $(MAKE) all CFLAGS="$(CFLAGS) -I $(shell pwd)";\
|
|
|
+ cd ..;\
|
|
|
+ done
|
|
|
+
|
|
|
+unistd.o: unistd.c
|
|
|
+ $(CC) $(CFLAGS) -c unistd.c -o unistd.o
|
|
|
+
|
|
|
+fcntl.o: fcntl.c
|
|
|
+ $(CC) $(CFLAGS) -c fcntl.c -o fcntl.o
|
|
|
+
|
|
|
+malloc.o: malloc.c
|
|
|
+ $(CC) $(CFLAGS) -c malloc.c -o malloc.o
|
|
|
+
|
|
|
+errno.o: errno.c
|
|
|
+ $(CC) $(CFLAGS) -c errno.c -o errno.o
|
|
|
+
|
|
|
+printf.o: printf.c
|
|
|
+ $(CC) $(CFLAGS) -c printf.c -o printf.o
|
|
|
+
|
|
|
+stdlib.o: stdlib.c
|
|
|
+ $(CC) $(CFLAGS) -c stdlib.c -o stdlib.o
|
|
|
+
|
|
|
+ctype.o: ctype.c
|
|
|
+ $(CC) $(CFLAGS) -c ctype.c -o ctype.o
|
|
|
+
|
|
|
+string.o: string.c
|
|
|
+ $(CC) $(CFLAGS) -c string.c -o string.o
|
|
|
+
|
|
|
+dirent.o: dirent.c
|
|
|
+ $(CC) $(CFLAGS) -c dirent.c -o dirent.o
|
|
|
+
|
|
|
+time.o: time.c
|
|
|
+ $(CC) $(CFLAGS) -c time.c -o time.o
|
|
|
+
|
|
|
+libc_rust:
|
|
|
+ rustup default nightly
|
|
|
+ cargo +nightly build --release --target ./x86_64-unknown-none.json
|