Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-ID: <38A699BA.768C45A2@lineone.net> Date: Sun, 13 Feb 2000 11:47:06 +0000 From: Tim Harding X-Mailer: Mozilla 4.61 [en] (Win95; I) X-Accept-Language: en MIME-Version: 1.0 To: Cygwin Mailing List , Ivtools developer list Subject: Building ivtools on Cygwin Content-Type: multipart/mixed; boundary="------------CDF3CB3002B91962EF7004E4" Note-from-DJ: This may be spam --------------CDF3CB3002B91962EF7004E4 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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-> 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->, /etc/termcap->, /usr/lib/ps->/PSFONTS (not figured out what this does!) and /usr/include/g++->. Tim Harding --------------CDF3CB3002B91962EF7004E4 Content-Type: text/plain; charset=us-ascii; name="Patch6.7" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="Patch6.7" 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 */ + +#define UnixCpp +#include + +#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 +#define MacroIncludeFile +#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 #include #include +#ifdef __CYGWIN__ +#ifndef MAXFLOAT +#define MAXFLOAT ((float)3.40282346638528860e+38) +#endif +#else #ifndef apollo #include +#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 #include #endif -#ifndef __linux__ +#if !defined(__linux__) && !defined(__CYGWIN__) /* no standard place for this */ extern "C" { extern int ioctl(int, int, ...); } +#endif +#ifdef __CYGWIN__ +#include #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 #include +#ifndef __CYGWIN__ #include +#endif #include #include @@ -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()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