##  Makefile
##
##  copyright (c) 2000-2003 SeaD
##  see GPL for copying info
##

NAME=echat
VERSION=0.04beta1
PREFIX=/usr/local
LIBS=-lcurses
STATIC=
CC=gcc
CFLAGS=-Wall -g -O2
# with -DDEBUG enabled a lot of info will write to specified file
#CFLAGS=-Wall -g -DDEBUG='"/tmp/echat.debug"'
OBJS=chat_chnl.o chat_cmnd.o chat_conf.o chat_cset.o chat_parm.o chat_syst.o \
    chat_user.o curs_strn.o curs_term.o echat.o pckt_addr.o pckt_comm.o \
    pckt_pmke.o pckt_pprs.o pckt_vmke.o pckt_vprs.o sock_tcp.o sock_udp.o
DOCS=.echatrc.sample GPL NEWS README README.ru README.tu TODO ec

# -DFREEBSD == FreeBSD defines
# -DLINUX == Linux defines
# -DWIN32 == CygWin defines (-DNCURSES_STATIC STATIC=-static)
# -DRU == russian interface
# -DTU == turkish interface
# -DCHARSET == charset recoding (KOI8-R <-> CP1251)
# -DPORTREUSE == run more than one chat on the same port
# -DTCP == simple tcp server (laggy)
# -DSHELL == enable `/!' command (may be dangerous!)
DEFINES=-DFREEBSD -DCHARSET
#DEFINES=-DFREEBSD -DCHARSET -DPORTREUSE -DTCP -DSHELL

.c.o:
	@echo Compiling $*.c
	@$(CC) -c $(CFLAGS) $(DEFINES) $<

all:	start $(NAME)

start:
	@echo "Making $(NAME) $(VERSION)"
	@echo "LIBS = $(LIBS)"
	@echo "CFLAGS = $(CFLAGS)"
	@echo "DEFINES = $(DEFINES)"

$(NAME): $(OBJS)
	@echo Linking $@
	@$(CC) -o $@ $(OBJS) $(LIBS) $(STATIC)

clean:
	@echo Cleaning OBJS
	@rm -f $(OBJS)

cleanall: clean
	@echo Removing $(NAME)
	@rm -f $(NAME)

install: all
	mkdir -p -m 755 $(PREFIX)/bin
	install -s -m 755 $(NAME) $(PREFIX)/bin/$(NAME)
	mkdir -p -m 755 $(PREFIX)/doc/$(NAME)-$(VERSION)
	for file in $(DOCS) ; do \
	    install -m 644 doc/$$file $(PREFIX)/doc/$(NAME)-$(VERSION)/$$file ; \
	done
	mkdir -p -m 755 $(PREFIX)/man/man1
	install -m 644 doc/$(NAME).1 $(PREFIX)/man/man1/$(NAME).1

chat_chnl.o: chat_chnl.c echat.h
chat_cmnd.o: chat_cmnd.c chat_cmnd.h echat.h
chat_conf.o: chat_conf.c chat_conf.h echat.h
chat_cset.o: chat_cset.c echat.h
chat_parm.o: chat_parm.c echat.h
chat_syst.o: chat_syst.c echat.h
chat_user.o: chat_user.c echat.h
curs_strn.o: curs_strn.c curs_term.h echat.h
curs_term.o: curs_term.c curs_term.h echat.h
echat.o: echat.c echat.h
pckt_addr.o: pckt_addr.c echat.h
pckt_comm.o: pckt_comm.c pckt_ppak.h pckt_vpak.h echat.h
pckt_vmke.o: pckt_vmke.c pckt_vpak.h echat.h
pckt_vprs.o: pckt_vprs.c pckt_vpak.h echat.h
pckt_pmke.o: pckt_pmke.c pckt_ppak.h echat.h
pckt_pprs.o: pckt_pprs.c pckt_ppak.h echat.h
sock_tcp.o: sock_tcp.c echat.h
sock_udp.o: sock_udp.c echat.h
