|
|
1.1 ! root 1: # /usr/src/libc/stdio/Makefile 2/14/91 ! 2: ! 3: # The order of stdio objects in libc.a is significant and a bit complicated. ! 4: # To reduce the size of linked objects when possible, ! 5: # libc includes both real and fake versions of _dtefg() (floating point output) ! 6: # and of _finish() (close open FILEs). ! 7: # If a program requires floating point output, the "-f" flag to /bin/cc ! 8: # produces an "-u _dtefg_" argument to /bin/ld, forcing the link to include ! 9: # the real floating point output routine from _dtefg.o. ! 10: # Otherwise, /bin/ld resolves the reference to _dtefg() in printf.o with ! 11: # the much smaller fake floating point output routine from _fdtefg.o. ! 12: # To avoid linking in extra stdio overhead when not required, ! 13: # libc.a should contain _fp.o, finit.o, exit.o and _finish.o, in that order, ! 14: # after stdio objects from $(OBJ) and from the machine-dependent subdirectory, ! 15: # If a program uses stdio, /bin/ld will link in finit.o; ! 16: # finit.o defines the real _finish() which closes all open files for exit(). ! 17: # If a program does not use stdio, /bin/ld will link in exit.o but not finit.o; ! 18: # then it resolves the _finish() reference in exit() with the fake _finish.o, ! 19: # which does nothing. ! 20: ! 21: OBJ=\ ! 22: _fgetb.o\ ! 23: _fgetc.o\ ! 24: _fgeteof.o\ ! 25: _fopen.o\ ! 26: _fpseek.o\ ! 27: _fputb.o\ ! 28: _fputc.o\ ! 29: _fputt.o\ ! 30: _stropen.o\ ! 31: fclose.o\ ! 32: fdopen.o\ ! 33: fflush.o\ ! 34: fgetc.o\ ! 35: fgets.o\ ! 36: fopen.o\ ! 37: fputc.o\ ! 38: fputs.o\ ! 39: fread.o\ ! 40: freopen.o\ ! 41: fseek.o\ ! 42: ftell.o\ ! 43: fwrite.o\ ! 44: getc.o\ ! 45: getchar.o\ ! 46: gets.o\ ! 47: popen.o\ ! 48: putc.o\ ! 49: putchar.o\ ! 50: puts.o\ ! 51: rewind.o\ ! 52: scanf.o\ ! 53: setbuf.o\ ! 54: ungetc.o ! 55: ! 56: # N.B. The order of objects in $(OBJ2) is significant, ! 57: # see the lengthy comment above and be extremely careful if you change it. ! 58: OBJ2=\ ! 59: _dtefg.o\ ! 60: printf.o\ ! 61: _fdtefg.o\ ! 62: _fp.o\ ! 63: finit.o\ ! 64: exit.o\ ! 65: _finish.o ! 66: ! 67: # Primary target. ! 68: all: stdioi8086 STDIO ! 69: : libc/stdio done. ! 70: ! 71: # Pseudotargets. ! 72: stdioi8086: ! 73: make SRCPATH=$(SRCPATH)/i8086 ! 74: # This assumes that either libc.a is being made from scratch ! 75: # or the names of the objects in $(OBJ2) are unchanged. ! 76: # Otherwise, "ar rkus lib.c $?" may not preserve the required object order. ! 77: # It could be done more correctly with ar positional specifications. ! 78: STDIO: $(OBJ) $(OBJ2) ! 79: ar rkus libc.a $? ! 80: touch $@ ! 81: ! 82: # Secondary targets. ! 83: _dtefg.o: _dtefg.c ! 84: _fdtefg.o: _fdtefg.c ! 85: _fgetb.o: _fgetb.c ! 86: _fgetc.o: _fgetc.c ! 87: _fgeteof.o: _fgeteof.c ! 88: _finish.o: _finish.c ! 89: _fopen.o: _fopen.c ! 90: _fp.o: _fp.c ! 91: _fpseek.o: _fpseek.c ! 92: _fputb.o: _fputb.c ! 93: _fputc.o: _fputc.c ! 94: _fputt.o: _fputt.c ! 95: _stropen.o: _stropen.c ! 96: exit.o: exit.c ! 97: fclose.o: fclose.c ! 98: fdopen.o: fdopen.c ! 99: fflush.o: fflush.c ! 100: fgetc.o: fgetc.c ! 101: fgets.o: fgets.c ! 102: finit.o: finit.c ! 103: fopen.o: fopen.c ! 104: fputc.o: fputc.c ! 105: fputs.o: fputs.c ! 106: fread.o: fread.c ! 107: freopen.o: freopen.c ! 108: fseek.o: fseek.c ! 109: ftell.o: ftell.c ! 110: fwrite.o: fwrite.c ! 111: getc.o: getc.c ! 112: getchar.o: getchar.c ! 113: gets.o: gets.c ! 114: popen.o: popen.c ! 115: printf.o: printf.c ! 116: putc.o: putc.c ! 117: putchar.o: putchar.c ! 118: puts.o: puts.c ! 119: rewind.o: rewind.c ! 120: scanf.o: scanf.c ! 121: setbuf.o: setbuf.c ! 122: ungetc.o: ungetc.c ! 123: ! 124: # end of /usr/src/libc/stdio/Makefile
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.