#===============================================================
# V Makefile - Version 1.15 - 11/14/96
#
# Copyright (C) 1995,1996  Bruce E. Wampler
#
# This file is part of the V C++ GUI Framework, and is covered
# under the terms of the GNU Library General Public License,
# Version 2. This library has NO WARRANTY. See the source file
# vapp.cxx for more complete information about license terms.
#===============================================================

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# LINUX QUICK START INSTRUCTIONS
#
# (Other systems can more or less follow this, but usually
#  need to edit some other stuff in this file.)
#
# Standard Static Library
#
# Untar V to a directory you want to keep it on. This makefile
# should be in a directory called v.
#
# Then issue 
#
#      make linux
#
# which will make everything. You end up with the static library in
# v/lib/libV.a
#
# Then, as root, run from the v directory: 
#
#     make installLinux
#                        (make installV on non-Linux)
#
# Make whatever V tools you want (e.g., viconed, vgen) by
# running the make in their directorys
#
# On Linux, stuff will be installed in /usr/include/v, /usr/lib,
# and /usr/X11/bin
#
# Other systems install v in a /usr/local/v hierarchy.

# This process will create and copy the include files, library,
# and binaries to the V hierarchy.
#
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

# Make targets:
#
# 	all (default):	vlib and vtest
#	utils:		vgen, viconed, vdraw, vtexted
#	examp:		proto
#	clean:		general cleanup
#	cleanmotif:	cleanup motif .o's, etc.
#	cleanobj:	cleanup .o's
#	cleanall:	cleanup all non-source stuff
#	tar:		X and Windows Distribution
#	tarwin:		Windows only Distribution"
#	tarx:		X only distribution
#	tarfull:	everthing, including .o's, etc.
#	getwin:		copy MS-Windows source from /dosc
#	permissions:	make sources readable to world
#	installv:	run as root to install to /usr/local/v
#	installvlinux:	run as root to install to /usr/local
#	installunm:	install to ../pubv (UNM specific)
#------------------------------------------------------------------------
# NOTE: this make file requires a make version compatible with GNU make,
#       specifically VPATH support.

VV	=	1.15
VVW	=	115

CC	=	gcc
CXX	=	g++

# These are the platforms that V has been extensively tested with.
# If you have one of these platforms, you can comment out the others
# and make yours the default platform. You can also use "ARCH=x"
# on the make command line. There is also a section below called
# "Platform notes" that contains various feedback I've gotten about
# ports to other platforms. These notes may help you on your platform.

#       default arch is intel (Linux, really)
ARCH	= intel
#ARCH	= linuxelf
#ARCH	= sun4
#ARCH	= mips
#ARCH	= sgi

# User contributed definitions:
#ARCH	= hpux
#ARCH	= aix
#ARCH	= solaris
#ARCH	= bsd

# NOTE: The Motif version is NOT complete!!! It really doesn't
# work yet! However, there are some ifeqs in this makefile
# for compiling Motif. You can try them, but the result does NOT work!

#TOOLKIT	= Motif

TOOLKIT	= Athena

DEBUG	= no

Arch = $(ARCH)

ifeq ($(Arch),i586)
Arch = intel
endif
ifeq ($(Arch),i486)
Arch = intel
endif

# Platform notes
#
# I've received the following feedback from various V users. Because
# of machine access limitations, I haven't been able to test all these
# myself, but the information is still likely to be helpful.
# If you have any additions to this section, please send me e-mail, and
# I will add a note to this file. Thanks.
#
# All platforms --
#
#   HOMEV: HOMEV specifies the location where
#      you are keeping V. This is usually something/v. By
#      running from the v directory, HOMEV can safely be
#      specified as .
#

HOMEV	=	.

#   The locations of the various libraries and include
#   files it the greatest variable from platform to platform.
#   Follow the pattern estabalished here to define the
#   dependencies for your platform. 
#
#   Not all platforms need ranlib (sgi, solaris). For those
#   platforms, define RANLIB = true to avoid make error.
#
#
# Linux --
#   some Linux setups also need -I/usr/lib/g++-include
#
#
# Solaris --
#
#   Define RANLIB = true
#   Add socket library (known for Solaris 2.4):
#   LIBS  =  -lV -lXaw -lXmu -lXt -lXext -lX11 -lsocket
#
#   Add socket and nsl library (known for Solaris 2.5):
#   LIBS  =  -lV -lXaw -lXmu -lXt -lXext -lX11 -lnsl -lsocket
#
#
# UnixWare 2.02 (i386/sysvR4)
#   LIBS  =   -lXaw -lXext -lXmu -lXt -lX11 -lm -lsocket -lnsl -lgen 
#
#  IBM AIX 4.1 using the xlC compiler:
#    Remove the explicit references to 'gcc' in the makefiles.
#

#====================================================================

# Platform specific definitions

#---------------------------------------------------------------------
# Linux
ifeq ($(Arch),intel)
X11INC	=	/usr/X11/include
X11LIB	=	/usr/X11R6/lib
ifeq ($(TOOLKIT),Athena)
LIBS	=	-lV -lXaw -lXmu -lXt -lXext -lX11
endif
ifeq ($(TOOLKIT),Motif)
LIBS	=	-lVm /usr/lib/libXm.a -lXmu -lXt -lXext -lX11
endif
TARZ	=	z
RANLIB	=	ranlib
endif

#---------------------------------------------------------------------
# Linux ELF shared library
ifeq ($(Arch),linuxelf)
X11INC	=	/usr/X11/include
X11LIB	=	/usr/X11R6/lib
ifeq ($(TOOLKIT),Athena)
LIBS	=	-lV -lXaw -lXmu -lXt -lXext -lX11 -lstdc++
endif
ifeq ($(TOOLKIT),Motif)
LIBS	=	-lVm /usr/lib/libXm.a -lXmu -lXt -lXext -lX11 -lstdc++
endif
TARZ	=	z
RANLIB	=	ranlib
endif

