]> git.saurik.com Git - wxWidgets.git/commitdiff
Partial Watcom C++ 10.6 support added (doesn't link for some reason)
authorJulian Smart <julian@anthemion.co.uk>
Fri, 18 Dec 1998 23:18:59 +0000 (23:18 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Fri, 18 Dec 1998 23:18:59 +0000 (23:18 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 files changed:
distrib/msw/msw.rsp
docs/msw/install.txt
include/wx/defs.h
include/wx/ownerdrw.h
include/wx/string.h
src/common/cmndata.cpp
src/common/filefn.cpp
src/common/textfile.cpp
src/makeprog.wat [new file with mode: 0644]
src/makewat.env
src/msw/makefile.wat
src/msw/ole/automtn.cpp
wxinstall [new file with mode: 0644]

index 93f221d7f20f7a39799c48ccf9997c80579f5986..cd00058ea5b5027345eb56d7a09ae9dbb857346b 100644 (file)
@@ -12,6 +12,7 @@ src/makeb32.env
 src/makebcc.env
 src/makemsw.env
 src/makewat.env
+src/makeprog.wat
 src/makesc.env
 src/makeg95.env
 src/makem95.env
index daf60852cb846c2b5a936baccc569c3b46e25f63..32016ecef0cdec3669b6aa41e4ebf16f7e593270 100644 (file)
@@ -71,6 +71,17 @@ Borland C++ 4.5/5.0 compilation
    NOTE: only a few samples have up-to-date makefiles, e.g.
    minimal, docview, mdi. The utils makefile does not yet work.
 
+Watcom C++ 10.6 compilation
+---------------------------
+
+Currently under construction, but so far we have:
+
+1. Change directory to wx\src\msw. Type 'wmake -f makefile.wat' to
+   make the wxWindows core library.
+2. Change directory to wx\samples\minimal and type 'wmake -f makefile.wat'
+   to make this sample. There are a lot of link errors at this
+   point, so can anyone help work out what I've done wrong?
+
 Gnu-Win32 b19/b20/Mingw32 compilation
 -------------------------------------
 
index 102264dc2d83f61f007a9e36c8e864f4d5573456..e50e07a8040d65b3868f7ca2b24f9bb5eedd7848 100644 (file)
     #define bool unsigned int
 #elif defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
     typedef unsigned int bool;
+#elif defined(__WATCOMC__)
+    typedef unsigned int bool;
 #elif defined(__SUNCC__)
     // If we use int, we get identically overloaded functions in config.cpp
     typedef unsigned char bool;
index 050d8d99868b3b05357e2d04f1dcb87c05f1a26d..97b19a0e8f323384ce0b86d33bf5e3a5ebccbc5f 100644 (file)
@@ -132,4 +132,5 @@ private:
             m_nMarginWidth; // space occupied by bitmap to the left of the item
 };
 
-#endif  //_OWNERDRW_H
\ No newline at end of file
+#endif
+  // _OWNERDRW_H
index 9da3fb59f6060070436cfeb314974b37b2488bba..94964e5a6a4154cb3170b06e0cae31bae1622964 100644 (file)
@@ -87,6 +87,8 @@ inline int WXDLLEXPORT Stricmp(const char *psz1, const char *psz2)
   return _stricmp(psz1, psz2);
 #elif defined(__BORLANDC__)
   return stricmp(psz1, psz2);
+#elif defined(__WATCOMC__)
+  return stricmp(psz1, psz2);
 #elif   defined(__UNIX__) || defined(__GNUWIN32__)
   return strcasecmp(psz1, psz2);
 #else
index 61cf2f3a548984bd82cf46abe25ff348d5c504fb..83ca461048ccf4b8eb4fc9df0511b71da4697ead 100644 (file)
 #ifdef __WXMSW__
 #include <windows.h>
 
-#ifndef __WIN32__
+#if !defined(__WIN32__)
 #include <print.h>
 #include <commdlg.h>
 #endif
+
+#if defined(__WATCOMC__)
+#include <commdlg.h>
+#endif
+
 #endif
 
 #if !USE_SHARED_LIBRARY
index 0a86781a020460a9a4171240231fb5184a44fa20..37107533ad0c7868d7d092b353a05d1fe8396d84 100644 (file)
@@ -71,7 +71,8 @@
 
 #include "wx/setup.h"
 
-#if defined(HAVE_FNMATCH_H) || defined(__GNUWIN32__)
+// No, Cygwin doesn't appear to have fnmatch.h after all.
+#if defined(HAVE_FNMATCH_H)
 #include   "fnmatch.h"
 #endif
 
@@ -846,7 +847,7 @@ wxRenameFile (const wxString& file1, const wxString& file2)
 
 bool wxRemoveFile(const wxString& file)
 {
-#if defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
   int flag = remove(WXSTRINGCAST file);
 #else
   int flag = unlink(WXSTRINGCAST file);
@@ -1406,7 +1407,7 @@ bool wxIsWild( const wxString& pattern )
 
 bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special )
 
-#if defined(HAVE_FNMATCH_H) || defined(__GNUWIN32__)
+#if defined(HAVE_FNMATCH_H)
 {
    if(dot_special)
       return fnmatch(pat.c_str(), text.c_str(), FNM_PERIOD) == 0;
@@ -1415,7 +1416,8 @@ bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special )
 }
 #else
 
-#pragma error Broken implementation of wxMatchWild() -- needs fixing!
+// #pragma error Broken implementation of wxMatchWild() -- needs fixing!
+
    /*
     * WARNING: this code is broken!
     */
index c09b7e86473895d8694f75a2b91647cb6ce41d29..0a01a6e70e463d8d41ea2d185d994d5ffad89458 100644 (file)
@@ -136,6 +136,10 @@ wxTextFile::Type wxTextFile::GuessType() const
                                                 : n##t1 > n##t2 ? Type_##t1 \
                                                                 : Type_##t2
 
+// Watcom C++ doesn't seem to be able to handle the macro
+#if defined(__WATCOMC__)
+    return typeDefault;
+#else
     if ( nDos > nUnix )
       return GREATER_OF(Dos, Mac);
     else if ( nDos < nUnix )
@@ -144,6 +148,7 @@ wxTextFile::Type wxTextFile::GuessType() const
       // nDos == nUnix
       return nMac > nDos ? Type_Mac : typeDefault;
     }
+#endif
 
     #undef    GREATER_OF
   }
diff --git a/src/makeprog.wat b/src/makeprog.wat
new file mode 100644 (file)
index 0000000..0a1784a
--- /dev/null
@@ -0,0 +1,32 @@
+WXDIR = $(%WXWIN)
+
+!include $(WXDIR)\src\makewat.env
+
+WXLIB = $(WXDIR)\lib
+LNK = $(PROGRAM).lnk
+
+all: $(PROGRAM).exe
+
+$(PROGRAM).exe : $(OBJECTS) $(PROGRAM).res $(LNK) $(WXLIB)\wx.lib
+    wlink @$(LNK)
+    $(BINDCOMMAND) $(PROGRAM).res
+
+$(PROGRAM).res :      $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc
+     $(RC) $(RESFLAGS1) $(PROGRAM).rc
+
+$(LNK) : makefile.wat
+    %create $(LNK)
+    @%append $(LNK) debug all
+    @%append $(LNK) system $(LINKOPTION)
+    @%append $(LNK) $(STACK)
+    @%append $(LNK) name $(PROGRAM).exe
+    @%append $(LNK) file $(WXLIB)\wx.lib
+    @for %i in ($(OBJECTS)) do @%append $(LNK) file %i
+
+#    @for %i in ($(EXTRALIBS)) do @%append $(LNK) file %i
+#    @%append $(LNK) $(MINDATA)
+#    @%append $(LNK) $(MAXDATA)
+
+clean:   .SYMBOLIC
+    -erase *.obj *.bak *.err *.pch *.lib *.lnk *.res *.exe
+
index 8a668d85b2c161fe43678f5f9e03dce634fe281e..90f685fdfededd673dff16145e158fcc2193259a 100644 (file)
 
 FINAL=0
 WATCOMDIR=$(%WATCOM)
-#.EXTENSIONS: .exe .obj .c .cc .cpp .res .rc .def
 
-# Set this to win386 if compiling under WIN386 mode, or
-# to windows for normal 16-bit Windows, nt if compiling for WIN32s/NT
-MODE= nt # windows
+.EXTENSIONS:
+.EXTENSIONS: .exe .obj .c .cc .cpp .res .rc .def
 
-WXDIR = c:\wx
-WXINC = $(WXDIR)\include\msw
-WXBASEINC = $(WXDIR)\include\base
+#WXDIR = d:\wx2\wxwind~1
+WXDIR = $(%WXWIN)
+WXINC = $(WXDIR)\include
 
 # Suffixes
 OBJSUFF=obj
@@ -30,73 +28,15 @@ WXDEBUG=0
 PRECOMP     = /fh=$(WXDIR)\src\msw\watcom.pch
 !endif
 
-RC = wrc
-
-!ifeq MODE win386
-
-##### WIN386 OPTIONS
-
-# Set LEVEL to 386 if using 32-bit compilation
-LEVEL       = 386
-CCC         = wpp$(LEVEL)
-CC         =  wcc$(LEVEL)
-OS_TARGET   = win386
-MODEL       =
-LINKOPTION  = win386
-BINDCOMMAND = wbind
-WATLIBDIR = $(WATCOMDIR)\lib386\win
-MINDATA     = option mindata=100K
-MAXDATA     = option maxdata=100K
-STACK       = option stack=64k
-EXTRALIBS   = $(WXDIR)\contrib\ctl3d\ctl3d32.obj 
-IFLAGS      = -i=$(WXINC) -i=$(WXBASEINC) -i=$(WXDIR)\contrib\fafa -i=$(%watcom)\h;$(%watcom)\h\win
-RESFLAGS1   = -r -bt=windows /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa
-RESFLAGS2   = -R $(name) /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa
+!ifeq WXDEBUG 1
+DEBUGFLAGS     = /D__WXDEBUG__
 DEBUGINFO   = debug all
-
-#CPPFLAGS    = /zw /w1 /zq /d2 /d__WIN386__ /zt4 $(MODEL) /d__WXMSW__
-CPPFLAGS    = /zw /w1 /zq /d1 /d__WIN386__ $(MODEL) $(PRECOMP) /d__WXMSW__ $(EXTRACPPFLAGS)
-
+!else
+DEBUGFLAGS     =
+DEBUGINFO   =
 !endif
-#### END WIN386 MODE
-
-!ifeq MODE windows
 
