###
###  Makefile for ncftp
###

SRCS=cmds.c main.c cmdtab.c ftp.c glob.c ftprc.c getpass.c
OBJS=cmds.o main.o cmdtab.o ftp.o glob.o ftprc.o getpass.o
HEADERS=cmds.h copyright.h defaults.h ftp.h ftpdefs.h ftprc.h \
glob.h main.h patchlevel.h sys.h getpass.h
NAME=ncftp
MAN=ncftp.1
ALL=$(SRCS) $(HEADERS) Blurb Install Makefile $(MAN)

# Don't worry about this:
SGI_CFLAGS=-prototypes -xansi -fullwarn -woff 211,269,270,303,309

# Program definitions.
# At the moment these can be:
#    -DCURSES:  Uses curses library to display boldface, underline, etc.
#       By default ncftp uses hard-coded ANSI escapes (^[[1m etc.) to
#		save the 100k or so the curses library adds.
#    -DSYSLOG:  Define this to have ncftp log connections and transfers
#       to the syslog.
PDEFS= # -DCURSES -DSYSLOG

# System dependent definitions.  See sys.h.
SDEFS= 

# Choose your compiler and flags below.  Make sure you use an ANSI compiler
# that handles new style function declarations and prototypes (gcc should).

CC=gcc
CFLAGS=-pipe -I../term -DTERM
LFLAGS=
#CFLAGS=-g
#LFLAGS=-g
#CFLAGS=$(SGI_CFLAGS) -g

# Additional libraries.
# Some may need any of -lsocket, -lnet, -linet, -lintl, or -lnsl. 
# You'll need -lcurses or -ltermcap if CURSES is defined.
#
MORELIBS= ../term/client.a


DEFS=$(PDEFS) $(SDEFS)

all: $(NAME) 

$(NAME): $(OBJS)
	$(CC) $(LFLAGS) $(OBJS) -o $(NAME) $(MORELIBS)

main.o: main.c sys.h defaults.h ftpdefs.h cmds.h main.h ftp.h ftprc.h
	$(CC) $(CFLAGS) $(DEFS) main.c -c

cmds.o: cmds.c sys.h defaults.h ftpdefs.h cmds.h main.h ftp.h ftprc.h \
	glob.h getpass.h
	$(CC) $(CFLAGS) $(DEFS) cmds.c -c

cmdtab.o: cmdtab.c sys.h ftpdefs.h cmds.h main.h ftp.h ftprc.h glob.h
	$(CC) $(CFLAGS) $(DEFS) cmdtab.c -c

ftp.o: ftp.c sys.h defaults.h ftpdefs.h cmds.h main.h ftp.h getpass.h
	$(CC) $(CFLAGS) $(DEFS) ftp.c -c

ftprc.o: ftprc.c sys.h defaults.h ftpdefs.h cmds.h main.h ftprc.h
	$(CC) $(CFLAGS) $(DEFS) ftprc.c -c

getpass.o: getpass.c sys.h getpass.h ftpdefs.h cmds.h main.h ftprc.h
	$(CC) $(CFLAGS) $(DEFS) getpass.c -c

glob.o: glob.c sys.h ftpdefs.h cmds.h glob.h
	$(CC) $(CFLAGS) $(DEFS) glob.c -c

clean:
	rm -f $(OBJS) core $(NAME)

# -------------------------------------------------------------------------

shared: $(OBJS)
	 $(CC) $(OBJS) -o $(NAME) -lc_s $(MORELIBS) -s
	 -@ls -l $(NAME)

lint: $(SRCS)
	lint $(SRCS) $(CFLAGS) $(DEFS) > Lint

tags:
	ctags -x $(SRCS) $(HEADERS) | sort -f > tags
	
tar:
	tar cvf - $(ALL) | compress > $(NAME).tar.Z

shar2:
	shar $(ALL) > $(NAME).shar

shar:
	shar $(ALL) | cat Blurb - > $(NAME).shar

#done: $(NAME)
#	-@ls -l $(NAME)
#	-@echo 'Done.'

# Shouldn't need to fool with anything below this point.
# This is my development stuff.

pixie: $(NAME) $(NAME).Counts $(NAME).Addrs
	prof -pixie $(NAME) $(NAME).Addrs $(NAME).Counts -feedback Feedback

$(NAME).Addrs: $(NAME)
	pixie -o $(NAME).pixie $(NAME)

$(NAME).Counts: ftp $(NAME).Addrs
	$(NAME).pixie

profile:
	rm -f *.[ou]
	cc $(SGI_CFLAGS) $(SRCS) $(DEFS) -g -p -o ncftp.prof
	ncftp.prof
	prof ncftp.prof mon.out

shmips:
	cc -O3 $(SGI_CFLAGS) $(SRCS) $(DEFS) -o ncftp -lc_s -s
	rm *.[ou]
	chmod 775 ncftp
	
mipsopt:
	cc -O3 $(SGI_CFLAGS) $(SRCS) $(DEFS) -o ncftp -s
	rm *.[ou]
	chmod 775 ncftp

gccopt:
	gcc -O2 $(SRCS) $(DEFS) -o ncftp -s
	chmod 775 ncftp

opt: mipsopt
	-@ls -l $(NAME)

gopt: gccopt
	-@ls -l $(NAME)

mantst:
	nroff -man ncftp.1 > ncftp.man
	less ncftp.man

patch:
	-rm -rf /tmp/old /tmp/new
	-mkdir /tmp/old /tmp/new
	cp ~/ncftp.shar /tmp/old/oldncftp.shar
	(cd /tmp/old ; unshar -n oldncftp.shar )
	make shar
	cp ncftp.shar /tmp/new
	(cd /tmp/new; unshar -n ncftp.shar )
	rm /tmp/new/ncftp.shar /tmp/old/oldncftp.shar
	(cd /tmp/old ; diff -c . ../new > ../pch)

# eof
