#
# makefile for standard I/O library
#
# note it is assumed that either LIBC is already
# in existence or that ranlib will be used on the
# library, i.e. the order here is not necessarily the order
# that the .o files should appear in a normal library
#

H = /usr/include
LIBC = nlibS.a
I = /usr/include

.c.o:
	cc -c -O $*.c; ld -r -x $*.o; mv a.out $*.o

noargs:
	@echo "Usage: make file.o or make all"

getgrgid.o: getgrgid.c $(I)/grp.h
getgrnam.o: getgrnam.c $(I)/grp.h
getgrent.o: getgrent.c $(H)/stdio.h $(I)/grp.h
getpass.o: getpass.c $(H)/stdio.h $(I)/signal.h $(I)/sgtty.h
getpwnam.o: getpwnam.c $(I)/pwd.h
getpwuid.o: getpwuid.c $(I)/pwd.h
getpwent.o: getpwent.c $(H)/stdio.h $(I)/pwd.h
fgetc.o: fgetc.c $(H)/stdio.h
fputc.o: fputc.c $(H)/stdio.h
getchar.o: getchar.c $(H)/stdio.h
putchar.o: putchar.c $(H)/stdio.h
popen.o: popen.c $(H)/stdio.h $(I)/signal.h
freopen.o: freopen.c $(H)/stdio.h
fgets.o: fgets.c $(H)/stdio.h
fputs.o: fputs.c $(H)/stdio.h
getpw.o: getpw.c $(H)/stdio.h
fseek.o: fseek.c $(H)/stdio.h
ftell.o: ftell.c $(H)/stdio.h
rew.o: rew.c $(H)/stdio.h
rdwr.o: rdwr.c $(H)/stdio.h
system.o: system.c $(H)/stdio.h
fopen.o: fopen.c $(H)/stdio.h
fdopen.o: fdopen.c $(H)/stdio.h
scanf.o: scanf.c $(H)/stdio.h
doscan.o: doscan.c $(H)/stdio.h
fprintf.o: fprintf.c $(H)/stdio.h
gets.o: gets.c $(H)/stdio.h
getw.o: getw.c $(H)/stdio.h
printf.o: printf.c $(H)/stdio.h
puts.o: puts.c $(H)/stdio.h
putw.o: putw.c $(H)/stdio.h
sprintf.o: sprintf.c $(H)/stdio.h
ungetc.o: ungetc.c $(H)/stdio.h
filbuf.o: filbuf.c $(H)/stdio.h
memfile.o: memfile.c $(H)/stdio.h
setbuf.o: setbuf.c $(H)/stdio.h
doprnt.o: doprnt.c $(H)/stdio.h
strout.o: strout.c $(H)/stdio.h
flsbuf.o: flsbuf.c $(H)/stdio.h
endopen.o: endopen.c $(H)/stdio.h
findiop.o: findiop.c $(H)/stdio.h
clrerr.o: clrerr.c $(H)/stdio.h
data.o: data.c $(H)/stdio.h
errinfo.o: errinfo.c $(H)/stdio.h $(H)/stdioerr.h
stdioerr.o: stdioerr.c $(H)/stdio.h $(H)/stdioerr.h

all: \
    clrerr.o\
    data.o\
    doprnt.o\
    doscan.o\
    endopen.o\
    errinfo.o\
    fdopen.o\
    fgetc.o\
    fgets.o\
    filbuf.o\
    findiop.o\
    flsbuf.o\
    fopen.o\
    fprintf.o\
    fputc.o\
    fputs.o\
    freopen.o\
    fseek.o\
    ftell.o\
    getchar.o\
    getgrent.o\
    getgrgid.o\
    getgrnam.o\
    getpass.o\
    getpw.o\
    getpwent.o\
    getpwnam.o\
    getpwuid.o\
    gets.o\
    getw.o\
    memfile.o\
    popen.o\
    printf.o\
    putchar.o\
    puts.o\
    putw.o\
    rdwr.o\
    rew.o\
    scanf.o\
    setbuf.o\
    sprintf.o\
    stdioerr.o\
    strout.o\
    system.o\
    ungetc.o

print:
	@pr $(H)/stdio.h $(H)/stdioerr.h *.c

lint:
	@lint -n *.c

save: clrerr.c+\
    data.c+\
    doprnt.c+\
    doscan.c+\
    endopen.c+\
    errinfo.c+\
    fdopen.c+\
    fgetc.c+\
    fgets.c+\
    filbuf.c+\
    findiop.c+\
    flsbuf.c+\
    fopen.c+\
    fprintf.c+\
    fputc.c+\
    fputs.c+\
    freopen.c+\
    fseek.c+\
    ftell.c+\
    getchar.c+\
    getgrent.c+\
    getgrgid.c+\
    getgrnam.c+\
    getpass.c+\
    getpw.c+\
    getpwent.c+\
    getpwnam.c+\
    getpwuid.c+\
    gets.c+\
    getw.c+\
    memfile.c+\
    popen.c+\
    printf.c+\
    putchar.c+\
    puts.c+\
    putw.c+\
    rdwr.c+\
    rew.c+\
    scanf.c+\
    setbuf.c+\
    sprintf.c+\
    stdioerr.c+\
    strout.c+\
    system.c+\
    ungetc.c+

.c.c+:
	save $(SAVE) $*.c
.h.h+:
	save $(SAVE) $*.h

clrerr.c+: clrerr.c
data.c+: data.c
doprnt.c+: doprnt.c
doscan.c+: doscan.c
endopen.c+: endopen.c
fdopen.c+: fdopen.c
fgetc.c+: fgetc.c
fgets.c+: fgets.c
filbuf.c+: filbuf.c
findiop.c+: findiop.c
flsbuf.c+: flsbuf.c
fopen.c+: fopen.c
fprintf.c+: fprintf.c
fputc.c+: fputc.c
fputs.c+: fputs.c
freopen.c+: freopen.c
fseek.c+: fseek.c
ftell.c+: ftell.c
getchar.c+: getchar.c
getgrent.c+: getgrent.c
getgrgid.c+: getgrgid.c
getgrnam.c+: getgrnam.c
getpass.c+: getpass.c
getpw.c+: getpw.c
getpwent.c+: getpwent.c
getpwnam.c+: getpwnam.c
getpwuid.c+: getpwuid.c
gets.c+: gets.c
getw.c+: getw.c
memfile.c+: memfile.c
popen.c+: popen.c
printf.c+: printf.c
putchar.c+: putchar.c
puts.c+: puts.c
putw.c+: putw.c
rdwr.c+: rdwr.c
rew.c+: rew.c
scanf.c+: scanf.c
setbuf.c+: setbuf.c
sprintf.c+: sprintf.c
strout.c+: strout.c
system.c+: system.c
ungetc.c+: ungetc.c
