#
# File:		makefile.dos
# Author:	Julian Smart
# Created:	1997
# Updated:	
# Copyright:	(c) 1997, Julian Smart
#
# "%W% %G%"
#
# Makefile : Builds wxWindows library wx.lib for VC++ (16-bit)
# Arguments:
#
# FINAL=1 argument to nmake to build version with no debugging info.
#
!include <..\makemsc.env>

LIBTARGET=$(WXLIB)
DUMMYOBJ=dummy.obj

# Please set these according to the settings in wx_setup.h, so we can include
# the appropriate libraries in wx.lib

# This one overrides the others, to be consistent with the settings in wx_setup.h
MINIMAL_WXWINDOWS_SETUP=0

USE_XPM_IN_MSW=0
USE_CTL3D=1

!if "$(MINIMAL_WXWINDOWS_SETUP)" == "1"
USE_CTL3D=0
USE_XPM_IN_MSW=0
!endif

PERIPH_LIBS=
PERIPH_TARGET=
PERIPH_CLEAN_TARGET=

# !if "$(USE_CTL3D)" == "1"
# PERIPH_LIBS=d:\msdev\lib\ctl3d32.lib $(PERIPH_LIBS)
# !endif

!if "$(USE_XPM_IN_MSW)" == "1"
PERIPH_LIBS=$(WXDIR)\contrib\wxxpm\xpm.lib $(PERIPH_LIBS)
PERIPH_TARGET=xpm $(PERIPH_TARGET)
PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET)
!endif

GENDIR=..\generic
COMMDIR=..\common
OLEDIR=.\ole
MSWDIR=.

GENERICOBJS= \
  $(GENDIR)\choicdgg.obj \
  $(GENDIR)\dirdlgg.obj \
  $(GENDIR)\gridg.obj \
  $(GENDIR)\imaglist.obj \
  $(GENDIR)\listctrl.obj \
  $(GENDIR)\notebook.obj \
  $(GENDIR)\panelg.obj \
  $(GENDIR)\prop.obj \
  $(GENDIR)\propform.obj \
  $(GENDIR)\proplist.obj \
  $(GENDIR)\scrolwin.obj \
  $(GENDIR)\splitter.obj \
  $(GENDIR)\statusbr.obj \
  $(GENDIR)\tabg.obj \
  $(GENDIR)\textdlgg.obj\
  $(GENDIR)\treectrl.obj

# Don't need these generic objects for Windows
#  $(GENDIR)\msgdlgg.obj \
#  $(GENDIR)\fontdlgg.obj \
#  $(GENDIR)\colrdlgg.obj \
#  $(GENDIR)\printps.obj \
#  $(GENDIR)\prntdlgg.obj \
# $(GENDIR)\helpxlp.obj \
 
COMMONOBJS = \
  $(COMMDIR)\config.obj \
  $(COMMDIR)\cmndata.obj \
  $(COMMDIR)\docview.obj \
  $(COMMDIR)\docmdi.obj \
  $(COMMDIR)\dynarray.obj \
  $(COMMDIR)\event.obj \
  $(COMMDIR)\file.obj \
  $(COMMDIR)\filefn.obj \
  $(COMMDIR)\framecmn.obj \
  $(COMMDIR)\gdicmn.obj \
  $(COMMDIR)\intl.obj \
  $(COMMDIR)\helpbase.obj \
  $(COMMDIR)\ipcbase.obj \
  $(COMMDIR)\layout.obj \
  $(COMMDIR)\log.obj \
  $(COMMDIR)\memory.obj \
  $(COMMDIR)\module.obj \
  $(COMMDIR)\object.obj \
  $(COMMDIR)\odbc.obj \
  $(COMMDIR)\process.obj \
  $(COMMDIR)\prntbase.obj \
  $(COMMDIR)\resource.obj \
  $(COMMDIR)\tbarbase.obj \
  $(COMMDIR)\tbarsmpl.obj \
  $(COMMDIR)\textfile.obj \
  $(COMMDIR)\timercmn.obj \
  $(COMMDIR)\utilscmn.obj \
  $(COMMDIR)\validate.obj \
  $(COMMDIR)\valtext.obj \
  $(COMMDIR)\date.obj \
  $(COMMDIR)\wxexpr.obj \
  $(COMMDIR)\hash.obj \
  $(COMMDIR)\list.obj \
  $(COMMDIR)\variant.obj \
  $(COMMDIR)\string.obj \
  $(COMMDIR)\time.obj \
  $(COMMDIR)\y_tab.obj \
  $(COMMDIR)\stream.obj \
  $(COMMDIR)\wfstream.obj \
  $(COMMDIR)\mstream.obj \
  $(COMMDIR)\zstream.obj \
  $(COMMDIR)\datstrm.obj \
  $(COMMDIR)\extended.obj \
  $(COMMDIR)\wincmn.obj

# Doesn't compile (nested classes)
# $(COMMDIR)\fileconf.obj\

# Uses WIN32 registry functions
#  $(COMMDIR)\mimetype.obj \

# Fails when including png.h, on jmp_buf.
#  $(COMMDIR)\image.obj \