-##### 16-BIT WINDOWS OPTIONS
-
-# Set LEVEL to 386 if using 32-bit compilation
-LEVEL       =
-CCC         = wpp$(LEVEL)
-CC          = wcc$(LEVEL)
-OS_TARGET   = windows
-MODEL       =/ml
-LINKOPTION  = windows
-BINDCOMMAND = echo
-WATLIBDIR = $(WATCOMDIR)\lib286\win
-MINDATA     =
-MAXDATA     =
-STACK       =
-EXTRALIBS=$(WATLIBDIR)\shell.lib $(WATLIBDIR)\ddeml.lib $(WATLIBDIR)\ctl3d.lib $(WATLIBDIR)\commdlg.lib $(WATLIBDIR)\mmsystem.lib
-IFLAGS      = -i=$(WXINC) -i=$(WXBASEINC) -i=$(WXDIR)\contrib\fafa 
-RESFLAGS1   = -r -bt=windows -i=$(WXINC) -i=$(WXDIR)\contrib\fafa 
-RESFLAGS2   = -R
-DEBUGINFO   = debug all
-
-#-i=$(WXDIR)\contrib\itsybits
-
-# Note: I've added the data threshold (/zt4) for 16-bit operation,
-# or we get link failure (TEXT segment overflow). Is this OK for
-# 32-bit mode also? -- JACS
-# An alternative might be /zc (put string literals in code segment).
-#CPPFLAGS    = /zw /w1 /zq /d1 /zt4 $(MODEL) /d__WXMSW__
-CPPFLAGS    = /zw /w2 /zq /d1 $(MODEL) $(PRECOMP) /d__WXMSW__ $(EXTRACPPFLAGS)
-
-!endif
-#### END WINDOWS MODE
-
-!ifeq MODE nt
-
-##### NT OPTIONS
+RC = wrc
 
 LEVEL       = 386
 CCC         = wpp$(LEVEL)
@@ -112,12 +52,9 @@ MINDATA     =
 MAXDATA     =
 STACK       = option stack=64k
 EXTRALIBS   = $(WATLIBDIR)\ctl3d32.lib $(WATLIBDIR)\odbc32.lib
-IFLAGS      = -i=$(WXINC) -i=$(WXBASEINC) -i=$(WXDIR)\contrib\fafa -i=$(%watcom)\h;$(%watcom)\h\nt
-RESFLAGS1   = -r -bt=nt /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa
-RESFLAGS2   = -R $(name) /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa
-DEBUGINFO   = debug all # Linking: comment out if operating in a non-debuggable environment
-
-#-i=$(WXDIR)\contrib\itsybits
+IFLAGS      = -i=$(WXINC) -i=$(%watcom)\h;$(%watcom)\h\nt # -i=$(WXDIR)\include\wx\msw\gnuwin32
+RESFLAGS1   = -r -bt=nt /i$(WXDIR)\include
+RESFLAGS2   = -R $(name) /i$(WXDIR)\include
 
 # Here are some possible optimization flags:
 # /5r  Pentium timings
@@ -127,22 +64,14 @@ DEBUGINFO   = debug all # Linking: comment out if operating in a non-debuggable
 # The Watcom-recommended flags for optimum Pentium speed are:
 # /oneatx /zp4 /5 /fpi87 /fp5
 
-OPTFLAGS=/ox /5r # /DWXDEBUG=1
+OPTFLAGS=/ox /5r
 
 # /d1 for line numbers only: anything else produces an enormous wx32.lib
-CPPFLAGS    = /bt=nt /w1 /D__WIN32__ /zq $(OPTFLAGS) $(MODEL) $(PRECOMP) /d1 /d__WXMSW__ $(EXTRACPPFLAGS)
-
-!endif
-#### END NT MODE
+CPPFLAGS    = /bt=nt /w1 /D__WIN32__ /D__WIN95__ /D__WINDOWS__ /zq $(OPTFLAGS) $(MODEL) $(PRECOMP) /d1 $(DEBUGFLAGS) /d__WXMSW__ $(EXTRACPPFLAGS) # /d__WATCOMC__
 
 .cpp.obj: # $< # .AUTODEPEND
     *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
 
-#    %create tmp.lbc
-#    @%append tmp.lbc $(CPPFLAGS) $(IFLAGS) $<
-#    echo $<
-#    $(CCC) @tmp.lbc
-
 .c.obj: # $< # .AUTODEPEND
     *$(CC) $(CPPFLAGS) $(IFLAGS) $<
 
index 1dc75e669b49e2b61f9adfd3fa3a0229277ad8af..663f291445f41fc18af2ed84f75438f0b518eebb 100644 (file)
@@ -1,13 +1,10 @@
 #!/binb/wmake.exe
 #
 # File:                makefile.wat
-# Author:      Edward C. Zimmermann <edz@crg.net>
-# Created:     1994
-# Updated:     Dmitri Chubraev, Nov.1994 <chubraev@iem.ee.ethz.ch>
-# RCS_ID        $Id$
+# Author:      Julian Smart
+# Created:     1998
 #
-# Makefile : Builds wxWindows library for Windows 3.1
-# and Watcom C++ 
+# Makefile : Builds wxWindows library for Watcom C++, WIN32
 
 WXDIR = ..\..
 
@@ -15,145 +12,811 @@ WXDIR = ..\..
 
 WXLIB = $(WXDIR)\lib
 
-LIBTARGET   = $(WXLIB)\wx$(LEVEL).lib
+LIBTARGET   = $(WXLIB)\wx.lib
 DUMMY=dummydll
-#CTL3DOBJ    = ..\..\contrib\ctl3d\ctl3d32.obj
-#CTL3DLIB    = ..\..\contrib\ctl3d\win32s\ctl3d32.lib
-FAFALIB     = ..\..\contrib\fafa\fafa.lib
-#ODBCLIB     = ..\..\contrib\odbc\odbc32.lib
-GAUGELIB    = ..\..\contrib\gauge\gauge.lib
-ITSYLIB     = ..\..\contrib\itsybits\itsy.lib
-WXSTRINGLIB = ..\..\contrib\wxstring\wxstring.lib
-WXXPMLIB    = ..\..\contrib\wxxpm\wxxpm.lib
-PROIOLIB    = ..\..\utils\prologio\lib\prologio.lib
-DIBLIB      = ..\..\utils\dib\dib.lib
-RCPARSERLIB = ..\..\utils\rcparser\lib\rcparser.lib
-
-EXTRAMODULES = $(GAUGELIB) $(ITSYLIB) $(PROIOLIB) $(DIBLIB) $(WXSTRINGLIB) $(RCPARSERLIB) $(FAFALIB) # $(WXXPMLIB)
-EXTRATARGETS = fafa gauge itsy prologio dib rcparser wxstring # wxxpm
-EXTRATARGETSCLEAN = clean_fafa clean_gauge clean_itsy clean_proio clean_dib clean_rcp clean_wxstring # clean_wxxpm
-
-OBJECTS = wx_win.obj wx_frame.obj wx_panel.obj wx_utils.obj &
-  wx_item.obj wx_text.obj wx_gdi.obj wx_dialg.obj wx_canvs.obj wx_dc.obj &
-  wx_mf.obj wx_ipc.obj wx_timer.obj wx_clipb.obj wx_vlbox.obj &
-  wx_stat.obj wx_scrol.obj wx_buttn.obj wx_messg.obj wx_check.obj wx_choic.obj &
-  wx_rbox.obj wx_lbox.obj wx_group.obj wx_gauge.obj wx_txt.obj wx_mtxt.obj &
-  wx_slidr.obj wx_menu.obj wx_db.obj wx_cmdlg.obj wx_main.obj wx_combo.obj
-
-BASEOBJECTS = ..\base\wb_win.obj ..\base\wb_frame.obj ..\base\wb_panel.obj &
-       ..\base\wb_utils.obj ..\base\wx_lay.obj ..\base\wx_doc.obj ..\base\wb_res.obj &
-        ..\base\wb_main.obj ..\base\wb_item.obj ..\base\wb_list.obj ..\base\wb_obj.obj &
-        ..\base\wb_text.obj ..\base\wb_gdi.obj ..\base\wb_dialg.obj ..\base\wb_canvs.obj &
-        ..\base\wb_dc.obj ..\base\wb_mf.obj ..\base\wb_ps.obj ..\base\wx_enhdg.obj &
-        ..\base\wb_hash.obj ..\base\wb_ipc.obj ..\base\wb_form.obj ..\base\wb_timer.obj &
-        ..\base\wb_help.obj ..\base\wb_sysev.obj ..\base\wb_stdev.obj ..\base\wb_types.obj &
-        ..\base\wb_mgstr.obj ..\base\wb_data.obj ..\base\wb_stat.obj &
-        ..\base\wb_scrol.obj ..\base\wb_vlbox.obj ..\base\wb_print.obj ..\base\wx_tbar.obj &
-        ..\base\wx_bbar.obj ..\base\wx_mem.obj ..\base\wx_date.obj ..\base\wb_cmdlg.obj &
-        ..\base\wx_time.obj ..\base\wx_frac.obj
-
-# This now replaced by contrib\wxstring
-#..\base\wxstring.obj 
-
-all:        base $(EXTRATARGETS) erasepch $(LIBTARGET)
-
-base:   .SYMBOLIC
-    cd ..\base
-    wmake -f makefile.wat all OPTIONS="$(OPTIONS)" DEBUG="$(DEBUG)" LEVEL=$(LEVEL)
-    cd ..\msw
-
-$(LIBTARGET) : $(OBJECTS) $(BASEOBJECTS) $(EXTRAMODULES) 
+ODBCLIB     = ..\..\contrib\odbc\odbc32.lib
+
+EXTRATARGETS = # wxxpm
+EXTRATARGETSCLEAN = # clean_wxxpm
+
+GENDIR=$(WXDIR)\src\generic
+COMMDIR=$(WXDIR)\src\common
+XPMDIR=$(WXDIR)\src\xpm
+OLEDIR=ole
+MSWDIR=$(WXDIR)\src\msw
+
+DOCDIR = $(WXDIR)\docs
+
+GENERICOBJS= choicdgg.obj &
+  gridg.obj &
+  laywin.obj &
+  panelg.obj &
+  sashwin.obj &
+  scrolwin.obj &
+  splitter.obj &
+  statusbr.obj &
+  tabg.obj &
+  textdlgg.obj
+
+# These are generic things that don't need to be compiled on MSW,
+# but sometimes it's useful to do so for testing purposes.
+NONESSENTIALOBJS= printps.obj &
+  prntdlgg.obj &
+  msgdlgg.obj &
+  helpxlp.obj &
+  colrdlgg.obj &
+  fontdlgg.obj &
+  postscrp.obj
+
+COMMONOBJS = cmndata.obj &
+  config.obj &
+  docview.obj &
+  docmdi.obj &
+  dynarray.obj &
+  dynlib.obj &
+  event.obj &
+  file.obj &
+  filefn.obj &
+  fileconf.obj &
+  framecmn.obj &
+  gdicmn.obj &
+  image.obj &
+  intl.obj &
+  ipcbase.obj &
+  helpbase.obj &
+  layout.obj &
+  log.obj &
+  memory.obj &
+  module.obj &
+  odbc.obj &
+  object.obj &
+  prntbase.obj &
+  resource.obj &
+  tbarbase.obj &
+  tbarsmpl.obj &
+  textfile.obj &
+  timercmn.obj &
+  utilscmn.obj &
+  validate.obj &
+  valtext.obj &
+  date.obj &
+  hash.obj &
+  list.obj &
+  string.obj &
+  socket.obj &
+  sckaddr.obj &
+  sckfile.obj &
+  sckipc.obj &
+  sckstrm.obj &
+  url.obj &
+  http.obj &
+  protocol.obj &
+  time.obj &
+  tokenzr.obj &
+  wxexpr.obj &
+  y_tab.obj &
+  extended.obj &
+  process.obj &
+  wfstream.obj &
+  mstream.obj &
+  zstream.obj &
+  stream.obj &
+  datstrm.obj &
+  objstrm.obj &
+  variant.obj &
+  wincmn.obj
+
+# Can't compile this yet under Watcom C++
+#  db.obj &
+#  dbtable.obj &
+
+MSWOBJS1 = &
+  accel.obj &
+  app.obj &
+  bitmap.obj &
+  bmpbuttn.obj &
+  brush.obj &
+  button.obj &
+  checkbox.obj &
+  checklst.obj &
+  choice.obj &
+  clipbrd.obj &
+  colordlg.obj &
+  colour.obj &
+  combobox.obj &
+  control.obj &
+  curico.obj &
+  cursor.obj &
+  data.obj &
+  dc.obj &
+  dcmemory.obj &
+  dcclient.obj &
+  dcprint.obj &
+  dcscreen.obj &
+  dde.obj &
+  dialog.obj &
+  dib.obj &
+  dibutils.obj &
+  dirdlg.obj &
+  filedlg.obj &
+  font.obj &
+  fontdlg.obj &
+  frame.obj &
+  gauge95.obj &
+  gaugemsw.obj &
+  gdiobj.obj &
+  helpwin.obj &
+  icon.obj &
+  imaglist.obj &
+  iniconf.obj &
+  joystick.obj &
+  listbox.obj &
+  listctrl.obj &
+  main.obj &
+  mdi.obj &
+  menu.obj &
+  menuitem.obj &
+  metafile.obj &
+  minifram.obj &
+  msgdlg.obj &
+  nativdlg.obj &
+  notebook.obj &
+  ownerdrw.obj &
+  palette.obj &
+  pen.obj &
+  penwin.obj &
+  pnghand.obj &
+  printdlg.obj &
+  printwin.obj &
+  radiobox.obj &
+  radiobut.obj &
+  region.obj &
+  registry.obj &
+  regconf.obj &
+  scrolbar.obj &
+  settings.obj &
+  slidrmsw.obj &
+  slider95.obj &
+  spinbutt.obj &
+  statbmp.obj &
+  statbox.obj &
+  statbr95.obj &
+  stattext.obj &
+  tabctrl.obj &
+  taskbar.obj &
+  tbar95.obj &
+  tbarmsw.obj &
+  textctrl.obj &
+  thread.obj &
+  timer.obj &
+  treectrl.obj &
+  utils.obj &
+  utilsexc.obj &
+  wave.obj &
+  window.obj &
+
+OLEOBJS = &
+  droptgt.obj &
+  dropsrc.obj &
+  dataobj.obj &
+  oleutils.obj &
+  uuid.obj &
+  automtn.obj
+
+XPMOBJECTS =   crbuffri.obj&
+               crdatfri.obj&
+               create.obj crifrbuf.obj&
+               crifrdat.obj&
+               data.obj&
+               hashtab.obj misc.obj&
+               parse.obj rdftodat.obj&
+               rdftoi.obj&
+               rgb.obj scan.obj&
+               simx.obj wrffrdat.obj&
+               wrffrp.obj wrffri.obj
+
+# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
+OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(OLEOBJS) # $(XPMOBJECTS)
+
+all:        $(OBJECTS) $(LIBTARGET)
+
+$(LIBTARGET) : $(OBJECTS)
     %create tmp.lbc
     @for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i
