.SUFFIXES : .c .o
CC = /usr/bin/gcc
CFLAGS = -g -no-cpp-precomp
LIBS = -lreadline -lcurses -lncurses
INC = -L/usr/local/lib -I/usr/local/include -I/usr/include
NPLIBS = -lusb -lreadline -lc -lcurses -lncurses
RM = rm -rf
TAR = tar -cf
ZIP = gzip -9
FILES = pksh/Makefile pksh/README pksh/client.c pksh/execee.c pksh/execiop.c\
	pksh/pksh.c pksh/pksh.h pksh/pukklink.c\
	pksh/pukklink.h pksh/reset.c pksh/udplog.c pksh/naplink.c pksh/pl2301.h\
	pksh/pl2301.c pksh/npsh.h\
	pksh/npsh.c pksh/common.c pksh/common.h pksh/packet.c pksh/packet.h\
	pksh/naplink.h pksh/SAMPLE.npshrc\
    pksh/SAMPLE.pkshrc pksh/LICENSE

PKSH_OBJ = common.o pukklink.o pksh.o
NPSH_OBJ = common.o packet.o pl2301.o npsh.o naplink.o

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

all: pksh npsh execee execiop reset udplog client

pksh: $(PKSH_OBJ)
	$(CC) $(PKSH_OBJ) -o $@ $(LIBS) $(INC)

client: pukklink.o client.o
	$(CC) pukklink.o client.o -o  $@

execee: pukklink.o execee.o
	$(CC) pukklink.o execee.o -o $@

execiop: pukklink.o execiop.o
	$(CC) pukklink.o execiop.o -o $@

reset: pukklink.o reset.o 
	$(CC) pukklink.o reset.o -o $@

udplog: pukklink.o udplog.o
	$(CC) pukklink.o udplog.o -o $@

naplink.o:
	$(CC) -c naplink.c $(INC)
packet.o:
	$(CC) -c packet.c $(INC)
pl2301.o:
	$(CC) -c pl2301.c $(INC)
npsh.o:
	$(CC) -c npsh.c $(INC)
npsh: $(NPSH_OBJ)
	$(CC) $(NPSH_OBJ) -o $@ $(INC) $(NPLIBS)

zip:
	@cd ..;\
	$(TAR) loadclients.tar ${FILES};\
    $(ZIP) loadclients.tar
	@echo "../loadclients.tar.gz"

clean:
	$(RM) *.o *.so