|
|
1.1 ! root 1: # /usr/src/libc/stdio/Makefile 1/26/93 ! 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 vfprintf.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: _dscan.o\ ! 23: _fgetb.o\ ! 24: _fgetc.o\ ! 25: _fgete.o\ ! 26: _fgetstr.o\ ! 27: _filbuf.o\ ! 28: _flsbuf.o\ ! 29: _fopen.o\ ! 30: _fpseek.o\ ! 31: _fputa.o\ ! 32: _fputb.o\ ! 33: _fputc.o\ ! 34: _fpute.o\ ! 35: _fputt.o\ ! 36: _scanf.o\ ! 37: _stropen.o\ ! 38: clearerr.o\ ! 39: ecvt.o\ ! 40: fclose.o\ ! 41: fcvt.o\ ! 42: fdopen.o\ ! 43: feof.o\ ! 44: ferror.o\ ! 45: fflush.o\ ! 46: fgetc.o\ ! 47: fgetpos.o\ ! 48: fgets.o\ ! 49: fopen.o\ ! 50: fputc.o\ ! 51: fputs.o\ ! 52: fread.o\ ! 53: freopen.o\ ! 54: fscanf.o\ ! 55: fseek.o\ ! 56: fsetpos.o\ ! 57: ftell.o\ ! 58: fwrite.o\ ! 59: gcvt.o\ ! 60: getc.o\ ! 61: getchar.o\ ! 62: gets.o\ ! 63: perror.o\ ! 64: popen.o\ ! 65: putc.o\ ! 66: putchar.o\ ! 67: puts.o\ ! 68: remove.o\ ! 69: rename.o\ ! 70: rewind.o\ ! 71: scanf.o\ ! 72: setbuf.o\ ! 73: setvbuf.o\ ! 74: sscanf.o\ ! 75: tmpfile.o\ ! 76: tmpnam.o\ ! 77: ungetc.o ! 78: ! 79: # N.B. The order of objects in $(OBJ2) is significant, ! 80: # see the lengthy comment above and be extremely careful if you change it. ! 81: OBJ2=\ ! 82: _dtefg.o\ ! 83: fprintf.o\ ! 84: printf.o\ ! 85: sprintf.o\ ! 86: vprintf.o\ ! 87: vsprintf.o\ ! 88: vfprintf.o\ ! 89: _fdtefg.o\ ! 90: _fp.o\ ! 91: _finit.o\ ! 92: exit.o\ ! 93: _finish.o ! 94: ! 95: # Primary target. ! 96: all: stdio$(MCH) STDIO ! 97: : libc/stdio done. ! 98: ! 99: # Pseudotargets. ! 100: stdio$(MCH): ! 101: SRCPATH=$(SRCPATH)/$(MCH) make -e ! 102: # This assumes that either libc.a is being made from scratch ! 103: # or the names of the objects in $(OBJ2) are unchanged. ! 104: # Otherwise, "$(AR) rkus lib.c $?" may not preserve the required object order. ! 105: # It could be done more correctly with $(AR) positional specifications. ! 106: STDIO: $(OBJ) $(OBJ2) ! 107: $(AR) rkus libc.a $? ! 108: touch $@ ! 109: ! 110: # Secondary targets. ! 111: _dscan.o: _dscan.c ! 112: _dtefg.o: _dtefg.c ! 113: _fdtefg.o: _fdtefg.c ! 114: _fgetb.o: _fgetb.c ! 115: _fgetc.o: _fgetc.c ! 116: _fgete.o: _fgete.c ! 117: _fgetstr.o: _fgetstr.c ! 118: _filbuf.o: _filbuf.c ! 119: _finish.o: _finish.c ! 120: _finit.o: _finit.c ! 121: _flsbuf.o: _flsbuf.c ! 122: _fopen.o: _fopen.c ! 123: _fp.o: _fp.c ! 124: _fpseek.o: _fpseek.c ! 125: _fputa.o: _fputa.c ! 126: _fputb.o: _fputb.c ! 127: _fputc.o: _fputc.c ! 128: _fpute.o: _fpute.c ! 129: _fputt.o: _fputt.c ! 130: _scanf.o: _scanf.c ! 131: _stropen.o: _stropen.c ! 132: clearerr.o: clearerr.c ! 133: ecvt.o: ecvt.c ! 134: exit.o: exit.c ! 135: fclose.o: fclose.c ! 136: fcvt.o: fcvt.c ! 137: fdopen.o: fdopen.c ! 138: feof.o: feof.c ! 139: ferror.o: ferror.c ! 140: fflush.o: fflush.c ! 141: fgetc.o: fgetc.c ! 142: fgetpos.o: fgetpos.c ! 143: fgets.o: fgets.c ! 144: fopen.o: fopen.c ! 145: fprintf.o: fprintf.c ! 146: fputc.o: fputc.c ! 147: fputs.o: fputs.c ! 148: fread.o: fread.c ! 149: freopen.o: freopen.c ! 150: fscanf.o: fscanf.c ! 151: fseek.o: fseek.c ! 152: fsetpos.o: fsetpos.c ! 153: ftell.o: ftell.c ! 154: fwrite.o: fwrite.c ! 155: gcvt.o: gcvt.c ! 156: getc.o: getc.c ! 157: getchar.o: getchar.c ! 158: gets.o: gets.c ! 159: perror.o: perror.c ! 160: popen.o: popen.c ! 161: printf.o: printf.c ! 162: putc.o: putc.c ! 163: putchar.o: putchar.c ! 164: puts.o: puts.c ! 165: remove.o: remove.c ! 166: rename.o: rename.c ! 167: rewind.o: rewind.c ! 168: scanf.o: scanf.c ! 169: setbuf.o: setbuf.c ! 170: setvbuf.o: setvbuf.c ! 171: sprintf.o: sprintf.c ! 172: sscanf.o: sscanf.c ! 173: tmpfile.o: tmpfile.c ! 174: tmpnam.o: tmpnam.c ! 175: ungetc.o: ungetc.c ! 176: vprintf.o: vprintf.c ! 177: vfprintf.o: vfprintf.c ! 178: vsprintf.o: vsprintf.c ! 179: ! 180: # 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.