MSWOBJS = \
  $(MSWDIR)\accel.obj \
  $(MSWDIR)\app.obj \
  $(MSWDIR)\bitmap.obj \
  $(MSWDIR)\bmpbuttn.obj \
  $(MSWDIR)\brush.obj \
  $(MSWDIR)\button.obj \
  $(MSWDIR)\checkbox.obj \
  $(MSWDIR)\checklst.obj \
  $(MSWDIR)\choice.obj \
  $(MSWDIR)\clipbrd.obj \
  $(MSWDIR)\colordlg.obj \
  $(MSWDIR)\colour.obj \
  $(MSWDIR)\combobox.obj \
  $(MSWDIR)\control.obj \
  $(MSWDIR)\curico.obj \
  $(MSWDIR)\cursor.obj \
  $(MSWDIR)\data.obj \
  $(MSWDIR)\dc.obj \
  $(MSWDIR)\dcmemory.obj \
  $(MSWDIR)\dcclient.obj \
  $(MSWDIR)\dcprint.obj \
  $(MSWDIR)\dcscreen.obj \
  $(MSWDIR)\dde.obj \
  $(MSWDIR)\dialog.obj \
  $(MSWDIR)\dib.obj \
  $(MSWDIR)\filedlg.obj \
  $(MSWDIR)\font.obj \
  $(MSWDIR)\fontdlg.obj \
  $(MSWDIR)\frame.obj \
  $(MSWDIR)\gaugemsw.obj \
  $(MSWDIR)\gdiobj.obj \
  $(MSWDIR)\helpwin.obj \
  $(MSWDIR)\icon.obj \
  $(MSWDIR)\iniconf.obj\
  $(MSWDIR)\joystick.obj \
  $(MSWDIR)\listbox.obj \
  $(MSWDIR)\main.obj \
  $(MSWDIR)\mdi.obj \
  $(MSWDIR)\menu.obj\
  $(MSWDIR)\menuitem.obj \
  $(MSWDIR)\metafile.obj \
  $(MSWDIR)\minifram.obj \
  $(MSWDIR)\msgdlg.obj \
  $(MSWDIR)\nativdlg.obj \
  $(MSWDIR)\ownerdrw.obj \
  $(MSWDIR)\palette.obj \
  $(MSWDIR)\pen.obj \
  $(MSWDIR)\penwin.obj \
  $(MSWDIR)\printdlg.obj \
  $(MSWDIR)\printwin.obj \
  $(MSWDIR)\radiobox.obj \
  $(MSWDIR)\radiobut.obj \
  $(MSWDIR)\region.obj \
  $(MSWDIR)\scrolbar.obj \
  $(MSWDIR)\settings.obj \
  $(MSWDIR)\slidrmsw.obj \
  $(MSWDIR)\spinbutt.obj \
  $(MSWDIR)\statbmp.obj \
  $(MSWDIR)\statbox.obj \
  $(MSWDIR)\stattext.obj \
  $(MSWDIR)\tbarmsw.obj \
  $(MSWDIR)\textctrl.obj \
  $(MSWDIR)\timer.obj \
  $(MSWDIR)\utils.obj \
  $(MSWDIR)\utilsexc.obj \
  $(MSWDIR)\wave.obj \
  $(MSWDIR)\window.obj \
  $(OLEDIR)\dropsrc.obj \
  $(OLEDIR)\droptgt.obj

#  $(OLEDIR)\automtn.obj \
#  $(OLEDIR)\dataobj.obj \
#  $(OLEDIR)\oleutils.obj \
#  $(OLEDIR)\uuid.obj

# TODO: Implement XPM and PNG targets in this makefile!
#  $(OLEDIR)\xpmhand \
#  $(OLEDIR)\pnghand \

# Not appropriate for 16-bit Windows
#  $(MSWDIR)\registry.obj \
#  $(MSWDIR)\dirdlg.obj \
#  $(MSWDIR)\treectrl.obj \
#  $(MSWDIR)\listctrl.obj \

OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)

# Normal, static library
all:    $(DUMMYOBJ) $(WXDIR)\lib\wx1.lib $(WXDIR)\lib\wx2.lib $(WXDIR)\lib\wx3.lib


#$(WXDIR)\lib\wx.lib:      dummy.obj $(OBJECTS) $(PERIPH_LIBS)
#	-erase $(LIBTARGET)
#	lib /PAGESIZE:128 @<<
#$(LIBTARGET)
#y
#$(OBJECTS) $(PERIPH_LIBS)
#nul
#;
#<<

$(WXDIR)\lib\wx1.lib:      $(COMMONOBJS) $(PERIPH_LIBS)
	-erase $(WXDIR)\lib\wx1.lib
	lib /PAGESIZE:128 @<<
$(WXDIR)\lib\wx1.lib
y
$(COMMONOBJS) $(PERIPH_LIBS)
nul
;
<<

$(WXDIR)\lib\wx2.lib:      $(GENERICOBJS)
	-erase $(WXDIR)\lib\wx2.lib
	lib /PAGESIZE:128 @<<
$(WXDIR)\lib\wx2.lib
y
$(GENERICOBJS)
nul
;
<<

