#===============================================================
# V Libray Build Makefile - Version 1.21 - 12/19/98
#
# For EMX 0.9c or equivalent
# Requires use of Gnu Make or equivalent
#
# Copyright (C) 1995,1996,1997,1998  Bruce E. Wampler, Jon Hacker
#
# Note: Requires unix utilities: rm.exe touch.exe
#
#
# 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.
#===============================================================
#
# Available targets: 
#	
#	all	: vlib
#	vlib	: builds V library
#	vlibgl	: builds V library OpenGL support
#	clean	: removes backup stuff
#
#===============================================================

CONFIG = ../Config.mk

include $(CONFIG)

#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#
# fix library name and C/C++ compile options for the library build
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

CFLAGSLIB	= $(CFLAGS)

#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#
# used to control if compiler output log files are used
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

#LOG = 2>$<.err
LOG = 

#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#
# Object and header file lists
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

LibGLObjs	=\
	$(oDir)/vbglcnv.o

LibObjs	=\
	$(oDir)/vstartup.o \
	$(oDir)/vapp.o \
	$(oDir)/vawinfo.o \
	$(oDir)/vbaseitm.o \
	$(oDir)/vbasewin.o \
	$(oDir)/vboxlblc.o \
	$(oDir)/vbrush.o \
	$(oDir)/vbtncmd.o \
	$(oDir)/vcanvas.o \
	$(oDir)/vchkboxc.o \
	$(oDir)/vcmd.o \
	$(oDir)/vcmdpane.o \
	$(oDir)/vcmdprnt.o \
	$(oDir)/vcmdwin.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)/vos.o \
	$(oDir)/vpen.o \
	$(oDir)/vpopmenu.o \
	$(oDir)/vprogrsc.o \
	$(oDir)/vradioc.o \
	$(oDir)/vreply.o \
	$(oDir)/vsliderc.o \
	$(oDir)/vslist.o \
	$(oDir)/vspinc.o \
	$(oDir)/vtextc.o \
	$(oDir)/vtextcnv.o \
	$(oDir)/vtexted.o \
	$(oDir)/vtextinc.o \
	$(oDir)/vthislst.o \
	$(oDir)/vtimer.o \
	$(oDir)/vutil.o \
	$(oDir)/vwindc.o \
	$(oDir)/vwindow.o \
	$(oDir)/vwinprdc.o \
	$(oDir)/vwinprtr.o \
	$(oDir)/vynreply.o \
	$(oDir)/printf.o

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

PANEDEP	=\
	vpane.h vwindow.h

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

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


#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#
# targets
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

.PHONY: default
all: vlib vlibgl

