olibc/src/Makefile

54 lines
3.1 KiB
Makefile
Raw Normal View History

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
$(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)
# 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