$(WXDIR)\lib\wx3.lib:      $(MSWOBJS)
	-erase $(WXDIR)\lib\wx3.lib
	lib /PAGESIZE:128 @<<
$(WXDIR)\lib\wx3.lib
y
$(MSWOBJS)
nul
;
<<

########################################################
# Windows-specific objects

dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h
        cl @<<
        cl $(CPPFLAGS) /YcWX/WXPREC.H $(DEBUG_FLAGS) /c /Tp $*.$(SRCSUFF)
<<

#dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h
#        cl $(CPPFLAGS) /YcWX/WXPREC.H $(DEBUG_FLAGS) /c /Tp $*.$(SRCSUFF)

dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h
        cl @<<
$(CPPFLAGS) /YcWX/WXPREC.H /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/accel.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/app.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/bitmap.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/bmpbuttn.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/brush.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/button.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/choice.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/checkbox.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/checklst.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/clipbrd.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/colordlg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/colour.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/combobox.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/control.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/curico.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/cursor.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/data.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dc.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dde.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dcmemory.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dcclient.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dcprint.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dcscreen.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dialog.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dib.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/dirdlg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/filedlg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/font.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/fontdlg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/frame.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/gaugemsw.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/gdiobj.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/helpwin.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/icon.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/iniconf.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/imaglist.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/joystick.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/listbox.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/listctrl.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/main.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/mdi.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/menu.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/menuitem.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/metafile.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/minifram.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/msgdlg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/nativdlg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/ownerdrw.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/palette.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/pen.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/penwin.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/printdlg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/printwin.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/radiobox.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/radiobut.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/region.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/registry.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/scrolbar.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/settings.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/slidrmsw.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/spinbutt.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/statbmp.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/statbox.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/stattext.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/tbarmsw.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/textctrl.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/timer.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/treectrl.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/utils.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/utilsexc.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/wave.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(MSWDIR)/window.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(OLEDIR)/droptgt.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(OLEDIR)/dropsrc.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(OLEDIR)/dataobj.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(OLEDIR)/oleutils.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(OLEDIR)/uuid.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(OLEDIR)/automtn.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

########################################################
# Common objects (always compiled)

$(COMMDIR)/config.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/cmndata.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/docview.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/docmdi.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/dynarray.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/event.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/file.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/fileconf.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/filefn.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/framecmn.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/gdicmn.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/helpbase.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/image.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/intl.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/ipcbase.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/layout.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/log.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/memory.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/mimetype.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/module.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/object.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/odbc.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/process.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/prntbase.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/resource.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/tbarbase.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/tbarsmpl.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/textfile.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/timercmn.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/utilscmn.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/validate.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/valtext.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/date.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/wxexpr.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/hash.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/list.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/variant.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/string.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/matrix.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/wxstrgnu/wxstrgnu.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS2) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/wxstrgnu/wxregex.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS2) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/time.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/stream.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/wfstream.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/mstream.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/zstream.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/datstrm.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/extended.obj:     $*.c
        cl @<<
$(CPPFLAGS2) /Fo$@ /c /Tp $*.c
<<

$(COMMDIR)/wincmn.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(COMMDIR)/y_tab.obj:     $*.c $(COMMDIR)/lex_yy.c
        cl @<<
$(CPPFLAGS2) -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@ /I ..\common /c $*.c
<<

$(COMMDIR)/y_tab.c:     $(COMMDIR)/dosyacc.c
        copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c

$(COMMDIR)/lex_yy.c:    $(COMMDIR)/doslex.c
    copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c

########################################################
# Generic objects (not always compiled, depending on
# whether platforms have native implementations)

$(GENDIR)/choicdgg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/colrdlgg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/dirdlgg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/fontdlgg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/gridg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/imaglist.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/listctrl.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/notebook.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/helpxlp.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/msgdlgg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/panelg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/printps.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/prntdlgg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/prop.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/propform.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/proplist.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/scrolwin.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/splitter.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/statusbr.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/tabg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/textdlgg.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(GENDIR)/treectrl.obj:     $*.$(SRCSUFF)
        cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<

$(OBJECTS):	$(WXDIR)/include/wx/setup.h

# Peripheral components

xpm:
    cd $(WXDIR)\contrib\wxxpm
    nmake -f makefile.dos FINAL=$(FINAL)
    cd $(WXDIR)\src\msw

clean_xpm:
    cd $(WXDIR)\contrib\wxxpm
    nmake -f makefile.dos clean
    cd $(WXDIR)\src\msw

clean: $(PERIPH_CLEAN_TARGET)
        -erase *.obj
        -erase ..\lib\*.lib
        -erase *.pdb
        -erase *.sbr
        -erase *.pch
        cd $(WXDIR)\src\generic
        -erase *.pdb
        -erase *.sbr
        -erase *.obj
        cd $(WXDIR)\src\common
        -erase *.pdb
        -erase *.sbr
        -erase *.obj
        cd $(WXDIR)\src\msw\ole
        -erase *.pdb
        -erase *.sbr
        -erase *.obj
        cd $(WXDIR)\src\msw

cleanall: clean