#---------------------------------------------------------------------
# Sun4 - unm
ifeq ($(Arch),sun4)
X11INC	=	/usr/local/X11/include
X11LIB	=	/usr/local/X11/lib
ifeq ($(TOOLKIT),Athena)
LIBS	=	-lV -lXaw -lXmu -lXt -lXext -lX11
endif
ifeq ($(TOOLKIT),Motif)
LIBS	=	-lVm /usr/lib/libXm.a -lXaw -lXmu -lXt -lXext -lX11
endif
TARZ	=
RANLIB	=	ranlib
endif

#---------------------------------------------------------------------
# mips - unm
ifeq ($(Arch),mips)
X11INC	=	/usr/local/X11/include
X11LIB	=	/usr/local/X11/lib
ifeq ($(TOOLKIT),Athena)
LIBS	=	-lV -lXaw -lXmu -lXt -lXext -lX11
endif
ifeq ($(TOOLKIT),Motif)
LIBS	=	-lVm /usr/lib/libXm.a -lXaw -lXmu -lXt -lXext -lX11
endif
TARZ	=
RANLIB	=	ranlib
endif

#---------------------------------------------------------------------
# sgi - unm
ifeq ($(Arch),sgi)
X11INC	=	/usr/include
X11LIB	=	/usr/lib
ifeq ($(TOOLKIT),Athena)
LIBS	=	-lV -lXaw -lXmu -lXt -lXext -lX11
endif
ifeq ($(TOOLKIT),Motif)
LIBS	=	-lVm /usr/lib/libXm.a -lXmu -lXt -lXext -lX11
endif
TARZ	=
RANLIB	=	true
endif

#---------------------------------------------------------------------
# for hpux9.05 with gcc-2.7.2 Contributed by: Neal Becker <Neal.Becker@comsat.com>
#                             corrected by Jan Peter de Ruiter <janpeter@mpi.nl>
ifeq ($(Arch),hpux)
X11INC	=	/usr/include/X11R5
X11LIB	=	/usr/lib/X11R5
ifeq ($(TOOLKIT),Athena)
#the order of specification matters here!
LIBS    =       -lV -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11

# old version - works on some systems
#LIBS	=	-lV -lXaw -lXmu -lXt -lXext -lX11
endif
ifeq ($(TOOLKIT),Motif)
LIBS	=	-lVm /usr/lib/libXm.a -lXaw -lXmu -lXt -lXext -lX11
endif
TARZ	=
RANLIB	=       true
endif

#-----------------------------------------------------------------
# solaris - unm
ifeq ($(Arch),solaris)
X11INC	=	/usr/local/X11/include
X11LIB	=	/usr/local/X11/lib
ifeq ($(TOOLKIT),Athena)
LIBS	=	-lV -lXaw -lXmu -lXt -lXext -lX11 -lnsl -lsocket
endif
ifeq ($(TOOLKIT),Motif)
LIBS	=	-lVm /usr/lib/libXm.a -lXmu -lXt -lXext -lX11 -lnsl -lsocket
endif
TARZ	=
RANLIB	=	true
endif

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

# FreeBSD with gcc
ifeq ($(Arch),bsd)
HOMEV   =       /home/wes/src
X11INC  =       /usr/X11R6/include
X11LIB  =       /usr/X11R6/lib
LIBS    =       -lV -lXaw -lXmu -lXt -lXext -lX11
TARZ    =
RANLIB  =       ranlib
endif

#====================================================================

# Architecture dependent

VLibDir	=	$(HOMEV)/lib/$(Arch)

ifeq ($(TOOLKIT),Motif)
oDir	=	objm/$(Arch)
endif

ifeq ($(TOOLKIT),Athena)
oDir	=	obj/$(Arch)
endif

LibDir	=	lib/$(Arch)

Bin	=	bin/$(Arch)

# Location of sources and inputs

VPATH	=	srcx:includex/v:test:examp:tutor:icons:appgen

# Flags for includes and libraries

ifeq ($(TOOLKIT),Athena)
ifeq ($(DEBUG),no)
CFLAGS	=	-O -I$(X11INC) -I$(HOMEV)/includex 
endif

ifeq ($(DEBUG),yes)
CFLAGS	=	-g -I$(X11INC) -I$(HOMEV)/includex
endif
endif

ifeq ($(TOOLKIT),Motif)
ifeq ($(DEBUG),no)
CFLAGS	=	-O -DMotif -I$(X11INC) -I$(HOMEV)/includex 
endif

ifeq ($(DEBUG),yes)
CFLAGS	=	-g -DMotif -I$(X11INC) -I$(HOMEV)/includex
endif
endif

ifeq ($(Arch),linuxelf)
CFLAGSLIB	= -fpic $(CFLAGS)
else
CFLAGSLIB	= $(CFLAGS)
endif

# Use this define for NO 3D on Athena Widgets
# Change the Lib3dObjs definition later, too.

#CFLAGS	=	-O -I$(X11INC) -I$(HOMEV)/includex -DNO_V_3D

LFLAGS	=	-L$(X11LIB) -L$(VLibDir)

# Directory stuff

#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PERMDIRS =	. doc doc/fig doc/html examp tutor includex includex/v includew/v lib \
		lib/* obj obj/* objm objm/* srcx srcwin test draw drawex iconed bin \
		bin/* bmp2vbm bccide icons watcom watcom/win16 watcom/win16db \
		watcom/win32 watcom/win32db contrib appgen texted vxgl

PERMFILES =	make* NEWS README BUGS COPY* RDMEWIN.TXT doc/*/* doc/* includex/v/* \
		includew/v/* lib/*/* obj/*/* objm/*/* srcx/* srcwin/* test/* \
		draw/* iconed/* drawex/* examp/* bin/*/* tutor/* bmp2vbm/* bccide/* \
		icons/* clnupwin.bat PACKLIST watcom/*/* watcom/* contrib/*  \
		appgen/* texted/* vxgl/*

EXEFILES =	bin/*/* doc/checkspelling doc/cleanup \
		doc/dovwebref

