This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Building ivtools on Cygwin


Hi

I ported ivtools 6.7 (http://www.vectaport.com/ivtools/) onto Cygwin
(http://sourceware.cygnus.com/cygwin/) some time ago, but spent so
long getting round to writing this message, that ivtools 7.10 has
jumped my gun and included Cygwin support independently.  Still, it
may be of interest to someone, so I attach two patches (one for
ivtools 7.10, one for 6.7) plus an extraction script (which renames
files as required) for ivtools 6.7 and a diff exclusion file (for
generating the patches).

I'm not planning to do any more with this (no time) but am willing to
answer any questions about the files.  (If anyone does want to use one
of the patches, you may need "-p0" to make patch work.)

On Win 95 I find it helps to mount a drive (e.g. /i) for the ivtools
directory, to shorten command lines and thus reduce some problems with
bash (I'm using standard Cygwin 20.1).

Again on Win 95, I had problems with crashes inside recursive makes:
the dumb work-round is to manually paste the results of "make -n" to
the prompt...

ivtools 7.10 patch
==================

o DLL support.  I've created a src/DLL directory for building a single
  DLL containing all the library files (except psfont.o, which is
  excluded because of a clash of symbols "PSFont::~PSFont" between it
  and pspaint.o --- don't understand what's going on there), using
  dllwrap.  The object files are linked as a linker script because of
  problems I had with long command-lines.

  It uses an EXPORTS file iv.def (initially generated by a script
  src/DLL/mkdll after the static binaries were built): this takes the
  shortcut of including only symbols required by the existing
  executables, but by changing DLLUseDef it should pass
  --export-all-symbols to include all symbols (if I remember right...)

  The awkward part is handling DATA items in the ivtools libraries (NB
  functions would be much cleaner!).  They are marked as
  __attribute__((dllimport)) in the header files included by the code
  for the executables.

  It's all subject to rust because the imake rules override existing
  ones.

  The idea of building a DLL was to save overall binary size.  In the
  end, I was disappointed that there was no saving: yes, the .exes are
  nice and small, but the resulting DLL is so large that its size
  equals the combined size of all the statically linked executables!
  Maybe I'm linking it inefficiently; someone might want to take a
  look (or they might not).

o I replaced mkdirhier by "mkdir -p" in the configuration since I
  thought mkdirhier was substituting leading // with /; but I can't
  reproduce this problem now: either it's fixed in Cygwin 20.1 or I
  was mistaken.

o I've added the .exe suffix when installing binaries (by changing
  InstallProgram()).

o I seem to remember I had to add a symlink /lib/cpp.exe-><Cygnus> to
  make the install work.

ivtools 6.7 patch
=================

Well, this patch is academic now, as ivtools 7.10 has introduced
Cygwin support (I haven't bothered to figure out how 7.10 addresses
the points below).  Anyway, here it is for the record.  The first
three or four points may be of general interest to Cygwin users, the
rest are, more or less, ivtools-specific.  (Not being an ANSI C expert
I don't know whether it's Gnu C that's out of step in these points.)

o MAXFLOAT, MINFLOAT are not defined in Cygwin Gnu C (expected in
  values.h).

o src/Dispatch/rpcregistry.c: Need to use strerror() (no sys_nerr in
  Cygwin Gnu C).

o No nan.h in Cygwin Gnu C.  There is math.h or ieefp.h instead, which
  have different semantics for comparison with NaN than ivtools uses
  --- I used finite().

o src/IV-X11/xwindow.c: No need to declare ioctl(), but need to
  include asm/socket.h to make things work.  ?

o Filename clash in case-insensitive Windows namespace (so I created a
  script "extract6.7" to unpack) for: drawserv, comterp, Time.h.  (OK,
  I know how 7.10 fixes this one...)

o src/Dispatch/iostreamb.c: need qualification with iosb:: (multiple
  inheritance from CYGWIN streams).

o Declaration of const ints made explicit (only to avoid warnings).

o src/GraphUnidraw/nodecomp.c and src/OverlayUnidraw/ovtext.c:
  in.good() replaces in.good.

o src/Time/Time.c: Was picking up a version of time.h instead of
  Time.h (case-insensitivity again).

o Added Cygwin option to config/InterViews/TIFF.def and
  config/arch.def.

o Created config/InterViews/iv-cygwin.cf and config/site.def.CYGWIN.

o Since there is no configure support in 6.7, I took a shortcut of
  using symlinks: /usr/X11R6->/usr/X11R6.4, /bin/sh.exe-><Cygwin>,
  /etc/termcap-><Cygwin>, /usr/lib/ps->/PSFONTS (not figured out what
  this does!) and /usr/include/g++-><Cygwin>.

Tim Harding

diff -X diffex.txt -Nur ivtools-0.6/config/InterViews/TIFF.def ivtools-0.6.new/config/InterViews/TIFF.def
--- ivtools-0.6/config/InterViews/TIFF.def	Wed Jan 21 00:06:46 1998
+++ ivtools-0.6.new/config/InterViews/TIFF.def	Tue Dec 07 17:42:14 1999
@@ -136,11 +136,17 @@
     -DCOLORIMETRY_SUPPORT -DYCBCR_SUPPORT \
     -DHAVE_IEEEFP=1 -DUSE_VARARGS=1 -DUSE_PROTOTYPES=0 -A nansi
 #endif
-#endif
 #if defined(LinuxArchitecture)
 #define TIFFStdCDefines \
     -DCOLORIMETRY_SUPPORT -DJPEG_SUPPORT -DYCBCR_SUPPORT -DCMYK_SUPPORT \
     -DHAVE_IEEEFP=1 -DUSE_VARARGS=0 -DUSE_PROTOTYPES=1 -DUSE_CONST=1
+#endif
+#if defined(CygwinArchitecture)
+#define TIFFStdCDefines \
+    -DCOLORIMETRY_SUPPORT -DJPEG_SUPPORT -DYCBCR_SUPPORT -DCMYK_SUPPORT \
+    -DHAVE_IEEEFP=1 -DUSE_VARARGS=0 -DUSE_PROTOTYPES=1 -DUSE_CONST=1 \
+    -Dunix
+#endif
 #endif
 
 #ifndef TIFFExtraCDefines
diff -X diffex.txt -Nur ivtools-0.6/config/InterViews/iv-cygwin.cf ivtools-0.6.new/config/InterViews/iv-cygwin.cf
--- ivtools-0.6/config/InterViews/iv-cygwin.cf	Thu Jan 01 00:00:00 1970
+++ ivtools-0.6.new/config/InterViews/iv-cygwin.cf	Mon Dec 13 00:08:00 1999
@@ -0,0 +1,101 @@
+/* 
+ * This is the Cygwin configuration file for Interviews 3.1
+ * Set up to use gcc in local.def
+ */
+
+/* Can optionally include this from X config */
+/* #include <cygwin32.cf> */
+
+#define UnixCpp
+#include <InterViews/xparams.cf>
+
+#ifndef CppCmd
+#define CppCmd `gcc --print-prog-name=cpp | sed 's@\\\\@/@g'`
+#endif
+
+#define MkdirhierCmd mkdir -p /* mkdirhier substitutes leading / for // */
+
+/* Redefine to append .exe (or use --force-exe-suffix ? */
+#define InstallProgram(program,destdir,destname)			@@\
+InstallProgramWithFlags(program,destdir,destname.exe,$(INSTBINFLAGS))
+
+#ifdef UseDLLs
+
+/* Just in case! */
+#undef HasDynamicSharedLibraries
+#define HasDynamicSharedLibraries NO
+
+#define DLLName(libname) libname.dll
+#define DLLImpLib(libname) Concat(lib,libname.a)
+
+#ifdef DLLUseDef
+#define DLLDepDef(libname) $(SRC)/libname.def
+#define DLLDefFlags(libname) --def $(SRC)/libname.def
+#else
+#define DLLDepDef(libname) /**/
+#define DLLDefFlags(libname) --export-all-symbols
+#endif
+
+#define InstallDLL(libname,dest)					@@\
+install:: DLLName(libname)						@@\
+	MakeDir(dest)							@@\
+	$(INSTALL) -c $(INSTLIBFLAGS) DLLName(libname) dest
+
+/* Analog of NormalNonSharedLibraryTarget (or NormalLibraryTarget) */
+/* No way to incorporate rev into DLL yet. */
+#define DLLTarget(libname,rev,depobjs,ldobjs)				@@\
+AllTarget(DLLName(libname))						@@\
+DLLImpLib(libname) : DLLName(libname)					@@\
+AOUT = DLLName(libname)							@@\
+									@@\
+DLLOPTS = DLLOpts							@@\
+DLLTMPOBJ = ds[0-9]*.o d[ht].o						@@\
+DLLTMP = $(DLLTMPOBJ) libname.exp d[htc].s			@@\
+DLLWRAP = dllwrap							@@\
+									@@\
+DLLName(libname) : DLLDepDef(libname) depobjs $(CCDEPLIBS)		@@\
+	@echo "building $@"						@@\
+	$(RM) DLLName(libname)						@@\
+	$(RM) DLLImpLib(libname)					@@\
+	$(RM) $(DLLTMPOBJ)						@@\
+	$(DLLWRAP) $(DLLOPTS) --dllname DLLName(libname) --implib DLLImpLib(libname) DLLDefFlags(libname) ldobjs $(CCLDLIBS) @@\
+									@@\
+clean::									@@\
+	$(RM) DLLName(libname)						@@\
+	$(RM) DLLImpLib(libname)					@@\
+	$(RM) $(DLLTMP)
+
+/* Analog to MakeLibrary */
+#undef MakeDLL
+#define MakeDLL(name,rev)						@@\
+DLLTarget(name,rev,NullParameter,$(OBJS))				@@\
+InstallDLL(name,$(BINDIR))						@@\
+InstallNonSharedLibrary(name,$(LIBDIR))					@@\
+DependTarget()
+
+#define DLLLib $(IVSRC)/DLL/$(ARCH)/DLLImpLib(iv)
+
+/* Redefine with extra libs and some defines */
+/* Note the "." after -o, which forces no appending of .exe */
+#undef BuildProgram
+#define BuildProgram(program,depobjs,ldobjs,deplibs,ldlibs)		@@\
+EXTRA_CCDEFINES = -DDLLIMPORT						@@\
+									@@\
+program: depobjs DLLLib deplibs						@@\
+	RemoveIfUnwritable($@)						@@\
+	$(CCDRIVER) $(CCLDFLAGS) -o $@. ldobjs DLLLib ldlibs
+
+/*
+ * Set up $(CCDEPLIBS) and $(CCLDLIBS) for a program using libX11.
+ */
+#ifndef Use_libX
+#define Use_libX()	 						@@\
+        DEPLIBX11 = Dep_libX11						@@\
+          DEPLIBM = Dep_libm						@@\
+									@@\
+      XLIBDIRPATH = XLibDirPath						@@\
+         LDLIBX11 = Ld_libX11						@@\
+           LDLIBM = Ld_libm
+#endif
+
+#endif /* def UseDLLs */
diff -X diffex.txt -Nur ivtools-0.6/config/arch.def ivtools-0.6.new/config/arch.def
--- ivtools-0.6/config/arch.def	Wed Jul 08 00:03:44 1998
+++ ivtools-0.6.new/config/arch.def	Tue Dec 07 17:42:14 1999
@@ -441,6 +441,18 @@
 #define MacroFile InterViews/iv-alpha.cf
 #endif /* __alpha */
 
+#ifdef __CYGWIN__
+#undef CYGWIN
+#undef cygwin
+#define ArchitectureName CYGWIN
+#define architectureName cygwin
+#define SiteDefCpu <site.def.CYGWIN>
+#define MacroIncludeFile <InterViews/iv-cygwin.cf>
+#define MacroFile iv-cygwin.cf
+/* For TIFF.def */
+#define CygwinArchitecture
+#endif /* __CYGWIN__ */
+
 #ifndef ArchitectureName
 XCOMM WARNING: Imakefile not configured; guessing at definitions!!!
 XCOMM This might mean that BOOTSTRAPCFLAGS was not set when building imake.
diff -X diffex.txt -Nur ivtools-0.6/config/site.def.CYGWIN ivtools-0.6.new/config/site.def.CYGWIN
--- ivtools-0.6/config/site.def.CYGWIN	Thu Jan 01 00:00:00 1970
+++ ivtools-0.6.new/config/site.def.CYGWIN	Sun Dec 12 23:43:40 1999
@@ -0,0 +1,62 @@
+/* Cygwin version */
+
+/* base directory for software projects */
+#define ProjectDir /proj
+
+/* gcc command line with -V for version and -O for optimize */
+/* #define TurnOnOptimizing YES */
+#define TurnOnDebugging YES
+#define CCDriver gcc
+
+/* Define to build (some) DLLs instead of making all libraries static */
+#define UseDLLs
+/* Extra options to dllwrap */
+#define DLLOpts --verbose --strip-all
+/* Use pre-defined DEF files */
+#define DLLUseDef
+
+/* 
+ * build RPC classes -- requires iostreams & TCP sockets
+ */
+#undef BuildRPCClasses
+#define BuildRPCClasses YES 
+#define SOMAXCONN 5
+
+/* libg++ include directory -- usually does not change with new version of libg++ */
+/* Symlink to appropriate Cygnus directory */
+#define GPlusPlusIncludeDir /usr/include/g++
+
+/* machine-specific gcc include directory -- does not change with each new version of gcc */
+#define ToolIncludeDir /usr/local/include
+
+/* link libraries for the above */
+#undef ExtraCCLdLibs
+#define ExtraCCLdLibs -lstdc++ -lm
+
+/* 
+ * Enable/disable relative InterViews-style installation of binaries
+ */
+#undef InstallRelative
+#define InstallRelative YES
+
+/* 
+ * Where to put binaries, libraries, and data files when InstallRelative is NO
+ */ 
+#define BinDir /usr/local/bin
+#define LibDir /usr/local/lib
+#define LibAllDir /usr/local/lib/ivtools
+
+/*
+ * X11 directories -- remember to override XCONFIGDIR the
+ * first time you run "make World".
+ * Or XConfigDir, XIncDir and XLibDir can be set up with symlinks.
+ */
+#define XConfigDir /usr/X11R6/lib/X11/config
+#define XIncDir /usr/X11R6/include
+#define XLibDir /usr/X11R6/lib
+
+/* clippoly directory:  comment out if not available */
+/* #define ClipPolyDir ProjectDir/clippoly */
+
+/* ACE directory: comment out if not available */
+/* #define AceDir ProjectDir/ACE_wrappers */
diff -X diffex.txt -Nur ivtools-0.6/src/Attribute/paramlist.c ivtools-0.6.new/src/Attribute/paramlist.c
--- ivtools-0.6/src/Attribute/paramlist.c	Thu Apr 16 06:36:18 1998
+++ ivtools-0.6.new/src/Attribute/paramlist.c	Tue Dec 07 17:42:14 1999
@@ -86,7 +86,7 @@
     if (_indirection<0)
 	return (char *) base + _offset1;
     else 
-	return *(char **)(base+_indirection) + _offset1;
+	return *((char **)base+_indirection) + _offset1;
 }
 
 void * ParamStruct::addr2(void* base) {
@@ -94,7 +94,7 @@
     if (_indirection<0)
 	return (char *) base + _offset2;
     else 
-	return *(char **)(base+_indirection) + _offset2;
+	return *((char **)base+_indirection) + _offset2;
 }
 
 void * ParamStruct::addr3(void* base) {
@@ -102,7 +102,7 @@
     if (_indirection<0)
 	return (char *) base + _offset3;
     else 
-	return *(char **)(base+_indirection) + _offset3;
+	return *((char **)base+_indirection) + _offset3;
 }
 
 void * ParamStruct::addr4(void* base) {
@@ -110,7 +110,7 @@
     if (_indirection<0)
 	return (char *) base + _offset4;
     else 
-	return *(char **)(base+_indirection) + _offset4;
+	return *((char **)base+_indirection) + _offset4;
 }
 
 /*****************************************************************************/
diff -X diffex.txt -Nur ivtools-0.6/src/DLL/Imakefile ivtools-0.6.new/src/DLL/Imakefile
--- ivtools-0.6/src/DLL/Imakefile	Thu Jan 01 00:00:00 1970
+++ ivtools-0.6.new/src/DLL/Imakefile	Sun Dec 12 23:42:06 1999
@@ -0,0 +1,54 @@
+XCOMM
+XCOMM DLL - build DLL
+XCOMM
+
+PACKAGE = DLL
+
+#ifdef UseDLLs
+#ifdef InObjectCodeDir
+
+LIB = iv
+
+APP_CCDEPLIBS = \
+        $(LIBCOMUTIL) \
+      $(LIBATTRIBUTE) \
+        $(LIBCOMTERP) \
+        $(LIBIVGLYPH) \
+           $(LIBTIME) \
+      $(LIBATTRGLYPH) \
+       $(LIBCOMGLYPH) \
+       $(LIBUNIIDRAW) \
+       $(LIBTOPOFACE) \
+ $(LIBOVERLAYUNIDRAW) \
+     $(LIBCOMUNIDRAW) \
+   $(LIBGRAPHUNIDRAW) \
+   $(LIBFRAMEUNIDRAW) \
+       $(LIBDRAWSERV) \
+       Dep_libUnidraw \
+       Dep_libIV
+
+Use_libX()
+
+#undef DependTarget
+#define DependTarget() /**/
+
+/* Link all object files */
+OBJS = ivld.txt
+$(OBJS) :
+	if for l in $(APP_CCDEPLIBS) ; do ls `dirname $$l`$(SLASH)*.o; done | grep -v 'psfont\.o' | sed -e 's/^/INPUT(/; s/$$/)/' > $@; \
+	then true; \
+	else $(RM) $@; false; \
+	fi	
+clean ::
+	$(RM) $(OBJS)
+
+MakeDLL($(LIB),$(VERSION))
+
+$(AOUT) : $(OBJS)
+
+#else
+
+MakeInObjectCodeDir()
+
+#endif
+#endif
diff -X diffex.txt -Nur ivtools-0.6/src/DLL/iv.def ivtools-0.6.new/src/DLL/iv.def
--- ivtools-0.6/src/DLL/iv.def	Thu Jan 01 00:00:00 1970
+++ ivtools-0.6.new/src/DLL/iv.def	Tue Dec 07 17:42:14 1999
@@ -0,0 +1,389 @@
+EXPORTS
+Activate__12ivInteractor
+Adjust__12ivInteractorR13ivPerspective
+Adjust__12ivTextEditorR13ivPerspective
+BackwardLine__12ivTextEditori
+BackwardPage__12ivTextEditori
+BackwardSearch__12ivTextBufferP8ivRegexpi
+Base__13ivTextDisplayi
+BeginningOfMatch__8ivRegexpi
+BeginningOfText__12ivTextEditor
+Busy__14iv2_6_MenuItem
+Catch__8ivSensorUi
+Change__7ivSceneP12ivInteractor
+Clear__15ivStringBrowser
+Close__9ivControl
+Completions__18ivCompletionEditorPPCcic
+Deactivate__12ivInteractor
+DoChange__11ivMonoSceneP12ivInteractor
+DoInsert__11ivMonoSceneP12ivInteractorUiRiT3
+DoLower__7ivSceneP12ivInteractor
+DoMove__7ivSceneP12ivInteractorRiT2
+DoRaise__7ivSceneP12ivInteractor
+DoRemove__11ivMonoSceneP12ivInteractor
+Done__14iv2_6_MenuItem
+Down__9ivControl
+Draw__11ivMonoScene
+Draw__12ivInteractor
+Edit__12ivTextEditorP12ivTextBufferi
+Edit__14ivStringEditor
+Enable__9ivControlUi
+EndOfMatch__8ivRegexpi
+EndOfText__12ivTextEditor
+Enter__9ivControl
+ForwardLine__12ivTextEditori
+ForwardPage__12ivTextEditori
+ForwardSearch__12ivTextBufferP8ivRegexpi
+GetAttribute__9ivCatalogPCc
+GetAttribute__C12ivInteractorPCc
+GetBgColor__C9ivPainter
+GetComponents__11ivMonoScenePP12ivInteractoriRPP12ivInteractorRi
+GetComponents__12ivInteractorPP12ivInteractoriRPP12ivInteractorRi
+GetFgColor__C9ivPainter
+GetFont__C9ivPainter
+GetRelative__C12ivInteractorRiT1P12ivInteractor
+GetRelative__C12ivInteractorRiT1P7ivWorld
+GetWorld__C12ivInteractor
+GrabScroll__12ivTextEditorR7ivEvent
+Grab__9ivControl
+Handle__12ivInteractorR7ivEvent
+Handle__9ivControlR7ivEvent
+Height__C6ivFont
+Highlight__12ivInteractorUi
+Highlight__7ivSceneUi
+InsertApplication__7ivWorldP12ivInteractor
+InsertApplication__7ivWorldP12ivInteractoriiUi
+InsertTransient__7ivWorldP12ivInteractorT1iiUi
+Insert__15ivStringBrowserPCci
+Insert__7ivSceneP12ivInteractor
+Instance__10OverlayKit
+Instance__6ComKit
+Instance__8FrameKit
+Instance__8GraphKit
+IsGrabbing__9ivControlP12ivInteractor
+Leave__9ivControl
+LineIndex__12ivTextBufferi
+LineNumber__12ivTextBufferi
+LineNumber__13ivTextDisplayi
+ListImpl_range_error__Fl
+Locate__12ivTextEditorii
+Normalize__17iv2_6_FileBrowserPCc
+Open__9ivControl
+Orphan__12ivInteractor
+Orphan__7ivScene
+Path__17iv2_6_FileBrowseri
+Popup__12iv2_6_DialogR7ivEventUi
+Propagate__7ivSceneUi
+RateScroll__12ivTextEditorR7ivEvent
+Read__12ivInteractorR7ivEvent
+Read__12ivInteractorllR7ivEvent
+Reconfig__11ivMonoScene
+Reconfig__12ivTextEditor
+Rect__7ivShapeii
+RedrawList__12ivInteractoriPiN32
+Redraw__12ivInteractoriiii
+Redraw__12ivTextEditoriiii
+Remove__7ivWorldP12ivInteractor
+Reshape__12ivInteractorR7ivShape
+Resize__11ivMonoScene
+Resize__12ivTextEditor
+Rigid__7ivShapeiiii
+ScrollBy__12ivTextEditorii
+ScrollToSelection__12ivTextEditorUi
+Select__12ivTextEditori
+Select__12ivTextEditorii
+Select__14ivStringEditori
+Select__14ivStringEditorii
+Select__9ivControl
+SetClassName__12ivInteractorPCc
+SetColors__9ivPainterPC7ivColorT1
+SetDirectory__17iv2_6_FileBrowserPCc
+SetPattern__9ivPainterPC9ivPattern
+SetTextFilter__17iv2_6_FileBrowserPCc
+SetValue__13ivButtonStatei
+Skip__9ivControl
+Text__14ivStringEditor
+Top__13ivTextDisplayi
+UnRead__12ivInteractorR7ivEvent
+UnselectAll__15ivStringBrowser
+Unselect__9ivControl
+Up__9ivControl
+Update__12ivInteractor
+Width__C6ivFontPCc
+Width__C6ivFontPCci
+Width__C8ivCanvas
+Wrap__7ivSceneP12ivInteractor
+_$_10ivObserver
+_$_11dpIOHandler
+_$_11ivMonoGlyph
+_$_11ivMonoScene
+_$_12__AnyPtrList
+_$_12iv2_6_Dialog
+_$_12ivAdjustable
+_$_12ivInteractor
+_$_12ivTextBuffer
+_$_12ivTextEditor
+_$_13ivTransformer
+_$_14ObservableTime
+_$_14iv2_6_MenuItem
+_$_19ivFieldEditorAction
+_$_19ivFileChooserAction
+_$_6Parser
+_$_7LexScan
+_$_7Scanner
+_$_7ivEvent
+_$_7ivWorld
+_$_8ivAction
+_$_8ivRegexp
+_$_8osString
+_14ivMultiLineObj$_pts_by_n_enabled
+__10ComCatalogPCcP9ivCreator
+__10ComCreator
+__10ScrollableP7ivGlyphP6ivPageff
+__10StrChooserP10StringListP8osStringP11ivWidgetKitP7ivStyleP16StrChooserActionUiPFPv_vPv
+__10StringListl
+__10TerpDialogUiiPPcUi
+__10ivObserver
+__11ComTerpServii
+__11FrameEditorPCcP10OverlayKit
+__11GraphEditorPCcP10OverlayKit
+__11IdrawEditorPCc
+__11dpIOHandler
+__11iv2_6_HGlueii
+__11iv2_6_HGlueiii
+__11iv2_6_VGlueii
+__11iv2_6_VGlueiii
+__11ivMonoGlyphP7ivGlyph
+__11ivMonoScene
+__12BoundedValuefffffPcPf
+__12ComIdrawCompPCcP11OverlayComp
+__12EnumObserverP14ObservableEnumPcf
+__12FrameCatalogPCcP9ivCreator
+__12FrameCreator
+__12GFieldEditorPcP18GFieldEditorActionf
+__12GraphCatalogPCcP9ivCreator
+__12GraphCreator
+__12IdrawCatalogPCcP9ivCreator
+__12IdrawCreator
+__12TextObserverP14ObservableTextPci
+__12__AnyPtrListl
+__12iv2_6_DialogP13ivButtonStateP12ivInteractorUi
+__12ivAdjustable
+__12ivBackgroundP7ivGlyphPC7ivColor
+__12ivInteractor
+__12ivTextBufferPcii
+__12ivTextEditorPCciiii
+__12ivTextEditoriiii
+__12osCopyStringRC8osString
+__13EivTextEditorP7ivStyleUi
+__13MeterObserverP12BoundedValuePcUi
+__13ObsTextEditorP14ObservableTextPci
+__13OverlayEditorPCcP10OverlayKit
+__13iv2_6_MenuBar
+__13ivButtonStatei
+__13ivMarginFrameP12ivInteractori
+__13ivMarginFrameP12ivInteractoriii
+__13ivTransformer
+__14ObservableEnumP10StringListPiPPc
+__14ObservableTextPCcPPc
+__14ObservableTimeP4Time
+__14OverlayCatalogPCcP9ivCreator
+__14OverlayCreator
+__14OverlayUnidrawP9ivCatalogRiPPcP12ivOptionDescP14ivPropertyData
+__14iv2_6_MenuItemP12ivInteractor
+__14ivInputHandlerP7ivGlyphP7ivStyle
+__14ivPulldownMenuP12ivInteractor
+__14ivStringEditorP13ivButtonStatePCcT2
+__15BooleanObserverP17ObservableBooleanPc
+__15CycleEnumEditorP14ObservableEnumPc
+__15RadioEnumEditorP14ObservableEnumPc
+__15ivLRCompositionP7ivGlyphP12ivCompositorT1fffl
+__15ivStringBrowserP13ivButtonStateiiUiiPCc
+__15ivTBCompositionP7ivGlyphP12ivCompositorT1fffl
+__15ivTeXCompositori
+__15ivTelltaleGroup
+__16iv2_6_PushButtonPCcP13ivButtonStatei
+__16iv2_6_VScrollBarP12ivInteractori
+__17BoundedValueTableP10StringListP16BoundedValueList
+__17ObservableBooleanUiPUi
+__17TextEditAppWindowP7ivGlyph
+__17iv2_6_FileBrowserP13ivButtonStatePCciiUiiT2
+__17iv2_6_FileBrowserPCcP13ivButtonStateT1iiUiiT1
+__17ivTransformSetterP7ivGlyphRC13ivTransformer
+__17ivTransientWindowP7ivGlyph
+__18BoundedValueEditorP12BoundedValuePcUi
+__18CheckBooleanEditorP17ObservableBooleanPc
+__18ivCompletionEditorP13ivButtonStatePCcT2
+__18ivSimpleCompositor
+__19ivApplicationWindowP7ivGlyphPCc
+__19ivFieldEditorAction
+__19ivFileChooserAction
+__20BoundedValueObserverP12BoundedValuePc
+__20PaletteBooleanEditorP17ObservableBooleanPc
+__23BoundedValueTableEditorP17BoundedValueTablePc
+__24ivSession_ActionCallbackP9ivSessionPM9ivSessionFP9ivSession_v
+__4Time
+__6Parser
+__6ivHBox
+__6ivHBoxP12ivInteractorN21
+__6ivHBoxP12ivInteractorN31
+__6ivHBoxP12ivInteractorN61
+__6ivHBoxP12ivInteractorT1
+__6ivPageP7ivGlyph
+__6ivVBoxP12ivInteractorN21
+__6ivVBoxP12ivInteractorN41
+__6ivVBoxP12ivInteractorT1
+__7ComTerp
+__7LexScan
+__7Scanner
+__7ivColorffffUi
+__7ivEvent
+__7ivFrameP12ivInteractori
+__7ivPatchP7ivGlyph
+__7ivStyleP7ivStyle
+__7ivWorldPCcRiPPcPC12ivOptionDescPC14ivPropertyData
+__8ivAction
+__8ivDialogP7ivGlyphP7ivStyle
+__8ivRegexpPCc
+__8ivSensori
+__8ivSensoriPC8ivSensor
+__8osString
+__8osStringPCc
+__8osStringRC8osString
+__9ComEditorP11OverlayCompP10OverlayKit
+__9ComEditorPCcP10OverlayKit
+__9TimeGlyphP7ivStyleP14ObservableTimeUi
+__9ivHBorderi
+__9ivMessagePCcT1Uiiii
+__9ivMessagePCcUiiii
+__9ivPainterP9ivPainter
+__9ivPatternPCi
+__9ivSessionPCcRiPPcPC12ivOptionDescPC14ivPropertyDataP9ivDisplay
+__9ivUnidrawP9ivCatalogRiPPcP12ivOptionDescP14ivPropertyData
+__9ivVBorderi
+__as__8osStringPCc
+__as__8osStringRC8osString
+__eq__C8osStringPCc
+__eq__C8osStringRC8osString
+__ge__C8osStringPCc
+__ge__C8osStringRC8osString
+__gt__C8osStringPCc
+__gt__C8osStringRC8osString
+__le__C8osStringPCc
+__le__C8osStringRC8osString
+__lt__C8osStringPCc
+__lt__C8osStringRC8osString
+__ne__C8osStringPCc
+__ne__C8osStringRC8osString
+abort_adjustment__12ivAdjustableUi
+add_defaults__11ComTerpServ
+add_defaults__7ComTerp
+add_edlauncher__13OverlayEditorPCcPFv_P13OverlayEditor
+alias__7ivStylePCc
+allocate__11ivMonoGlyphP8ivCanvasRC12ivAllocationR11ivExtension
+allocate__12ivInteractorP8ivCanvasRC12ivAllocationR11ivExtension
+allotment__C11ivMonoGlyphlUiR11ivAllotment
+allotment__C7ivGlyphlUiR11ivAllotment
+append__11ivMonoGlyphP7ivGlyph
+append__14ObservableEnumRC8osString
+append__17BoundedValueTableRC8osStringP12BoundedValue
+append__7ivGlyphP7ivGlyph
+attach__12ivAdjustableUiP10ivObserver
+attach__12ivObservableP10ivObserver
+attribute__7ivStylePCcT1i
+begin_adjustment__12ivAdjustableUi
+body__11ivMonoGlyphP7ivGlyph
+body__C11ivMonoGlyph
+case_insensitive_equal__C8osStringPCc
+case_insensitive_equal__C8osStringRC8osString
+change__11ivMonoGlyphl
+change__7ivGlyphl
+childStatus__11dpIOHandlerii
+cleanup__10ivResource
+clone__C7ivGlyph
+cm
+commit_adjustment__12ivAdjustableUi
+component__C11ivMonoGlyphl
+component__C7ivGlyphl
+compose__7ivGlyphUi
+constrain__C12ivAdjustableUiRf
+convert__C8osStringRd
+convert__C8osStringRf
+convert__C8osStringRi
+convert__C8osStringRl
+copy__8osMemoryPCvPvUi
+count__C11ivMonoGlyph
+count__C7ivGlyph
+default_display__C9ivSession
+detach__12ivAdjustableUiP10ivObserver
+detach__12ivObservableP10ivObserver
+draw__C11ivMonoGlyphP8ivCanvasRC12ivAllocation
+draw__C12ivInteractorP8ivCanvasRC12ivAllocation
+find_attribute__C7ivStylePCcRf
+focusable__18BoundedValueEditor
+focusable__C13ObsTextEditor
+get_next_token_string__7LexScanRUi
+get_next_token_string__7ScannerRUi
+hash__C8osString
+inches
+insert__10StringListlRC8osString
+insert__11ivMonoGlyphlP7ivGlyph
+insert__16BoundedValueListlP12BoundedValue
+insert__7ivGlyphlP7ivGlyph
+instance__11ivDialogKit
+instance__11ivLayoutKit
+instance__11ivWidgetKit
+instance__12dpDispatcher
+instance__9ivSession
+ivAlign__C12ivInteractorUiiiRiT4
+ivMessage__14ivStringEditorPCc
+ivSelection__15ivStringBrowseri
+large_scroll__12ivAdjustableUif
+large_scroll__C12ivAdjustableUi
+load__13EivTextEditorPCc
+lookup__7ivColorP9ivDisplayPCc
+move__6ivPagelff
+noEvents
+notify__12ivObservable
+notify__C12ivAdjustableUi
+notify_all__C12ivAdjustable
+null_terminated__C8osString
+observable__C12ivAdjustableUi
+open__11osDirectoryRC8osString
+open__11osInputFileRC8osString
+osString__15ivStringBrowseri
+pick__11ivMonoGlyphP8ivCanvasRC12ivAllocationiR5ivHit
+pick__12ivInteractorP8ivCanvasRC12ivAllocationiR5ivHit
+prepend__11ivMonoGlyphP7ivGlyph
+prepend__7ivGlyphP7ivGlyph
+print__C11ivMonoGlyphP9ivPrinterRC12ivAllocation
+print__C7ivGlyphP9ivPrinterRC12ivAllocation
+print_next_expr__6Parser
+ref__10ivResourcePC10ivResource
+ref__C10ivResource
+remove__11ivMonoGlyphl
+remove__7ivGlyphl
+replace__11ivMonoGlyphlP7ivGlyph
+replace__7ivGlyphlP7ivGlyph
+request__C11ivMonoGlyphR13ivRequisition
+request__C12ivInteractorR13ivRequisition
+rotate__13ivTransformerf
+scale_to__12ivAdjustableUif
+search__C8osStringiUc
+set_to_substr__8osStringii
+set_value__8osStringPCc
+set_value__8osStringPCci
+show__6ivPagelUi
+small_scroll__12ivAdjustableUif
+small_scroll__C12ivAdjustableUi
+style__C9ivSession
+substr__C8osStringii
+time__14ObservableTimeP4Time
+undraw__11ivMonoGlyph
+undraw__12ivInteractor
+unidraw
+unref__10ivResourcePC10ivResource
+unref__C10ivResource
+unref_deferred__C10ivResource
+value__14ObservableEnumG8osString
+zoom_to__12ivAdjustablef
diff -X diffex.txt -Nur ivtools-0.6/src/DLL/mkdll ivtools-0.6.new/src/DLL/mkdll
--- ivtools-0.6/src/DLL/mkdll	Thu Jan 01 00:00:00 1970
+++ ivtools-0.6.new/src/DLL/mkdll	Sun Dec 12 14:54:42 1999
@@ -0,0 +1,13 @@
+#!/bin/sh
+# This script can be run after building static binaries.
+# Get all defined external symbols from libraries, with a type tag
+# as the second field and filename as the third.
+nm --extern-only --defined-only --print-file-name `find .. -name lib\*.a -not -name \*-common.a` | sed -ne 's/\([^ ]\+\) \(.\) _\(.*\)/\3 \2 \1/p' | sort > iv.ext
+# Get all undefined (external) symbols from executables.
+for f in `find .. -name a.out`; do nm --print-file-name `dirname $f`/*.o; done | sed -ne 's/\([^ ]\+\)[ ]\+U _\(.*\)/\2 \1/p' | sort > iv.undef
+# Combine to get an EXPORT list.
+(echo EXPORTS; join -o1.1 iv.undef iv.ext | uniq ) > iv.def
+# Combine to get a list of DATA items in dll, with object filenames
+# These symbols are candidates to be made __attribute__((dllimport))
+# in the relevant executable source files.
+join iv.undef iv.ext | awk '$3=="D" {print $1, $2, $4}'
diff -X diffex.txt -Nur ivtools-0.6/src/Dispatch/iostreamb.c ivtools-0.6.new/src/Dispatch/iostreamb.c
--- ivtools-0.6/src/Dispatch/iostreamb.c	Thu Feb 27 23:41:18 1997
+++ ivtools-0.6.new/src/Dispatch/iostreamb.c	Tue Dec 07 17:42:14 1999
@@ -458,8 +458,8 @@
 	return;
     }
 
-    binary(b);
-    char format = binary() ? 'T' : 'F';
+    iosb::binary(b);
+    char format = iosb::binary() ? 'T' : 'F';
 
     *this << format; flush();
     *this >> format;
@@ -468,10 +468,10 @@
 	setstate(ios::badbit);
     }
     else if (format == 'F') {
-	binary(false);
+	iosb::binary(false);
     }
 
-    if (binary()) {
+    if (iosb::binary()) {
 	int indian = 1;
 	char localEndian = (*(char*)&indian) ? 'l' : 'B';
 	char remoteEndian = localEndian;
diff -X diffex.txt -Nur ivtools-0.6/src/Dispatch/rpcregistry.c ivtools-0.6.new/src/Dispatch/rpcregistry.c
--- ivtools-0.6/src/Dispatch/rpcregistry.c	Wed Dec 17 17:06:12 1997
+++ ivtools-0.6.new/src/Dispatch/rpcregistry.c	Tue Dec 07 17:42:14 1999
@@ -44,7 +44,7 @@
 // during a call to a system function.
 
 static ostream& perror(ostream& s) {
-#if defined(sun)
+#if defined(sun) || defined(__CYGWIN__)
     s << ": " << strerror(errno);
 #else
     if (errno > 0 && errno < sys_nerr) {
diff -X diffex.txt -Nur ivtools-0.6/src/DrawServ/comkit.c ivtools-0.6.new/src/DrawServ/comkit.c
--- ivtools-0.6/src/DrawServ/comkit.c	Fri Feb 13 16:30:28 1998
+++ ivtools-0.6.new/src/DrawServ/comkit.c	Tue Dec 07 17:42:14 1999
@@ -93,7 +93,7 @@
 declareActionCallback(ComKit)
 implementActionCallback(ComKit)
 
-static const unit = 15;
+static const int unit = 15;
 
 static int xClosed[] = { unit/5, unit, unit, unit*3/5, 0 };
 static int yClosed[] = { 0, unit/5, unit*3/5, unit, unit*2/5 };
diff -X diffex.txt -Nur ivtools-0.6/src/GraphUnidraw/graphkit.c ivtools-0.6.new/src/GraphUnidraw/graphkit.c
--- ivtools-0.6/src/GraphUnidraw/graphkit.c	Fri Feb 20 17:42:54 1998
+++ ivtools-0.6.new/src/GraphUnidraw/graphkit.c	Tue Dec 07 17:42:14 1999
@@ -117,7 +117,7 @@
 
 implementActionCallback(GraphKit)
 
-static const unit = 15;
+static const int unit = 15;
 
 static int xClosed[] = { unit/5, unit, unit, unit*3/5, 0 };
 static int yClosed[] = { 0, unit/5, unit*3/5, unit, unit*2/5 };
diff -X diffex.txt -Nur ivtools-0.6/src/GraphUnidraw/nodecomp.c ivtools-0.6.new/src/GraphUnidraw/nodecomp.c
--- ivtools-0.6/src/GraphUnidraw/nodecomp.c	Wed Apr 22 16:44:38 1998
+++ ivtools-0.6.new/src/GraphUnidraw/nodecomp.c	Tue Dec 07 17:42:14 1999
@@ -1094,7 +1094,7 @@
     char buf[BUFSIZ];
 
     in >> line_height >> delim;
-    if (in.good)
+    if (in.good())
 	ParamList::parse_text(in, buf, BUFSIZ);    
 
     if (!in.good()) {
diff -X diffex.txt -Nur ivtools-0.6/src/IV-2_6/rubrect.c ivtools-0.6.new/src/IV-2_6/rubrect.c
--- ivtools-0.6/src/IV-2_6/rubrect.c	Thu Feb 27 23:41:24 1997
+++ ivtools-0.6.new/src/IV-2_6/rubrect.c	Tue Dec 07 17:42:14 1999
@@ -31,8 +31,14 @@
 #include <OS/math.h>
 #include <math.h>
 #include <stdlib.h>
+#ifdef __CYGWIN__
+#ifndef MAXFLOAT
+#define	MAXFLOAT	((float)3.40282346638528860e+38)
+#endif
+#else
 #ifndef apollo
 #include <values.h>
+#endif
 #endif
 
 RubberRect::RubberRect(
diff -X diffex.txt -Nur ivtools-0.6/src/IV-X11/xwindow.c ivtools-0.6.new/src/IV-X11/xwindow.c
--- ivtools-0.6/src/IV-X11/xwindow.c	Wed Jul 01 19:15:20 1998
+++ ivtools-0.6.new/src/IV-X11/xwindow.c	Tue Dec 07 17:42:14 1999
@@ -62,11 +62,14 @@
 #include <stropts.h>
 #include <sys/conf.h>
 #endif
-#ifndef __linux__
+#if !defined(__linux__) && !defined(__CYGWIN__)
 /* no standard place for this */
 extern "C" {
     extern int ioctl(int, int, ...);
 }
+#endif
+#ifdef __CYGWIN__
+#include <asm/socket.h>
 #endif
 implementPtrList(WindowVisualList,WindowVisual)
 
diff -X diffex.txt -Nur ivtools-0.6/src/Imakefile ivtools-0.6.new/src/Imakefile
--- ivtools-0.6/src/Imakefile	Wed Jul 08 00:30:12 1998
+++ ivtools-0.6.new/src/Imakefile	Tue Dec 07 17:42:14 1999
@@ -10,6 +10,74 @@
 #define ivxt_name /**/
 #endif
 
+#ifdef UseDLLs
+SUBDIRS = \
+	IV-common \
+	Unidraw-common \
+	\
+	ComUtil \
+	Attribute \
+	ComTerp \
+	\
+	IV \
+	InterViews \
+	IV-2_6 \
+	IV-X11 \
+	OS \
+	TIFF \
+	Dispatch \
+	\
+	Time \
+	IVGlyph \
+	\
+	AttrGlyph \
+	ComGlyph \
+	\
+	Unidraw \
+	UniIdraw \
+	\
+	TopoFace \
+	OverlayUnidraw \
+	\
+	ComUnidraw \
+	\
+	GraphUnidraw \
+	\
+	FrameUnidraw \
+	\
+	DrawServ \
+	\
+	DLL \
+	\
+	comtest \
+	_comterp \
+	\
+	dclock \
+	iclass \
+	idemo \
+	\
+	glyphs \
+	\
+	glyphterp \
+	\
+	idraw \
+	\
+	drawtool \
+	\
+	comdraw \
+	\
+	graphdraw \
+	\
+	flipbook \
+	\
+	_drawserv \
+	\
+	include \
+	scripts \
+	\
+	ivxt_name \
+	man
+#else
 SUBDIRS = \
 	IV-common \
 	Unidraw-common \
@@ -18,7 +86,7 @@
 	Attribute \
 	ComTerp \
 	comtest \
-	comterp \
+	_comterp \
 	\
 	IV \
 	InterViews \
@@ -57,12 +125,13 @@
 	flipbook \
 	\
 	DrawServ \
-	drawserv \
+	_drawserv \
 	\
 	include \
 	scripts \
 	\
 	ivxt_name \
 	man
+#endif
 
 MakeInSubdirs($(SUBDIRS))
diff -X diffex.txt -Nur ivtools-0.6/src/OverlayUnidraw/grayraster.c ivtools-0.6.new/src/OverlayUnidraw/grayraster.c
--- ivtools-0.6/src/OverlayUnidraw/grayraster.c	Tue Jul 07 16:55:42 1998
+++ ivtools-0.6.new/src/OverlayUnidraw/grayraster.c	Tue Dec 07 17:42:14 1999
@@ -30,7 +30,9 @@
 
 #include <OS/math.h>
 #include <math.h>
+#ifndef __CYGWIN__
 #include <nan.h>
+#endif
 
 #include <OverlayUnidraw/grayraster.h>
 #include <OverlayUnidraw/ovcatalog.h>
@@ -688,10 +690,14 @@
     for(int x=0; x < w; x++) {
       for(int y=0; y < h; y++) {
 	me->vpeek(x, h-y-1, av);
+#ifdef __CYGWIN__
+	if (!finite(av.double_val())) continue;
+#else
 #if !defined(__svr4__) && !defined(__alpha)
 	if (av.double_val()==NAN) continue;
 #else
 	if (IsNANorINF(av.double_val)) continue;
+#endif
 #endif
 	if (av.double_val()<dmin) dmin = av.double_val();
 	if (av.double_val()>dmax) dmax = av.double_val();
diff -X diffex.txt -Nur ivtools-0.6/src/OverlayUnidraw/ovkit.c ivtools-0.6.new/src/OverlayUnidraw/ovkit.c
--- ivtools-0.6/src/OverlayUnidraw/ovkit.c	Wed Jul 08 01:27:40 1998
+++ ivtools-0.6.new/src/OverlayUnidraw/ovkit.c	Tue Dec 07 17:42:14 1999
@@ -167,7 +167,7 @@
 static const char* grid_y_incr = "gridyincr";
 static const char* scribble_pointer_attrib = "scribble_pointer";
 
-static const unit = 15;
+static const int unit = 15;
 
 static int xClosed[] = { unit/5, unit, unit, unit*3/5, 0 };
 static int yClosed[] = { 0, unit/5, unit*3/5, unit, unit*2/5 };
diff -X diffex.txt -Nur ivtools-0.6/src/OverlayUnidraw/ovtext.c ivtools-0.6.new/src/OverlayUnidraw/ovtext.c
--- ivtools-0.6/src/OverlayUnidraw/ovtext.c	Wed Jan 21 01:14:46 1998
+++ ivtools-0.6.new/src/OverlayUnidraw/ovtext.c	Tue Dec 07 17:42:14 1999
@@ -457,7 +457,7 @@
     char buf[BUFSIZ];
 
     in >> line_height >> delim;
-    if (in.good)
+    if (in.good())
 	ParamList::parse_text(in, buf, BUFSIZ);    
 
     if (!in.good()) {
diff -X diffex.txt -Nur ivtools-0.6/src/Time/Time.c ivtools-0.6.new/src/Time/Time.c
--- ivtools-0.6/src/Time/Time.c	Tue Jun 23 01:04:16 1998
+++ ivtools-0.6.new/src/Time/Time.c	Tue Dec 07 17:42:14 1999
@@ -29,7 +29,7 @@
 */
 
 #include <Time/Date.h>
-#include <Time/Time.h>
+#include <Time/Time_.h>
 #include <iomanip.h>
 
 #include <stdio.h>
@@ -51,7 +51,11 @@
 
 #endif
 
-#if defined(BSD) || defined(hpux) || defined(linux) || defined(__sun) || defined(__alpha)
+#if defined(BSD) || defined(hpux) || defined(linux) || defined(__sun) || defined(__alpha) || defined(__CYGWIN__)
+
+#ifdef __CYGWIN__
+#include <time.h>
+#endif
 
 #ifdef hpux
 #include <time.h>
diff -X diffex.txt -Nur ivtools-0.6/src/Time/obstime.h ivtools-0.6.new/src/Time/obstime.h
--- ivtools-0.6/src/Time/obstime.h	Thu Feb 27 23:41:40 1997
+++ ivtools-0.6.new/src/Time/obstime.h	Tue Dec 07 17:42:14 1999
@@ -25,7 +25,7 @@
 #define obstime_h
 
 #include <InterViews/observe.h>
-#include <Time/Time.h>
+#include <Time/Time_.h>
 
 class ObservableTime : public Observable {
 public:
diff -X diffex.txt -Nur ivtools-0.6/src/Time/timeglyph.c ivtools-0.6.new/src/Time/timeglyph.c
--- ivtools-0.6/src/Time/timeglyph.c	Thu Feb 27 23:41:40 1997
+++ ivtools-0.6.new/src/Time/timeglyph.c	Tue Dec 07 17:42:14 1999
@@ -22,7 +22,7 @@
  */
 
 #include <InterViews/enter-scope.h>
-#include <Time/Time.h>
+#include <Time/Time_.h>
 #include <Time/Date.h>
 #include <Time/obstime.h>
 #include <Time/timeglyph.h>
diff -X diffex.txt -Nur ivtools-0.6/src/TopoFace/Imakefile ivtools-0.6.new/src/TopoFace/Imakefile
--- ivtools-0.6/src/TopoFace/Imakefile	Tue Dec 23 17:56:02 1997
+++ ivtools-0.6.new/src/TopoFace/Imakefile	Tue Dec 07 17:42:14 1999
@@ -8,7 +8,7 @@
 
 LIB = TopoFace
 
-Use_libUnidraw();
+Use_libUnidraw()
 Use_2_6()
 
 MakeLibrary($(LIB),$(VERSION))
diff -X diffex.txt -Nur ivtools-0.6/src/TopoFace/topoelt.c ivtools-0.6.new/src/TopoFace/topoelt.c
--- ivtools-0.6/src/TopoFace/topoelt.c	Tue Dec 23 17:37:00 1997
+++ ivtools-0.6.new/src/TopoFace/topoelt.c	Tue Dec 07 17:42:14 1999
@@ -22,7 +22,16 @@
 
 #include <TopoFace/topoelt.h>
 
+#ifdef __CYGWIN__
+#ifndef MAXFLOAT
+#define	MAXFLOAT	((float)3.40282346638528860e+38)
+#endif
+#ifndef MINFLOAT
+#define	MINFLOAT	((float)1.40129846432481707e-45)
+#endif
+#else
 #include <values.h>
+#endif
 
 /****************************************************************************/
 
diff -X diffex.txt -Nur ivtools-0.6/src/UniIdraw/ided.c ivtools-0.6.new/src/UniIdraw/ided.c
--- ivtools-0.6/src/UniIdraw/ided.c	Wed Jan 21 01:12:00 1998
+++ ivtools-0.6.new/src/UniIdraw/ided.c	Tue Dec 07 17:42:14 1999
@@ -355,7 +355,7 @@
     return commands;
 }
 
-static const unit = 15;
+static const int unit = 15;
 
 static Coord xClosed[] = { unit/5, unit, unit, unit*3/5, 0 };
 static Coord yClosed[] = { 0, unit/5, unit*3/5, unit, unit*2/5 };
diff -X diffex.txt -Nur ivtools-0.6/src/glyphs/gclock/main.c ivtools-0.6.new/src/glyphs/gclock/main.c
--- ivtools-0.6/src/glyphs/gclock/main.c	Thu Feb 27 23:41:50 1997
+++ ivtools-0.6.new/src/glyphs/gclock/main.c	Tue Dec 07 17:42:14 1999
@@ -24,7 +24,7 @@
 #include <InterViews/enter-scope.h>
 #include <Dispatch/dispatcher.h>
 #include <Dispatch/iocallback.h>
-#include <Time/Time.h>
+#include <Time/Time_.h>
 #include <Time/Date.h>
 #include <Time/obstime.h>
 #include <Time/timeglyph.h>
diff -X diffex.txt -Nur ivtools-0.6/src/glyphs/timestamp/main.c ivtools-0.6.new/src/glyphs/timestamp/main.c
--- ivtools-0.6/src/glyphs/timestamp/main.c	Thu Feb 27 23:41:52 1997
+++ ivtools-0.6.new/src/glyphs/timestamp/main.c	Tue Dec 07 17:42:14 1999
@@ -22,7 +22,7 @@
  */
 
 #include <InterViews/enter-scope.h>
-#include <Time/Time.h>
+#include <Time/Time_.h>
 #include <Time/Date.h>
 #include <Time/timeglyph.h>
 #include <IV-look/kit.h>
diff -X diffex.txt -Nur ivtools-0.6/src/include/IV-2_6/InterViews/sensor.h ivtools-0.6.new/src/include/IV-2_6/InterViews/sensor.h
--- ivtools-0.6/src/include/IV-2_6/InterViews/sensor.h	Thu Feb 27 23:41:56 1997
+++ ivtools-0.6.new/src/include/IV-2_6/InterViews/sensor.h	Tue Dec 07 17:42:14 1999
@@ -83,7 +83,11 @@
 extern Sensor* allEvents;
 extern Sensor* onoffEvents;
 extern Sensor* updownEvents;
-extern Sensor* noEvents;
+extern Sensor* noEvents
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+;
 
 #include <InterViews/_leave.h>
 
diff -X diffex.txt -Nur ivtools-0.6/src/include/InterViews/coord.h ivtools-0.6.new/src/include/InterViews/coord.h
--- ivtools-0.6/src/include/InterViews/coord.h	Wed Jan 21 01:46:14 1998
+++ ivtools-0.6.new/src/include/InterViews/coord.h	Tue Dec 07 17:42:14 1999
@@ -47,7 +47,15 @@
 typedef int _lib_iv2_6(Coord);
 
 #ifndef PDP_PLUS_PLUS
-extern double inch, inches, cm, mm, point, points;
+extern double inch, inches
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+, cm
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+, mm, point, points;
 static const int pixels = 1;
 #define ivinch inch
 #define ivinches inches
diff -X diffex.txt -Nur ivtools-0.6/src/include/Unidraw/Graphic/geomobjs.h ivtools-0.6.new/src/include/Unidraw/Graphic/geomobjs.h
--- ivtools-0.6/src/include/Unidraw/Graphic/geomobjs.h	Thu May 01 18:16:46 1997
+++ ivtools-0.6.new/src/include/Unidraw/Graphic/geomobjs.h	Tue Dec 07 17:42:14 1999
@@ -118,7 +118,11 @@
 protected:
     static UList** _pts_by_n;
     static int _pts_by_n_size;
-    static boolean _pts_by_n_enabled;
+    static boolean _pts_by_n_enabled
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+;
 };
 
 class FillPolygonObj : public MultiLineObj {
diff -X diffex.txt -Nur ivtools-0.6/src/include/Unidraw/globals.h ivtools-0.6.new/src/include/Unidraw/globals.h
--- ivtools-0.6/src/include/Unidraw/globals.h	Thu Feb 27 23:42:08 1997
+++ ivtools-0.6.new/src/include/Unidraw/globals.h	Tue Dec 07 17:42:14 1999
@@ -89,7 +89,11 @@
  */
 
 extern CSolver* csolver;
-extern Unidraw* unidraw;
+extern Unidraw* unidraw
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+;
 
 extern PSColor* psblack;
 extern PSColor* pswhite;
#!/bin/sh

IVDIR=ivtools-0.6
IVZIP=//d/TEMP/ivtools-0_6_7.gz

tar xzf $IVZIP --exclude=$IVDIR/src/ComTerp/\* --exclude=$IVDIR/src/DrawServ/\*
mv $IVDIR/src/comterp $IVDIR/src/_comterp
mv $IVDIR/src/drawserv $IVDIR/src/_drawserv
tar xzf $IVZIP $IVDIR/src/ComTerp $IVDIR/src/DrawServ
mv $IVDIR/src/Time/Time.h $IVDIR/src/Time/Time_.h
bin
lib
man
*~
Makefile
Makefile.bak
config.cache
config-default-gcc.defs
config.mk
config.log
config.status
*.core
*.rej
*.orig
CYGWIN
ivmkmf
IV-common
Unidraw-common
iv.undef
iv.ext
diff -X diffex.txt -Nur ivtools-0.7/config/InterViews/iv-cygwin.cf ivtools-0.7.new/config/InterViews/iv-cygwin.cf
--- ivtools-0.7/config/InterViews/iv-cygwin.cf	Fri Sep 03 19:30:28 1999
+++ ivtools-0.7.new/config/InterViews/iv-cygwin.cf	Mon Dec 13 00:04:10 1999
@@ -8,3 +8,89 @@
 
 #include <InterViews/xparams.cf>
 
+#define MkdirhierCmd mkdir -p /* mkdirhier substitutes leading / for // ? */
+
+/* Redefine to append .exe (or use --force-exe-suffix ? */
+#define InstallProgram(program,destdir,destname)			@@\
+InstallProgramWithFlags(program,destdir,destname.exe,$(INSTBINFLAGS))
+
+#ifdef UseDLLs
+
+/* Just in case! */
+#undef HasDynamicSharedLibraries
+#define HasDynamicSharedLibraries NO
+
+#define DLLName(libname) libname.dll
+#define DLLImpLib(libname) Concat(lib,libname.a)
+
+#ifdef DLLUseDef
+#define DLLDepDef(libname) $(SRC)/libname.def
+#define DLLDefFlags(libname) --def $(SRC)/libname.def
+#else
+#define DLLDepDef(libname) /**/
+#define DLLDefFlags(libname) --export-all-symbols
+#endif
+
+#define InstallDLL(libname,dest)					@@\
+install:: DLLName(libname)						@@\
+	MakeDir(dest)							@@\
+	$(INSTALL) -c $(INSTLIBFLAGS) DLLName(libname) dest
+
+/* Analog of NormalNonSharedLibraryTarget (or NormalLibraryTarget) */
+/* No way to incorporate rev into DLL yet. */
+#define DLLTarget(libname,rev,depobjs,ldobjs)				@@\
+AllTarget(DLLName(libname))						@@\
+DLLImpLib(libname) : DLLName(libname)					@@\
+AOUT = DLLName(libname)							@@\
+									@@\
+DLLOPTS = DLLOpts							@@\
+DLLTMPOBJ = ds[0-9]*.o d[ht].o						@@\
+DLLTMP = $(DLLTMPOBJ) libname.exp d[htc].s			@@\
+DLLWRAP = dllwrap							@@\
+									@@\
+DLLName(libname) : DLLDepDef(libname) depobjs $(CCDEPLIBS)		@@\
+	@echo "building $@"						@@\
+	$(RM) DLLName(libname)						@@\
+	$(RM) DLLImpLib(libname)					@@\
+	$(RM) $(DLLTMPOBJ)						@@\
+	$(DLLWRAP) $(DLLOPTS) --dllname DLLName(libname) --implib DLLImpLib(libname) DLLDefFlags(libname) ldobjs $(CCLDLIBS) @@\
+									@@\
+clean::									@@\
+	$(RM) DLLName(libname)						@@\
+	$(RM) DLLImpLib(libname)					@@\
+	$(RM) $(DLLTMP)
+
+/* Analog to MakeLibrary */
+#undef MakeDLL
+#define MakeDLL(name,rev)						@@\
+DLLTarget(name,rev,NullParameter,$(OBJS))				@@\
+InstallDLL(name,$(BINDIR))						@@\
+InstallNonSharedLibrary(name,$(LIBDIR))					@@\
+DependTarget()
+
+#define DLLLib $(IVSRC)/DLL/$(ARCH)/DLLImpLib(iv)
+
+/* Redefine with extra libs and some defines */
+/* Note the "." after -o, which forces no appending of .exe */
+#undef BuildProgram
+#define BuildProgram(program,depobjs,ldobjs,deplibs,ldlibs)		@@\
+EXTRA_CCDEFINES = -DDLLIMPORT						@@\
+									@@\
+program: depobjs DLLLib deplibs						@@\
+	RemoveIfUnwritable($@)						@@\
+	$(CCDRIVER) $(CCLDFLAGS) -o $@. ldobjs DLLLib ldlibs
+
+/*
+ * Set up $(CCDEPLIBS) and $(CCLDLIBS) for a program using libX11.
+ */
+#ifndef Use_libX
+#define Use_libX()	 						@@\
+        DEPLIBX11 = Dep_libX11						@@\
+          DEPLIBM = Dep_libm						@@\
+									@@\
+      XLIBDIRPATH = XLibDirPath						@@\
+         LDLIBX11 = Ld_libX11						@@\
+           LDLIBM = Ld_libm
+#endif
+
+#endif /* def UseDLLs */
diff -X diffex.txt -Nur ivtools-0.7/config/site.def.CYGWIN ivtools-0.7.new/config/site.def.CYGWIN
--- ivtools-0.7/config/site.def.CYGWIN	Fri Sep 03 19:51:32 1999
+++ ivtools-0.7.new/config/site.def.CYGWIN	Sun Dec 12 23:39:10 1999
@@ -8,3 +8,14 @@
 /* file output by configure script */
 #include "config-default-gcc.defs"
 
+/* Define to build (some) DLLs instead of making all libraries static */
+#define UseDLLs
+/* Extra options to dllwrap */
+/* --noinhibit-exec is because of symbols defined in psfont.o referenced
+   by some executables in examples3.1.  We have removed psfont.o from the
+   DLL link because of a symbol clash of PSFont::~PSFont between it and
+   pspaint.o.  The examples might pick the symbol up from the static library
+   instead. */
+#define DLLOpts --verbose --strip-all -Wl,--noinhibit-exec
+/* Use pre-defined DEF files */
+#define DLLUseDef
diff -X diffex.txt -Nur ivtools-0.7/src/DLL/Imakefile ivtools-0.7.new/src/DLL/Imakefile
--- ivtools-0.7/src/DLL/Imakefile	Thu Jan 01 00:00:00 1970
+++ ivtools-0.7.new/src/DLL/Imakefile	Sun Dec 12 23:02:42 1999
@@ -0,0 +1,54 @@
+XCOMM
+XCOMM DLL - build DLL
+XCOMM
+
+PACKAGE = DLL
+
+#ifdef UseDLLs
+#ifdef InObjectCodeDir
+
+LIB = iv
+
+APP_CCDEPLIBS = \
+        $(LIBCOMUTIL) \
+      $(LIBATTRIBUTE) \
+        $(LIBCOMTERP) \
+        $(LIBIVGLYPH) \
+           $(LIBTIME) \
+      $(LIBATTRGLYPH) \
+       $(LIBCOMGLYPH) \
+       $(LIBUNIIDRAW) \
+       $(LIBTOPOFACE) \
+ $(LIBOVERLAYUNIDRAW) \
+     $(LIBCOMUNIDRAW) \
+   $(LIBGRAPHUNIDRAW) \
+   $(LIBFRAMEUNIDRAW) \
+       $(LIBDRAWSERV) \
+       Dep_libUnidraw \
+       Dep_libIV
+
+Use_libX()
+
+#undef DependTarget
+#define DependTarget() /**/
+
+/* Link all object files */
+OBJS = ivld.txt
+$(OBJS) :
+	if for l in $(APP_CCDEPLIBS) ; do ls `dirname $$l`$(SLASH)*.o; done | grep -v 'psfont\.o' | sed -e 's/^/INPUT(/; s/$$/)/' > $@; \
+	then true; \
+	else $(RM) $@; false; \
+	fi	
+clean ::
+	$(RM) $(OBJS)
+
+MakeDLL($(LIB),$(VERSION))
+
+$(AOUT) : $(OBJS)
+
+#else
+
+MakeInObjectCodeDir()
+
+#endif
+#endif
diff -X diffex.txt -Nur ivtools-0.7/src/DLL/iv.def ivtools-0.7.new/src/DLL/iv.def
--- ivtools-0.7/src/DLL/iv.def	Thu Jan 01 00:00:00 1970
+++ ivtools-0.7.new/src/DLL/iv.def	Sun Dec 12 23:03:44 1999
@@ -0,0 +1,551 @@
+EXPORTS
+Activate__12ivInteractor
+Adjust__12ivInteractorR13ivPerspective
+Adjust__12ivTextEditorR13ivPerspective
+BackwardLine__12ivTextEditori
+BackwardPage__12ivTextEditori
+BackwardSearch__12ivTextBufferP8ivRegexpi
+Base__13ivTextDisplayi
+BeginningOfMatch__8ivRegexpi
+BeginningOfText__12ivTextEditor
+Busy__14iv2_6_MenuItem
+Catch__8ivSensorUi
+Change__7ivSceneP12ivInteractor
+Clear__15ivStringBrowser
+Close__9ivControl
+Completions__18ivCompletionEditorPPCcic
+Deactivate__12ivInteractor
+DoChange__11ivMonoSceneP12ivInteractor
+DoInsert__11ivMonoSceneP12ivInteractorUiRiT3
+DoLower__7ivSceneP12ivInteractor
+DoMove__7ivSceneP12ivInteractorRiT2
+DoRaise__7ivSceneP12ivInteractor
+DoRemove__11ivMonoSceneP12ivInteractor
+Done__14iv2_6_MenuItem
+Down__9ivControl
+Draw__11ivMonoScene
+Draw__12ivInteractor
+Edit__12ivTextEditorP12ivTextBufferi
+Edit__14ivStringEditor
+Enable__9ivControlUi
+EndOfMatch__8ivRegexpi
+EndOfText__12ivTextEditor
+Enter__9ivControl
+ForwardLine__12ivTextEditori
+ForwardPage__12ivTextEditori
+ForwardSearch__12ivTextBufferP8ivRegexpi
+GetAttribute__9ivCatalogPCc
+GetAttribute__C12ivInteractorPCc
+GetBgColor__C9ivPainter
+GetComponents__11ivMonoScenePP12ivInteractoriRPP12ivInteractorRi
+GetComponents__12ivInteractorPP12ivInteractoriRPP12ivInteractorRi
+GetFgColor__C9ivPainter
+GetFont__C9ivPainter
+GetRelative__C12ivInteractorRiT1P12ivInteractor
+GetRelative__C12ivInteractorRiT1P7ivWorld
+GetWorld__C12ivInteractor
+GrabScroll__12ivTextEditorR7ivEvent
+Grab__9ivControl
+Handle__12ivInteractorR7ivEvent
+Handle__9ivControlR7ivEvent
+Height__C6ivFont
+Highlight__12ivInteractorUi
+Highlight__7ivSceneUi
+InsertApplication__7ivWorldP12ivInteractor
+InsertApplication__7ivWorldP12ivInteractoriiUi
+InsertTransient__7ivWorldP12ivInteractorT1iiUi
+Insert__15ivStringBrowserPCci
+Insert__7ivSceneP12ivInteractor
+Instance__10OverlayKit
+Instance__7DrawKit
+Instance__8FrameKit
+Instance__8GraphKit
+InvTransform__C13ivTransformerffRfT3
+IsGrabbing__9ivControlP12ivInteractor
+Leave__9ivControl
+LineIndex__12ivTextBufferi
+LineNumber__12ivTextBufferi
+LineNumber__13ivTextDisplayi
+ListImpl_best_new_count__FlUi
+ListImpl_range_error__Fl
+Locate__12ivTextEditorii
+Normalize__17iv2_6_FileBrowserPCc
+Open__9ivControl
+Orphan__12ivInteractor
+Orphan__7ivScene
+Path__17iv2_6_FileBrowseri
+Popup__12iv2_6_DialogR7ivEventUi
+Propagate__7ivSceneUi
+RateScroll__12ivTextEditorR7ivEvent
+Read__12ivInteractorR7ivEvent
+Read__12ivInteractorllR7ivEvent
+Reconfig__11ivMonoScene
+Reconfig__12ivTextEditor
+Rect__7ivShapeii
+RedrawList__12ivInteractoriPiN32
+Redraw__12ivInteractoriiii
+Redraw__12ivTextEditoriiii
+Remove__7ivWorldP12ivInteractor
+Reshape__12ivInteractorR7ivShape
+Resize__11ivMonoScene
+Resize__12ivTextEditor
+Rigid__7ivShapeiiii
+ScrollBy__12ivTextEditorii
+ScrollToSelection__12ivTextEditorUi
+Select__12ivTextEditori
+Select__12ivTextEditorii
+Select__14ivStringEditori
+Select__14ivStringEditorii
+Select__9ivControl
+SetClassName__12ivInteractorPCc
+SetColors__9ivPainterPC7ivColorT1
+SetDirectory__17iv2_6_FileBrowserPCc
+SetPattern__9ivPainterPC9ivPattern
+SetTextFilter__17iv2_6_FileBrowserPCc
+SetValue__13ivButtonStatei
+Skip__9ivControl
+Text__14ivStringEditor
+Top__13ivTextDisplayi
+Transform__C13ivTransformerffRfT3
+UnRead__12ivInteractorR7ivEvent
+UnselectAll__15ivStringBrowser
+Unselect__9ivControl
+Up__9ivControl
+Update__12ivInteractor
+Width__C6ivFontPCc
+Width__C6ivFontPCci
+Width__C7ivBrush
+Width__C8ivCanvas
+Wrap__7ivSceneP12ivInteractor
+_$_10ivObserver
+_$_10ivResource
+_$_11dpIOHandler
+_$_11ivMonoGlyph
+_$_11ivMonoScene
+_$_12__AnyPtrList
+_$_12iv2_6_Dialog
+_$_12ivAdjustable
+_$_12ivInteractor
+_$_12ivTextBuffer
+_$_12ivTextEditor
+_$_12osCopyString
+_$_13ivTransformer
+_$_14ObservableTime
+_$_14iv2_6_MenuItem
+_$_14ivInputHandler
+_$_15ivTelltaleGroup
+_$_15ivTelltaleState
+_$_19ivFieldEditorAction
+_$_19ivFileChooserAction
+_$_22osNullTerminatedString
+_$_4Drag
+_$_6Parser
+_$_7LexScan
+_$_7Scanner
+_$_7ivEvent
+_$_7ivGlyph
+_$_7ivPatch
+_$_7ivWorld
+_$_8DragZone
+_$_8ivAction
+_$_8ivButton
+_$_8ivRegexp
+_$_8osString
+_$_9ivHandler
+_14ivMultiLineObj$_pts_by_n_enabled
+__10ScrollableP7ivGlyphP6ivPageff
+__10StrChooserP10StringListP8osStringP11ivWidgetKitP7ivStyleP16StrChooserActionUiPFPv_vPv
+__10StringListl
+__10TerpDialogUiiPPcUi
+__10ivObserver
+__10ivPointObjii
+__10ivResource
+__11ComTerpServii
+__11DrawCatalogPCcP9ivCreator
+__11DrawCreator
+__11FrameEditorP11OverlayCompP10OverlayKit
+__11FrameEditorPCcP10OverlayKit
+__11GraphEditorPCcP10OverlayKit
+__11IdrawEditorPCc
+__11dpIOHandler
+__11iv2_6_HGlueii
+__11iv2_6_HGlueiii
+__11iv2_6_VGlueii
+__11iv2_6_VGlueiii
+__11ivCharacterlPC6ivFontPC7ivColor
+__11ivExtension
+__11ivMonoGlyphP7ivGlyph
+__11ivMonoScene
+__12BoundedValuefffffPcPf
+__12DragZoneSinkP7ivGlyph
+__12EnumObserverP14ObservableEnumPcf
+__12FrameCatalogPCcP9ivCreator
+__12FrameCreator
+__12GFieldEditorPcP18GFieldEditorActionf
+__12GraphCatalogPCcP9ivCreator
+__12GraphCreator
+__12IdrawCatalogPCcP9ivCreator
+__12IdrawCreator
+__12TextObserverP14ObservableTextPci
+__12__AnyPtrListl
+__12iv2_6_DialogP13ivButtonStateP12ivInteractorUi
+__12ivAdjustable
+__12ivAllocation
+__12ivAllocationRC12ivAllocation
+__12ivBackgroundP7ivGlyphPC7ivColor
+__12ivFontFamilyPCc
+__12ivInteractor
+__12ivTextBufferPcii
+__12ivTextEditorPCciiii
+__12ivTextEditoriiii
+__12osCopyString
+__12osCopyStringRC8osString
+__13DrawIdrawCompPCcP11OverlayComp
+__13EivTextEditorP7ivStyleUi
+__13MeterObserverP12BoundedValuePcUi
+__13ObsTextEditorP14ObservableTextPci
+__13OverlayEditorPCcP10OverlayKit
+__13iv2_6_MenuBar
+__13ivButtonStatei
+__13ivMarginFrameP12ivInteractori
+__13ivMarginFrameP12ivInteractoriii
+__13ivRequirementffffff
+__13ivRequisition
+__13ivTransformer
+__13ivTransformerPC13ivTransformer
+__13ivTransformerffffff
+__14ObservableEnumP10StringListPiPPc
+__14ObservableTextPCcPPc
+__14ObservableTimeP4Time
+__14OverlayCatalogPCcP9ivCreator
+__14OverlayCreator
+__14OverlayUnidrawP9ivCatalogRiPPcP12ivOptionDescP14ivPropertyData
+__14iv2_6_MenuItemP12ivInteractor
+__14ivInputHandlerP7ivGlyphP7ivStyle
+__14ivPulldownMenuP12ivInteractor
+__14ivStringEditorP13ivButtonStatePCcT2
+__15BooleanObserverP17ObservableBooleanPc
+__15CycleEnumEditorP14ObservableEnumPc
+__15RadioEnumEditorP14ObservableEnumPcUiUi
+__15ivLRCompositionP7ivGlyphP12ivCompositorT1fffl
+__15ivStringBrowserP13ivButtonStateiiUiiPCc
+__15ivTBCompositionP7ivGlyphP12ivCompositorT1fffl
+__15ivTeXCompositori
+__15ivTelltaleGroup
+__15ivTelltaleStateUi
+__16iv2_6_PushButtonPCcP13ivButtonStatei
+__16iv2_6_VScrollBarP12ivInteractori
+__17BoundedValueTableP10StringListP16BoundedValueList
+__17ObservableBooleanUiPUi
+__17TextEditAppWindowP7ivGlyph
+__17iv2_6_FileBrowserP13ivButtonStatePCciiUiiT2
+__17iv2_6_FileBrowserPCcP13ivButtonStateT1iiUiiT1
+__17ivTransformFitterP7ivGlyph
+__17ivTransformSetterP7ivGlyph
+__17ivTransformSetterP7ivGlyphRC13ivTransformer
+__17ivTransientWindowP7ivGlyph
+__18BoundedValueEditorP12BoundedValuePcUi
+__18CheckBooleanEditorP17ObservableBooleanPc
+__18ivCompletionEditorP13ivButtonStatePCcT2
+__18ivSimpleCompositor
+__19ivApplicationWindowP7ivGlyph
+__19ivFieldEditorAction
+__19ivFileChooserAction
+__20BoundedValueObserverP12BoundedValuePc
+__20PaletteBooleanEditorP17ObservableBooleanPc
+__22osNullTerminatedStringRC8osString
+__23BoundedValueTableEditorP17BoundedValueTablePc
+__24ivSession_ActionCallbackP9ivSessionPM9ivSessionFP9ivSession_v
+__4DateUsPCcUs
+__4DragP7ivGlyph
+__4Time
+__6Parser
+__6ivHBox
+__6ivHBoxP12ivInteractorN21
+__6ivHBoxP12ivInteractorN31
+__6ivHBoxP12ivInteractorN61
+__6ivHBoxP12ivInteractorT1
+__6ivPageP7ivGlyph
+__6ivVBoxP12ivInteractorN21
+__6ivVBoxP12ivInteractorN41
+__6ivVBoxP12ivInteractorT1
+__7ComTerp
+__7LexScan
+__7Scanner
+__7ivBrushf
+__7ivBrushif
+__7ivColorRC7ivColorfUi
+__7ivColorffffUi
+__7ivEvent
+__7ivFrameP12ivInteractori
+__7ivGlyph
+__7ivImagePC8ivRaster
+__7ivLabelPCcPC6ivFontPC7ivColor
+__7ivPatchP7ivGlyph
+__7ivStyleP7ivStyle
+__7ivWorldPCcRiPPcPC12ivOptionDescPC14ivPropertyData
+__8DragZoneP7ivGlyph
+__8ivAction
+__8ivBitmapPCvUiUiii
+__8ivButtonP7ivGlyphP7ivStyleP15ivTelltaleStateP8ivAction
+__8ivCursorPC8ivBitmapT1PC7ivColorT3
+__8ivDialogP7ivGlyphP7ivStyle
+__8ivPSFontPCcfT1f
+__8ivRegexpPCc
+__8ivSensori
+__8ivSensoriPC8ivSensor
+__8ivTargetP7ivGlyph17TargetSensitivity
+__8osString
+__8osStringPCc
+__8osStringPCci
+__8osStringRC8osString
+__9ComEditorPCcP10OverlayKit
+__9FPointObjff
+__9TimeGlyphP7ivStyleP14ObservableTimeUi
+__9ivHBorderi
+__9ivHandler
+__9ivMessagePCcT1Uiiii
+__9ivMessagePCcUiiii
+__9ivPainterP9ivPainter
+__9ivPatternPCi
+__9ivPrinterP7ostream
+__9ivSessionPCcRiPPcPC12ivOptionDescPC14ivPropertyDataP9ivDisplay
+__9ivStencilPC8ivBitmapPC7ivColor
+__9ivUnidrawP9ivCatalogRiPPcP12ivOptionDescP14ivPropertyData
+__9ivVBorderi
+__as__11ivExtensionRC11ivExtension
+__as__13ivTransformerRC13ivTransformer
+__as__8osStringPCc
+__as__8osStringRC8osString
+__eq__C8osStringPCc
+__eq__C8osStringRC8osString
+__ge__C8osStringPCc
+__ge__C8osStringRC8osString
+__gt__C8osStringPCc
+__gt__C8osStringRC8osString
+__le__C8osStringPCc
+__le__C8osStringRC8osString
+__ls__FR7ostreamRC8osString
+__lt__C8osStringPCc
+__lt__C8osStringRC8osString
+__ne__C8osStringPCc
+__ne__C8osStringRC8osString
+abort__C4DragRC7ivEvent
+abort_adjustment__12ivAdjustableUi
+abs__6osMathd
+action__8ivButtonP8ivAction
+action__C8ivButton
+add_defaults__11ComTerpServ
+add_defaults__7ComTerp
+add_edlauncher__13OverlayEditorPCcPFv_P13OverlayEditor
+alias__7ivStylePCc
+allocate__11ivMonoGlyphP8ivCanvasRC12ivAllocationR11ivExtension
+allocate__12ivInteractorP8ivCanvasRC12ivAllocationR11ivExtension
+allocate__14ivInputHandlerP8ivCanvasRC12ivAllocationR11ivExtension
+allocate__4DragP8ivCanvasRC12ivAllocationR11ivExtension
+allocate__7ivPatchP8ivCanvasRC12ivAllocationR11ivExtension
+allocate__8DragZoneP8ivCanvasRC12ivAllocationR11ivExtension
+allocation__C14ivInputHandler
+allocation_changed__14ivInputHandlerP8ivCanvasRC12ivAllocation
+allotment__C11ivMonoGlyphlUiR11ivAllotment
+allotment__C7ivGlyphlUiR11ivAllotment
+append__11ivMonoGlyphP7ivGlyph
+append__14ObservableEnumRC8osString
+append__17BoundedValueTableRC8osStringP12BoundedValue
+append__7ivGlyphP7ivGlyph
+append_input_handler__14ivInputHandlerP14ivInputHandler
+attach__12ivAdjustableUiP10ivObserver
+attach__12ivObservableP10ivObserver
+attribute__7ivStylePCcT1i
+before__C8osStringPCc
+begin_adjustment__12ivAdjustableUi
+body__11ivMonoGlyphP7ivGlyph
+body__C11ivMonoGlyph
+canvas__C14ivInputHandler
+card__C6ivDeck
+case_insensitive_equal__C8osStringPCc
+case_insensitive_equal__C8osStringRC8osString
+caught__C4DragRC7ivEvent
+change__11ivMonoGlyphl
+change__7ivGlyphl
+childStatus__11dpIOHandlerii
+cleanup__10ivResource
+clear__11ivExtension
+clone__C7ivGlyph
+cm
+commit__C4DragRC7ivEvent
+commit_adjustment__12ivAdjustableUi
+component__C11ivMonoGlyphl
+component__C7ivGlyphl
+compose__7ivGlyphUi
+constrain__C12ivAdjustableUiRf
+contains__C8osStringPCci
+convert__C8osStringRd
+convert__C8osStringRf
+convert__C8osStringRi
+convert__C8osStringRl
+copy__8osMemoryPCvPvUi
+count__C11ivMonoGlyph
+count__C7ivGlyph
+crosshairs
+daysInYear__4DateUs
+default_display__C9ivSession
+detach__12ivAdjustableUiP10ivObserver
+detach__12ivObservableP10ivObserver
+disable_prompt__7ComTerp
+disconnect__10ivObserverP12ivObservable
+double_click__14ivInputHandlerRC7ivEvent
+dragOffset__4DragR7ivEventRiT2
+dragType__4DragRPcRi
+drag__15ivActiveHandlerRC7ivEvent
+dragable__4DragUi
+dragable__C4Drag
+draw__C11ivMonoGlyphP8ivCanvasRC12ivAllocation
+draw__C12ivInteractorP8ivCanvasRC12ivAllocation
+draw__C14ivInputHandlerP8ivCanvasRC12ivAllocation
+draw__C7ivPatchP8ivCanvasRC12ivAllocation
+equals__C12ivAllocationRC12ivAllocationf
+exists__8ivPSFontPCc
+find_attribute__C7ivStylePCcR8osString
+find_attribute__C7ivStylePCcRf
+find_attribute__C7ivStylePCcRl
+finish_repair__11ivCanvasRep
+flip_to__6ivDeckl
+focus__14ivInputHandlerP14ivInputHandler
+focus_in__14ivInputHandler
+focus_out__14ivInputHandler
+focusable__18BoundedValueEditor
+focusable__C13ObsTextEditor
+from__C8osStringPCc
+get_next_token_string__7LexScanRUi
+get_next_token_string__7ScannerRUi
+handler__C14ivInputHandler
+hash__C8osString
+inches
+input_handler__C14ivInputHandlerl
+input_handler_count__C14ivInputHandler
+insert__10StringListlRC8osString
+insert__11ivMonoGlyphlP7ivGlyph
+insert__12__AnyPtrListlRCPv
+insert__16BoundedValueListlP12BoundedValue
+insert__7ivGlyphlP7ivGlyph
+inside__14ivInputHandlerRC7ivEvent
+instance__11ivDialogKit
+instance__11ivLayoutKit
+instance__11ivWidgetKit
+instance__12dpDispatcher
+instance__9ivSession
+intensities__C7ivColorRfN21
+ivAlign__C12ivInteractorUiiiRiT4
+ivMessage__14ivStringEditorPCc
+ivSelection__15ivStringBrowseri
+join__15ivTelltaleStateP15ivTelltaleGroup
+keystroke__14ivInputHandlerRC7ivEvent
+large_scroll__12ivAdjustableUif
+large_scroll__C12ivAdjustableUi
+leave_group__15ivTelltaleState
+load__12ivTIFFRasterPCcUi
+load__13EivTextEditorPCc
+lookup__6ivFontRC8osString
+lookup__7ivColorP9ivDisplayPCc
+matrix__C13ivTransformerRfN51
+merge__11ivExtensionP8ivCanvasRC12ivAllocation
+merge_xy__11ivExtensionP8ivCanvasffff
+motion__8DragZoneR7ivEvent
+move__14ivInputHandlerRC7ivEvent
+move__15ivActiveHandlerRC7ivEvent
+move__6ivPagelff
+next_focus__14ivInputHandler
+noEvents
+notify__12ivObservable
+notify__C12ivAdjustableUi
+notify_all__C12ivAdjustable
+null_terminated__C8osString
+observable__C12ivAdjustableUi
+open__11osDirectoryRC8osString
+open__11osInputFileRC8osString
+osString__15ivStringBrowseri
+page_backward__12ivAdjustableUi
+page_forward__12ivAdjustableUi
+parent__C14ivInputHandler
+pick__11ivMonoGlyphP8ivCanvasRC12ivAllocationiR5ivHit
+pick__12ivInteractorP8ivCanvasRC12ivAllocationiR5ivHit
+pick__14ivInputHandlerP8ivCanvasRC12ivAllocationiR5ivHit
+pick__4DragP8ivCanvasRC12ivAllocationiR5ivHit
+pick__7ivGlyphP8ivCanvasRC12ivAllocationiR5ivHit
+pick__8DragZoneP8ivCanvasRC12ivAllocationiR5ivHit
+pointer_x__C7ivEvent
+pointer_y__C7ivEvent
+prepend__11ivMonoGlyphP7ivGlyph
+prepend__7ivGlyphP7ivGlyph
+press__14ivInputHandlerRC7ivEvent
+press__8ivButtonRC7ivEvent
+prev_focus__14ivInputHandler
+printOn__C4DateR7ostream
+print__C11ivMonoGlyphP9ivPrinterRC12ivAllocation
+print__C7ivGlyphP9ivPrinterRC12ivAllocation
+print_next_expr__6Parser
+reallocate__7ivPatch
+redraw__C14ivInputHandler
+redraw__C7ivPatch
+ref__10ivResourcePC10ivResource
+ref__C10ivResource
+release__14ivInputHandlerRC7ivEvent
+release__8ivButtonRC7ivEvent
+remove__11ivMonoGlyphl
+remove__12__AnyPtrListl
+remove__15ivTelltaleGroupP15ivTelltaleState
+remove__7ivGlyphl
+remove_all__12__AnyPtrList
+remove_all_input_handlers__14ivInputHandler
+remove_input_handler__14ivInputHandlerl
+repick__14ivInputHandleriR5ivHit
+repick__7ivPatchiR5ivHit
+replace__11ivMonoGlyphlP7ivGlyph
+replace__7ivGlyphlP7ivGlyph
+request__C11ivMonoGlyphR13ivRequisition
+request__C12ivInteractorR13ivRequisition
+require__13ivRequisitionUiRC13ivRequirement
+rotate__13ivTransformerf
+scale__13ivTransformerff
+scale_to__12ivAdjustableUif
+scroll_backward__12ivAdjustableUi
+scroll_forward__12ivAdjustableUi
+search__C8osStringiUc
+selection_notify__14ivInputHandlerRC7ivEvent
+sensitive__8DragZoneUi
+sensitive__C8DragZone
+set__15ivTelltaleStateUiUi
+set_to_substr__8osStringii
+set_value__8osStringPCc
+set_value__8osStringPCci
+show__6ivPagelUi
+small_scroll__12ivAdjustableUif
+small_scroll__C12ivAdjustableUi
+start_repair__11ivCanvasRep
+state__8ivButtonP15ivTelltaleState
+state__C8ivButton
+strnew__FPCc
+style__C14ivInputHandler
+style__C9ivSession
+substr__C8osStringii
+test__C15ivTelltaleStateUi
+time__14ObservableTimeP4Time
+transformer__C14ivInputHandler
+translate__13ivTransformerff
+undraw__11ivMonoGlyph
+undraw__12ivInteractor
+undraw__14ivInputHandler
+undraw__15ivActiveHandler
+undraw__7ivGlyph
+undraw__7ivPatch
+unidraw
+unref__10ivResourcePC10ivResource
+unref__C10ivResource
+unref_deferred__C10ivResource
+update__15ivTelltaleGroupP15ivTelltaleState
+update__8ivButtonP12ivObservable
+value__14ObservableEnumG8osString
+value_is_on__C7ivStylePCc
+year__C4Date
+zoom_to__12ivAdjustablef
diff -X diffex.txt -Nur ivtools-0.7/src/DLL/mkdll ivtools-0.7.new/src/DLL/mkdll
--- ivtools-0.7/src/DLL/mkdll	Thu Jan 01 00:00:00 1970
+++ ivtools-0.7.new/src/DLL/mkdll	Sun Dec 12 22:33:40 1999
@@ -0,0 +1,13 @@
+#!/bin/sh
+# This script can be run after building static binaries.
+# Get all defined external symbols from libraries, with a type tag
+# as the second field and filename as the third.
+nm --extern-only --defined-only --print-file-name `find .. -name lib\*.a -not -name \*-common.a` | sed -ne 's/\([^ ]\+\) \(.\) _\(.*\)/\3 \2 \1/p' | sort > iv.ext
+# Get all undefined (external) symbols from executables.
+for f in `find .. -name a.out -o -name \*.exe -not -name mkg3states.exe`; do nm --print-file-name `dirname $f`/*.o; done | sed -ne 's/\([^ ]\+\)[ ]\+U _\(.*\)/\2 \1/p' | sort > iv.undef
+# Combine to get an EXPORT list.
+(echo EXPORTS; join -o1.1 iv.undef iv.ext | uniq ) > iv.def
+# Combine to get a list of DATA items in dll, with object filenames
+# These symbols are candidates to be made __attribute__((dllimport))
+# in the relevant executable source files.
+join iv.undef iv.ext | awk '$3=="D" {print $1, $2, $4}'
diff -X diffex.txt -Nur ivtools-0.7/src/Imakefile ivtools-0.7.new/src/Imakefile
--- ivtools-0.7/src/Imakefile	Thu Sep 02 18:18:28 1999
+++ ivtools-0.7.new/src/Imakefile	Tue Dec 07 21:09:38 1999
@@ -22,6 +22,80 @@
 ACEDISPATCH =
 #endif
 
+#ifdef UseDLLs
+SUBDIRS = \
+	IV-common \
+	Unidraw-common \
+	\
+	ComUtil \
+	Attribute \
+	TopoFace \
+	ComTerp \
+	\
+	IV \
+	InterViews \
+	IV-2_6 \
+	IV-X11 \
+	OS \
+	TIFF \
+	Dispatch \
+	\
+	Time \
+	IVGlyph \
+	\
+	AttrGlyph \
+	ComGlyph \
+	\
+	Unidraw \
+	UniIdraw \
+	\
+	$(ACEDISPATCH) \
+	OverlayUnidraw \
+	\
+	$(IUEDIRS) \
+	\
+	ComUnidraw \
+	\
+	FrameUnidraw \
+	\
+	GraphUnidraw \
+	\
+	DrawServ \
+	\
+	DLL \
+	\
+	comtest \
+	comterp_ \
+	\
+	dclock \
+	iclass \
+	idemo \
+	\
+	glyphs \
+	\
+	glyphterp \
+	\
+	idraw \
+	\
+	drawtool \
+	\
+	comdraw \
+	\
+	flipbook \
+	\
+	graphdraw \
+	\
+	drawserv_ \
+	\
+	include \
+	scripts \
+	utils \
+	tests \
+	\
+	ivxt_name \
+	man \
+	html
+#else
 SUBDIRS = \
 	IV-common \
 	Unidraw-common \
@@ -82,5 +156,6 @@
 	ivxt_name \
 	man \
 	html
+#endif
 
 MakeInSubdirs($(SUBDIRS))
diff -X diffex.txt -Nur ivtools-0.7/src/include/IV-2_6/InterViews/sensor.h ivtools-0.7.new/src/include/IV-2_6/InterViews/sensor.h
--- ivtools-0.7/src/include/IV-2_6/InterViews/sensor.h	Wed Jul 28 00:12:06 1999
+++ ivtools-0.7.new/src/include/IV-2_6/InterViews/sensor.h	Thu Dec 09 21:53:16 1999
@@ -83,7 +83,11 @@
 extern Sensor* allEvents;
 extern Sensor* onoffEvents;
 extern Sensor* updownEvents;
-extern Sensor* noEvents;
+extern Sensor* noEvents
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+;
 
 #include <InterViews/_leave.h>
 
diff -X diffex.txt -Nur ivtools-0.7/src/include/InterViews/coord.h ivtools-0.7.new/src/include/InterViews/coord.h
--- ivtools-0.7/src/include/InterViews/coord.h	Wed Jul 28 00:12:08 1999
+++ ivtools-0.7.new/src/include/InterViews/coord.h	Thu Dec 09 21:53:34 1999
@@ -48,7 +48,15 @@
 typedef int _lib_iv2_6(Coord);
 
 #ifndef PDP_PLUS_PLUS
-extern double inch, inches, cm, mm, point, points;
+extern double inch, inches
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+, cm
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+, mm, point, points;
 static const int pixels = 1;
 #define ivinch inch
 #define ivinches inches
diff -X diffex.txt -Nur ivtools-0.7/src/include/InterViews/cursor.h ivtools-0.7.new/src/include/InterViews/cursor.h
--- ivtools-0.7/src/include/InterViews/cursor.h	Wed Jul 28 00:12:08 1999
+++ ivtools-0.7.new/src/include/InterViews/cursor.h	Thu Dec 09 21:53:34 1999
@@ -77,7 +77,11 @@
 
 extern Cursor* defaultCursor;
 extern Cursor* arrow;
-extern Cursor* crosshairs;
+extern Cursor* crosshairs
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+;
 extern Cursor* ltextCursor;
 extern Cursor* rtextCursor;
 extern Cursor* hourglass;
diff -X diffex.txt -Nur ivtools-0.7/src/include/Unidraw/Graphic/geomobjs.h ivtools-0.7.new/src/include/Unidraw/Graphic/geomobjs.h
--- ivtools-0.7/src/include/Unidraw/Graphic/geomobjs.h	Wed Jul 28 00:12:10 1999
+++ ivtools-0.7.new/src/include/Unidraw/Graphic/geomobjs.h	Thu Dec 09 21:54:02 1999
@@ -119,7 +119,11 @@
 protected:
     static UList** _pts_by_n;
     static int _pts_by_n_size;
-    static boolean _pts_by_n_enabled;
+    static boolean _pts_by_n_enabled
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+;
 };
 
 class FillPolygonObj : public MultiLineObj {
diff -X diffex.txt -Nur ivtools-0.7/src/include/Unidraw/globals.h ivtools-0.7.new/src/include/Unidraw/globals.h
--- ivtools-0.7/src/include/Unidraw/globals.h	Wed Jul 28 00:12:12 1999
+++ ivtools-0.7.new/src/include/Unidraw/globals.h	Thu Dec 09 21:54:14 1999
@@ -89,7 +89,11 @@
  */
 
 extern CSolver* csolver;
-extern Unidraw* unidraw;
+extern Unidraw* unidraw
+#ifdef DLLIMPORT
+__attribute__((dllimport))
+#endif
+;
 
 extern PSColor* psblack;
 extern PSColor* pswhite;

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]