.PHONY: cleanwin
cleanwin:
	-rm -f $(CLEANEXTS)
	-rm -f $(HOMEV)/appgen/*.bak
	-rm -f $(HOMEV)/appgen/*.o
	-rm -f $(HOMEV)/appgen/*.obj
	-rm -f $(HOMEV)/appgen/*.exe
	-rm -f $(HOMEV)/draw/*.bak
	-rm -f $(HOMEV)/draw/*.o
	-rm -f $(HOMEV)/draw/*.obj
	-rm -f $(HOMEV)/drawex/*.bak
	-rm -f $(HOMEV)/examp/*.bak
	-rm -f $(HOMEV)/iconed/*.bak
	-rm -f $(HOMEV)/iconed/*.o
	-rm -f $(HOMEV)/iconed/*.obj
	-rm -f $(HOMEV)/iconed/*.exe
	-rm -f $(HOMEV)/icons/*.bak
	-rm -f $(HOMEV)/icons/*.o
	-rm -f $(HOMEV)/icons/*.obj
	-rm -f $(HOMEV)/icons/*.exe
	-rm -f $(HOMEV)/includew/v/*.bak
	-rm -f $(HOMEV)/srcwin/*.bak
	-rm -f $(HOMEV)/texted/*.bak
	-rm -f $(HOMEV)/texted/*.o
	-rm -f $(HOMEV)/texted/*.obj
	-rm -f $(HOMEV)/texted/*.exe
	-rm -f $(HOMEV)/vide/*.bak
	-rm -f $(HOMEV)/vide/*.o
	-rm -f $(HOMEV)/vide/*.obj
	-rm -f $(HOMEV)/vide/*.exe
	-rm -f $(HOMEV)/vrefman/*.bak
	-rm -f $(HOMEV)/test/*.bak
	-rm -f $(HOMEV)/bin/win/*.exe
	-touch $(HOMEV)/bin/win/ThisIs
	-rm -f $(HOMEV)/lib/win/*.exe
	-rm -f $(HOMEV)/lib/win/*.lib
	-touch $(HOMEV)/lib/win/ThisIs

.PHONY: clean
clean:
	-rm -f $(CLEANEXTS)
	-rm -f $(oDir)/*.o


#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#
# target for building the v library
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
.PHONY:	vlibgl
vlibgl:	$(LibDir)/$(LIBNAME)gl.a $(oDir)/vos2.res

.PHONY:	vlib
vlib:	$(LibDir)/$(LIBNAME).a $(oDir)/vos2.res

$(LibDir)/$(LIBNAME).a:	$(LibObjs)
#	rm -f $(LibDir)/$(LIBNAME).a
	$(AR) cr $(LibDir)/$(LIBNAME).a $(LibObjs) 
	$(RANLIB) $(LibDir)/$(LIBNAME).a

$(LibDir)/$(LIBNAME)gl.a:	$(LibGLObjs)
#	rm -f $(LibDir)/$(LIBNAME)gl.a
	$(AR) cr $(LibDir)/$(LIBNAME)gl.a $(LibGLObjs)
	$(RANLIB) $(LibDir)/$(LIBNAME)gl.a


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

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

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

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

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

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

$(oDir)/vboxlblc.o:   vboxlblc.cpp $(BASEDEP) vboxlblc.h vcmdprnt.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vbrush.o:     vbrush.cpp $(BASEDEP) vbrush.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vbtncmd.o:    vbtncmd.cpp vbtncmd.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

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

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

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

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

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

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

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

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

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

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

$(oDir)/vcpdc.o:      vcpdc.cpp vdc.h vcpdc.h vpen.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

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

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

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

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

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

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

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

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

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

$(oDir)/vmemdc.o:     vmemdc.cpp vmemdc.h vdc.h vpen.h vpen.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

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

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

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

$(oDir)/vos.o:       vos.cpp vos.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vpen.o:       vpen.cpp vpen.h $(BASEDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vpopmenu.o:   vpopmenu.cpp vpopmenu.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

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

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

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

$(oDir)/vsliderc.o:   vsliderc.cpp vsliderc.h $(CMDDEP)
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vslist.o:   vslist.cpp vslist.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

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

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

$(oDir)/vstartup.o:     vstartup.cpp vapp.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

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

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

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

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

$(oDir)/vthislst.o:   vthislst.cpp vthislst.h vwin32.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

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

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

$(oDir)/vwindc.o:     vwindc.cpp $(BASEDEP) vwindc.h vmemdc.h vcanvas.h vicon.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vwindow.o:    vwindow.cpp $(BASEDEP) vwindow.h vpane.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vwinprdc.o:   vwinprdc.cpp $(BASEDEP) vwinprdc.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vwinprtr.o:   vwinprtr.cpp $(BASEDEP) vwinprtr.h
	$(CXX) -c $(CFLAGSLIB) -o $@ $< $(LOG)

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

$(oDir)/printf.o:   printf.c 
	$(CC) -c $(CFLAGSLIB) -o $@ $< $(LOG)

$(oDir)/vos2.res:   vos2.rc vApp.ico collate.bmp
	$(RES) $< $@ $(LOG)