# V library objs
LibObjs	=	$(oDir)/vapp.o \
		$(oDir)/vawinfo.o \
		$(oDir)/vbaseitm.o \
		$(oDir)/vbasewin.o \
		$(oDir)/vbtncmd.o \
		$(oDir)/vcanvas.o \
		$(oDir)/canvas.o \
		$(oDir)/vcbtncmd.o \
		$(oDir)/vchkboxc.o \
		$(oDir)/vclabelc.o \
		$(oDir)/vcmd.o \
		$(oDir)/vcmdpane.o \
		$(oDir)/vcmdwin.o \
		$(oDir)/vcmdprnt.o \
		$(oDir)/vcolor.o \
		$(oDir)/vcomboc.o \
		$(oDir)/vcpdc.o \
		$(oDir)/vdebug.o \
		$(oDir)/vdialog.o \
		$(oDir)/vfilesel.o \
		$(oDir)/vfinddlg.o \
		$(oDir)/vfont.o \
		$(oDir)/vfontsel.o \
		$(oDir)/vframec.o \
		$(oDir)/vicon.o \
		$(oDir)/vlabelc.o \
		$(oDir)/vlistc.o \
		$(oDir)/vmemdc.o \
		$(oDir)/vmenu.o \
		$(oDir)/vmodald.o \
		$(oDir)/vnotice.o \
		$(oDir)/vpsprntr.o \
		$(oDir)/vprogrsc.o \
		$(oDir)/vpsdc.o \
		$(oDir)/vradioc.o \
		$(oDir)/vreply.o \
		$(oDir)/vsliderc.o \
		$(oDir)/vspinc.o \
		$(oDir)/vstatusp.o \
		$(oDir)/vtextc.o \
		$(oDir)/vtextcnv.o \
		$(oDir)/vtexted.o \
		$(oDir)/vtextinc.o \
		$(oDir)/vtimer.o \
		$(oDir)/vutil.o \
		$(oDir)/vwindow.o \
		$(oDir)/vxdc.o \
		$(oDir)/vx2vkey.o \
		$(oDir)/vynreply.o

# For no 3d, change Lib3dObjs definition, too.
# No 3d
ifeq ($(TOOLKIT),Motif)
Lib3dObjs	=
endif

# Using 3d
ifeq ($(TOOLKIT),Athena)
Lib3dObjs	=	$(oDir)/aw3d.o \
		$(oDir)/awcmd3d.o \
		$(oDir)/awlbl3d.o \
		$(oDir)/awscl3d.o \
		$(oDir)/awsld3d.o \
		$(oDir)/awsim3d.o \
		$(oDir)/awtog3d.o
endif

TestObjs =	$(oDir)/testapp.o \
		$(oDir)/vtcanvas.o \
		$(oDir)/vtcmdwin.o \
		$(oDir)/vtcw2.o \
		$(oDir)/vttogdlg.o \
		$(oDir)/vtdialog.o


EXOBJS	=	$(oDir)/protoapp.o \
		$(oDir)/mydialog.o \
		$(oDir)/mymodal.o \
		$(oDir)/mycanvas.o \
		$(oDir)/mycmdwin.o

ifeq ($(TOOLKIT),Athena)
LIBNAME	= libV
V1NAME 	= v1
endif

ifeq ($(TOOLKIT),Motif)
LIBNAME	= libVm
V1NAME 	= v1m
endif

ifeq ($(Arch),linuxelf)
VLIB	=	$(LibDir)/$(LIBNAME).so.$(VV)
else
VLIB	=	$(LibDir)/$(LIBNAME).a
endif

BASEDEP =	v_defs.h vbaseitm.h vbasewin.h vapp.h

PANEDEP	=	vpane.h vwindow.h

CMDDEP	=	v_defs.h vdialog.h vcmd.h vcmdprnt.h vxutil.h

CMDS	=	vbtncmd.h vcbtncmd.h vlabelc.h vframec.h vchkboxc.h vradioc.h \
		vprogrsc.h vsliderc.h vtextinc.h vlistc.h vcomboc.h vtextc.h \
		vcolor.h vpen.h vclabelc.h vspinc.h

#---------------------------------------------------------------------
#
#	OK, the work begins here
#
#---------------------------------------------------------------------
all:	vlib vtest utils
	@echo "All files made"

#---------------------------------------------------------------------
#
# Platform specific MAKES
#
#---------------------------------------------------------------------
.PHONY:	installLinux
installLinux:
	make ARCH=intel installVLinux

.PHONY:	installLinuxElf
installLinuxElf:
	make ARCH=linuxelf installVLinux

.PHONY:	linux
linux:
	make ARCH=intel vlib
	make ARCH=intel vtest
	cd appgen ; make ARCH=intel ; cd ..
	cd iconed ; make ARCH=intel ; cd ..

.PHONY:	linuxelf
linuxelf:
	make ARCH=linuxelf vlib
	make ARCH=linuxelf vtest
	cd appgen ; make ARCH=linuxelf ; cd ..
	cd iconed ; make ARCH=linuxelf ; cd ..

.PHONY:	sun4
sun4:
	make ARCH=sun4 all
	make ARCH=sun4 vtest
	cd appgen ; make ARCH=sun4 ; cd ..
	cd iconed ; make ARCH=sun4 ; cd ..

.PHONY:	sgi
sgi:
	make ARCH=sgi all
	make ARCH=sgi vtest
	cd appgen ; make ARCH=sgi ; cd ..
	cd iconed ; make ARCH=sgi ; cd ..

.PHONY:	hpux
hpux:
	make ARCH=hpux all
	make ARCH=hpux vtest
	cd appgen ; make ARCH=hpux ; cd ..
	cd iconed ; make ARCH=hpux ; cd ..

