OPTS_GCC =\
	-fcaller-saves -fcse-follow-jumps -fcse-skip-blocks \
	-fexpensive-optimizations -fomit-frame-pointer \
	-frerun-cse-after-loop -fstrength-reduce -fthread-jumps \
	-funroll-loops -O6

OPTS_CC_SPARC	= -fast -DASM_SPARC
OPTS_GCC_SPARC	= $(OPTS_GCC) -msupersparc -DASM_SPARC
OPTS_CC_MIPS	= -O2 -xansi -DASM_MIPS
OPTS_GCC_MIPS	= $(OPTS_GCC) -Wall -DASM_MIPS
OPTS_GCC_I386	= $(OPTS_GCC) -DASM_I386

CLIENT_SRCS = client.c cliops.c
CLIENT_OBJS = $(CLIENT_SRCS:.c=.o)

SERVER_SRCS = 
SERVER_OBJS = 

PROXY_SRCS = proxy.c
PROXY_OBJS = $(PROXY_SRCS:.c=.o)

VERIFY_SRCS =
VERIFY_OBJS =

PROGS = client proxy 

all: mips-cc

sparc-cc:
	$(MAKE) CC=cc CFLAGS="$(OPTS_CC_SPARC)" \
		LDFLAGS="$(OPTS_CC_SPARC) -lnsl -lsocket" $(PROGS)

sparc-gcc:
	$(MAKE) CC=gcc CFLAGS="$(OPTS_GCC_SPARC)" \
		LDFLAGS="$(OPTS_GCC_SPARC) -lnsl -lsocket" $(PROGS)

mips-cc:
	$(MAKE) CC=cc CFLAGS="$(OPTS_CC_MIPS)" \
		LDFLAGS="$(OPTS_CC_MIPS)" $(PROGS)

mips-gcc:
	$(MAKE) CC=gcc CFLAGS="$(OPTS_GCC_MIPS)" \
		LDFLAGS="$(OPTS_GCC_MIPS)" $(PROGS)

i386-gcc:
	$(MAKE) CC=gcc CFLAGS="$(OPTS_GCC_I386)" \
		LDFLAGS="$(OPTS_GCC_I386)" $(PROGS)

client: $(CLIENT_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(CLIENT_OBJS) $(LIBS)

server: $(SERVER_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(SERVER_OBJS) $(LIBS)

proxy: $(PROXY_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(PROXY_OBJS) $(LIBS)

verify: $(VERIFY_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(VERIFY_OBJS) $(LIBS)

clean:
	$(RM) $(PROGS) $(CLIENT_OBJS) $(SERVER_OBJS) $(PROXY_OBJS) $(VERIFY_OBJS)

