2021-12-19 08:35:56 +00:00
|
|
|
CC=cc
|
|
|
|
LIBLINUXHEADERS=
|
|
|
|
LIBLINUXDIR=
|
|
|
|
LIBLINUXFILE=liblinux.a
|
|
|
|
CFILES=stdio.c string.c
|
2021-12-29 19:48:33 +00:00
|
|
|
OBJFILES=../builds/olibc/stdio.o ../builds/olibc/stdlib.o ../builds/olibc/string.o ../builds/olibc/ctype.o
|
2021-12-19 08:35:56 +00:00
|
|
|
LIBFILE=../builds/olibc.a
|
|
|
|
OLIBCHEADERS=include/
|
|
|
|
OLIBCDIR=../builds
|
|
|
|
DEBUGFLAGS=-fsanitize=address -fsanitize=leak -fsanitize=undefined -fsanitize=pointer-compare -lasan
|
|
|
|
LIBFLAGS=-l:$(LIBLINUXFILE)
|
|
|
|
CFLAGS=--std=c11 -ffreestanding -fno-stack-protector -nostdlib -pedantic -Wall -Wextra -I$(LIBLINUXHEADERS) -I$(OLIBCHEADERS) -L$(LIBLINUXDIR) -L$(OLIBCDIR)
|
|
|
|
|
|
|
|
lib:
|
|
|
|
mkdir -p ../builds/olibc
|
2021-12-28 10:02:35 +00:00
|
|
|
$(CC) -c stdio.c $(CFLAGS) -o ../builds/olibc/stdio.o $(LIBFLAGS) -g
|
|
|
|
$(CC) -c stdlib.c $(CFLAGS) -o ../builds/olibc/stdlib.o $(LIBFLAGS) -g
|
|
|
|
$(CC) -c string.c $(CFLAGS) -o ../builds/olibc/string.o $(LIBFLAGS) -g
|
2021-12-29 13:54:15 +00:00
|
|
|
$(CC) -c ctype.c $(CFLAGS) -o ../builds/olibc/ctype.o $(LIBFLAGS) -g
|
2021-12-19 08:35:56 +00:00
|
|
|
ar ruv $(LIBFILE) $(OBJFILES)
|
|
|
|
ranlib $(LIBFILE)
|
|
|
|
|
|
|
|
examples:
|
|
|
|
mkdir -p ../builds/examples
|
|
|
|
$(CC) ../examples/hello.c $(CFLAGS) -o ../builds/examples/hello -l:olibc.a $(LIBFLAGS)
|
|
|
|
|
|
|
|
tests:
|
|
|
|
mkdir -p ../builds/tests/string/
|
|
|
|
$(CC) ../tests/string/strlen.c $(CFLAGS) -o ../builds/tests/string/strlen -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strcmp.c $(CFLAGS) -o ../builds/tests/string/strcmp -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strncmp.c $(CFLAGS) -o ../builds/tests/string/strncmp -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/memcmp.c $(CFLAGS) -o ../builds/tests/string/memcmp -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strcpy.c $(CFLAGS) -o ../builds/tests/string/strcpy -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strncpy.c $(CFLAGS) -o ../builds/tests/string/strncpy -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/memcpy.c $(CFLAGS) -o ../builds/tests/string/memcpy -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strchr.c $(CFLAGS) -o ../builds/tests/string/strchr -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strrchr.c $(CFLAGS) -o ../builds/tests/string/strrchr -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/memchr.c $(CFLAGS) -o ../builds/tests/string/memchr -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strcat.c $(CFLAGS) -o ../builds/tests/string/strcat -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strncat.c $(CFLAGS) -o ../builds/tests/string/strncat -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/memmove.c $(CFLAGS) -o ../builds/tests/string/memmove -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strstr.c $(CFLAGS) -o ../builds/tests/string/strstr -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strspn.c $(CFLAGS) -o ../builds/tests/string/strspn -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strcspn.c $(CFLAGS) -o ../builds/tests/string/strcspn -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/memset.c $(CFLAGS) -o ../builds/tests/string/memset -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strpbrk.c $(CFLAGS) -o ../builds/tests/string/strpbrk -l:olibc.a $(LIBFLAGS)
|
|
|
|
$(CC) ../tests/string/strtok.c $(CFLAGS) -o ../builds/tests/string/strtok -l:olibc.a $(LIBFLAGS)
|
2021-12-24 14:19:51 +00:00
|
|
|
# stdio
|
|
|
|
mkdir -p ../builds/tests/stdio/
|
|
|
|
$(CC) ../tests/stdio/printf.c $(CFLAGS) -o ../builds/tests/stdio/printf -l:olibc.a $(LIBFLAGS)
|
|
|
|
../tests/test.sh string
|
|
|
|
../tests/test.sh stdio
|
2021-12-19 08:35:56 +00:00
|
|
|
|