#! /bin/make -f
#
#	uw library makefile (4.3BSD)
#
# INCDIR names the directory in which header files are located.
# SERVERDIR names the directory containing the server source.
# SERVER_OBJS names the object files derived from sources in SERVERDIR.
# OBJECTS names all of the object files required for the library.
#

INCDIR	=	../h

SERVERDIR =	../server

SERVER_OBJS =	$(SERVERDIR)/openpty.o $(SERVERDIR)/uw_env.o

OBJECTS	=	uw_cmd.o uw_close.o uw_detach.o uw_fork.o uw_kill.o \
		uw_netadj.o uw_new.o uw_optcmd.o uw_optfn.o uw_options.o \
		uw_perror.o uw_ttype.o \
		uw_rsetopt.o uw_shell.o \
		uw_gvis.o uw_gtype.o uw_gtitle.o uw_gwsize.o uw_gpos.o \
		$(SERVER_OBJS)

SOURCES	=	`echo $(OBJECTS) | sed -e 's/\\.o/\\.c/g'`

DEFINES	=	`cat ../DEFINES`

CFLAGS	=	-O -I$(INCDIR) $(DEFINES)

TARGET	=	libuw.a

$(TARGET):	$(OBJECTS)
	ar cr $(TARGET) `lorder $(OBJECTS) | tsort`
	ranlib $(TARGET)
	-if [ ! -f uwlib.a ];then ln -s libuw.a uwlib.a;fi

$(SERVER_OBJS):
	cd $(SERVERDIR); make `basename $@`

lint:
	lint -uhbx -I$(INCDIR) $(DEFINES) $(SOURCES)

tags:
	ctags $(SOURCES)

depend: 
	$(CC) -M -I$(INCDIR) $(DEFINES) $(SOURCES) | \
	sed -e ':loop' \
	    -e 's/\.\.\/[^ /]*\/\.\./../' \
	    -e 't loop' | \
	awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
		       else rec = rec " " $$2 } } \
	      END { print rec } ' >> makedep
	echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep
	echo '$$r makedep' >>eddep
	echo 'w' >>eddep
	cp Makefile Makefile.bak
	ex - Makefile < eddep
	rm eddep makedep

clean:
	-rm *.o

# DO NOT DELETE THIS LINE (or the following blank line) -- make depend uses it

uw_cmd.o : uw_cmd.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_close.o : uw_close.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_detach.o : uw_detach.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_fork.o : uw_fork.c /usr/include/sys/types.h /usr/include/sys/socket.h \
  /usr/include/sys/un.h /usr/include/sys/ioctl.h /usr/include/sys/ttychars.h \
  /usr/include/sys/ttydev.h /usr/include/sys/uio.h /usr/include/sys/file.h \
  /usr/include/sys/fcntl.h /usr/include/strings.h /usr/include/string.h \
  /usr/include/stddef.h /usr/include/signal.h /usr/include/sys/signal.h \
  /usr/include/machine/signal.h ../h/openpty.h ../h/uwlib.h ../h/uw_err.h \
  ../h/uw_ipc.h 
uw_kill.o : uw_kill.c /usr/include/sys/types.h /usr/include/netinet/in.h \
  ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_netadj.o : uw_netadj.c /usr/include/sys/types.h \
  /usr/include/sys/socket.h /usr/include/sys/un.h /usr/include/sys/ioctl.h \
  /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h \
  /usr/include/sys/wait.h /usr/include/sys/resource.h /usr/include/sys/time.h \
  /usr/include/time.h /usr/include/stddef.h /usr/include/sys/uio.h \
  /usr/include/sys/file.h /usr/include/sys/fcntl.h /usr/include/netinet/in.h \
  /usr/include/strings.h /usr/include/string.h /usr/include/signal.h \
  /usr/include/sys/signal.h /usr/include/machine/signal.h ../h/openpty.h \
  ../h/uw_opt.h ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_new.o : uw_new.c /usr/include/sys/types.h /usr/include/sys/socket.h \
  /usr/include/netinet/in.h /usr/include/sys/uio.h /usr/include/strings.h \
  /usr/include/string.h /usr/include/stddef.h /usr/include/signal.h \
  /usr/include/sys/signal.h /usr/include/machine/signal.h \
  /usr/include/netdb.h /usr/include/ctype.h ../h/openpty.h ../h/uwlib.h \
  ../h/uw_err.h ../h/uw_ipc.h 
uw_optcmd.o : uw_optcmd.c /usr/include/sys/types.h \
  /usr/include/netinet/in.h ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_optfn.o : uw_optfn.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_options.o : uw_options.c /usr/include/sys/types.h \
  /usr/include/sys/file.h /usr/include/sys/fcntl.h /usr/include/sys/time.h \
  /usr/include/time.h /usr/include/stddef.h /usr/include/netinet/in.h \
  /usr/include/strings.h /usr/include/string.h /usr/include/signal.h \
  /usr/include/sys/signal.h /usr/include/machine/signal.h \
  /usr/include/errno.h /usr/include/sys/errno.h ../h/uwlib.h ../h/uw_err.h \
  ../h/uw_ipc.h 
uw_perror.o : uw_perror.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_ttype.o : uw_ttype.c /usr/include/strings.h /usr/include/string.h \
  /usr/include/stddef.h ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_rsetopt.o : uw_rsetopt.c /usr/include/sys/types.h \
  /usr/include/sys/socket.h /usr/include/sys/un.h /usr/include/sys/ioctl.h \
  /usr/include/sys/ttychars.h /usr/include/sys/ttydev.h \
  /usr/include/sys/uio.h /usr/include/sys/file.h /usr/include/sys/fcntl.h \
  /usr/include/strings.h /usr/include/string.h /usr/include/stddef.h \
  /usr/include/signal.h /usr/include/sys/signal.h \
  /usr/include/machine/signal.h ../h/openpty.h ../h/uwlib.h ../h/uw_err.h \
  ../h/uw_ipc.h 
uw_shell.o : uw_shell.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_gvis.o : uw_gvis.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_gtype.o : uw_gtype.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_gtitle.o : uw_gtitle.c /usr/include/strings.h /usr/include/string.h \
  /usr/include/stddef.h ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_gwsize.o : uw_gwsize.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
uw_gpos.o : uw_gpos.c ../h/uwlib.h ../h/uw_err.h ../h/uw_ipc.h 
openpty.o : ../server/openpty.c /usr/include/sys/types.h \
  /usr/include/sys/dir.h /usr/include/fcntl.h /usr/include/strings.h \
  /usr/include/string.h /usr/include/stddef.h ../h/openpty.h 
uw_env.o : ../server/uw_env.c 