-    @for %i in ( $(BASEOBJECTS) ) do @%append tmp.lbc +%i
-    @for %i in ( $(EXTRAMODULES) ) do @%append tmp.lbc +%i
     wlib /b /c /n /p=512 $^@ @tmp.lbc
        
 clean:   .SYMBOLIC
-    -erase *.obj *.bak *.err *.pch
-     cd ..\base
-     wmake -f makefile.wat clean
-    -erase $(LIBTARGET)
-     cd ..\msw
-
-cleanall:   clean $(EXTRATARGETSCLEAN)
-
-fafa:   .SYMBOLIC
-    cd $(WXDIR)\contrib\fafa
-    wmake -f makefile.wat all
-    cd $(WXDIR)\src\msw
-
-clean_fafa:   .SYMBOLIC
-    cd $(WXDIR)\contrib\fafa
-    wmake -f makefile.wat clean
-    cd $(WXDIR)\src\msw
-
-itsy:   .SYMBOLIC
-    cd $(WXDIR)\contrib\itsybits
-    wmake -f makefile.wat all
-    cd $(WXDIR)\src\msw
-
-clean_itsy:   .SYMBOLIC
-    cd $(WXDIR)\contrib\itsybits
-    wmake -f makefile.wat clean
-    cd $(WXDIR)\src\msw
-
-gauge:   .SYMBOLIC
-    cd $(WXDIR)\contrib\gauge
-    wmake -f makefile.wat all
-    cd $(WXDIR)\src\msw
-
-clean_gauge:   .SYMBOLIC
-    cd $(WXDIR)\contrib\gauge
-    wmake -f makefile.wat clean
-    cd $(WXDIR)\src\msw
-
-wxxpm:   .SYMBOLIC
-    cd $(WXDIR)\contrib\wxxpm
-    wmake -f makefile.wat all
-    cd $(WXDIR)\src\msw
-
-clean_wxxpm:   .SYMBOLIC
-    cd $(WXDIR)\contrib\wxxpm
-    wmake -f makefile.wat clean
-    cd $(WXDIR)\src\msw
-
-dib:   .SYMBOLIC
-    cd $(WXDIR)\utils\dib
-    wmake -f makefile.wat all
-    cd $(WXDIR)\src\msw
-
-clean_dib:   .SYMBOLIC
-    cd $(WXDIR)\utils\dib
-    wmake -f makefile.wat clean
-    cd $(WXDIR)\src\msw
-
-prologio:   .SYMBOLIC
-    cd $(WXDIR)\utils\prologio\src
-    wmake -f makefile.wat all
-    cd $(WXDIR)\src\msw
-
-clean_proio:   .SYMBOLIC
-    cd $(WXDIR)\utils\prologio\src
-    wmake -f makefile.wat clean
-    cd $(WXDIR)\src\msw
-
-rcparser:   .SYMBOLIC
-    cd $(WXDIR)\utils\rcparser\src
-    wmake -f makefile.wat all
-    cd $(WXDIR)\src\msw
-
-wxstring:   .SYMBOLIC
-    cd $(WXDIR)\contrib\wxstring
-    wmake -f makefile.wat all OPTIONS="$(OPTIONS)" DEBUG="$(DEBUG)"
-    cd $(WXDIR)\src\msw
-
-clean_wxstring:   .SYMBOLIC
-    cd $(WXDIR)\contrib\wxstring
-    wmake -f makefile.wat clean
-    cd $(WXDIR)\src\msw
-
-clean_rcp:   .SYMBOLIC
-    cd $(WXDIR)\utils\rcparser\src
-    wmake -f makefile.wat clean
-    cd $(WXDIR)\src\msw
+    -erase *.obj
+    -erase $(LIBLARGET)
+    -erase *.pch
+
+cleanall:   clean
+
+accel.obj:     $(MSWDIR)\accel.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+app.obj:     $(MSWDIR)\app.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+bitmap.obj:     $(MSWDIR)\bitmap.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+bmpbuttn.obj:     $(MSWDIR)\bmpbuttn.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+brush.obj:     $(MSWDIR)\brush.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+button.obj:     $(MSWDIR)\button.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+choice.obj:     $(MSWDIR)\choice.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+checkbox.obj:     $(MSWDIR)\checkbox.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+checklst.obj:     $(MSWDIR)\checklst.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+clipbrd.obj:     $(MSWDIR)\clipbrd.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+colordlg.obj:     $(MSWDIR)\colordlg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+colour.obj:     $(MSWDIR)\colour.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+combobox.obj:     $(MSWDIR)\combobox.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+control.obj:     $(MSWDIR)\control.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+curico.obj:     $(MSWDIR)\curico.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+cursor.obj:     $(MSWDIR)\cursor.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+data.obj:     $(MSWDIR)\data.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dde.obj:     $(MSWDIR)\dde.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dc.obj:     $(MSWDIR)\dc.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dcmemory.obj:     $(MSWDIR)\dcmemory.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dcclient.obj:     $(MSWDIR)\dcclient.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dcprint.obj:     $(MSWDIR)\dcprint.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dcscreen.obj:     $(MSWDIR)\dcscreen.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dialog.obj:     $(MSWDIR)\dialog.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dib.obj:     $(MSWDIR)\dib.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dibutils.obj:     $(MSWDIR)\dibutils.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dirdlg.obj:     $(MSWDIR)\dirdlg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+filedlg.obj:     $(MSWDIR)\filedlg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+font.obj:     $(MSWDIR)\font.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+fontdlg.obj:     $(MSWDIR)\fontdlg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+frame.obj:     $(MSWDIR)\frame.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+gauge95.obj:     $(MSWDIR)\gauge95.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+gaugemsw.obj:     $(MSWDIR)\gaugemsw.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+gdiobj.obj:     $(MSWDIR)\gdiobj.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+icon.obj:     $(MSWDIR)\icon.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+imaglist.obj:     $(MSWDIR)\imaglist.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+joystick.obj:     $(MSWDIR)\joystick.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+listbox.obj:     $(MSWDIR)\listbox.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+listctrl.obj:     $(MSWDIR)\listctrl.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+main.obj:     $(MSWDIR)\main.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+mdi.obj:     $(MSWDIR)\mdi.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+menu.obj:     $(MSWDIR)\menu.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+menuitem.obj:     $(MSWDIR)\menuitem.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+metafile.obj:     $(MSWDIR)\metafile.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+minifram.obj:     $(MSWDIR)\minifram.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+msgdlg.obj:     $(MSWDIR)\msgdlg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+nativdlg.obj:     $(MSWDIR)\nativdlg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+notebook.obj:     $(MSWDIR)\notebook.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+ownerdrw.obj:     $(MSWDIR)\ownerdrw.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+palette.obj:     $(MSWDIR)\palette.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+pen.obj:     $(MSWDIR)\pen.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+penwin.obj:     $(MSWDIR)\penwin.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+pnghand.obj:     $(MSWDIR)\pnghand.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+printdlg.obj:     $(MSWDIR)\printdlg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+printwin.obj:     $(MSWDIR)\printwin.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+radiobox.obj:     $(MSWDIR)\radiobox.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+radiobut.obj:     $(MSWDIR)\radiobut.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+region.obj:     $(MSWDIR)\region.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+registry.obj:     $(MSWDIR)\registry.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+regconf.obj:     $(MSWDIR)\regconf.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+scrolbar.obj:     $(MSWDIR)\scrolbar.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+settings.obj:     $(MSWDIR)\settings.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+slidrmsw.obj:     $(MSWDIR)\slidrmsw.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+slider95.obj:     $(MSWDIR)\slider95.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+spinbutt.obj:     $(MSWDIR)\spinbutt.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+statbmp.obj:     $(MSWDIR)\statbmp.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+statbox.obj:     $(MSWDIR)\statbox.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+statbr95.obj:     $(MSWDIR)\statbr95.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+stattext.obj:     $(MSWDIR)\stattext.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+tabctrl.obj:     $(MSWDIR)\tabctrl.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+taskbar.obj:     $(MSWDIR)\taskbar.cpp
+        cl @<<
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+tbar95.obj:     $(MSWDIR)\tbar95.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+tbarmsw.obj:     $(MSWDIR)\tbarmsw.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+textctrl.obj:     $(MSWDIR)\textctrl.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+thread.obj:     $(MSWDIR)\thread.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+timer.obj:     $(MSWDIR)\timer.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+treectrl.obj:     $(MSWDIR)\treectrl.cpp
+        cl @<<
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+utils.obj:     $(MSWDIR)\utils.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+utilsexc.obj:     $(MSWDIR)\utilsexc.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+wave.obj:     $(MSWDIR)\wave.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+window.obj:     $(MSWDIR)\window.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+droptgt.obj:     $(OLEDIR)\droptgt.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dropsrc.obj:     $(OLEDIR)\dropsrc.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dataobj.obj:     $(OLEDIR)\dataobj.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+oleutils.obj:     $(OLEDIR)\oleutils.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+uuid.obj:     $(OLEDIR)\uuid.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+automtn.obj:     $(OLEDIR)\automtn.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+########################################################
+# Common objects (always compiled)
+
+cmndata.obj:     $(COMMDIR)\cmndata.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+config.obj:     $(COMMDIR)\config.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+db.obj:     $(COMMDIR)\db.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dbtable.obj:     $(COMMDIR)\dbtable.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+docview.obj:     $(COMMDIR)\docview.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+docmdi.obj:     $(COMMDIR)\docmdi.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dynarray.obj:     $(COMMDIR)\dynarray.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+dynlib.obj:     $(COMMDIR)\dynlib.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+event.obj:     $(COMMDIR)\event.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+file.obj:     $(COMMDIR)\file.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+fileconf.obj:     $(COMMDIR)\fileconf.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+filefn.obj:     $(COMMDIR)\filefn.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+framecmn.obj:     $(COMMDIR)\framecmn.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+gdicmn.obj:     $(COMMDIR)\gdicmn.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+image.obj:     $(COMMDIR)\image.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+intl.obj:     $(COMMDIR)\intl.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+ipcbase.obj:     $(COMMDIR)\ipcbase.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+helpbase.obj:     $(COMMDIR)\helpbase.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+layout.obj:     $(COMMDIR)\layout.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+log.obj:     $(COMMDIR)\log.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+memory.obj:     $(COMMDIR)\memory.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+module.obj:     $(COMMDIR)\module.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+object.obj:     $(COMMDIR)\object.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+odbc.obj:     $(COMMDIR)\odbc.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+postscrp.obj:     $(COMMDIR)\postcrp.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+prntbase.obj:     $(COMMDIR)\prntbase.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+resource.obj:     $(COMMDIR)\resource.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+tbarbase.obj:     $(COMMDIR)\tbarbase.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+tbarsmpl.obj:     $(COMMDIR)\tbarsmpl.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+textfile.obj:     $(COMMDIR)\textfile.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+timercmn.obj:     $(COMMDIR)\timercmn.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+utilscmn.obj:     $(COMMDIR)\utilscmn.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+validate.obj:     $(COMMDIR)\validate.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+valtext.obj:     $(COMMDIR)\valtext.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+date.obj:     $(COMMDIR)\date.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+wxexpr.obj:     $(COMMDIR)\wxexpr.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+hash.obj:     $(COMMDIR)\hash.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+list.obj:     $(COMMDIR)\list.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+string.obj:     $(COMMDIR)\string.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+socket.obj:     $(COMMDIR)\socket.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+sckaddr.obj:     $(COMMDIR)\sckaddr.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+sckfile.obj:     $(COMMDIR)\sckfile.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+sckipc.obj:     $(COMMDIR)\sckipc.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+sckstrm.obj:     $(COMMDIR)\sckstrm.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+url.obj:     $(COMMDIR)\url.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+http.obj:     $(COMMDIR)\http.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+protocol.obj:     $(COMMDIR)\protocol.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+tokenzr.obj:     $(COMMDIR)\tokenzr.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+matrix.obj:     $(COMMDIR)\matrix.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+time.obj:     $(COMMDIR)\time.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+stream.obj:     $(COMMDIR)\stream.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+wfstream.obj:     $(COMMDIR)\wfstream.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+mstream.obj:     $(COMMDIR)\mstream.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+zstream.obj:     $(COMMDIR)\zstream.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+datstrm.obj:     $(COMMDIR)\datstrm.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+objstrm.obj:     $(COMMDIR)\objstrm.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+extended.obj:     $(COMMDIR)\extended.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\extended.c
+
+process.obj:     $(COMMDIR)\process.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+variant.obj:     $(COMMDIR)\variant.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+wincmn.obj:     $(COMMDIR)\wincmn.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+y_tab.obj:     $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) -DUSE_DEFINE $(COMMDIR)\y_tab.c
+
+#  *$(CC) $(CPPFLAGS) $(IFLAGS) -DUSE_DEFINE -DYY_USE_PROTOS $(COMMDIR)\y_tab.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)
+
+choicdgg.obj:     $(GENDIR)\choicdgg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+colrdlgg.obj:     $(GENDIR)\colrdgg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+fontdlgg.obj:     $(GENDIR)\fontdlgg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+gridg.obj:     $(GENDIR)\gridg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+helpxlp.obj:     $(GENDIR)\helpxlp.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+laywin.obj:     $(GENDIR)\laywin.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+msgdlgg.obj:     $(GENDIR)\msgdlgg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+panelg.obj:     $(GENDIR)\panelg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+printps.obj:     $(GENDIR)\printps.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+prntdlgg.obj:     $(GENDIR)\prntdlgg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+sashwin.obj:     $(GENDIR)\sashwin.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+scrolwin.obj:     $(GENDIR)\scrolwin.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+splitter.obj:     $(GENDIR)\splitter.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+statusbr.obj:     $(GENDIR)\statusbr.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+tabg.obj:     $(GENDIR)\tabg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+textdlgg.obj: $(GENDIR)\textdlgg.cpp
+  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
+
+crbuffri.obj: $(XPMDIR)\crbuffri.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+crbuffrp.obj: $(XPMDIR)\crbuffrp.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+crdatfri.obj: $(XPMDIR)\crdatfri.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+crdatfrp.obj: $(XPMDIR)\crdatfrp.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+create.obj: $(XPMDIR)\create.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+crifrbuf.obj: $(XPMDIR)\crifrbuf.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+crifrdat.obj: $(XPMDIR)\crifrdat.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+crpfrbuf.obj: $(XPMDIR)\crpfrbuf.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+crpfrdat.obj: $(XPMDIR)\crpfrdat.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+# TODO: what to do about this clash of filename????
+#data.obj: $(XPMDIR)\data.c
+#  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+hashtab.obj: $(XPMDIR)\hashtab.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+misc.obj: $(XPMDIR)\misc.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+parse.obj: $(XPMDIR)\parse.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+rdftodat.obj: $(XPMDIR)\rdftodat.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+rdftoi.obj: $(XPMDIR)\rdftoi.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+rdftop.obj: $(XPMDIR)\rdftop.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+rgb.obj: $(XPMDIR)\rgb.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+scan.obj: $(XPMDIR)\scan.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+simx.obj: $(XPMDIR)\simx.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+wrffrdat.obj: $(XPMDIR)\wrffrdat.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+wrffri.obj: $(XPMDIR)\wrffri.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+wrffrp.obj: $(XPMDIR)\wrffrp.c
+  *$(CC) $(CPPFLAGS) $(IFLAGS) $<
+
+
+#wxxpm:   .SYMBOLIC
+#    cd $(WXDIR)\contrib\wxxpm
+#    wmake -f makefile.wat all
+#    cd $(WXDIR)\src\msw
+
+#clean_wxxpm:   .SYMBOLIC
+#    cd $(WXDIR)\contrib\wxxpm
+#    wmake -f makefile.wat clean
+#    cd $(WXDIR)\src\msw
+
+
index 44207bb73350a4f17da146e5cbcd84b39b62fb42..e16be59a3258e1d10e03024099f1a9edde31fe04 100644 (file)
@@ -163,8 +163,7 @@ bool wxAutomationObject::Invoke(const wxString& member, int action,
        for (i = 0; i < noArgs; i++)
        {
                // Again, reverse args
-               wxVariant& theVariant = INVOKEARG((noArgs-1) - i);
-               if (!ConvertVariantToOle(theVariant, oleArgs[i]))
+               if (!ConvertVariantToOle(INVOKEARG((noArgs-1) - i), oleArgs[i]))
                        return FALSE; // TODO: clean up memory at this point
        }
 
@@ -509,7 +508,11 @@ bool wxAutomationObject::ConvertVariantToOle(const wxVariant& variant, VARIANTAR
     else if (type == "bool")
     {
         oleVariant.vt = VT_BOOL;
+#ifdef __WATCOMC__
+        oleVariant.bool = variant.GetBool();
+#else
         oleVariant.boolVal = variant.GetBool();
+#endif
     }
     else if (type == "string")
     {
@@ -633,7 +636,11 @@ bool wxAutomationObject::ConvertOleToVariant(const VARIANTARG& oleVariant, wxVar
 
        case VT_BOOL:
                {
+#ifdef __WATCOMC__
+                       variant = (bool) (oleVariant.bool != 0);
+#else
                        variant = (bool) (oleVariant.boolVal != 0);
+#endif
                        break;
                }
        case VT_R8:
diff --git a/wxinstall b/wxinstall
new file mode 100644 (file)
index 0000000..0f634fd
--- /dev/null
+++ b/wxinstall
@@ -0,0 +1,1486 @@
+#!/bin/sh
+# N.B. make sure this really is a true Bourne-compatible shell.
+
+# !!!! WARNING !!! THIS IS IN DEVELOPMENT AND HAS NOT BEEN
+# TESTED. DO NOT USE YET!
+# Use src/motif/makefile.unx directly instead, with the 'motif'
+# target.
+
+###############################################################
+# wxinstal -- wxWindows for Motif installation script.        #
+# Julian Smart, December 1998                                 #
+# Usage: wxinstall [optional wxWindows target directory]      #
+# Note: this uses plain makefiles. You can also use the       #
+# configure system: see docs/motif/install.txt.               #
+###############################################################
+
+########### Edit these variables for your system. #############
+########### ALSO edit wx/src/make.env once unarchived #########
+
+# Editor
+MYEDITOR=$EDITOR
+if [ "$MYEDITOR" = "" ]
+then
+  MYEDITOR=emacs
+fi
+
+# Pager
+MYPAGER=$PAGER
+if [ "$MYPAGER" = "" ]
+then
+  MYPAGER=more
+fi
+
+# wxWindows directory to install to
+WXDIR=`pwd`
+if [ ! "$1" = "" ]
+then
+  WXDIR=$1
+fi
+
+# Target (motif, xview)
+GUITARGET=motif
+
+# Archive prefix, dependent on version number
+ARCHIVE=wx200
+
+# Platform. 1 = generic platform
+PLATFORM=1
+
+# Current directory
+CURRENTDIR=`pwd`
+
+# PostScript viewer, if any
+POSTSCRIPTVIEWER=ghostview
+
+# PostScript viewer, if any
+HTMLVIEWER=netscape
+
+# Don't change this
+GUISUFFIX=_motif
+
+if [ "$GUITARGET" = "motif" ]
+then
+  GUISUFFIX=_motif
+fi
+
+# If you add platforms, you just need
+# to adjust this number, and
+# add environment variables
+# for a description and the filename.
+
+PLATFORMCOUNT=12
+
+PLATFORM1="Generic/Linux with gcc"
+PLATFORMFILE1="linux.env"
+
+PLATFORM2="Solaris with gcc"
+PLATFORMFILE2="sol_gcc.env"
+
+PLATFORM3="Solaris with Sun C++"
+PLATFORMFILE3="sol_sun.env"
+
+PLATFORM4="SunOS 4.x.x with gcc"
+PLATFORMFILE4="sunosgcc.env"
+
+PLATFORM5="FreeBSD with gcc"
+PLATFORMFILE5="freebsd.env"
+
+PLATFORM6="AIX with gcc"
+PLATFORMFILE6="aixgcc.env"
+
+PLATFORM7="AIX with CSet++"
+PLATFORMFILE7="aixcset.env"
+
+PLATFORM8="Data General"
+PLATFORMFILE8="datagen.env"
+
+PLATFORM9="HPUX"
+PLATFORMFILE9="hp.env"
+
+PLATFORM10="IRIX"
+PLATFORMFILE10="irix.env"
+
+PLATFORM11="DEC OSF"
+PLATFORMFILE11="decosf.env"
+
+PLATFORM12="VAX VMS"
+PLATFORMFILE12="vms.env"
+
+install_from_tar()
+{
+  if [ -f $CURRENTDIR/$ARCHIVE"gen.tar" ]
+  then
+    if [ ! -d $WXDIR ]
+    then
+      echo Making directory $WXDIR
+      mkdir $WXDIR
+    fi
+    if [ ! -d $WXDIR ]
+    then
+      echo $WXDIR" cannot be created!"
+    else
+      echo Untarring $CURRENTDIR/$ARCHIVE"*.tar."
+      echo Please be patient...
+      cd $WXDIR
+      tar xf $CURRENTDIR/$ARCHIVE"gen.tar"
+      tar xf $CURRENTDIR/$ARCHIVE"mot.tar"
+      echo If you saw no errors, untarring was successful.
+    fi
+  else
+    echo $CURRENTDIR/$ARCHIVE"gen.tar" not found.
+  fi
+
+  # Unarchive HTML documentation if found
+  if [ -f $CURRENTDIR/$ARCHIVE"htm.tar" ]
+  then
+    echo Untarring HTML documentation $CURRENTDIR/$ARCHIVE"htm.tar."
+    echo Please be patient...
+    cd $WXDIR
+    tar xf $CURRENTDIR/$ARCHIVE"htm.tar"
+  fi
+
+  # Unarchive PDF documentation if found
+  if [ -f $CURRENTDIR/$ARCHIVE"pdf.tar" ]
+  then
+    echo Untarring PDF documentation $CURRENTDIR/$ARCHIVE"pdf.tar."
+    echo Please be patient...
+    cd $WXDIR
+    tar xf $CURRENTDIR/$ARCHIVE"pdf.tar"
+  fi
+
+  cd $CURRENTDIR
+}
+
+install_from_gzip()
+{
+  if [ -f $CURRENTDIR/$ARCHIVE"gen.tgz" ]
+  then
+    echo Unarchiving $CURRENTDIR/$ARCHIVE"gen.tgz"
+    gzip -c -d $CURRENTDIR/$ARCHIVE"gen.tgz" | tar xf -
+    echo Unarchiving $CURRENTDIR/$ARCHIVE"mot.tgz"
+    gzip -c -d $CURRENTDIR/$ARCHIVE"mot.tgz" | tar xf -
+
+    # Optional: PDF documentation
+    if [ -f $CURRENTDIR/$ARCHIVE"pdf.tgz" ]
+    then
+      echo Unarchiving $CURRENTDIR/$ARCHIVE"ps.tgz"
+      gzip -c -d $CURRENTDIR/$ARCHIVE"pdf.tgz" | tar xf -
+    fi
+
+    # Optional: HTML documentation
+    if [ -f $CURRENTDIR/$ARCHIVE"htm.tgz" ]
+    then
+      echo Unarchiving $CURRENTDIR/$ARCHIVE"htm.tgz"
+      gzip -c -d $CURRENTDIR/$ARCHIVE"htm.tgz" | tar xf -
+    fi
+
+  else
+    echo $CURRENTDIR/$ARCHIVE"gen.tgz" not found. Please place in the current directory.
+  fi
+  cd $CURRENTDIR
+}
+
+install_from_zip()
+{
+  if [ -f $CURRENTDIR/$ARCHIVE"gen.zip" ]
+  then
+    if [ ! -d $WXDIR ]
+    then
+      echo Making directory $WXDIR
+      mkdir $WXDIR
+    fi
+    if [ ! -d $WXDIR ]
+    then
+      echo $WXDIR" cannot be created!"
+    else
+      echo Untarring $CURRENTDIR/$ARCHIVE"*.zip."
+      echo Please be patient...
+      cd $WXDIR
+      unzip -a -o $CURRENTDIR/$ARCHIVE"gen.zip"
+      unzip -a -o $CURRENTDIR/$ARCHIVE"mot.zip"
+      echo If you saw no errors, unzipping was successful.
+    fi
+  else
+    echo $CURRENTDIR/$ARCHIVE"gen.zip" not found.
+  fi
+
+  # Unarchive HTML documentation if found
+  if [ -f $CURRENTDIR/$ARCHIVE"htm.zip" ]
+  then
+    echo Unzipping HTML documentation $CURRENTDIR/$ARCHIVE"htm.zip."
+    echo Please be patient...
+    cd $WXDIR
+    unzip -a -o $CURRENTDIR/$ARCHIVE"htm.zip"
+  fi
+
+  # Unarchive PDF documentation if found
+  if [ -f $CURRENTDIR/$ARCHIVE"pdf.zip" ]
+  then
+    echo Unzipping PDF documentation $CURRENTDIR/$ARCHIVE"pdf.zip."
+    echo Please be patient...
+    cd $WXDIR
+    unzip -a -o $CURRENTDIR/$ARCHIVE"pdf.zip"
+  fi
+
+  cd $CURRENTDIR
+}
+
+edit_make_env()
+{
+  cd $CURRENTDIR
+
+  if [ -f $WXDIR/src/make.env ]
+  then
+    echo ""
+    echo "If the files are unarchived ok, you should edit the file"
+    echo $WXDIR"/src/make.env"
+    echo "since this sets many options for your wxWindows"
+    echo "compilation environment."
+    echo ""
+    echo "Would you like to edit the file now? (y/n)"
+    echo
+    read ans
+    if [ "$ans" = "y" ]
+    then
+      $MYEDITOR $WXDIR/src/make.env
+      echo ""
+      echo Ok, if you get compilation or link errors in the installation,
+      echo $WXDIR"/src/make.env is the first place to look."
+      echo ""
+      echo "Press return to continue."
+      read ans
+    fi
+  else
+    echo ""
+    echo "Uh-oh, cannot find "$WXDIR"/src/make.env; probably you have not unarchived"
+    echo "properly yet."
+    echo ""
+    echo "Press return to continue."
+    read ans
+  fi
+}
+
+install_from_archive()
+{
+  echo
+  echo "Install from Archive"
+  echo "--------------------"
+
+  echo "1) Install from "$ARCHIVE"gen.zip, "$ARCHIVE"mot.zip"
+  echo "   and "$ARCHIVE"htm.zip if present."
+  echo "2) Install from "$ARCHIVE"gen.tgz, "$ARCHIVE"mot.tgz"
+  echo "   and "$ARCHIVE"htm.tgz if present."
+  echo "0) Quit."
+  echo
+  read archans
+
+  if [ "$archans" = "1" ]
+  then
+    install_from_zip
+  fi
+  if [ "$archans" = "2" ]
+  then
+    install_from_gzip
+  fi
+}
+
+make_main_library()
+{
+  if [ ! -d $WXDIR/src ]
+  then
+    echo "Source directory not found: please unarchive first."
+    echo Press return to continue.
+    read ans
+  else
+    echo
+    echo Making the wxWindows main library. It will go in
+    echo $WXDIR/lib.
+    echo
+    echo Please press RETURN to continue, and then make yourself a coffee.
+    echo 
+    read ans
+    if [ ! -d $WXDIR/lib ]
+    then
+      mkdir $WXDIR/lib
+    fi
+
+    cd $WXDIR/src/motif
+    make -f makefile.unx $GUITARGET 2>&1 | tee -a $CURRENTDIR/make.log
+    cd $CURRENTDIR
+
+    if [ -f $WXDIR/lib/libwx$GUISUFFIX".a" ]
+    then  
+      echo
+      echo "If you saw no errors, wxWindows was compiled. See the file make.log"
+      echo "for errors and warnings."
+    else
+      echo
+      echo $WXDIR/lib/libwx$GUISUFFIX".a was not built."
+      echo "Please check make.env, and read install.txt and faq.txt/ps."
+      echo
+      echo "Press return to continue."
+      echo
+      read ans
+    fi
+  fi
+}
+
+###############################################################
+# Make peripheral components                                  #
+###############################################################
+
+make_wxtree()
+{
+  if [ ! -d $WXDIR/utils/wxtree ]
+  then
+    echo wxTree directory does not exist.
+    echo Press return to continue.
+    read ans
+  else
+    echo
+    echo Making the wxTree library. It will go in
+    echo $WXDIR/utils/wxtree/lib.
+    echo
+    cd $WXDIR/utils/wxtree/src
+    make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+    cd $CURRENTDIR
+    echo
+    echo "If you saw no errors, the wxTree library was compiled. See the file make.log"
+    echo "for errors and warnings."
+  fi
+}
+
+make_wxgraph()
+{
+  if [ ! -d $WXDIR/utils/wxgraph ]
+  then
+    echo wxGraph directory does not exist.
+    echo Press return to continue.
+    read ans
+  else
+    echo
+    echo Making the wxGraph library. It will go in
+    echo $WXDIR/utils/wxgraph/lib.
+    echo
+    cd $WXDIR/utils/wxgraph/src
+    make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+    cd $CURRENTDIR
+    echo
+    echo "If you saw no errors, the wxGraph library was compiled. See the file make.log"
+    echo "for errors and warnings."
+  fi
+}
+
+make_colour()
+{
+  if [ ! -d $WXDIR/utils/colours ]
+  then
+    echo $WXDIR/utils/colours directory does not exist.
+    echo Press return to continue.
+    read ans
+  else
+    echo
+    echo Making the Colour sampler. It will go in
+    echo $WXDIR/utils/colours
+    echo
+    cd $WXDIR/utils/colours
+    make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+    cd $CURRENTDIR
+    echo
+    echo "If you saw no errors, the Colour sampler was compiled. See the file make.log"
+    echo "for errors and warnings."
+    echo ""
+    if [ -f $WXDIR/utils/colours/colours$GUISUFFIX ]
+    then
+      echo "Run the Colour sampler? (y/n)"
+      echo ""
+      read ans1
+      if [ "$ans1" = "y" ]
+      then
+        $WXDIR/utils/colours/colours$GUISUFFIX
+      fi
+    fi
+  fi
+}
+
+make_wxhelp()
+{
+  if [ ! -d $WXDIR/utils/wxhelp ]
+  then
+    echo wxHelp directory does not exist.
+    echo Press return to continue.
+    read ans
+  else
+    echo
+    echo Making the wxHelp program. It will go in
+    echo $WXDIR/utils/wxhelp/src.
+    echo
+    cd $WXDIR/utils/wxhelp/src
+    make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+    cd $CURRENTDIR
+    echo
+    echo "If you saw no errors, the wxHelp program was compiled. See the file make.log"
+    echo "for errors and warnings."
+  fi
+}
+
+make_tex2rtf()
+{
+  if [ ! -d $WXDIR/utils/tex2rtf ]
+  then
+    echo Tex2RTF directory does not exist.
+    echo Press return to continue.
+    read ans
+  else
+    echo
+    echo Making the Tex2RTF utility. It will go in
+    echo $WXDIR/utils/tex2rtf/src.
+    echo
+    cd $WXDIR/utils/tex2rtf/src
+    make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+    cd $CURRENTDIR
+    echo
+    echo "If you saw no errors, the Tex2RTF program was compiled. See the file make.log"
+    echo "for errors and warnings."
+  fi
+}
+
+###############################################################
+# Make samples                                                  #
+###############################################################
+
+make_controls()
+{
+  echo
+  echo Making the Controls sample. It will be made as
+  echo $WXDIR/samples/controls/controls$GUISUFFIX
+  echo
+  cd $WXDIR/samples/constrols
+  make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+  cd $CURRENTDIR
+  echo
+  echo "If you saw no errors, the Controls sample was compiled. See the file make.log"
+  echo "for errors and warnings."
+}
+
+make_minimal()
+{
+  echo
+  echo Making the Minimal sample. It will be made as
+  echo $WXDIR/samples/minimal/minimal$GUISUFFIX
+  echo
+  cd $WXDIR/samples/minimal
+  make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+  cd $CURRENTDIR
+  echo
+  echo "If you saw no errors, the Minimal sample was compiled. See the file make.log"
+  echo "for errors and warnings."
+}
+
+make_mdi()
+{
+  echo
+  echo Making the Mdi sample. It will be made as
+  echo $WXDIR/samples/mdi/mdi$GUISUFFIX
+  echo
+  cd $WXDIR/samples/mdi
+  make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+  cd $CURRENTDIR
+  echo
+  echo "If you saw no errors, the MDI sample was compiled. See the file make.log"
+  echo "for errors and warnings."
+}
+
+make_animate()
+{
+  echo
+  echo Making the Animate sample. It will be made as
+  echo $WXDIR/samples/animate/anim$GUISUFFIX
+  echo
+  cd $WXDIR/samples/animate
+  make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+  cd $CURRENTDIR
+  echo
+  echo "If you saw no errors, the Animate sample was compiled. See the file make.log"
+  echo "for errors and warnings."
+}
+
+make_fractal()
+{
+  echo
+  echo Making the Fractal sample. It will be made as
+  echo $WXDIR/samples/fractal/fractal$GUISUFFIX
+  echo
+  cd $WXDIR/samples/fractal
+  make -f makefile.unx $GUITARGET 2>&1 | tee $CURRENTDIR/make.log
+  cd $CURRENTDIR
+  echo
+  echo "If you saw no errors, the Fractal sample was compiled. See the file make.log"
+  echo "for errors and warnings."
+}
+
+make_all_periph_components()
+{
+  make_wxtree
+#  make_dialoged
+#  make_wxgraph
+#  make_wxhelp
+#  make_tex2rtf
+}
+
+about_periph_components()
+{
+  clear
+  echo "About the Peripheral Components"
+  echo "-------------------------------"
+  echo
+  echo "These are libraries and programs that are considered useful"
+  echo "enough to put in the main wxWindows distribution."
+  echo
+  echo wxTree A tree-drawing library, with sample
+  echo ------
+  echo    
+#  echo wxGraph A node and arc graph-drawing library, with sample
+#  echo -------
+#  echo    
+#  echo "Press return to continue"
+#  read ans
+#  clear
+#  echo wxHelp The wxWindows on-line help program
+#  echo ------
+#  echo
+#  echo
+#  echo "Tex2RTF LaTeX->RTF, HTML converter"
+#  echo -------
+#  echo
+  echo "Press return to continue"
+  read ans
+  clear
+}
+
+make_peripheral_components()
+{
+  compoption='none'
+  while [ "$compoption" != "0" ]
+  do
+    echo
+    echo "Peripheral Component Options"
+    echo "----------------------------"
+    echo " 1) Make wxTree layout library"
+    echo "10) Make all the above"
+    echo "----------------------------"
+    echo " ?) About these components"
+    echo "----------------------------"
+    echo " 0) Quit."
+    echo
+    read compoption
+
+    if [ "$compoption" = "1" ]
+    then
+      make_wxtree
+    fi
+    if [ "$compoption" = "10" ]
+    then
+      make_all_periph_components
+    fi
+    if [ "$compoption" = "?" ]
+    then
+      about_periph_components
+    fi
+  done
+}
+
+make_all_samples()
+{
+  echo
+  echo "Note: compiling all samples is going to use up bags of disk space."
+  echo "Continue? (y/n)"
+  echo
+  read ans
+
+  if [ "$ans" = "y" ]
+  then
+    cd $WXDIR/samples
+    make -f makefile.unx all$GUISUFFIX
+  fi
+}
+
+make_samples()
+{
+  compoption='none'
+  while [ "$compoption" != "0" ]
+  do
+    echo
+    echo "Sample compilation options"
+    echo "------------------------"
+    echo "1) Make Minimal sample"
+    echo "2) Make MDI sample
+    echo "3) Make all samples"
+    echo "4) Run a sample"
+    echo "------------------------"
+    echo "0) Quit."
+    echo
+    read compoption
+
+    if [ "$compoption" = "1" ]
+    then
+      make_minimal
+    fi
+    if [ "$compoption" = "2" ]
+    then
+      make_mdi
+    fi
+    if [ "$compoption" = "3" ]
+    then
+      make_all_samples
+    fi
+    if [ "$compoption" = "4" ]
+    then
+      run_samples
+    fi
+  done
+}
+
+# Find a platform filename, using 'arg' as input and output
+platform_filename()
+{
+  case "$arg" in
+    1) arg=$PLATFORMFILE1;;
+    2) arg=$PLATFORMFILE2;;
+    3) arg=$PLATFORMFILE3;;
+    4) arg=$PLATFORMFILE4;;
+    5) arg=$PLATFORMFILE5;;
+    6) arg=$PLATFORMFILE6;;
+    7) arg=$PLATFORMFILE7;;
+    8) arg=$PLATFORMFILE8;;
+    9) arg=$PLATFORMFILE9;;
+    10) arg=$PLATFORMFILE10;;
+    11) arg=$PLATFORMFILE11;;
+    12) arg=$PLATFORMFILE12;;
+    13) arg=$PLATFORMFILE13;;
+    14) arg=$PLATFORMFILE14;;
+    15) arg=$PLATFORMFILE15;;
+    16) arg=$PLATFORMFILE16;;
+    17) arg=$PLATFORMFILE17;;
+    18) arg=$PLATFORMFILE18;;
+    19) arg=$PLATFORMFILE19;;
+    20) arg=$PLATFORMFILE20;;
+    *) arg=''
+  esac
+}
+
+platform_description()
+{
+  case "$arg" in
+    1) arg=$PLATFORM1;;
+    2) arg=$PLATFORM2;;
+    3) arg=$PLATFORM3;;
+    4) arg=$PLATFORM4;;
+    5) arg=$PLATFORM5;;
+    6) arg=$PLATFORM6;;
+    7) arg=$PLATFORM7;;
+    8) arg=$PLATFORM8;;
+    9) arg=$PLATFORM9;;
+    10) arg=$PLATFORM10;;
+    11) arg=$PLATFORM11;;
+    12) arg=$PLATFORM12;;
+    13) arg=$PLATFORM13;;
+    14) arg=$PLATFORM14;;
+    15) arg=$PLATFORM15;;
+    16) arg=$PLATFORM16;;
+    17) arg=$PLATFORM17;;
+    18) arg=$PLATFORM18;;
+    19) arg=$PLATFORM19;;
+    20) arg=$PLATFORM20;;
+    *) arg=''
+  esac
+}
+
+###############################################################
+# Select a platform
+###############################################################
+
+select_platform()
+{
+  echo
+  echo "Select a platform"
+  echo "----------------------------"
+  echo "Note: this copies a file from $WXDIR/src/makeenvs"
+  echo "to $WXDIR/src/make.env. If you have"
+  echo "restarted the installation, the current option listed"
+  echo "may not reflect the current make.env."
+  echo
+  echo "You may wish to edit a .env file in $WXDIR/src/makeenvs"
+  echo "instead of src/make.env, which might be overwritten in future"
+  echo "installations."
+  echo
+  echo "In any event, a backup of make.env is made (make.bak) before it is"
+  echo "overwritten."
+  echo
+  echo "Please press return to continue."
+  read dummy
+
+  compoption='none'
+  selectdone=0
+  while [ "$selectdone" = "0" ]
+  do
+    echo
+    echo "Select a platform"
+    echo "----------------------------"
+    echo
+
+    i=1
+    while [ $i -le $PLATFORMCOUNT ]
+    do
+      arg=$i
+      platform_description
+      plat=$arg
+      markit=" "
+      if [ "$PLATFORM" = "$i" ]
+      then
+        markit="*"
+      fi
+      echo " "$markit" "$i") "$plat
+      i=`expr $i + 1`
+    done
+    echo
+    echo "   e) Edit the current src/make.env"
+    echo
+    echo "Enter a choice, return for default: "
+    read compoption
+
+    if [ "$compoption" = "e" ]
+    then
+      $MYEDITOR $WXDIR/src/make.env
+    else
+      if [ "$compoption" != "" ]
+      then
+        arg=$compoption
+        platform_description
+        plat=$arg
+
+        arg=$compoption
+        platform_filename
+        platfile=$arg
+
+        if [ "$platfile" != "" ]
+        then
+          if [ ! -f $WXDIR"/src/makeenvs/"$platfile ]
+          then
+            echo "Sorry, this platform is not catered for yet."
+            echo "Try using the generic settings instead."
+            echo ""
+            echo "Press return to continue."
+            read dummy
+          else
+            selectdone=1
+            PLATFORM=$compoption
+            cp -f $WXDIR/src/make.env $WXDIR/src/make.bak
+            cp -f $WXDIR/src/makeenvs/$platfile $WXDIR/src/make.env
+          fi
+        fi
+      else
+        selectdone=1
+      fi
+    fi
+  done
+}
+
+###############################################################
+# Run samples                                                   #
+###############################################################
+
+run_controls()
+{
+  if [ ! -f $WXDIR"/samples/controls/controls"$GUISUFFIX ]
+  then
+    echo The Controls sample has not been compiled yet.
+  else
+    echo
+    echo "Running "$WXDIR"/samples/controls/controls"$GUISUFFIX
+    echo
+    cd $WXDIR"/samples/controls"
+    "controls"$GUISUFFIX
+    cd $CURRENTDIR
+  fi
+}
+
+run_minimal()
+{
+  if [ ! -f $WXDIR"/samples/minimal/minimal"$GUISUFFIX ]
+  then
+    echo The Minimal sample has not been compiled yet.
+  else
+    echo
+    echo "Running "$WXDIR"/samples/minimal/minimal"$GUISUFFIX
+    echo
+    cd $WXDIR"/samples/minimal"
+    "minimal"$GUISUFFIX
+    cd $CURRENTDIR
+  fi
+}
+
+run_form()
+{
+  if [ ! -f $WXDIR"/samples/form/form"$GUISUFFIX ]
+  then
+    echo The Form sample has not been compiled yet.
+  else
+    echo
+    echo "Running "$WXDIR"/samples/form/form"$GUISUFFIX
+    echo
+    cd $WXDIR"/samples/form"
+    "form"$GUISUFFIX
+    cd $CURRENTDIR
+  fi
+}
+
+run_animate()
+{
+  if [ ! -f $WXDIR"/samples/animate/anim"$GUISUFFIX ]
+  then
+    echo The Animate sample has not been compiled yet.
+  else
+    echo
+    echo "Running "$WXDIR"/samples/animate/anim"$GUISUFFIX
+    echo
+    cd $WXDIR"/samples/animate"
+    "anim"$GUISUFFIX
+    cd $CURRENTDIR
+  fi
+}
+
+run_fractal()
+{
+  if [ ! -f $WXDIR"/samples/fractal/fractal"$GUISUFFIX ]
+  then
+    echo The Fractal sample has not been compiled yet.
+  else
+    echo
+    echo "Running "$WXDIR"/samples/fractal/fractal"$GUISUFFIX
+    echo
+    cd $WXDIR"/samples/fractal"
+    "fractal"$GUISUFFIX
+    cd $CURRENTDIR
+  fi
+}
+
+run_ipc()
+{
+  if [ ! -f $WXDIR"/samples/ipc/client"$GUISUFFIX ]
+  then
+    echo The IPC samples have not been compiled yet.
+  else
+    echo
+    echo "Running "$WXDIR"/samples/ipc/client"$GUISUFFIX,
+    echo "        "$WXDIR"/samples/ipc/server"$GUISUFFIX
+    echo
+    cd $WXDIR"/samples/ipc"
+    echo "Starting server..."
+    "server"$GUISUFFIX &
+    echo "Waiting 10 seconds..."
+    sleep 10
+    echo "Starting client..."
+    "client"$GUISUFFIX
+    cd $CURRENTDIR
+  fi
+}
+
+run_samples()
+{
+  runoption='none'
+  while [ "$runoption" != "0" ]
+  do
+    echo
+    echo "Run a wxWindows sample"
+    echo "--------------------"
+    echo "Note: this is a small selection. For more, please"
+    echo "browse the samples subdirectory."
+    echo
+    echo "1) Run Minimal sample"
+    echo "2) Run MDI sample"
+    echo "--------------------"
+    echo "0) Quit."
+    echo
+    read runoption
+
+    if [ "$runoption" = "1" ]
+    then
+      run_minimal
+    fi
+    if [ "$runoption" = "2" ]
+    then
+      run_mdi
+    fi
+  done
+}
+
+make_all()
+{
+  make_main_library
+  make_all_periph_components
+  make_all_samples
+}
+
+remove_component()
+{
+  if [ -d $COMPONENT ]
+  then
+    echo "Remove "$COMPONENT": are you sure? (y/n) "
+    echo
+    read ans
+    if [ "$ans" = "y" ]
+    then
+      rm -f -r $COMPONENT
+    fi
+  fi
+}
+
+remove_components()
+{
+  compoption='none'
+  while [ "$compoption" != "0" ]
+  do
+    if [ -f $WXDIR/docs/pdf/wx.pdf ]
+    then
+      PDFMANUALSOK="*"
+    else
+      PDFMANUALSOK=" "
+    fi
+  
+    if [ -f $WXDIR/docs/html/wx/wx.htm ]
+    then
+      HTMLMANUALSOK="*"
+    else
+      HTMLMANUALSOK=" "
+    fi
+  
+    if [ -d $WXDIR/utils/wxtree ]
+    then
+      WXTREEOK="*"
+    else
+      WXTREEOK=" "
+    fi
+  
+#    if [ -d $WXDIR/utils/wxgraph ]
+#    then
+#      WXGRAPHOK="*"
+#    else
+#      WXGRAPHOK=" "
+#   fi
+#
+#    if [ -d $WXDIR/utils/wxhelp ]
+#    then
+#      WXHELPOK="*"
+#    else
+#      WXHELPOK=" "
+#    fi
+#
+#    if [ -d $WXDIR/utils/tex2rtf ]
+#    then
+#      TEX2RTFOK="*"
+#    else
+#      TEX2RTFOK=" "
+#    fi
+
+    if [ -d $WXDIR/utils/dialoged ]
+    then
+      DIALOGEDOK="*"
+    else
+      DIALOGEDOK=" "
+    fi
+
+    echo
+    echo "Remove a wxWindows component (* means it's installed)"
+    echo "-----------------------------------------------------"
+    echo "wxWindows currently takes up this many KB:"
+    du -s $WXDIR
+    echo "-----------------------------------------------------"
+    echo " 1) "$PDFMANUALSOK"Remove PDF manuals"
+    echo " 2) "$HTMLMANUALSOK"Remove HTML manuals"
+    echo " 3) "$WXTREEOK"Remove wxTree library"
+#    echo " 4) "$WXGRAPHOK"Remove wxGraph library"
+#    echo " 8) "$TEX2RTFOK"Remove Tex2RTF/HTML/WinHelp/wxHelp converter"
+    echo " 4) "$DIALOGEDOK"Remove Dialog Editor"
+    echo "------------------------------------------------------"
+    echo " 0) Quit."
+    echo
+    read compoption
+
+    if [ "$compoption" = "1" ]
+    then
+      rm -f -r $WXDIR/pdf
+    fi
+    if [ "$compoption" = "2" ]
+    then
+      rm -f -r $WXDIR/html
+    fi
+    if [ "$compoption" = "3" ]
+    then
+      COMPONENT=$WXDIR/utils/wxtree
+      remove_component
+    fi
+    if [ "$compoption" = "4" ]
+    then
+      COMPONENT=$WXDIR/utils/dialoged
+      remove_component
+    fi
+  done
+}
+
+clean_component()
+{
+  if [ -d $COMPONENT ]
+  then
+    cd $COMPONENT
+    make -f makefile.unx clean$GUISUFFIX
+    cd $CURRENTDIR
+  fi
+}
+
+clean_samples()
+{
+  cd $WXDIR/samples
+  make -f makefile.unx clean$GUISUFFIX
+  cd $CURRENTDIR
+}
+
+#         -f $WXDIR/samples/pressup/pressup$GUISUFFIX -o \
+#         -f $WXDIR/samples/bombs/bombs$GUISUFFIX -o \
+#         -f $WXDIR/samples/fractal/fractal$GUISUFFIX -o \
+#         -f $WXDIR/samples/animate/anim$GUISUFFIX -o \
+#         -f $WXDIR/samples/ipc/server$GUISUFFIX -o \
+
+clean_components()
+{
+  compoption='none'
+  olddu=""
+  while [ "$compoption" != "0" ]
+  do
+    if [ -f $WXDIR/samples/controls/controls$GUISUFFIX -o \
+         -f $WXDIR/samples/forty/forty$GUISUFFIX -o \
+         -f $WXDIR/samples/splitter/splitter$GUISUFFIX -o \
+         -f $WXDIR/samples/docview/docview$GUISUFFIX -o \
+         -f $WXDIR/samples/wxpoem/wxpoem$GUISUFFIX -o \
+         -f $WXDIR/samples/printing/printing$GUISUFFIX -o \
+         -f $WXDIR/samples/resource/resource$GUISUFFIX -o \
+         -f $WXDIR/samples/layout/layout$GUISUFFIX -o \
+         -f $WXDIR/samples/toolbar/test$GUISUFFIX -o \
+         -f $WXDIR/samples/dialogs/dialogs$GUISUFFIX -o \
+         -f $WXDIR/samples/types/types$GUISUFFIX -o \
+         -f $WXDIR/samples/mdi/mdi$GUISUFFIX -o \
+         -f $WXDIR/samples/minimal/minimal$GUISUFFIX ]
+    then
+      SAMPLESOK="*"
+    else
+      SAMPLESOK=" "
+    fi
+
+    if [ -f $WXDIR/lib/libwx$GUISUFFIX".a" ]
+    then
+      WXOK="*"
+    else
+      WXOK=" "
+    fi
+
+    if [ -f $WXDIR/utils/tex2rtf/src/objects$GUISUFFIX/tex2rtf.o ]
+    then
+      TEX2RTFOK="*"
+    else
+      TEX2RTFOK=" "
+    fi
+
+    if [ -f $WXDIR/utils/dialoged/src/dialoged$GUISUFFIX ]
+    then
+      DIALOGEDOK="*"
+    else
+      DIALOGEDOK=" "
+    fi
+
+    echo
+    echo "Cleanup a wxWindows component (* means objects/binaries exist, - means unknown)"
+    echo "-----------------------------------------------------"
+    echo "wxWindows currently takes up this many KB:"
+    newdu=`du -s $WXDIR`
+    if [ "$olddu" = "" ]
+    then
+      theline=$newdu
+    else
+      theline=$newdu" (previous usage was "$olddu")"
+    fi
+    echo $theline
+    olddu=$newdu
+    echo "-----------------------------------------------------"
+    echo " 1) "$WXOK"Clean wxWindows library"
+    echo " 2) "$SAMPLESOK"Clean all wxWindows samples"
+    echo " 3) -Clean all utilities"
+    echo " 4) "$TEX2RTFOK"Clean Tex2RTF/HTML/WinHelp/wxHelp converter"
+    echo " 5) "$DIALOGEDOK"Clean Dialoged Editor tool"
+    echo "------------------------------------------------------"
+    echo " 0) Quit."
+    echo
+    read compoption
+
+    if [ "$compoption" = "1" ]
+    then
+      COMPONENT=$WXDIR/src/x
+      clean_component
+    fi
+    if [ "$compoption" = "2" ]
+    then
+      cd $WXDIR/samples
+      make -f makefile.unx clean$GUISUFFIX
+      cd $CURRENTDIR
+    fi
+    if [ "$compoption" = "3" ]
+    then
+      cd $WXDIR/utils
+      make -f makefile.unx clean$GUISUFFIX
+      cd $CURRENTDIR
+    fi
+    if [ "$compoption" = "4" ]
+    then
+      COMPONENT=$WXDIR/utils/tex2rtf/src
+      clean_component
+    fi
+    if [ "$compoption" = "5" ]
+    then
+      COMPONENT=$WXDIR/utils/dialoged/src
+      clean_component
+    fi
+  done
+}
+
+# Select a target
+select_target()
+{
+  compoption='none'
+  selectdone=0
+  while [ "$selectdone" = "0" ]
+  do
+    echo
+    echo "Select a target"
+    echo "---------------"
+    echo " 1) Motif"
+    echo
+    read compoption
+
+    if [ "$compoption" = "1" ]
+    then
+      selectdone=1
+      GUITARGET=motif
+      GUISUFFIX=_motif
+    fi
+  done
+}
+
+# Select a target
+select_dir()
+{
+  echo ""
+  echo "Select wxWindows directory"
+  echo "--------------------------"
+  echo ""
+  echo "Current directory: " $WXDIR
+  echo ""
+  echo "New directory: (return for existing value):"
+  read inp
+  if [ "$inp" != "" ]
+  then
+    WXDIR=$inp
+  fi
+}
+
+### View manual ###
+
+view_manual()
+{
+  if [ ! -d $WXDIR ]
+  then
+    echo "Sorry -- you must unarchive the distribution before you can"
+    echo "look at the manual."
+  else
+    manoption='none'
+    while [ "$manoption" != "0" ]
+    do
+      echo
+      echo "View wxWindows documentation"
+      echo "----------------------------"
+      echo "1) The installation instructions, using "$MYPAGER
+      echo "2) readme.txt, using "$MYPAGER
+      echo "3) The change log, using "$MYPAGER
+      echo "4) The HTML manual hierarchy, using $HTMLVIEWER"
+      echo "--------------------"
+      echo "0) Quit."
+      echo
+      read manoption
+
+      if [ "$manoption" = "1" ]
+      then
+        if [ -f $WXDIR"/docs/motif/install.txt" ]
+        then
+          $MYPAGER $WXDIR/docs/motif/install.txt
+        else
+          if [ -f "install.txt" ]
+          then
+            $MYPAGER "install.txt"
+          else
+            if [ -f $WXDIR/"install.txt" ]
+            then
+              $MYPAGER $WXDIR/"install.txt"
+            else
+              echo
+              echo "Sorry, cannot find install.txt. Perhaps you did not ftp"
+              echo "it along with the archives, and/or you haven't unarchived"
+              echo "the sources yet. Please press return to continue."
+              echo
+              read ans
+            fi
+          fi
+        fi
+      fi
+      if [ "$manoption" = "2" ]
+      then
+        if [ -f $WXDIR"/docs/motif/readme.txt" ]
+        then
+          $MYPAGER $WXDIR/docs/motif/readme.txt
+        else
+          if [ -f "readme.txt" ]
+          then
+            $MYPAGER "readme.txt"
+          else
+            if [ -f $WXDIR/"readme.txt" ]
+            then
+              $MYPAGER $WXDIR/"readme.txt"
+            else
+              echo
+              echo "Sorry, cannot find readme.txt. Perhaps you did not ftp"
+              echo "it along with the archives, and/or you haven't unarchived"
+              echo "the sources yet. Please press return to continue."
+              echo
+              read ans
+            fi
+          fi
+        fi
+      fi
+      if [ "$manoption" = "3" ]
+      then
+        if [ -f $WXDIR"/docs/motif/changes.txt" ]
+        then
+          $MYPAGER $WXDIR/docs/motif/changes.txt
+        else
+          if [ -f "changes.txt" ]
+          then
+            $MYPAGER "changes.txt"
+          else
+            if [ -f $WXDIR/"changes.txt" ]
+            then
+              $MYPAGER $WXDIR/"changes.txt"
+            else
+              echo
+              echo "Sorry, cannot find changes.txt. Perhaps you did not ftp"
+              echo "it along with the archives, and/or you haven't unarchived"
+              echo "the sources yet. Please press return to continue."
+              echo
+              read ans
+            fi
+          fi
+        fi
+      fi
+      if [ "$manoption" = "4" ]
+      then
+          $HTMLVIEWER $WXDIR"/docs/html/index.htm"
+      fi
+    done
+  fi
+}
+
+preliminary_notes()
+{
+  selectdone1=0
+  ans="n"
+  while [ "$ans" != "y" ]
+  do
+#    clear
+    echo
+    echo The GUI target is GUITARGET=$GUITARGET "."
+    echo
+    echo The directory to install to is WXDIR=$WXDIR
+    echo
+    arg=$PLATFORM
+    platform_description
+    echo The selected platform is $arg
+    echo
+    echo "Please check these settings carefully."
+    echo "Are they correct for your system? (y/n)"
+    echo
+
+    read ans
+
+    if [ "$ans" != "y" ]
+    then
+      select_target
+      select_dir
+      select_platform
+    fi
+  done
+
+    clear
+    echo ""
+    echo "Configuring wxWindows"
+    echo "---------------------"
+    echo ""
+    echo "Most makefile settings to do with compilers, platforms and"
+    echo "directories are kept in "$WXDIR"/src/make.env."
+    echo ""
+    echo "If you get a compiler error or warning, please strongly"
+    echo "suspect this file, and if necessary edit it from the first"
+    echo "option on the Main Menu."
+    echo ""
+    echo "Some suggestions for settings are contained in make.env,"
+    echo "and further information is in "$WXDIR"/install/install.txt."
+    echo
+    echo wxWindows itself can be tailored to remove certain features
+    echo "(such as PostScript support), or select library preferences, by"
+    echo "editing the file "$WXDIR"/include/wx/motif/setup.h."
+    echo
+    echo The setup.h defaults are probably ok for now though.
+    echo
+    echo "Please press return to continue."
+    read ans
+    echo
+    clear
+    echo ""
+    echo "Configuring wxWindows (cont'd)"
+    echo "--------------------- --------"
+    echo ""
+    echo "By default (at least for GNU compiler use), debugging information"
+    echo "is included. This will make the libraries and binaries"
+    echo "a lot bigger than if you left debugging information out."
+    echo
+    echo "So you might want to set DEBUG to nothing in make.env"
+    echo "to disable debugging information, at least for a first look at wxWindows."
+    echo
+    echo "Please press return to continue."
+    read ans
+    echo
+    clear
+    echo
+    echo "You may wish to choose 'View documentation' now..."
+}
+
+  ############# MAIN BIT OF THE SCRIPT #################
+  clear
+  echo
+  echo "-------------------------------------------"
+  echo "Welcome to the wxWindows 2.0 installation."
+  echo "-------------------------------------------"
+  echo
+  echo "This script will install from the archives:"
+  echo ""
+  echo "  "$ARCHIVE"gen.zip, "$ARCHIVE"mot.zip"
+  echo ""
+  echo "and, if present, HTML and PDF archives."
+  echo ""
+  echo "This installation is best done from a new directory where"
+  echo "wxWindows will be installed, and which contains the .zip files."
+  echo "For example, ~/wx."
+
+  select_dir
+
+  if [ ! -f $WXDIR/src/make.env ]
+  then
+    install_from_archive
+  fi
+
+  preliminary_notes
+
+  useroption='none'
+  while [ "$useroption" != "0" ]
+  do
+    echo
+    echo "wxWindows Installation Main Menu"
+    echo "--------------------------------"
+    echo
+    echo " 1) Install from archive."
+    echo " 2) Make main wxWindows library."
+    echo " 3) Make a peripheral component."
+    echo " 4) Make a sample."
+    echo " 5) Make absolutely everything."
+    echo " 6) Run a sample."
+    echo " 7) View documentation."
+    echo " 8) Clean objects/binaries, saving space."
+    echo " 9) Remove wxWindows components from disk."
+    echo "10) Edit make.env."
+    echo "11) Change the selected target platform"
+    echo "-----------------------------------"
+    echo " 0) Exit from installation."
+    echo
+    read useroption
+
+    if [ "$useroption" = "1" ]
+    then
+      install_from_archive
+    fi
+    if [ "$useroption" = "2" ]
+    then
+      make_main_library
+    fi
+    if [ "$useroption" = "3" ]
+    then
+      make_peripheral_components
+    fi
+    if [ "$useroption" = "4" ]
+    then
+      make_samples
+    fi
+    if [ "$useroption" = "5" ]
+    then
+      make_all
+    fi
+    if [ "$useroption" = "6" ]
+    then
+      run_samples
+    fi
+    if [ "$useroption" = "7" ]
+    then
+      view_manual
+    fi
+    if [ "$useroption" = "8" ]
+    then
+      clean_components
+    fi
+    if [ "$useroption" = "9" ]
+    then
+      remove_components
+    fi
+    if [ "$useroption" = "10" ]
+    then
+      edit_make_env
+    fi
+    if [ "$useroption" = "11" ]
+    then
+      select_platform
+    fi
+  done
+  clear
+  echo ""
+  echo "Goodbye! I hope your wxWindows installation was successful."
+  echo ""
+  echo "You can subscribe to the mailing list wxwin-users"
+  echo "for further assistance from experienced users."
+  echo ""
+  echo "Information is also available via the World Wide Web at:"
+  echo ""
+  echo "http://web.ukonline.co.uk/julian.smart/wxwin"
+  echo ""
+  echo "If all else fails, please contact me, Julian Smart, at:"
+  echo ""
+  echo "julian.smart@ukonline.co.uk"
+  echo ""
+  echo "If you have any suggestions, bug reports or patches,"
+  echo "please email me at the above address."
+  echo ""
+
+