# this makefile is for maintenance
# eventually this stuff should work on NT and Unix
# right now I'm on unix.

PYTHON = python
INDENT = indent

RCSH = defaults.h primes.h winvn.h wvdlg.h wvglob.h \
	wvmapi.h wvstates.h wvclass.h

RCSC = headarry.cpp ini_news.cpp shellsor.c winvn.c wvart.c \
	wvblock.c wvcncm.c wvcodewn.c wvcoding.c wvcompos.c \
	wvcrypt.c wvfile.c wvfiler.c wvfilter.c wvgroup.cpp wvheader.c \
	wvlist.c wvmail.c wvmapi.c wvpath.c wvprint.c \
	wvsckgen.c wvscreen.c wvsend.c wvstbar.c wvtxtblk.c wvusenet.cpp\
	wvutil.cpp wvaction.cpp wvhdedit.c

RCSMISC = winvn.rc winvn16.def winvn32.def

RCSALL = $(RCSH) $(RCSC) $(RCSMISC)

#	tar -zcvf ../winvn.tgz --exclude-from maint/winvn.exc  .

clean16:
	rm -f build16/*.obj
	rm -f build16/*.sbr
	rm -f build16/*.dll
	rm -f build16/*.exe
	rm -f build16/*.pch
	rm -f build16/*.map
	rm -f build16/*.bsc
	rm -f build16/*.res

dist:	clean16 version $(RCSALL)
# zip's -x option is non-intuitive.
	$(PYTHON) maint/todos.py $(RCSALL)
	rm -f ../dist/winvn.zip
	zip -r ../dist/winvn.zip ./ -x \*WinDebug\* \*WinRel\* \*~ \*.dll \*.exe
	$(PYTHON) maint/distver.py	

.SUFFIXES: .obj .sbr .res .c .rc

# Rules to create files from RCS database

$(RCSALL):
	co $@

winvn16: $(RCSALL)
	cd gensock
	nmake -f gensock.mak
	nmake -f genasync.mak
	cd ..
	cd wvtb
	nmake -f wvtb.mak
	cd ..
	cd build16
	nmake -f winvn16.mak
	cd ..

winvn32: $(RCSALL)
	cd gensock
	nmake -f gensck32.mak CFG="Win32 Release"
	cd ..
	cd wvtb
	nmake -f wvtb32.mak CFG="Win32 Release"
	cd ..
	nmake -f winvn32.mak CFG="Win32 Release"

winvnaxp: $(RCSALL)
	cd gensock
	nmake -f gensck32.mak CFG="WinAxp Release"
	cd ..
	cd wvtb
	nmake -f wvtb32.mak CFG="WinAxp Release"
	cd ..
	nmake -f winvn32.mak CFG="WinAxp Release"

increment-version:
	$(PYTHON) maint/incver.py

# the touch is because msvc dependency computation isn't
# catching the version.c #include
version: $(RCSALL)
	$(PYTHON) maint/version.py $(RCSALL)
	touch wvusenet.c

lock:
	co -l $(RCSH) $(RCSC)

ci-indent: $(RCSC) $(RCSH)
	$(PYTHON) maint/fapply.py 'ci -m"reindented"' $(RCSC) $(RCSH)

edit-all:
	emacs $(RCSC) $(RCSH)

unlock:
	rcs -u $(RCSH) $(RCSC)

indent: $(RCSH) $(RCSC)
	$(PYTHON) maint/fapply.py '$(INDENT) -br -ts4' $(RCSC) $(RCSH)

checkout: $(RCSALL)

outdate: $(RCSALL)
	rcs -o1.1: $(RCSALL)

ident:
	ident $(RCSALL)

restart: $(RCSALL)
	$(PYTHON) maint/fapply.py 'ci -k -mrestart ' $(RCSALL)

checkver: $(RCSALL)
	$(PYTHON) maint/checkver.py $(RCSALL)

symbolic: $(RCSALL)
	$(PYTHON) maint/symbolic.py $(RCSALL)

links: $(RCSALL)
	$(PYTHON) maint/makelinks.py $(RCSALL)

# this is to force all the files into one format or the other.
# The RCS files seem to store in unix format,
# so on unix you need to force to unix format.

tounix: $(RCSALL)
	$(PYTHON) maint/tounix.py $(RCSALL)

todos: $(RCSALL)
	$(PYTHON) maint/todos.py $(RCSALL)
