#
# $RCSfile: Makefile,v $
#
# Copyright (c) 1992  Arizona Board of Regents
#
# $Revision: 1.1 $
# $Date: 1992/07/23 23:26:07 $
# $Author: ho $
#
# $Log: Makefile,v $
# Revision 1.1  1992/07/23  23:26:07  ho
# Initial revision
#
# Revision 1.2  1992/07/22  18:41:30  davidm
# removed xsi_user.c from SRCS
#
# Revision 1.1  1992/07/22  18:39:58  davidm
# Initial revision
#
#
XSIDIR	= ../xk
INCLUDE	= -I$(XSIDIR)
PWD	= $(shell pwd)
LIB	= $(HOW)/libxksocket.a

XPLATFORM = mach3
#HOWTOCOMPILE = DEBUG
HOWTOCOMPILE = OPTIMIZE
MACHINE = mips

OPTIMIZECPPFLAGS = -DNDEBUG $(AUXFLAGS) -D_PATH_SERVICES='"/etc/services"'
#DEBUGCPPFLAGS = $(AUXFLAGS) -D_PATH_SERVICES='"${PWD}/services"'
DEBUGCPPFLAGS = $(AUXFLAGS) -D_PATH_SERVICES='"/etc/services"'

OPTIMIZECFLAGS = -g -O
DEBUGCFLAGS = -g -O

####################################################################

CPPFLAGS = $(INCLUDE) $($(HOWTOCOMPILE)CPPFLAGS) -Dpmax

HOW = $(HOWTOCOMPILE)$(XPLATFORM)

ifeq ($(CC),gcc)

DEBUGWARNINGS = -Wreturn-type -Wunused
OPTIMIZEWARNINGS = $(DEBUGWARNINGS)
CC_SPECIFIC_FLAGS = -fwritable-strings

else

endif

CFLAGS = $($(HOWTOCOMPILE)CFLAGS) $(CPPFLAGS) $($(HOWTOCOMPILE)WARNINGS) $(CC_SPECIFIC_FLAGS)

./$(HOW)/%.o : ./%.c
	$(CC) -c $(CFLAGS) -o $@ $<

####################################################################

OBJS	= ./$(HOW)/accept.o ./$(HOW)/bind.o ./$(HOW)/close.o \
	  ./$(HOW)/connect.o ./$(HOW)/listen.o ./$(HOW)/socket.o \
	  ./$(HOW)/getpeername.o ./$(HOW)/getsockname.o \
	  ./$(HOW)/getsockopt.o ./$(HOW)/setsockopt.o ./$(HOW)/select.o \
	  ./$(HOW)/ioctl.o ./$(HOW)/fcntl.o ./$(HOW)/dup.o ./$(HOW)/dup2.o \
	  ./$(HOW)/fork.o ./$(HOW)/vfork.o ./$(HOW)/read.o ./$(HOW)/readv.o \
	  ./$(HOW)/write.o ./$(HOW)/writev.o ./$(HOW)/recv.o \
	  ./$(HOW)/recvfrom.o ./$(HOW)/recvmsg.o ./$(HOW)/send.o \
	  ./$(HOW)/sendto.o ./$(HOW)/sendmsg.o ./$(HOW)/xsi_main.o \
	  ./$(HOW)/xsi_user.o ./$(HOW)/getservbyname.o \
	  ./$(HOW)/getservbyport.o ./$(HOW)/getservent.o

SRCS	= accept.c bind.c close.c connect.c listen.c socket.c \
	  getpeername.c getsockname.c getsockopt.c setsockopt.c select.c \
	  ioctl.c fcntl.c dup.c dup2.c fork.c vfork.c read.c readv.c \
	  write.c writev.c recv.c recvfrom.c recvmsg.c send.c \
	  sendto.c sendmsg.c xsi_main.c getservbyname.c \
	  getservbyport.c getservent.c

HDRS	= xsi_main.h

RCSFILES = Makefile $(SRCS) $(HDRS)

all: $(LIB)

./$(HOW)/xsi_user.o: $(XSIDIR)/xsi_user.c
	$(CC) $(CFLAGS) -o $@ -c $^

$(LIB): $(OBJS) TFM
	ar ruv $@ $(OBJS) syscalls/sc_*.o
	ranlib $@
	rm -f libxksocket.a
	ln -s $(LIB)

rcsupdate: TFM
	ci -l $(RCSFILES); true

clean:	TFM
	rm -f $(OBJS)

depend:	TFM
	$(CC) -MM $(INCLUDE) *.c | sed "s|^|$(HOW)/|" >Makedep.$(HOW)

TFM:

.PHONY:	TFM

include Makedep.$(HOW)