.PHONY:	aix
aix:
	make ARCH=aix all
	make ARCH=aix vtest
	cd appgen ; make ARCH=aix ; cd ..
	cd iconed ; make ARCH=aix ; cd ..

.PHONY:	solaris
solaris:
	make ARCH=solaris all
	make ARCH=solaris vtest
	cd appgen ; make ARCH=solaris ; cd ..
	cd iconed ; make ARCH=solaris ; cd ..

.PHONY:	bsd
bsd:
	make ARCH=bsd all
	make ARCH=bsd vtest
	cd appgen ; make ARCH=bsd ; cd ..
	cd iconed ; make ARCH=bsd ; cd ..

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

.PHONY:	libtest
libtest: vlib vtest
	@echo "lib and test made"

.PHONY:	utils
utils:
	@echo "Making utilities"
	cd appgen ; make ; cd ..
	cd iconed ; make ; cd ..
	cd draw ; make ; cd ..
	cd texted ; make ; cd ..


.PHONY:	what
what:
	@echo "all - v1 test + libV"
	@echo "vtest - vtest + libV"

.PHONY: examp
examp:	$(Bin)/proto

$(Bin)/proto:	$(EXOBJS) $(VLibDir)/$(LIBNAME).a
	$(CXX) -o $@ $(LFLAGS) $(EXOBJS) $(LIBS)

.PHONY:	vtest
vtest:	$(Bin)/$(V1NAME)

$(Bin)/$(V1NAME):	$(TestObjs) $(VLIB)
	@echo "Linking V1"
	$(CXX) -o $@ $(LFLAGS) $(TestObjs) $(LIBS)

.PHONY:	vlib

ifeq ($(Arch),linuxelf)
vlib:	$(Bin) $(oDir) $(LibDir) $(LibDir)/$(LIBNAME).so.$(VV)

$(Bin) $(oDir) $(LibDir):
	[ -d $@ ] || mkdir -p $@

$(LibDir)/$(LIBNAME).so.$(VV):	$(LibObjs) $(Lib3dObjs)
	rm -f $(LibDir)/$(LIBNAME).so.$(VV)
	$(CXX) -shared -Wl,-soname,$(LIBNAME).so.1 \
		-o $(LibDir)/$(LIBNAME).so.$(VV) $(LibObjs) $(Lib3dObjs)
	(cd $(VLibDir); \
		rm -f $(LIBNAME).so.1; \
		ln -s $(LIBNAME).so.$(VV) $(LIBNAME).so.1; \
		rm -f $(LIBNAME).so; \
		ln -s $(LIBNAME).so.$(VV) $(LIBNAME).so)
else
vlib:	$(LibDir)/$(LIBNAME).a

$(LibDir)/$(LIBNAME).a:	$(LibObjs) $(Lib3dObjs)
	rm -f $(LibDir)/$(LIBNAME).a
	ar cr $(LibDir)/$(LIBNAME).a $(LibObjs) $(Lib3dObjs)
	$(RANLIB) $(LibDir)/$(LIBNAME).a
	chmod 644 $(LibDir)/$(LIBNAME).a
endif

.PHONY:	objs
objs:	$(TestObjs) $(LibObjs) $(Lib3dObjs)

.PHONY:	clean
clean:
	-rm *.bak *.bkh *.tmp v.tgz
	-rm doc/*.bak doc/*.tmp doc/*.aux doc/*.log
	-rm doc/fig/*.bak doc/html/*.bak
	-rm examp/*.bak examp/*.tmp
	-rm bmp2vbm/*.bak bmp2vbm/*.tmp
	-rm bccide/*.bak bccide/*.tmp bccide/*.\~* bccide/*.csm bccide/*.dsw bccide/*.obr bccide/*.tr
	-rm watcom/*.bak watcom/*.tmp watcom/*/*.exe
	-rm watcom/*/*.obj watcom/*/*.map watcom/*/*.lib watcom/*/*.err watcom/*/*.sym
	-rm tutor/*.bak tutor/*.tmp
	-rm icons/*.bak icons/*.tmp
	-rm contrib/*.bak contrib/*.tmp
	-rm appgen/*.bak appgen/*.tmp
	-rm texted/*.bak texted/*.tmp
	-rm vxgl/*.bak vxgl/*.tmp
	-rm includex/v/*.bak includex/v/*.tmp
	-rm includew/v/*.bak includew/v/*.tmp
	-rm srcx/*.bak srcx/*.tmp
	-rm srcwin/*.bak srcwin/*.tmp
	-rm test/*.bak test/*.tmp
	-rm draw/*.bak draw/*.tmp
	-rm iconed/*.bak iconed/*.tmp
	-rm drawex/*.bak drawex/*.tmp

.PHONY: cleanmotif
cleanmotif:
	-rm objm/*/* lib/*/libVm.a bin/*/v1m
	touch objm/linuxelf/ThisIs
	touch objm/intel/ThisIs
	touch objm/mips/ThisIs
	touch objm/sgi/ThisIs
	touch objm/sun4/ThisIs
	touch objm/hpux/ThisIs
	touch objm/aix/ThisIs
	touch objm/solaris/ThisIs


