# Makefile
VERSION = 1.0
PATCHLEVEL = 0

# Make sure you create the directories that libss.a and ss.h
# will get copied to.
# The directory where the file libss.a will get copied to on installation.
INSTALL_LIB_DIR = /am/oak/usr/oak/mscs.91/ianport/project/sockets/libss.dir
# The directory where the file ss.h will get copied to on installation.
INSTALL_INC_DIR = /am/oak/usr/oak/mscs.91/ianport/project/sockets/ss.dir

# Uncomment these lines to compile on a 3B2
#DEFINES = 
#LIBS = -lss -lnet -lnsl_s
#INCLUDEDIRS = -I/usr/netinclude
#HEADERFILE = ss.3b2.h

# Uncomment the following lines for a Sun3 or Sparc.
DEFINES = -DVerbose_Errors
LIBS = -lss
INCLUDEDIRS =
HEADERFILE = ss.sun.h

# Uncomment the following lines for an Aviion.
#DEFINES = -DVerbose_Errors -D_BSD_SOURCE # -D__STDC__
#LIBS = -lss
#INCLUDEDIRS =
#HEADERFILE = ss.sun.h

# Uncomment the following lines for an IBM risc workstation.
#DEFINES = -DVerbose_Errors
#LIBS = -lss
#INCLUDEDIRS =
#HEADERFILE = ss.ibm.h

# gcc compiler options
#CC = gcc
#CFLAGS = -g $(DEFINES) $(INCLUDEDIRS) #-traditional

#CC = cc
#CFLAGS = -g $(DEFINES) $(INCLUDEDIRS)

OBJS = ss.o

CFILES = ss.c

MISCFILES = README Makefile Notes Testing Install

HFILES = ss.base.h ss.sun.h ss.ibm.h ss.3b2.h test.h stdlib.h

DEMOFILES = server1.c client1.c server2.c client2.c server3.c client3.c

ARCHIVEFILES = $(MISCFILES) $(CFILES) $(HFILES) $(DEMOFILES) 

.c.o:
	$(CC) -c $(CFLAGS) $<

all: libss.a client1 server1 client2 server2 client3 server3

libss.a: ss.h $(OBJS) 
	ar rcv libss.a $(OBJS)
	ranlib libss.a

ss.h: ss.base.h $(HEADERFILE)
	cat $(HEADERFILE) ss.base.h > ss.h

$(OBJS): ss.h

install:
	cp libss.a $(INSTALL_LIB_DIR)
	cp ss.h    $(INSTALL_INC_DIR)

tar:
	tar cf - $(ARCHIVEFILES) | compress > ss-$(VERSION).tar.Z
shar:
	xshar $(ARCHIVEFILES) > ss-$(VERSION).shar

clean:
	rm *.o core

realclean: clean
	rm  server1 server2 server3 client1 client2 client3 libss.a
lint:
	lint $(CFILES) $(DEFINES)

server1: server1.o libss.a
	$(CC) server1.o -L. $(LIBS) -o server1

client1: client1.o libss.a
	$(CC) client1.o -L. $(LIBS) -o client1

server2: server2.o libss.a
	$(CC) server2.o -lss -L. -o server2

client2: client1.o libss.a
	$(CC) client1.o -lss -L. -o client2

server3: server3.o libss.a
	$(CC) server3.o -lss -L. -o server3

client3: client3.o libss.a
	$(CC) client3.o -lss -L. -o client3

