# Make file to construct the ve executable
# This file specifies code optimized for size

# Usage: "make" creates the executable, "make clean" cleans up

objects = main.o termif.o kbdif.o wordcmd.o quitcmd.o optcmd.o modeproc.o misccmd.o \
	macrocmd.o jumpcmd.o findcmd.o editcmd.o delete.o cursor.o blockutil.o blockcmd.o \
	columncmd.o stacks.o fileutil.o veutils.o vedbase.o strprim.o lnklst.o graemeut.o undo.o

ve : $(objects)
	cc -o ve $(objects) -lncurses
	strip -S ve
	ls -al ve
main.o : main.c 
	cc -c -Os main.c
termif.o : termif.c
	cc -c -Os termif.c
kbdif.o : kbdif.c
	cc -c -Os kbdif.c
wordcmd.o : wordcmd.c
	cc -c -Os wordcmd.c
quitcmd.o : quitcmd.c
	cc -c -Os quitcmd.c
optcmd.o : optcmd.c
	cc -c -Os optcmd.c
modeproc.o : modeproc.c
	cc -c -Os modeproc.c
misccmd.o : misccmd.c
	cc -c -Os misccmd.c
macrocmd.o : macrocmd.c
	cc -c -Os macrocmd.c
jumpcmd.o : jumpcmd.c
	cc -c -Os jumpcmd.c
findcmd.o : findcmd.c
	cc -c -Os findcmd.c
editcmd.o : editcmd.c
	cc -c -Os editcmd.c
delete.o : delete.c
	cc -c -Os delete.c
cursor.o : cursor.c
	cc -c -Os cursor.c
blockutil.o : blockutil.c
	cc -c -Os blockutil.c
blockcmd.o : blockcmd.c
	cc -c -Os blockcmd.c
columncmd.o : columncmd.c
	cc -c -Os columncmd.c
stacks.o : stacks.c
	cc -c -Os stacks.c
fileutil.o : fileutil.c
	cc -c -Os fileutil.c
veutils.o : veutils.c
	cc -c -Os veutils.c
vedbase.o : vedbase.c
	cc -c -Os vedbase.c
strprim.o : strprim.c
	cc -c -Os strprim.c
lnklst.o : lnklst.c
	cc -c -Os lnklst.c
graemeut.o : graemeut.c
	cc -c -Os graemeut.c
undo.o : undo.c
	cc -c -Os undo.c

install :
	cp -f ve /usr/local/bin
	chmod ugo+rx /usr/local/bin/ve
	rm -rf /usr/share/doc/ve
	mkdir /usr/share/doc/ve
	cp -f ../../ve-3.5g-user-manual.sxw /usr/share/doc/ve
	chmod ugo+r /usr/share/doc/ve/ve-3.5g-user-manual.sxw

clean :
	rm -f ve $(objects)