.PHONY:	cleanobj
cleanobj:
	-rm obj/*/* objm/*/*
	touch obj/linuxelf/ThisIs
	touch obj/intel/ThisIs
	touch obj/mips/ThisIs
	touch obj/sgi/ThisIs
	touch obj/hpux/ThisIs
	touch obj/aix/ThisIs
	touch obj/solaris/ThisIs
	touch obj/sun4/ThisIs
	touch obj/vwin/ThisIs
	touch obj/win32/ThisIs
	touch obj/vwindb/ThisIs
	touch objm/linuxelf/ThisIs
	touch objm/intel/ThisIs
	touch objm/mips/ThisIs
	touch objm/sgi/ThisIs
	touch objm/aix/ThisIs
	touch objm/solaris/ThisIs
	touch objm/hpux/ThisIs
	touch objm/sun4/ThisIs
	-rm watcom/*/*.obj

.PHONY:	cleanall
cleanall:
	-rm obj/*/* objm/*/* lib/*/* bin/*/*
	touch obj/linuxelf/ThisIs
	touch obj/intel/ThisIs
	touch obj/mips/ThisIs
	touch obj/sgi/ThisIs
	touch obj/hpux/ThisIs
	touch obj/solaris/ThisIs
	touch obj/aix/ThisIs
	touch obj/sun4/ThisIs
	touch obj/vwin/ThisIs
	touch obj/win32/ThisIs
	touch obj/vwindb/ThisIs
	touch objm/linuxelf/ThisIs
	touch objm/intel/ThisIs
	touch objm/mips/ThisIs
	touch objm/sgi/ThisIs
	touch objm/hpux/ThisIs
	touch objm/solaris/ThisIs
	touch objm/aix/ThisIs
	touch objm/sun4/ThisIs
	touch lib/linuxelf/ThisIs
	touch lib/intel/ThisIs
	touch lib/mips/ThisIs
	touch lib/sgi/ThisIs
	touch lib/hpux/ThisIs
	touch lib/aix/ThisIs
	touch lib/solaris/ThisIs
	touch lib/sun4/ThisIs
	touch lib/vwin/ThisIs
	touch bin/linuxelf/ThisIs
	touch bin/intel/ThisIs
	touch bin/mips/ThisIs
	touch bin/sgi/ThisIs
	touch bin/hpux/ThisIs
	touch bin/aix/ThisIs
	touch bin/solaris/ThisIs
	touch bin/sun4/ThisIs
	touch bin/vwin/ThisIs
	-rm *.bak *.tmp v.tgz
	-rm doc/*.bak doc/*.tmp doc/*.aux doc/*.log doc/*.ps /doc/*.dvi
	-rm doc/fig/*.bak doc/html/*.bak
	-rm examp/*.bak examp/*.tmp
	-rm bmp2vbm/*.bak bmp2vbm/*.tmp
	-rm tutor/*.bak tutor/*.tmp
	-rm icons/*.bak icons/*.tmp
	-rm contrib/*.bak contrib/*.tmp
	-rm appgen/*.bak appgen/*.tmp
	-rm vxgl/*.bak vxgl/*.tmp
	-rm includex/v/*.bak includex/v/*.tmp
	-rm includew/v/*.bak includew/v/*.tmp
	-rm srcx/*.bak srcx/*.tmp
	-rm srcwin/*.bak srcwin/*.tmp
	-rm test/*.bak test/*.tmp
	-rm draw/*.bak draw/*.tmp
	-rm iconed/*.bak iconed/*.tmp
	-rm drawex/*.bak drawex/*.tmp

.PHONY:	cleantest
cleantest:
	rm $(TestObjs)

.PHONY:	tar
tar:
	@echo "Making v.tgz - X and Windows Distribution"
	@echo "    Cleaning up old files"
	-rm *.bak *.tmp ../v-$(VV).tar$(TARZ)
	-rm doc/*.bak doc/*.tmp doc/*.aux doc/*.log doc/*.dvi
	-rm doc/fig/*.bak doc/html/*.bak
	-rm examp/*.bak examp/*.tmp
	-rm bmp2vbm/*.bak bmp2vbm/*.tmp
	-rm tutor/*.bak tutor/*.tmp
	-rm icons/*.bak icons/*.tmp
	-rm contrib/*.bak contrib/*.tmp
	-rm appgen/*.bak appgen/*.tmp
	-rm vxgl/*.bak vxgl/*.tmp
	-rm includex/v/*.bak includex/v/*.tmp
	-rm includew/v/*.bak includew/v/*.tmp
	-rm srcx/*.bak srcx/*.tmp
	-rm srcwin/*.bak srcwin/*.tmp
	-rm test/*.bak test/*.tmp
	-rm draw/*.bak draw/*.tmp
	-rm iconed/*.bak iconed/*.tmp
	-rm drawex/*.bak drawex/*.tmp
	cd .. ; tar cvf$(TARZ) v-$(VV).tar$(TARZ) v/make* v/NEWS v/R* v/COPY* \
	 v/doc/* v/examp/* v/bmp2vbm/* v/tutor/* v/include v/includex/* \
	 v/includew/* v/lib/*/ThisIs v/obj/*/ThisIs v/objm/*/ThisIs v/srcx/* \
	 v/srcwin/* v/test/* v/draw/* v/iconed/* v/drawex/* v/bin/*/ThisIs v/clnupwin.bat \
	 v/PACKLIST v/bccide v/BUGS v/icons/* v/watcom/* v/contrib/* v/appgen/* \
	 v/texted/* v/vxgl/* ; cd v

.PHONY:	tarwin
tarwin:
	@echo "Making vwin.tar - Windows Distribution"
	@echo "    Cleaning up old files"
	-rm *.bak *.tmp ../vwin$(VVW).tar$(TARZ)
	-rm doc/*.bak doc/*.tmp doc/*.aux doc/*.log doc/*.dvi
	-rm doc/fig/*.bak doc/html/*.bak
	-rm examp/*.bak examp/*.tmp
	-rm bmp2vbm/*.bak bmp2vbm/*.tmp
	-rm tutor/*.bak tutor/*.tmp
	-rm icons/*.bak icons/*.tmp
	-rm contrib/*.bak contrib/*.tmp
	-rm appgen/*.bak appgen/*.tmp
	-rm texted/*.bak texted/*.tmp
	-rm vxgl/*.bak vxgl/*.tmp
	-rm includex/v/*.bak includex/v/*.tmp
	-rm includew/v/*.bak includew/v/*.tmp
	-rm srcx/*.bak srcx/*.tmp
	-rm srcwin/*.bak srcwin/*.tmp
	-rm test/*.bak test/*.tmp
	-rm draw/*.bak draw/*.tmp
	-rm iconed/*.bak iconed/*.tmp
	-rm drawex/*.bak drawex/*.tmp
	cd .. ; tar cvf$(TARZ) vwin$(VVW).tar$(TARZ) v/make* v/NEWS v/R* v/COPY* \
	 v/doc/* v/examp/* v/bmp2vbm/* v/tutor/* v/include \
	 v/includew/* v/lib/*/ThisIs v/lib/vwin/* v/obj/*/ThisIs v/objm/*/ThisIs \
	 v/srcwin/* v/test/* v/draw/* v/drawex/* v/bin/*/ThisIs v/clnupwin.bat \
	 v/PACKLIST v/bccide v/BUGS v/icons/* v/iconed/* v/contrib/* \
	 v/appgen/* v/texted/* v/vxgl/* ; cd v

.PHONY:	tarx
tarx:
	@echo "Making vx-$(VV).tar - X only distribution"
	@echo "    Cleaning up old files"
	-rm *.bak *.tmp ../vx-$(VV).tar$(TARZ)
	-rm doc/*.bak doc/*.tmp doc/*.aux doc/*.log doc/*.dvi
	-rm doc/fig/*.bak doc/html/*.bak
	-rm examp/*.bak examp/*.tmp
	-rm bmp2vbm/*.bak bmp2vbm/*.tmp
	-rm tutor/*.bak tutor/*.tmp
	-rm icons/*.bak icons/*.tmp
	-rm contrib/*.bak contrib/*.tmp
	-rm appgen/*.bak appgen/*.tmp
	-rm texted/*.bak texted/*.tmp
	-rm vxgl/*.bak vxgl/*.tmp
	-rm includex/v/*.bak includex/v/*.tmp
	-rm srcx/*.bak srcx/*.tmp
	-rm test/*.bak test/*.tmp
	-rm draw/*.bak draw/*.tmp
	-rm iconed/*.bak iconed/*.tmp
	-rm drawex/*.bak drawex/*.tmp
	cd .. ; tar cvf$(TARZ) vx-$(VV).tar$(TARZ) v/make* v/NEWS v/R* v/COPY* \
	 v/doc/* v/examp/* v/bmp2vbm/* v/tutor/* v/include v/includex/* \
	 v/lib/*/ThisIs v/obj/*/ThisIs v/objm/*/ThisIs v/srcx/* v/icons/* \
	 v/test/* v/draw/* v/iconed/* v/drawex/* v/bin/*/ThisIs \
	 v/contrib/* v/appgen/* v/texted/* v/vxgl/* v/PACKLIST v/BUGS ; cd v

.PHONY:	tarfull
tarfull:
	@echo "Making vfull.tgz - FULL VERSION"
	@echo "    Cleaning up old files"
	-rm *.bak *.tmp ../vfull.tar$(TARZ)
	-rm doc/*.bak doc/*.tmp doc/*.aux doc/*.log
	-rm doc/fig/*.bak doc/html/*.bak
	-rm examp/*.bak examp/*.tmp
	-rm bmp2vbm/*.bak bmp2vbm/*.tmp
	-rm tutor/*.bak tutor/*.tmp
	-rm icons/*.bak icons/*.tmp
	-rm contrib/*.bak contrib/*.tmp
	-rm appgen/*.bak appgen/*.tmp
	-rm texted/*.bak texted/*.tmp
	-rm vxgl/*.bak vxgl/*.tmp
	-rm includex/v/*.bak includex/v/*.tmp
	-rm includew/v/*.bak includew/v/*.tmp
	-rm srcx/*.bak srcx/*.tmp
	-rm srcwin/*.bak srcwin/*.tmp
	-rm test/*.bak test/*.tmp
	-rm draw/*.bak draw/*.tmp
	-rm iconed/*.bak iconed/*.tmp
	-rm drawex/*.bak drawex/*.tmp
	cd .. ; tar cvf$(TARZ) vfull.tar$(TARZ) v/* ; cd v

.PHONY:	getwin
getwin:
	-mkdir srcwin
	-mkdir includew
	-mkdir includew/v
	-mkdir bccide
	-mkdir bin/vwin
	-mkdir watcom
	-mkdir watcom/win16
	-mkdir watcom/win16db
	-mkdir watcom/win32
	-mkdir watcom/win32db
	-mkdir obj/win32
	-mkdir lib/vwin
	touch obj/vwin/ThisIs
	touch obj/win32/ThisIs
	touch obj/vwindb/ThisIs
	touch lib/vwin/ThisIs
	-rm watcom/*/*
	-rm srcwin/*
	-rm includew/v/*
	-rm bccide/*
	-rm bin/vwin/*.exe
	-rm lib/vwin/*
	-rm RDMEWIN*
	-rm clnupwin.bat
	cp /dosc/v/srcwin/* srcwin
	cp /dosc/v/includew/v/* includew/v
	cp /dosc/v/bccide/*.ide bccide
	cp /dosc/v/bccide/*.rc bccide
	cp /dosc/v/bccide/*.ico bccide
	cp /dosc/v/bccide/*.def bccide
	cp /dosc/v/bccide/winstub.exe bccide
	cp /dosc/v/rdmewin.txt RDMEWIN.TXT
	cp /dosc/v/clnupwin.bat clnupwin.bat
	cp -r /dosc/v/watcom/* watcom
	-rm watcom/*.bak watcom/*.tmp watcom/*/*.exe watcom/*/*.sym
	-rm watcom/*/*.obj watcom/*/*.map watcom/*/*.lib watcom/*/*.err 


.PHONY:	tarxdemo
tarxdemo:
	-rm ../vdemox-$(VV).tar$(TARZ)
	-cp bin/intel/vdraw vdraw.linux.bin
	tar cvf$(TARZ) vdemox-$(VV).tar$(TARZ) vdraw.linux.bin
	mv vdemox-$(VV).tar$(TARZ) ..
	-rm vdraw.linux.bin

.PHONY:	tardemo
tardemo:
	-rm ../vdemos-$(VV).tar$(TARZ)
	-cp bin/intel/vdraw vdraw.linux.bin
	-cp bin/vwin/vdraw.exe vdraw.exe
	tar cvf$(TARZ) vdemos-$(VV).tar$(TARZ) vdraw.exe vdraw.linux.bin
	mv vdemos-$(VV).tar$(TARZ) ..
	-rm vdraw.linux.bin
	-rm vdraw.exe

.PHONY:	permissions
permissions:
	-chmod 755 $(PERMDIRS)
	-chmod 644 $(PERMFILES)
	-chmod 755 $(PERMDIRS)
	-chmod 755 $(EXEFILES)


# To install V to /usr/local - must run this as root
.PHONY:	installv
installv:
	-mkdir /usr/local/v
	-mkdir /usr/local/v/lib
	-mkdir /usr/local/v/bin
	-mkdir /usr/local/v/include
	-mkdir /usr/local/v/include/v
	-chmod 755 /usr/local/v 
	-chmod 755 /usr/local/v/lib
	-chmod 755 /usr/local/v/bin
	-chmod 755 /usr/local/v/include
	-chmod 755 /usr/local/v/include/v
	cp includex/v/* /usr/local/v/include/v
	cp $(LibDir)/*.a /usr/local/v/lib
	cp $(Bin)/* /usr/local/v/bin
	-chmod 644 /usr/local/v/include/v/*
	-chmod 644 /usr/local/v/lib/*
	-chmod 755 /usr/local/v/bin/*

.PHONY:	instalVlLinux
installVLinux:
	@echo "You must run this as root"
	-mkdir /usr/include/v
	chmod 644 includex/v/*
	cp includex/v/* /usr/include/v
ifeq ($(Arch),linuxelf)
	chmod 644 $(LibDir)/*.so.$(VV)
	cp $(LibDir)/*.so.$(VV) /usr/lib
	rm -f /usr/lib/$(LIBNAME).so.1
	ln -s /usr/lib/$(LIBNAME).so.$(VV) /usr/lib/$(LIBNAME).so.1
	rm -f /usr/lib/$(LIBNAME).so
	ln -s /usr/lib/$(LIBNAME).so.$(VV) /usr/lib/$(LIBNAME).so
else
	chmod 644 $(LibDir)/*.a
	cp $(LibDir)/*.a /usr/lib
endif
	chmod 755 $(Bin)/*
	cp $(Bin)/* /usr/X11/bin

# To install V to /usr/local hierarchy at UNM
# The strategy I used at UNM, where I don't have access to
# the system as root was to get symbolic links on all the local
# architectures to ~wampler/pubv/xxx for each architecture.
# I then make the files on my private directory, and them
# copy them to the /pubv directory for public consumption.
# This scheme allows you to add whatever you need, such
# as /usr/local/v/doc, or whatever.
.PHONY: installunm
installunm:
	cp includex/v/* ../pubv/irix/include/v
	-chmod 644 ../pubv/irix/include/v/*
	cp includex/v/* ../pubv/sunos/include/v
	-chmod 644 ../pubv/sunos/include/v/*

	cp lib/sgi/* ../pubv/irix/lib
	-chmod 644 ../pubv/irix/lib/*
	cp lib/sun4/* ../pubv/sunos/lib
	ranlib ../pubv/sunos/lib/libV.a
	-chmod 644 ../pubv/sunos/lib/*

	cp bin/sgi/* ../pubv/irix/bin
	-chmod 755 ../pubv/irix/bin/*
	cp bin/sun4/* ../pubv/sunos/bin
	-chmod 755 ../pubv/sunos/bin/*


#-----------------------------------------------------------------
#
#    .o's for the library
#
#  note: $@ gives target ($(oDir)/xx.o, $< gives first dependency (xx.cxx)
#	$(CXX) -c $(CFLAGS) -o $@ $<
#
#-----------------------------------------------------------------

$(oDir)/vapp.o:	vapp.cxx $(BASEDEP) vfont.h vawinfo.h vcmdwin.h vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vawinfo.o:	vawinfo.cxx $(BASEDEP) vawinfo.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vbaseitm.o:	vbaseitm.cxx vbaseitm.h v_defs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vbasewin.o:	vbasewin.cxx $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vbtncmd.o:	vbtncmd.cxx vbtncmd.h vctlclrs.h awtog3d.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcanvas.o:	vcanvas.cxx vcanvas.h vfont.h vcpdc.h vbrush.h \
	vpen.h $(BASEDEP) $(PANEDEP) vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/canvas.o:	canvas.c canvas.h canvasp.h
	$(CC) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcbtncmd.o:	vcbtncmd.cxx vcbtncmd.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vchkboxc.o:	vchkboxc.cxx vchkboxc.h vctlclrs.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vclabelc.o:	vclabelc.cxx vclabelc.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcmd.o:	vcmd.cxx vcmd.h $(BASEDEP) $(PANEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcmdpane.o:	vcmdpane.cxx vcmdpane.h $(BASEDEP) $(PANEDEP) vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcmdwin.o:	vcmdwin.cxx $(BASEDEP) vwindow.h vpane.h \
	vcmdwin.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcmdprnt.o:	vcmdprnt.cxx $(BASEDEP) vcmdprnt.h $(CMDS)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcomboc.o:	vcomboc.cxx vcomboc.h vctlclrs.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcolor.o:	vcolor.cxx vcolor.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vdebug.o:	vdebug.cxx vdebug.h $(BASEDEP) vcmdprnt.h \
	vmodald.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vdialog.o:	vdialog.cxx vdialog.h $(BASEDEP) vcmdprnt.h vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vcpdc.o:	vcpdc.cxx vxdc.h vdc.h vcpdc.h vpen.h vpen.h canvas.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vpsdc.o:	vpsdc.cxx vdc.h vpsdc.h vprinter.h vpsprntr.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vfilesel.o:	vfilesel.cxx vfilesel.h $(BASEDEP) vcmdprnt.h \
	vmodald.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vfinddlg.o:	vfinddlg.cpp vfinddlg.h $(BASEDEP) vcmdprnt.h \
	vmodald.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vfontsel.o:	vfontsel.cxx vfontsel.h vfont.h $(BASEDEP) vcmdprnt.h \
	vmodald.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vfont.o:	vfont.cxx vfont.h vfontlst.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vframec.o:	vframec.cxx vframec.h $(CMDDEP) vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vicon.o:	vicon.cxx vicon.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vlabelc.o:	vlabelc.cxx vlabelc.h $(CMDDEP) vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vlistc.o:	vlistc.cxx vlistc.h $(CMDDEP) vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vmemdc.o:	vmemdc.cxx vmemdc.h vxdc.h vdc.h vmemdc.h vpen.h vpen.h canvas.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vmenu.o:	vmenu.cxx vmenu.h $(BASEDEP) $(PANEDEP) vcmdwin.h vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vmodald.o:	vmodald.cxx vmodald.h vdialog.h \
	$(BASEDEP) vcmdprnt.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vnotice.o:	vnotice.cxx vnotice.h $(BASEDEP) vcmdprnt.h \
	vmodald.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vprogrsc.o:	vprogrsc.cxx vprogrsc.h $(CMDDEP) awsld3d.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vpsprntr.o:	vpsprntr.cxx vpsprntr.h vprinter.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vradioc.o:	vradioc.cxx vradioc.h vctlclrs.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vsliderc.o:	vsliderc.cxx vsliderc.h $(CMDDEP) awsld3d.h vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vreply.o:	vreply.cxx vreply.h $(BASEDEP) vcmdprnt.h \
	vmodald.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vspinc.o:	vspinc.cxx vspinc.h vctlclrs.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vstatusp.o:	vstatusp.cxx vstatusp.h $(BASEDEP) $(PANEDEP) vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vtextc.o:	vtextc.cxx vtextc.h $(CMDDEP) vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vtextcnv.o:	vtextcnv.cxx vtextcnv.h vcanvas.h vcpdc.h \
	$(BASEDEP) $(PANEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vtexted.o:	vtexted.cpp vtexted.h vtextcnv.h vcanvas.h vcpdc.h \
	$(BASEDEP) $(PANEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vtextinc.o:	vtextinc.cxx vtextinc.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vtimer.o:	vtimer.cxx vtimer.h vapp.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vutil.o:	vutil.cxx vutil.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vwindow.o:	vwindow.cxx $(BASEDEP) vwindow.h vpane.h \
	vx2vkey.h vctlclrs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vxdc.o:	vxdc.cxx vxdc.h vdc.h vpen.h vpen.h canvas.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vx2vkey.o:	vx2vkey.cxx vx2vkey.h v_defs.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/vynreply.o:	vynreply.cxx vynreply.h $(BASEDEP) vcmdprnt.h \
	vmodald.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $<
#---------------------------------------------------------------------
#
#  .o's for the 3d Library
#
#---------------------------------------------------------------------

$(oDir)/aw3d.o:	aw3d.c aw3d.h aw3dp.h vctlclrs.h
	$(CC) -c $(CFLAGSLIB) -DUSEGRAY -o $@ $<

$(oDir)/awcmd3d.o:	awcmd3d.c awcmd3d.h awcmd3dp.h
	$(CC) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/awscl3d.o:	awscl3d.c awscl3d.h awscl3dp.h
	$(CC) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/awsld3d.o:	awsld3d.c awsld3d.h awsld3dp.h
	$(CC) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/awlbl3d.o:	awlbl3d.c awlbl3d.h awlbl3dp.h
	$(CC) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/awsim3d.o:	awsim3d.c awsim3d.h awsim3dp.h
	$(CC) -c $(CFLAGSLIB) -o $@ $<

$(oDir)/awtog3d.o:	awtog3d.c awtog3d.h awtog3dp.h
	$(CC) -c $(CFLAGSLIB) -o $@ $<

#---------------------------------------------------------------------
#
#  .o's for the test file
#
#---------------------------------------------------------------------

$(oDir)/vtcanvas.o:	vtcanvas.cpp vtcanvas.h vcanvas.h vtextcnv.h vcanvas.h
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/vtdialog.o:	vtdialog.cpp vtdialog.h vdialog.h vcolor.h
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/vttogdlg.o:	vttogdlg.cpp vttogdlg.h vdialog.h vcolor.h
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/vtcmdwin.o:	vtcmdwin.cpp vtcmdwin.h vcmdwin.h bruce.vbm
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/vtcw2.o:	vtcw2.cpp vtcw2.h vcmdwin.h
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/testapp.o:	testapp.cpp testapp.h $(BASEDEP) vwindow.h vpane.h vcmdwin.h \
	vtcanvas.h vmenu.h vbtncmd.h vcbtncmd.h vlabelc.h \
	vframec.h vchkboxc.h vradioc.h vsliderc.h vtextinc.h vlistc.h vnotice.h \
	vprogrsc.h vfont.h vreply.h vtdialog.h vttogdlg.h vfilesel.h \
	vtextcnv.h vcomboc.h vtextc.h
	$(CXX) -c $(CFLAGS) -o $@ $<

#--------------------------------------------------------------------
#
# .o's for proto example
#
#--------------------------------------------------------------------

$(oDir)/mycanvas.o:	mycanvas.cpp v_defs.h mycanvas.h
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/mydialog.o:	mydialog.cpp v_defs.h mydialog.h
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/mymodal.o:	mymodal.cpp v_defs.h mymodal.h
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/mycmdwin.o:	mycmdwin.cpp v_defs.h mycmdwin.h
	$(CXX) -c $(CFLAGS) -o $@ $<

$(oDir)/protoapp.o:	protoapp.cpp v_defs.h mydialog.h mymodal.h \
	protoapp.h mycmdwin.h
	$(CXX) -c $(CFLAGS) -o $@ $<
