summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile732
-rwxr-xr-xmkmf.sh33
2 files changed, 22 insertions, 743 deletions
diff --git a/Makefile b/Makefile
index 324c88a3..2d72a5b0 100644
--- a/Makefile
+++ b/Makefile
@@ -7,737 +7,21 @@ include config.mk
INCLUDES=-I$(INCDIR) -I. -Inonstd/stubs
CFLAGS=$(INCLUDES) -g -fno-builtin -nostdinc -nostdlib -nodefaultlibs -Werror -Wall -Wextra -fPIC
-libc_OBJS = $(OBJDIR)/libc.o $(OBJDIR)/x86-64.o \
- $(OBJDIR)/isalnum.o \
- $(OBJDIR)/isalpha.o \
- $(OBJDIR)/iscntrl.o \
- $(OBJDIR)/isdigit.o \
- $(OBJDIR)/isgraph.o \
- $(OBJDIR)/islower.o \
- $(OBJDIR)/isprint.o \
- $(OBJDIR)/ispunct.o \
- $(OBJDIR)/isspace.o \
- $(OBJDIR)/isupper.o \
- $(OBJDIR)/isxdigit.o \
- $(OBJDIR)/tolower.o \
- $(OBJDIR)/toupper.o \
- $(OBJDIR)/localeconv.o \
- $(OBJDIR)/setlocale.o \
- $(OBJDIR)/longjmp.o \
- $(OBJDIR)/setjmp.o \
- $(OBJDIR)/raise.o \
- $(OBJDIR)/signal.o \
- $(OBJDIR)/clearerr.o \
- $(OBJDIR)/fclose.o \
- $(OBJDIR)/feof.o \
- $(OBJDIR)/ferror.o \
- $(OBJDIR)/fflush.o \
- $(OBJDIR)/fgetc.o \
- $(OBJDIR)/fgetpos.o \
- $(OBJDIR)/fgets.o \
- $(OBJDIR)/fopen.o \
- $(OBJDIR)/fprintf.o \
- $(OBJDIR)/fputc.o \
- $(OBJDIR)/fputs.o \
- $(OBJDIR)/fread.o \
- $(OBJDIR)/freopen.o \
- $(OBJDIR)/fscanf.o \
- $(OBJDIR)/fseek.o \
- $(OBJDIR)/fsetpos.o \
- $(OBJDIR)/ftell.o \
- $(OBJDIR)/fwrite.o \
- $(OBJDIR)/getc.o \
- $(OBJDIR)/getchar.o \
- $(OBJDIR)/gets.o \
- $(OBJDIR)/perror.o \
- $(OBJDIR)/printf.o \
- $(OBJDIR)/putc.o \
- $(OBJDIR)/putchar.o \
- $(OBJDIR)/puts.o \
- $(OBJDIR)/remove.o \
- $(OBJDIR)/rename.o \
- $(OBJDIR)/rewind.o \
- $(OBJDIR)/scanf.o \
- $(OBJDIR)/setbuf.o \
- $(OBJDIR)/setvbuf.o \
- $(OBJDIR)/sprintf.o \
- $(OBJDIR)/sscanf.o \
- $(OBJDIR)/tmpfile.o \
- $(OBJDIR)/tmpnam.o \
- $(OBJDIR)/ungetc.o \
- $(OBJDIR)/vfprintf.o \
- $(OBJDIR)/vprintf.o \
- $(OBJDIR)/vsprintf.o \
- $(OBJDIR)/abort.o \
- $(OBJDIR)/abs.o \
- $(OBJDIR)/atexit.o \
- $(OBJDIR)/atof.o \
- $(OBJDIR)/atoi.o \
- $(OBJDIR)/atol.o \
- $(OBJDIR)/bsearch.o \
- $(OBJDIR)/calloc.o \
- $(OBJDIR)/div.o \
- $(OBJDIR)/exit.o \
- $(OBJDIR)/free.o \
- $(OBJDIR)/getenv.o \
- $(OBJDIR)/labs.o \
- $(OBJDIR)/ldiv.o \
- $(OBJDIR)/malloc.o \
- $(OBJDIR)/mblen.o \
- $(OBJDIR)/mbstowcs.o \
- $(OBJDIR)/mbtowc.o \
- $(OBJDIR)/qsort.o \
- $(OBJDIR)/rand.o \
- $(OBJDIR)/realloc.o \
- $(OBJDIR)/srand.o \
- $(OBJDIR)/strtod.o \
- $(OBJDIR)/strtol.o \
- $(OBJDIR)/strtoul.o \
- $(OBJDIR)/system.o \
- $(OBJDIR)/wcstombs.o \
- $(OBJDIR)/wctomb.o \
- $(OBJDIR)/memchr.o \
- $(OBJDIR)/memcmp.o \
- $(OBJDIR)/memcpy.o \
- $(OBJDIR)/memmove.o \
- $(OBJDIR)/memset.o \
- $(OBJDIR)/strcat.o \
- $(OBJDIR)/strchr.o \
- $(OBJDIR)/strcmp.o \
- $(OBJDIR)/strcoll.o \
- $(OBJDIR)/strcpy.o \
- $(OBJDIR)/strcspn.o \
- $(OBJDIR)/strerror.o \
- $(OBJDIR)/strlen.o \
- $(OBJDIR)/strncat.o \
- $(OBJDIR)/strncmp.o \
- $(OBJDIR)/strncpy.o \
- $(OBJDIR)/strpbrk.o \
- $(OBJDIR)/strrchr.o \
- $(OBJDIR)/strspn.o \
- $(OBJDIR)/strstr.o \
- $(OBJDIR)/strtok.o \
- $(OBJDIR)/strxfrm.o \
- $(OBJDIR)/asctime.o \
- $(OBJDIR)/clock.o \
- $(OBJDIR)/ctime.o \
- $(OBJDIR)/difftime.o \
- $(OBJDIR)/gmtime.o \
- $(OBJDIR)/localtime.o \
- $(OBJDIR)/mktime.o \
- $(OBJDIR)/strftime.o \
- $(OBJDIR)/time.o
+all: .deps.mk
+ @$(MAKE) -f .deps.mk $@
-libc.a: $(libc_OBJS)
- $(AR) r $@ $?
+.deps.mk:
+ sh mkmf.sh $(STANDARD)
-libm_OBJS = \
- $(OBJDIR)/acos.o \
- $(OBJDIR)/asin.o \
- $(OBJDIR)/atan.o \
- $(OBJDIR)/atan2.o \
- $(OBJDIR)/ceil.o \
- $(OBJDIR)/cos.o \
- $(OBJDIR)/cosh.o \
- $(OBJDIR)/exp.o \
- $(OBJDIR)/fabs.o \
- $(OBJDIR)/floor.o \
- $(OBJDIR)/fmod.o \
- $(OBJDIR)/frexp.o \
- $(OBJDIR)/ldexp.o \
- $(OBJDIR)/log.o \
- $(OBJDIR)/log10.o \
- $(OBJDIR)/modf.o \
- $(OBJDIR)/pow.o \
- $(OBJDIR)/sin.o \
- $(OBJDIR)/sinh.o \
- $(OBJDIR)/sqrt.o \
- $(OBJDIR)/tan.o \
- $(OBJDIR)/tanh.o
+.headers.mk:
+ sh mkmf.sh $(STANDARD)
-libm.a: $(libm_OBJS)
- $(AR) r $@ $?
-
-$(OBJDIR)/abort.o: std/9899-1990/stdlib/abort.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/abort.c -o $@
-
-$(OBJDIR)/abs.o: std/9899-1990/stdlib/abs.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/abs.c -o $@
-
-$(OBJDIR)/acos.o: std/9899-1990/math/acos.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/acos.c -o $@
-
-$(OBJDIR)/asctime.o: std/9899-1990/time/asctime.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/asctime.c -o $@
-
-$(OBJDIR)/asin.o: std/9899-1990/math/asin.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/asin.c -o $@
-
-$(OBJDIR)/atan.o: std/9899-1990/math/atan.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/atan.c -o $@
-
-$(OBJDIR)/atan2.o: std/9899-1990/math/atan2.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/atan2.c -o $@
-
-$(OBJDIR)/atexit.o: std/9899-1990/stdlib/atexit.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/atexit.c -o $@
-
-$(OBJDIR)/atof.o: std/9899-1990/stdlib/atof.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/atof.c -o $@
-
-$(OBJDIR)/atoi.o: std/9899-1990/stdlib/atoi.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/atoi.c -o $@
-
-$(OBJDIR)/atol.o: std/9899-1990/stdlib/atol.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/atol.c -o $@
-
-$(OBJDIR)/bsearch.o: std/9899-1990/stdlib/bsearch.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/bsearch.c -o $@
-
-$(OBJDIR)/calloc.o: std/9899-1990/stdlib/calloc.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/calloc.c -o $@
-
-$(OBJDIR)/ceil.o: std/9899-1990/math/ceil.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/ceil.c -o $@
-
-$(OBJDIR)/clearerr.o: std/9899-1990/stdio/clearerr.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/clearerr.c -o $@
-
-$(OBJDIR)/clock.o: std/9899-1990/time/clock.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/clock.c -o $@
-
-$(OBJDIR)/cos.o: std/9899-1990/math/cos.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/cos.c -o $@
-
-$(OBJDIR)/cosh.o: std/9899-1990/math/cosh.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/cosh.c -o $@
-
-$(OBJDIR)/ctime.o: std/9899-1990/time/ctime.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/ctime.c -o $@
-
-$(OBJDIR)/difftime.o: std/9899-1990/time/difftime.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/difftime.c -o $@
-
-$(OBJDIR)/div.o: std/9899-1990/stdlib/div.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/div.c -o $@
-
-$(OBJDIR)/exit.o: std/9899-1990/stdlib/exit.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/exit.c -o $@
-
-$(OBJDIR)/exp.o: std/9899-1990/math/exp.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/exp.c -o $@
-
-$(OBJDIR)/fabs.o: std/9899-1990/math/fabs.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/fabs.c -o $@
-
-$(OBJDIR)/fclose.o: std/9899-1990/stdio/fclose.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fclose.c -o $@
-
-$(OBJDIR)/feof.o: std/9899-1990/stdio/feof.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/feof.c -o $@
-
-$(OBJDIR)/ferror.o: std/9899-1990/stdio/ferror.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/ferror.c -o $@
-
-$(OBJDIR)/fflush.o: std/9899-1990/stdio/fflush.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fflush.c -o $@
-
-$(OBJDIR)/fgetc.o: std/9899-1990/stdio/fgetc.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fgetc.c -o $@
-
-$(OBJDIR)/fgetpos.o: std/9899-1990/stdio/fgetpos.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fgetpos.c -o $@
-
-$(OBJDIR)/fgets.o: std/9899-1990/stdio/fgets.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fgets.c -o $@
-
-$(OBJDIR)/floor.o: std/9899-1990/math/floor.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/floor.c -o $@
-
-$(OBJDIR)/fmod.o: std/9899-1990/math/fmod.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/fmod.c -o $@
-
-$(OBJDIR)/fopen.o: std/9899-1990/stdio/fopen.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fopen.c -o $@
-
-$(OBJDIR)/fprintf.o: std/9899-1990/stdio/fprintf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fprintf.c -o $@
-
-$(OBJDIR)/fputc.o: std/9899-1990/stdio/fputc.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fputc.c -o $@
-
-$(OBJDIR)/fputs.o: std/9899-1990/stdio/fputs.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fputs.c -o $@
-
-$(OBJDIR)/fread.o: std/9899-1990/stdio/fread.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fread.c -o $@
-
-$(OBJDIR)/free.o: std/9899-1990/stdlib/free.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/free.c -o $@
-
-$(OBJDIR)/freopen.o: std/9899-1990/stdio/freopen.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/freopen.c -o $@
-
-$(OBJDIR)/frexp.o: std/9899-1990/math/frexp.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/frexp.c -o $@
-
-$(OBJDIR)/fscanf.o: std/9899-1990/stdio/fscanf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fscanf.c -o $@
-
-$(OBJDIR)/fseek.o: std/9899-1990/stdio/fseek.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fseek.c -o $@
-
-$(OBJDIR)/fsetpos.o: std/9899-1990/stdio/fsetpos.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fsetpos.c -o $@
-
-$(OBJDIR)/ftell.o: std/9899-1990/stdio/ftell.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/ftell.c -o $@
-
-$(OBJDIR)/fwrite.o: std/9899-1990/stdio/fwrite.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/fwrite.c -o $@
-
-$(OBJDIR)/getc.o: std/9899-1990/stdio/getc.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/getc.c -o $@
-
-$(OBJDIR)/getchar.o: std/9899-1990/stdio/getchar.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/getchar.c -o $@
-
-$(OBJDIR)/getenv.o: std/9899-1990/stdlib/getenv.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/getenv.c -o $@
-
-$(OBJDIR)/gets.o: std/9899-1990/stdio/gets.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/gets.c -o $@
-
-$(OBJDIR)/gmtime.o: std/9899-1990/time/gmtime.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/gmtime.c -o $@
-
-$(OBJDIR)/isalnum.o: std/9899-1990/ctype/isalnum.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/isalnum.c -o $@
-
-$(OBJDIR)/isalpha.o: std/9899-1990/ctype/isalpha.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/isalpha.c -o $@
-
-$(OBJDIR)/iscntrl.o: std/9899-1990/ctype/iscntrl.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/iscntrl.c -o $@
-
-$(OBJDIR)/isdigit.o: std/9899-1990/ctype/isdigit.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/isdigit.c -o $@
-
-$(OBJDIR)/isgraph.o: std/9899-1990/ctype/isgraph.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/isgraph.c -o $@
-
-$(OBJDIR)/islower.o: std/9899-1990/ctype/islower.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/islower.c -o $@
-
-$(OBJDIR)/isprint.o: std/9899-1990/ctype/isprint.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/isprint.c -o $@
-
-$(OBJDIR)/ispunct.o: std/9899-1990/ctype/ispunct.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/ispunct.c -o $@
-
-$(OBJDIR)/isspace.o: std/9899-1990/ctype/isspace.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/isspace.c -o $@
-
-$(OBJDIR)/isupper.o: std/9899-1990/ctype/isupper.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/isupper.c -o $@
-
-$(OBJDIR)/isxdigit.o: std/9899-1990/ctype/isxdigit.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/isxdigit.c -o $@
-
-$(OBJDIR)/labs.o: std/9899-1990/stdlib/labs.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/labs.c -o $@
-
-$(OBJDIR)/ldexp.o: std/9899-1990/math/ldexp.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/ldexp.c -o $@
-
-$(OBJDIR)/ldiv.o: std/9899-1990/stdlib/ldiv.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/ldiv.c -o $@
-
-$(OBJDIR)/localeconv.o: std/9899-1990/locale/localeconv.c $(INCDIR)/locale.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/locale/localeconv.c -o $@
-
-$(OBJDIR)/localtime.o: std/9899-1990/time/localtime.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/localtime.c -o $@
-
-$(OBJDIR)/log.o: std/9899-1990/math/log.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/log.c -o $@
-
-$(OBJDIR)/log10.o: std/9899-1990/math/log10.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/log10.c -o $@
-
-$(OBJDIR)/longjmp.o: std/9899-1990/setjmp/longjmp.c $(INCDIR)/setjmp.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/setjmp/longjmp.c -o $@
-
-$(OBJDIR)/malloc.o: std/9899-1990/stdlib/malloc.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/malloc.c -o $@
-
-$(OBJDIR)/mblen.o: std/9899-1990/stdlib/mblen.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/mblen.c -o $@
-
-$(OBJDIR)/mbstowcs.o: std/9899-1990/stdlib/mbstowcs.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/mbstowcs.c -o $@
-
-$(OBJDIR)/mbtowc.o: std/9899-1990/stdlib/mbtowc.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/mbtowc.c -o $@
-
-$(OBJDIR)/memchr.o: std/9899-1990/string/memchr.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/memchr.c -o $@
-
-$(OBJDIR)/memcmp.o: std/9899-1990/string/memcmp.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/memcmp.c -o $@
-
-$(OBJDIR)/memcpy.o: std/9899-1990/string/memcpy.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/memcpy.c -o $@
-
-$(OBJDIR)/memmove.o: std/9899-1990/string/memmove.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/memmove.c -o $@
-
-$(OBJDIR)/memset.o: std/9899-1990/string/memset.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/memset.c -o $@
-
-$(OBJDIR)/mktime.o: std/9899-1990/time/mktime.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/mktime.c -o $@
-
-$(OBJDIR)/modf.o: std/9899-1990/math/modf.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/modf.c -o $@
-
-$(OBJDIR)/perror.o: std/9899-1990/stdio/perror.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/perror.c -o $@
-
-$(OBJDIR)/pow.o: std/9899-1990/math/pow.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/pow.c -o $@
-
-$(OBJDIR)/printf.o: std/9899-1990/stdio/printf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/printf.c -o $@
-
-$(OBJDIR)/putc.o: std/9899-1990/stdio/putc.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/putc.c -o $@
-
-$(OBJDIR)/putchar.o: std/9899-1990/stdio/putchar.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/putchar.c -o $@
-
-$(OBJDIR)/puts.o: std/9899-1990/stdio/puts.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/puts.c -o $@
-
-$(OBJDIR)/qsort.o: std/9899-1990/stdlib/qsort.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/qsort.c -o $@
-
-$(OBJDIR)/raise.o: std/9899-1990/signal/raise.c $(INCDIR)/signal.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/signal/raise.c -o $@
-
-$(OBJDIR)/rand.o: std/9899-1990/stdlib/rand.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/rand.c -o $@
-
-$(OBJDIR)/realloc.o: std/9899-1990/stdlib/realloc.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/realloc.c -o $@
-
-$(OBJDIR)/remove.o: std/9899-1990/stdio/remove.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/remove.c -o $@
-
-$(OBJDIR)/rename.o: std/9899-1990/stdio/rename.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/rename.c -o $@
-
-$(OBJDIR)/rewind.o: std/9899-1990/stdio/rewind.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/rewind.c -o $@
-
-$(OBJDIR)/scanf.o: std/9899-1990/stdio/scanf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/scanf.c -o $@
-
-$(OBJDIR)/setbuf.o: std/9899-1990/stdio/setbuf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/setbuf.c -o $@
-
-$(OBJDIR)/setjmp.o: std/9899-1990/setjmp/setjmp.c $(INCDIR)/setjmp.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/setjmp/setjmp.c -o $@
-
-$(OBJDIR)/setlocale.o: std/9899-1990/locale/setlocale.c $(INCDIR)/locale.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/locale/setlocale.c -o $@
-
-$(OBJDIR)/setvbuf.o: std/9899-1990/stdio/setvbuf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/setvbuf.c -o $@
-
-$(OBJDIR)/signal.o: std/9899-1990/signal/signal.c $(INCDIR)/signal.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/signal/signal.c -o $@
-
-$(OBJDIR)/sin.o: std/9899-1990/math/sin.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/sin.c -o $@
-
-$(OBJDIR)/sinh.o: std/9899-1990/math/sinh.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/sinh.c -o $@
-
-$(OBJDIR)/sprintf.o: std/9899-1990/stdio/sprintf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/sprintf.c -o $@
-
-$(OBJDIR)/sqrt.o: std/9899-1990/math/sqrt.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/sqrt.c -o $@
-
-$(OBJDIR)/srand.o: std/9899-1990/stdlib/srand.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/srand.c -o $@
-
-$(OBJDIR)/sscanf.o: std/9899-1990/stdio/sscanf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/sscanf.c -o $@
-
-$(OBJDIR)/strcat.o: std/9899-1990/string/strcat.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strcat.c -o $@
-
-$(OBJDIR)/strchr.o: std/9899-1990/string/strchr.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strchr.c -o $@
-
-$(OBJDIR)/strcmp.o: std/9899-1990/string/strcmp.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strcmp.c -o $@
-
-$(OBJDIR)/strcoll.o: std/9899-1990/string/strcoll.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strcoll.c -o $@
-
-$(OBJDIR)/strcpy.o: std/9899-1990/string/strcpy.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strcpy.c -o $@
-
-$(OBJDIR)/strcspn.o: std/9899-1990/string/strcspn.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strcspn.c -o $@
-
-$(OBJDIR)/strerror.o: std/9899-1990/string/strerror.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strerror.c -o $@
-
-$(OBJDIR)/strftime.o: std/9899-1990/time/strftime.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/strftime.c -o $@
-
-$(OBJDIR)/strlen.o: std/9899-1990/string/strlen.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strlen.c -o $@
-
-$(OBJDIR)/strncat.o: std/9899-1990/string/strncat.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strncat.c -o $@
-
-$(OBJDIR)/strncmp.o: std/9899-1990/string/strncmp.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strncmp.c -o $@
-
-$(OBJDIR)/strncpy.o: std/9899-1990/string/strncpy.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strncpy.c -o $@
-
-$(OBJDIR)/strpbrk.o: std/9899-1990/string/strpbrk.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strpbrk.c -o $@
-
-$(OBJDIR)/strrchr.o: std/9899-1990/string/strrchr.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strrchr.c -o $@
-
-$(OBJDIR)/strspn.o: std/9899-1990/string/strspn.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strspn.c -o $@
-
-$(OBJDIR)/strstr.o: std/9899-1990/string/strstr.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strstr.c -o $@
-
-$(OBJDIR)/strtod.o: std/9899-1990/stdlib/strtod.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/strtod.c -o $@
-
-$(OBJDIR)/strtok.o: std/9899-1990/string/strtok.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strtok.c -o $@
-
-$(OBJDIR)/strtol.o: std/9899-1990/stdlib/strtol.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/strtol.c -o $@
-
-$(OBJDIR)/strtoul.o: std/9899-1990/stdlib/strtoul.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/strtoul.c -o $@
-
-$(OBJDIR)/strxfrm.o: std/9899-1990/string/strxfrm.c $(INCDIR)/string.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/string/strxfrm.c -o $@
-
-$(OBJDIR)/system.o: std/9899-1990/stdlib/system.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/system.c -o $@
-
-$(OBJDIR)/tan.o: std/9899-1990/math/tan.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/tan.c -o $@
-
-$(OBJDIR)/tanh.o: std/9899-1990/math/tanh.c $(INCDIR)/math.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/math/tanh.c -o $@
-
-$(OBJDIR)/time.o: std/9899-1990/time/time.c $(INCDIR)/time.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/time/time.c -o $@
-
-$(OBJDIR)/tmpfile.o: std/9899-1990/stdio/tmpfile.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/tmpfile.c -o $@
-
-$(OBJDIR)/tmpnam.o: std/9899-1990/stdio/tmpnam.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/tmpnam.c -o $@
-
-$(OBJDIR)/tolower.o: std/9899-1990/ctype/tolower.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/tolower.c -o $@
-
-$(OBJDIR)/toupper.o: std/9899-1990/ctype/toupper.c $(INCDIR)/ctype.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/ctype/toupper.c -o $@
-
-$(OBJDIR)/ungetc.o: std/9899-1990/stdio/ungetc.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/ungetc.c -o $@
-
-$(OBJDIR)/vfprintf.o: std/9899-1990/stdio/vfprintf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/vfprintf.c -o $@
-
-$(OBJDIR)/vprintf.o: std/9899-1990/stdio/vprintf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/vprintf.c -o $@
-
-$(OBJDIR)/vsprintf.o: std/9899-1990/stdio/vsprintf.c $(INCDIR)/stdio.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdio/vsprintf.c -o $@
-
-$(OBJDIR)/wcstombs.o: std/9899-1990/stdlib/wcstombs.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/wcstombs.c -o $@
-
-$(OBJDIR)/wctomb.o: std/9899-1990/stdlib/wctomb.c $(INCDIR)/stdlib.h
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c std/9899-1990/stdlib/wctomb.c -o $@
-
-$(OBJDIR)/libc.o: nonstd/libc.c
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c $? -o $@
-
-$(OBJDIR)/x86-64.o: nonstd/x86-64.s
- -@mkdir -p $(OBJDIR)
- $(CC) $(CFLAGS) -c $? -o $@
-
-all: libc.a libm.a
-
-headers:
+headers: .headers.mk
@$(MAKE) -f .headers.mk $@
clean:
rm -rf $(OBJDIR) *.a
git-clean: clean
- rm -rf .dep .headers.mk Makefile
+ rm -rf .dep .headers.mk .deps.mk
diff --git a/mkmf.sh b/mkmf.sh
index c8129690..b1ed7b5d 100755
--- a/mkmf.sh
+++ b/mkmf.sh
@@ -6,7 +6,7 @@ STANDARD=${1-9899-1990}
#STANDARD=${1-POSIX.1-1990}
if [ ! -f .dep/to-build ]; then
- rm -rf .dep Makefile .headers.mk
+ rm -rf .dep .deps.mk .headers.mk
mkdir -p .dep
echo ${STANDARD} > .dep/to-build
fi
@@ -65,16 +65,16 @@ for i in $(find std/${STANDARD} -name \*.c) $(find std/${STANDARD} -name \*.ref)
done
if [ $(cat .dep/to-build) = ${STANDARD} ]; then
- printf '.POSIX:\n\n' > Makefile
- printf 'default: all\n\n' >> Makefile
- printf 'include config.mk\n\n' >> Makefile
- printf 'INCLUDES=-I$(INCDIR) -I. -Inonstd/stubs\n' >> Makefile
- printf 'CFLAGS=$(INCLUDES) -g -fno-builtin -nostdinc -nostdlib -nodefaultlibs -Werror -Wall -Wextra -fPIC\n\n' >> Makefile
+ printf '.POSIX:\n\n' > .deps.mk
+ printf 'default: all\n\n' >> .deps.mk
+ printf 'include config.mk\n\n' >> .deps.mk
+ printf 'INCLUDES=-I$(INCDIR) -I. -Inonstd/stubs\n' >> .deps.mk
+ printf 'CFLAGS=$(INCLUDES) -g -fno-builtin -nostdinc -nostdlib -nodefaultlibs -Werror -Wall -Wextra -fPIC\n\n' >> .deps.mk
for i in .dep/lib*.a.mk; do
LIB=$(basename $i .a.mk)
- cat $i >> Makefile
- printf '\n\n%s.a: $(%s_OBJS)\n\t$(AR) r $@ $?\n\n' $LIB $LIB >> Makefile
+ cat $i >> .deps.mk
+ printf '\n\n%s.a: $(%s_OBJS)\n\t$(AR) r $@ $?\n\n' $LIB $LIB >> .deps.mk
done
printf '.POSIX:\n\ninclude config.mk\n\n' > .headers.mk
@@ -89,21 +89,16 @@ if [ $(cat .dep/to-build) = ${STANDARD} ]; then
printf 'headers:' >> .headers.mk
cat .dep/all_headers.mk >> .headers.mk
- cat .dep/*.o.mk >> Makefile
+ cat .dep/*.o.mk >> .deps.mk
- printf '$(OBJDIR)/libc.o: nonstd/libc.c\n\t-@mkdir -p $(OBJDIR)\n\t$(CC) $(CFLAGS) -c $? -o $@\n\n' >> Makefile
- printf '$(OBJDIR)/x86-64.o: nonstd/x86-64.s\n\t-@mkdir -p $(OBJDIR)\n\t$(CC) $(CFLAGS) -c $? -o $@\n\n' >> Makefile
+ printf '$(OBJDIR)/libc.o: nonstd/libc.c\n\t-@mkdir -p $(OBJDIR)\n\t$(CC) $(CFLAGS) -c $? -o $@\n\n' >> .deps.mk
+ printf '$(OBJDIR)/x86-64.o: nonstd/x86-64.s\n\t-@mkdir -p $(OBJDIR)\n\t$(CC) $(CFLAGS) -c $? -o $@\n\n' >> .deps.mk
- printf 'all:' >> Makefile
+ printf 'all:' >> .deps.mk
for i in .dep/lib*.a.mk; do
- printf ' %s' $(basename $i .mk) >> Makefile
+ printf ' %s' $(basename $i .mk) >> .deps.mk
done
- printf '\n\n' >> Makefile
+ printf '\n\n' >> .deps.mk
- printf 'headers:\n\t@$(MAKE) -f .headers.mk $@\n\n' >> Makefile
-
- printf 'clean:\n\trm -rf $(OBJDIR) *.a\n\n' >> Makefile
- printf 'git-clean: clean\n\trm -rf .dep .headers.mk Makefile\n\n' >> Makefile
-
rm -f .dep/to-build
fi