daven@maxine.WPI.EDU (Dave Nedde) (06/28/91)
Submitted-by: daven@maxine.WPI.EDU (Dave Nedde) Posting-number: Volume 13, Issue 63 Archive-name: xrainbow/part01 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 5)." # Contents: xrainbow xrainbow/README xrainbow/Imakefile # xrainbow/Makefile xrainbow/Xrainbow xrainbow/xrainbow.1 # xrainbow/xrainbow.doc xrainbow/Wc1_05 xrainbow/Wc1_05/Doc # xrainbow/Wc1_05/Doc/1stREADME xrainbow/Wc1_05/Imakefile # xrainbow/Wc1_05/Install.rules xrainbow/Wc1_05/Makefile # xrainbow/Wc1_05/README xrainbow/Wc1_05/Wc.tmpl xrainbow/Wc1_05/Wc # xrainbow/Wc1_05/Wc/Imakefile xrainbow/Wc1_05/Wc/Xt4GetResL.c # xrainbow/Wc1_05/patchlevel.h xrainbow/X11 xrainbow/X11/Xaw_d # xrainbow/X11/Xaw_d/DrawingA.h xrainbow/include # Wrapped by daven@ash on Mon Jun 3 12:33:20 1991 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test ! -d 'xrainbow' ; then echo shar: Creating directory \"'xrainbow'\" mkdir 'xrainbow' fi if test -f 'xrainbow/README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/README'\" else echo shar: Extracting \"'xrainbow/README'\" \(1794 characters\) sed "s/^X//" >'xrainbow/README' <<'END_OF_FILE' XWhat is Xrainbow? X Xrainbow displays all of the system colors with their names X (Usually in the file /usr/lib/X11/rgb.txt). Unlike xcolors, however, ALL X colors can be viewed without re-running the program, and the colors can X be scrolled through. The list of colors can also be sorted by name, X "adjustable intensity", RGB, or any combination thereof. X XTo Build and Install: X* Note that you must have X11R4 and Athena widgets on the target machine. X Xrainbow has been build and tested on a: X Sun SparcStation1/Sun 4 running SunOS release 4.0.3 and X11R4 installed X DecStation running ULTRIX V4.0 (Rev 179) and X11R4 installed X Encore Multimax 310 Running Umax 4.3 and X11R4 installed X X* If you have imake, type 'make World' and several things will happen: X The Makefile in the current directory is remade using imake X The Makefiles in all other directorys are remade using imake X All the sources are compiled X X* If you don't have imake, type 'make no_imake_World'. This will use the X default makefiles provided. X X* The executable is now main/xrainbow. This program used the Widget Creation X Library, and, therefore MUST be able to load the resource file Xrainbow. X This can be done by: X - Moving Xrainbow to /usr/lib/X11/app-defaults X - 'setenv XENVIRONMENT /wherever/XRainbow/Xrainbow' X - 'setenv XAPPLRESDIR /directory-holding-resource-file' X XCopyright: X Copyright 1991, David Nedde X X Permission to use, copy, modify, and distribute this software X and its documentation for any purpose and without fee is granted X provided that the above copyright notice appears in all copies. X It is provided "as is" without express or implied warranty. X-- XDavid Nedde, Computer Science Dept. Xdaven@maxine.wpi.edu XWorcester Polytechnic Institute XWorcester, MA 01609 END_OF_FILE if test 1794 -ne `wc -c <'xrainbow/README'`; then echo shar: \"'xrainbow/README'\" unpacked with wrong size! fi # end of 'xrainbow/README' fi if test -f 'xrainbow/Imakefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Imakefile'\" else echo shar: Extracting \"'xrainbow/Imakefile'\" \(479 characters\) sed "s/^X//" >'xrainbow/Imakefile' <<'END_OF_FILE' X/**/# X/**/# Imakefile for XRainbow : Dave Nedde (daven@wpi.wpi.edu) X/**/# X X#define IHaveSubdirs X#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' X XLIBDIRS = \ X X11/Xaw_d \ X Wc1_05/Wc XSRCDIRS = \ X main XSUBDIRS = \ X $(LIBDIRS) \ X $(SRCDIRS) X X XCDEBUGFLAGS = # -g X X XMakeSubdirs($(SUBDIRS)) X XWorld: X $(MAKE) Makefile X $(MAKE) Makefiles X $(MAKE) depend X $(MAKE) all X Xno_imake_World: X $(MAKE) all X XDependSubdirs($(SUBDIRS)) X XMakeLintLibSubdirs($(LIBDIRS)) X XLintSubdirs($(SRCDIRS)) END_OF_FILE if test 479 -ne `wc -c <'xrainbow/Imakefile'`; then echo shar: \"'xrainbow/Imakefile'\" unpacked with wrong size! fi # end of 'xrainbow/Imakefile' fi if test -f 'xrainbow/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Makefile'\" else echo shar: Extracting \"'xrainbow/Makefile'\" \(12365 characters\) sed "s/^X//" >'xrainbow/Makefile' <<'END_OF_FILE' X# Makefile generated by imake - do not edit! X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $ X# X# The cpp used on this machine replaces all newlines and multiple tabs and X# spaces in a macro expansion with a single space. Imake tries to compensate X# for this, but is not always successful. X# X X########################################################################### X# Makefile generated from "Imake.tmpl" and <Imakefile> X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $ X# X# Platform-specific parameters may be set in the appropriate .cf X# configuration files. Site-wide parameters may be set in the file X# site.def. Full rebuilds are recommended if any parameters are changed. X# X# If your C preprocessor doesn't define any unique symbols, you'll need X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing X# "make Makefile", "make Makefiles", or "make World"). X# X# If you absolutely can't get imake to work, you'll need to set the X# variables at the top of each Makefile as well as the dependencies at the X# bottom (makedepend will do this automatically). X# X X########################################################################### X# platform-specific configuration parameters - edit sun.cf to change X X# platform: $XConsortium: sun.cf,v 1.38 89/12/23 16:10:10 jim Exp $ X# operating system: SunOS 4.1 X X########################################################################### X# site-specific configuration parameters - edit site.def to change X X# site: $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $ X X SHELL = /bin/sh X X TOP = . X CURRENT_DIR = . X X AR = ar cq X BOOTSTRAPCFLAGS = X CC = cc X X COMPRESS = compress X CPP = /lib/cpp $(STD_CPP_DEFINES) X PREPROCESSCMD = cc -E $(STD_CPP_DEFINES) X INSTALL = install X LD = ld X LINT = lint X LINTLIBFLAG = -C X LINTOPTS = -axz X LN = ln -s X MAKE = make X MV = mv X CP = cp X RANLIB = ranlib X RANLIBINSTFLAGS = X RM = rm -f X STD_INCLUDES = X STD_CPP_DEFINES = X STD_DEFINES = X EXTRA_LOAD_FLAGS = X EXTRA_LIBRARIES = X TAGS = ctags X X SHAREDCODEDEF = -DSHAREDCODE X SHLIBDEF = -DSUNSHLIB X X PROTO_DEFINES = X X INSTPGMFLAGS = X X INSTBINFLAGS = -m 0755 X INSTUIDFLAGS = -m 4755 X INSTLIBFLAGS = -m 0664 X INSTINCFLAGS = -m 0444 X INSTMANFLAGS = -m 0444 X INSTDATFLAGS = -m 0444 X INSTKMEMFLAGS = -m 4755 X X DESTDIR = X X TOP_INCLUDES = -I$(INCROOT) X X CDEBUGFLAGS = -O X CCOPTIONS = X COMPATFLAGS = -DXAW_BC X X ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) X ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS) X CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES) X LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) X LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) X LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) X LDCOMBINEFLAGS = -X -r X X MACROFILE = sun.cf X RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut X X IMAKE_DEFINES = X X IRULESRC = $(CONFIGDIR) X IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) X X ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \ X $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \ X $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES) X X########################################################################### X# X Window System Build Parameters X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $ X X########################################################################### X# X Window System make variables; this need to be coordinated with rules X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $ X X PATHSEP = / X USRLIBDIR = $(DESTDIR)/usr/lib X BINDIR = $(DESTDIR)/usr/bin/X11 X INCROOT = $(DESTDIR)/usr/include X BUILDINCROOT = $(TOP) X BUILDINCDIR = $(BUILDINCROOT)/X11 X BUILDINCTOP = .. X INCDIR = $(INCROOT)/X11 X ADMDIR = $(DESTDIR)/usr/adm X LIBDIR = $(USRLIBDIR)/X11 X CONFIGDIR = $(LIBDIR)/config X LINTLIBDIR = $(USRLIBDIR)/lint X X FONTDIR = $(LIBDIR)/fonts X XINITDIR = $(LIBDIR)/xinit X XDMDIR = $(LIBDIR)/xdm X AWMDIR = $(LIBDIR)/awm X TWMDIR = $(LIBDIR)/twm X GWMDIR = $(LIBDIR)/gwm X MANPATH = $(DESTDIR)/usr/man X MANSOURCEPATH = $(MANPATH)/man X MANDIR = $(MANSOURCEPATH)n X LIBMANDIR = $(MANSOURCEPATH)3 X XAPPLOADDIR = $(LIBDIR)/app-defaults X X SOXLIBREV = 4.2 X SOXTREV = 4.0 X SOXAWREV = 4.0 X SOOLDXREV = 4.0 X SOXMUREV = 4.0 X SOXEXTREV = 4.0 X X FONTCFLAGS = -t X X INSTAPPFLAGS = $(INSTDATFLAGS) X X IMAKE = imake X DEPEND = makedepend X RGB = rgb X FONTC = bdftosnf X MKFONTDIR = mkfontdir X MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier.sh X X CONFIGSRC = $(TOP)/config X CLIENTSRC = $(TOP)/clients X DEMOSRC = $(TOP)/demos X LIBSRC = $(TOP)/lib X FONTSRC = $(TOP)/fonts X INCLUDESRC = $(TOP)/X11 X SERVERSRC = $(TOP)/server X UTILSRC = $(TOP)/util X SCRIPTSRC = $(UTILSRC)/scripts X EXAMPLESRC = $(TOP)/examples X CONTRIBSRC = $(TOP)/../contrib X DOCSRC = $(TOP)/doc X RGBSRC = $(TOP)/rgb X DEPENDSRC = $(UTILSRC)/makedepend X IMAKESRC = $(CONFIGSRC) X XAUTHSRC = $(LIBSRC)/Xau X XLIBSRC = $(LIBSRC)/X X XMUSRC = $(LIBSRC)/Xmu X TOOLKITSRC = $(LIBSRC)/Xt X AWIDGETSRC = $(LIBSRC)/Xaw X OLDXLIBSRC = $(LIBSRC)/oldX X XDMCPLIBSRC = $(LIBSRC)/Xdmcp X BDFTOSNFSRC = $(FONTSRC)/bdftosnf X MKFONTDIRSRC = $(FONTSRC)/mkfontdir X EXTENSIONSRC = $(TOP)/extensions X X DEPEXTENSIONLIB = $(USRLIBDIR)/libXext.a X EXTENSIONLIB = -lXext X X DEPXLIB = $(DEPEXTENSIONLIB) X XLIB = $(EXTENSIONLIB) -lX11 X X DEPXAUTHLIB = $(USRLIBDIR)/libXau.a X XAUTHLIB = -lXau X X DEPXMULIB = X XMULIB = -lXmu X X DEPOLDXLIB = X OLDXLIB = -loldX X X DEPXTOOLLIB = X XTOOLLIB = -lXt X X DEPXAWLIB = X XAWLIB = -lXaw X X LINTEXTENSIONLIB = $(USRLIBDIR)/llib-lXext.ln X LINTXLIB = $(USRLIBDIR)/llib-lX11.ln X LINTXMU = $(USRLIBDIR)/llib-lXmu.ln X LINTXTOOL = $(USRLIBDIR)/llib-lXt.ln X LINTXAW = $(USRLIBDIR)/llib-lXaw.ln X X DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) X X DEPLIBS1 = $(DEPLIBS) X DEPLIBS2 = $(DEPLIBS) X DEPLIBS3 = $(DEPLIBS) X X########################################################################### X# Imake rules for building libraries, programs, scripts, and data files X# rules: $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $ X X########################################################################### X# start of Imakefile X X# X# Imakefile for XRainbow : Dave Nedde (daven@wpi.wpi.edu) X# X XLIBDIRS = \ X X11/Xaw_d \ X Wc1_05/Wc XSRCDIRS = \ X main XSUBDIRS = \ X $(LIBDIRS) \ X $(SRCDIRS) X XCDEBUGFLAGS = # -g X Xall:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "making" all "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) 'CDEBUGFLAGS=$(CDEBUGFLAGS)' all); \ X done X XWorld: X $(MAKE) Makefile X $(MAKE) Makefiles X $(MAKE) depend X $(MAKE) all X Xno_imake_World: X $(MAKE) all X Xdepend:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "depending" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) depend); \ X done X Xlintlib:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(LIBDIRS) ;\ X do \ X (cd $$i ; echo "linting" for lintlib and lintlib "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) DESTDIR='$(DESTDIR)' LINTOPTS='$(LINTOPTS)' lintlib); \ X done X Xlint:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SRCDIRS) ;\ X do \ X (cd $$i ; echo "linting" for lint and lint "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) DESTDIR='$(DESTDIR)' LINTOPTS='$(LINTOPTS)' lint); \ X done X X########################################################################### X# common rules for all Makefiles - do not edit X Xemptyrule:: X Xclean:: X $(RM_CMD) \#* X XMakefile:: X -@if [ -f Makefile ]; then \ X echo " $(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \ X $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ X else exit 0; fi X $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) X Xtags:: X $(TAGS) -w *.[ch] X $(TAGS) -xw *.[ch] > TAGS X X########################################################################### X# rules for building in SUBDIRS - do not edit X Xinstall:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "installing" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) DESTDIR='$(DESTDIR)' install); \ X done X Xinstall.man:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "installing man pages" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) DESTDIR='$(DESTDIR)' install.man); \ X done X Xclean:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "cleaning" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) RM_CMD='$(RM_CMD)' clean); \ X done X Xtags:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "tagging" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) TAGS='$(TAGS)' tags); \ X done X XMakefiles:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X echo "making Makefiles in $(CURRENT_DIR)/$$i..."; \ X case "$$i" in \ X ./?*/?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \ X ./?*/?*/?*) newtop=../../../ sub=subsubsub;; \ X ./?*/?*) newtop=../../ sub=subsub;; \ X ./?*) newtop=../ sub=sub;; \ X */?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \ X */?*/?*) newtop=../../../ sub=subsubsub;; \ X */?*) newtop=../../ sub=subsub;; \ X *) newtop=../ sub=sub;; \ X esac; \ X case "$(TOP)" in \ X /?*) newtop= upprefix= ;; \ X *) upprefix=../ ;; \ X esac; \ X $(MAKE) $${sub}dirMakefiles UPPREFIX=$$upprefix NEWTOP=$$newtop \ X MAKEFILE_SUBDIR=$$i NEW_CURRENT_DIR=$(CURRENT_DIR)/$$i;\ X done X XsubdirMakefiles: X $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak X -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ X echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ X $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ X else exit 0; fi X cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(UPPREFIX)$(TOP) -DCURDIR=$(NEW_CURRENT_DIR); \ X $(MAKE) $(MFLAGS) Makefiles X XsubsubdirMakefiles: X $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak X -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ X echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ X $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ X else exit 0; fi X cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(UPPREFIX)$(UPPREFIX)$(TOP) -DCURDIR=$(NEW_CURRENT_DIR); \ X $(MAKE) $(MFLAGS) Makefiles X XsubsubsubdirMakefiles: X $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak X -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ X echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ X $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ X else exit 0; fi X cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(TOP) -DCURDIR=$(NEW_CURRENT_DIR); \ X $(MAKE) $(MFLAGS) Makefiles X XsubsubsubsubdirMakefiles: X $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak X -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ X echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ X $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ X else exit 0; fi X cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(TOP) -DCURDIR=$(NEW_CURRENT_DIR); \ X $(MAKE) $(MFLAGS) Makefiles X Xincludes:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo including "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) includes); \ X done X X########################################################################### X# dependencies generated by makedepend X END_OF_FILE if test 12365 -ne `wc -c <'xrainbow/Makefile'`; then echo shar: \"'xrainbow/Makefile'\" unpacked with wrong size! fi # end of 'xrainbow/Makefile' fi if test -f 'xrainbow/Xrainbow' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Xrainbow'\" else echo shar: Extracting \"'xrainbow/Xrainbow'\" \(7878 characters\) sed "s/^X//" >'xrainbow/Xrainbow' <<'END_OF_FILE' X xrainbow.app - Resource file for XRainbow. This file defines most of the X widget hierarchy and values for the widgets. X X Copyright 1991, David Nedde X X Permission to use, copy, modify, and distribute this software X and its documentation for any purpose and without fee is granted X provided that the above copyright notice appears in all copies. X It is provided "as is" without express or implied warranty. X X Xxrainbow.wcChildren: mform Xxrainbow.wcPopups: sort_popup Xxrainbow.title: XRainbow Xxrainbow.iconName: XRainbow Xxrainbow*input: True X X*mform.wcClass: formWidgetClass X*mform.wcChildren: quit,about1,author1,sort,viewport X X*quit.wcClass: commandWidgetClass X*quit.label: Quit X*quit.callback: WcExitCB X X*about1.wcClass: commandWidgetClass X*about1.fromHoriz: *quit X*about1.label: XRainbow V1.0 X*about1.callback: WcCreateChildrenCB(xrainbow, about),\ X WcManageCB(*about_form), \ X WcPopupGrabCB(*about) X X*author1.wcClass: commandWidgetClass X*author1.fromHoriz: *about1 X*author1.label: by David Nedde X*author1.callback: WcCreateChildrenCB(xrainbow,author),\ X WcManageCB(*author_form), \ X WcPopupGrabCB(*author) X X*sort.wcClass: commandWidgetClass X*sort.fromHoriz: *author1 X*sort.label: Sort X*sort.callback: WcManageCB(*sort_form), \ X WcPopupCB(*sort_popup) X X*viewport.wcClass: viewportWidgetClass X*viewport.wcChildren: aform X*viewport.fromVert: *quit X*viewport.allowVert: True X*viewport.allowHoriz: True X*viewport.height: 500 X*viewport.width: 400 X X X! Aform holds the form, drawingArea, and label widgets displaying the colors X*aform.wcClass: formWidgetClass X*aform.borderWidth: 0 X*aform.defaultDistance: 1 X!*aform.Form.borderWidth: 0 X*aform.Form.resizable: True X*aform.Form.Label.resizable: True X*aform.Form.Label.borderWidth: 0 X*aform.Form.DrawingArea.width: 100 X*aform.Form.DrawingArea.borderWidth: 0 X X X#=-=-=-=-=-=-=-= 'About' popup definition =-=-=-=-=-=-=-=-=-=-= X*about.wcClass: transientShellWidgetClass X*about.wcChildren: about_form X*about.popupCallback: PlaceWindow(*about1,-1,20) X*about.wcManaged: False X*about.title: About Popup X X*about_form.wcClass: formWidgetClass X*about_form.wcChildren: ok_button,about_label,pop_mess X X*ok_button.wcClass: commandWidgetClass X*ok_button.label: OK X*ok_button.callback: WcPopdownCB( *about ) X X*about_label.wcClass: labelWidgetClass X*about_label.borderWidth: 0 X*about_label.label: About XRainbow X*about_label.fromHoriz: *ok_button X*about_label.resizable: True X X*pop_mess.wcClass: asciiTextWidgetClass X*pop_mess*fromVert: *about_label X*pop_mess*scrollHorizontal: whenNeeded X*pop_mess*scrollVertical: whenNeeded X*pop_mess*type: string X*about_form.pop_mess.width: 450 X*about_form.pop_mess.height: 150 X*pop_mess*string:\ XXRainbow V1.0\n\ XWritten by David Nedde 5/91\n\ X\n\ XThis program allows you to view standard client (rgb.txt) colors\n\ X\n\ XCopyright 1991, David Nedde\n\ X\n\ XPermission to use, copy, modify, and distribute this software\n\ Xand its documentation for any purpose and without fee is granted\n\ Xprovided that the above copyright notice appears in all copies.\n\ XIt is provided "as is" without express or implied warranty.\n X X X#=-=-=-=-=-=-=-= 'Author' popup definition =-=-=-=-=-=-=-=-=-=-= X*author.wcClass: transientShellWidgetClass X*author.wcChildren: author_form X*author.popupCallback: PlaceWindow(*author1,-1,20) X*author.wcManaged: False X*author.title: Author Popup X*author_form.wcClass: formWidgetClass X*author_form.wcChildren: ok_button,author_label,pop_mess X X*author_form.ok_button.callback:WcPopdownCB( *author ) X X*author_label.wcClass: labelWidgetClass X*author_label.borderWidth: 0 X*author_label.label: Author of XRainbow X*author_label.fromHoriz: *ok_button X*author_label.resizable: True X X*author_form.pop_mess.width: 450 X*author_form.pop_mess.height: 60 X*author_form.pop_mess.fromVert: *author_label X*author_form.pop_mess*string:\ XDavid Nedde, Computer Science Dept.\n\ Xdaven@{maxine|wpi}.wpi.edu\n\ XWorcester Polytechnic Institute\n\ XWorcester, MA 01609\n X X X!-=-=-=-=-=- Sort popup =-=-=-=-=-=-=-=-==- X*sort_popup.wcClass: topLevelShellWidgetClass X*sort_popup.wcChildren: sort_form X*sort_popup.wcManaged: False X*sort_popup.title: Sort Control Panel X*sort_popup.allowShellResize: True X*sort_popup.iconName: XRainbow Sort X X*sort_form.wcClass: panedWidgetClass X*sort_form.wcChildren: sort_top,sort_lists,sort_intensity X*sort_form.internalBorderWidth: 2 X*sort_form*showGrip: False X!----- X*sort_top.wcClass: formWidgetClass X*sort_top.wcChildren: sort_ok, sort_apply, sort_title X X*sort_ok.wcClass: commandWidgetClass X*sort_ok.label: Close X*sort_ok.callback: WcPopdownCB(*sort_popup) X X*sort_apply.wcClass: commandWidgetClass X*sort_apply.label: Apply X*sort_apply.fromHoriz: *sort_ok X*sort_apply.callback: resort_list() X X*sort_title.wcClass: labelWidgetClass X*sort_title.label: XRainbow Sort Control Panel X*sort_title.fromHoriz: *sort_apply X*sort_title.borderWidth:0 X!----- X*sort_lists.wcClass: formWidgetClass X*sort_lists.wcChildren: left_form,right_form X*sort_lists.borderWidth:0 X X*left_form.wcClass: formWidgetClass X*left_form.wcChildren: left_label,left_list X*left_form.borderWidth: 0 X X*left_label.wcClass: labelWidgetClass X*left_label.label: Sort Keys Available: X*left_label.borderWidth:0 X*left_label*translations: #augment \ X <Key>Return: WcSetValueACT(*left_label.label: gotit) X X*left_list.wcClass: listWidgetClass X*left_list.wcCallback: setup_lists(left) X*left_list.resizable: True X*left_list.fromVert: *left_label X*left_list.borderWidth: 0 X*left_list.forceColumns:True X*left_list.defaultColumns: 1 X*left_list.callback: list_callback(left) X X*right_form.wcClass: formWidgetClass X*right_form.wcChildren: right_label,right_list X*right_form.borderWidth:0 X*right_form.fromHoriz: *left_form X*right_form.resizable: True X X*right_label.wcClass: labelWidgetClass X*right_label.label: Keys to Sort On: X*right_label.borderWidth:0 X X*right_list.wcClass: listWidgetClass X*right_list.resizable: True X*right_list.wcCallback: setup_lists(right) X*right_list.fromVert: *left_label X*right_list.borderWidth:0 X*right_list.forceColumns:True X*right_list.defaultColumns: 1 X*right_list.callback: list_callback(right) X!----- X*sort_intensity.wcClass:formWidgetClass X*sort_intensity.wcChildren: int_label,red_label,red_value,green_label,\ X green_value,blue_label,blue_value X*sort_intensity.borderWidth: 0 X X*int_label.wcClass: labelWidgetClass X*int_label.borderWidth: 0 X*int_label.label: Intensity Scale: X X*red_label.wcClass: labelWidgetClass X*red_label.borderWidth: 0 X*red_label.label: Red X*red_label.fromHoriz: *int_label X*red_value.wcClass: asciiTextWidgetClass X*red_value*string: X*red_value*editType: edit X*red_value.width: 40 X*red_value.fromHoriz: *red_label X*red_value.translations:#override \ X <Key>Return: EndAsciiValAction(red_value)\n\ X <Leave>: EndAsciiValAction(red_value)\n\ X <Key>space: no-op(RingBell)\n\ X <Key>Tab: no-op(RingBell) X X*green_label.wcClass: labelWidgetClass X*green_label.borderWidth: 0 X*green_label.label: Green X*green_label.fromHoriz: *red_value X*green_value.wcClass: asciiTextWidgetClass X*green_value*string: X*green_value*editType: edit X*green_value.width: 40 X*green_value.fromHoriz: *green_label X*green_value.translations:#override \ X <Key>Return: EndAsciiValAction(green_value)\n\ X <Leave>: EndAsciiValAction(green_value)\n\ X <Key>space: no-op(RingBell)\n\ X <Key>Tab: no-op(RingBell) X X*blue_label.wcClass: labelWidgetClass X*blue_label.borderWidth: 0 X*blue_label.label: Blue X*blue_label.fromHoriz: *green_value X*blue_value.wcClass: asciiTextWidgetClass X*blue_value*string: X*blue_value*editType: edit X*blue_value.width: 40 X*blue_value.fromHoriz: *blue_label X*blue_value.translations:#override \ X <Key>Return: EndAsciiValAction(blue_value)\n\ X <Leave>: EndAsciiValAction(blue_value)\n\ X <Key>space: no-op(RingBell)\n\ X <Key>Tab: no-op(RingBell) X END_OF_FILE if test 7878 -ne `wc -c <'xrainbow/Xrainbow'`; then echo shar: \"'xrainbow/Xrainbow'\" unpacked with wrong size! fi # end of 'xrainbow/Xrainbow' fi if test -f 'xrainbow/xrainbow.1' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/xrainbow.1'\" else echo shar: Extracting \"'xrainbow/xrainbow.1'\" \(1847 characters\) sed "s/^X//" >'xrainbow/xrainbow.1' <<'END_OF_FILE' X.TH XRAINBOW 1 "17/5/91" X.SH NAME Xxrainbow - list and sort system colors X.SH SYNOPSIS X.B xrainbow X[filename] X[XToolkit options] X.sp X.SH DESCRIPTION X.PP X.I XRainbow Xdisplays a set of colors with their names in a Xscrollable list. XA X.I filename Xcontaining the list may be specified on the command line. If not Xsupplied, the system color file (usually /usr/lib/X11/rgb.txt) is used. XThe file X.I filename Xshould be in a format similar to the system color file: X.I red-value green-value blue-value color-name, Xwhere the color values range from 0 to 255. X.sp XThe displayed color list may be sorted by file order, color name, Xintensity or RGB values. if the primary key cannot order the list Xuniquely, the specified secondary keys are used in the order listed. XTo add sorting keys, click on the desired key in the 'Sort Keys XAvailable' list. To remove a sort key, click on the undesired key in Xthe 'Key to Sort On' list. X.sp XOn monochrome displays, all of the colors are displayed as black, but Xmay still be sorted. X.sp X.SH SORTING KEY DESCRIPTIONS X.PP XFile order X List colors in the order they are in the file. X.sp XIntensity X List colors according to their intensity as calculated by the sum of Xeach color's red, green, and blue intensity times their corresponding Xintensity scale's factor X.sp XName X List colors in alphabetical order according to their name X.sp XRed, Green, Blue X List colors in increasing red, green, blue intensity X.sp X.SH FILES X.TP X/usr/lib/X11/rgb.txt XX11 color names and values. X.sp X.SH AUTHOR X.PP XDavid Nedde (daven@maxine.wpi.edu). X.sp X.SH COPYRIGHT XCopyright 1991, David Nedde. X.br XPermission to use, copy, modify, and distribute this Xsoftware and its documentation for any purpose and without Xfee provided that the above copyright notice appears in all copies. XIt is provided "as is" without express or implied warranty. END_OF_FILE if test 1847 -ne `wc -c <'xrainbow/xrainbow.1'`; then echo shar: \"'xrainbow/xrainbow.1'\" unpacked with wrong size! fi # end of 'xrainbow/xrainbow.1' fi if test -f 'xrainbow/xrainbow.doc' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/xrainbow.doc'\" else echo shar: Extracting \"'xrainbow/xrainbow.doc'\" \(2031 characters\) sed "s/^X//" >'xrainbow/xrainbow.doc' <<'END_OF_FILE' XXRAINBOW(1) USER COMMANDS XRAINBOW(1) X X X XNAME X xrainbow - list and sort system colors X XSYNOPSIS X xrainbow [filename] [XToolkit options] X X XDESCRIPTION X XRainbow displays a set of colors with their names in a X scrollable list. A filename containing the list may be X specified on the command line. If not supplied, the system X color file (usually /usr/lib/X11/rgb.txt) is used. The file X filename should be in a format similar to the system color X file: red-value green-value blue-value color-name, where the X color values range from 0 to 255. X X The displayed color list may be sorted by file order, color X name, intensity or RGB values. if the primary key cannot X order the list uniquely, the specified secondary keys are X used in the order listed. To add sorting keys, click on the X desired key in the 'Sort Keys Available' list. To remove a X sort key, click on the undesired key in the 'Key to Sort On' X list. X X On monochrome displays, all of the colors are displayed as X black, but may still be sorted. X X XSORTING KEY DESCRIPTIONS X File order X List colors in the order they are in the file. X X Intensity X List colors according to their intensity as calculated by X the sum of each color's red, green, and blue intensity times X their corresponding intensity scale's factor X X Name X List colors in alphabetical order according to their name X X Red, Green, Blue X List colors in increasing red, green, blue intensity X X XFILES X /usr/lib/X11/rgb.txt X X11 color names and values. X X XAUTHOR X David Nedde (daven@maxine.wpi.edu). X X XCOPYRIGHT X Copyright 1991, David Nedde. X Permission to use, copy, modify, and distribute this X software and its documentation for any purpose and without X fee provided that the above copyright notice appears in all X copies. It is provided "as is" without express or implied X warranty. END_OF_FILE if test 2031 -ne `wc -c <'xrainbow/xrainbow.doc'`; then echo shar: \"'xrainbow/xrainbow.doc'\" unpacked with wrong size! fi # end of 'xrainbow/xrainbow.doc' fi if test ! -d 'xrainbow/Wc1_05' ; then echo shar: Creating directory \"'xrainbow/Wc1_05'\" mkdir 'xrainbow/Wc1_05' fi if test ! -d 'xrainbow/Wc1_05/Doc' ; then echo shar: Creating directory \"'xrainbow/Wc1_05/Doc'\" mkdir 'xrainbow/Wc1_05/Doc' fi if test -f 'xrainbow/Wc1_05/Doc/1stREADME' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/Doc/1stREADME'\" else echo shar: Extracting \"'xrainbow/Wc1_05/Doc/1stREADME'\" \(9208 characters\) sed "s/^X//" >'xrainbow/Wc1_05/Doc/1stREADME' <<'END_OF_FILE' X Widget Creation Library, X Motif Resource Interpreter, X Athena Resource Interpreter: X X An Easier Way to Develop Applications X using Motif and Athena Widgets. X XWindow-based applications are notoriously difficult to program. When Xthe Macintosh was introduced in early 1984, Bill Gates projected that X50% of Microsoft revenues would come from Mac application by October X1984. In reality, the first Mac applications were only beginning to be Xshipped by that date. X XWhen Steve Jobs left Apple and developed the NeXT computer, the window Xenvironment was specifically designed to support a WYSIWYG interface Xbuilder. NextStep and the NeXT IB were the results of this effort. X XThe X developers at MIT and DEC also needed an easy way to develop Xwindowed applications. Instead of developing a WYSIWYG tool like NeXT, Xthey developed a toolkit where interfaces were specified using C code, Xand could be significantly modified via `resource files' using a Xminimum number of attribute specifications. They provided an instance Xattribute inheritance mechanism to propogate attributes throughout an Xinterface. This allows such simple specification as the following to Xalter every font in an interface: X X *font: 9x15 X XThe toolkit is called the Xt Intrinsics. The windows, buttons, menus, Xscrollbars, etc., are called Widgets. The Athena Widgets are one set Xof user interface objects built upon the Xt Intrinsics. Motif is Xanother set of widgets. X XAs time went on, developers of widget-based applications found the Xresource files to be more and more useful. For the fourth release of Xthe X11 window system, many of the example programs evolved to the Xpoint that only the raw behavior of the applications were specified in XC, with most of the look and feel being specified using resource Xfiles. X XAt the fourth annual X Technical Conference, several people pointed out Xthat resource files could be used to specify everything about a widget Xbased user interface, except the actual "tree" of widgets, their types, Xand bindings of behaviors to the user interface widgets. Could the Xresource mechanism be enhanced to allow these to be specified as well? X XMartin Brunecky at Auto-Trol in Denver Colorado took up the challenge, Xand posted a simple set of routines which he called WsXc, for "Window XSystem: Xrm Creation." X XXrm stands for X Resource Manager, which is a heirarchical database for Xkeeping arbitrary named data related to X window interfaces. The Xt XIntrinsics use Xrm for widget resources. The basic idea of WsXc is to Xsearch the Xrm database, starting at the root, and pull out resources Xwhich describe the widget heirarchy and bindings to callback Xfunctions. X XOver the next several months, WsXc was repackaged as Mri (Motif XResource Interpreter), and then Ari (Athena Resource Interpreter), and Xfinally generalized into the Widget Creation Library. The result Xprovides several significant benefits to the developer and the user: X X o Rapid Prototyping: Arbitrarily complex widget interfaces X may be specified, and many common behaviors (pop-up, X change attributes, exit) can be specified for the X interface. X X o Prototyping Environment is the Development Environment is X the Delivery Environment: There is no specific breaking X point between prototyping, developing, and tuning a X delivered program. X X o Minimum Specifications: The Xrm and Xt Intrinsics instance X attribute inheritance mechanism is fully utilized, so X a minimum number of specifications can describe a X complete user interface. X X o Extensible: Adding new widget types and callback routines X is trivial. X X o Widget Set Independent: The library itself is completely X widget set independent. X X o Mostly Widget Set Independent Applications: Much of the X C code which provides the behavior of the application X can be written in a widget set independent manner. X This allows an application to be written which supports X multiple look-and-feel definitions: Motif, OpenLook, X and Athena interfaces can all be front-ends to the X same underlying application. X X o The user can make any change to the interface: Deeply nested X menus can be substituted for dialog boxes, or vice X versa. Any label or image can be altered, which X supports internationalization. X XOne of the guiding principles was and is KISS. This is intended to be Xa very small library which provides very big gains in productivity for Xprogrammers developing applications using the various widget sets based Xon the Xt Intrinsics. A large number of the total lines of code Xprovide error messages. The rest is quite straight forward. X X XThe Widget Creation Library Distribution X---------------------------------------- X XThe distribution contains files which make up the Widget Creation XLibrary, Ari (the Athena Resource Interpreter), Mri (the Motif Resource XInterpreter), and Athena and Motif demos. X X XAuthors X------- X XMartin Brunecky at Auto-trol Technology, Denver (marbru@auto-trol.UUCP) Xwrote the initial code and posted it to comp.windows.x with the title XPOOR MAN's UIL - WsXc. X XDavid Harrison of the UC Berkeley Electronics Research Lab X(davidh@ic.Berkeley.EDU or ...!ucbvax!ucbcad!davidh) wrote a very Xuseful Table widget. Kee Hinckley (nazgul@alphalpa.com) wrote a Xversion of Table which works with Motif. The Table widget, in both its Xincarnations, is so good I've included it with this distribution. It Xis separately available from archive sites. See TableHEARYE and XTableFIRST for information on this widget. X XMany people helped alot by providing bug fixes, enhancements, Xsuggestions, and just plain feedback. There are many who helped, Xincluding Andrew Peebles at MIPS, Randy Brown, Art Poley, Mike Yee of XOSF, Richard Hesketh, and our own Kaleb Keithley. X XThe rest was done by me, and here is my standard .sig: X X------------------------------------------------------------------------- XDavid Smyth david@jpl-devvax.jpl.nasa.gov XSenior Software Engineer, seismo!cit-vax!jpl-devvax!david XX and Object Guru. (818)393-0983 XJet Propulsion Lab, M/S 230-103, 4800 Oak Grove Drive, Pasadena, CA 91109 X------------------------------------------------------------------------- X X XMri and Ari Widget Resource Interpreters X---------------------------------------- X XTwo "interpreters" are provided which allow widget based user Xinterfaces to be developed and to have a few useful behaviors. These Xinterpreters are intended to be useful for prototyping. X XAri is the Athena Resource Interpreter, and it knows about all the XAthena widgets. Mri is the Motif Resource Interpreter, and is knows Xabout all the Motif widgets. Both interpreters also know about the Xvery useful Table widget, which is described in the files Table*. X XEach interpreter consists of a main() procedure, and a function which Xregisters all the known widget types. Mri consists of Mri.c and XMriRegAll.c while Ari consists of Ari.c and AriRegAll.c. The Xregistration files are intended to be independent. X XIt is a simple task to build a single interpreter which knows about Xevery widget on earth, but if you don't have shared libs, the resulting Xexecutable is HUGE. X XSeveral resource files are provided for each of the interpreters. They Xare named A<nn>_<description> and M<nn>_<description>. To try out the Xinterpreters (after you build them), do the following: X X % cd Ari X % alias se setenv XENVIRONMENT X % se A08_ClkLogo X % Ari X % cd ../Mri X % se M7_Periodic X % Mri X XThe resource files are intended to be tutorials, so they are heavily Xcommented and they explore various topics you may find interesting. X XOnce an interface is prototyped using Mri or Ari, one can take the XMri or Ari source files and makefiles and evolve them into applications. X X XSample Applications X------------------- X XThe program App is exactly one such example application. The file XAri.c was gradually modified as additional behaviors were defined, Xregistered with the Wc library, and bound to the appropriate widgets Xwithin the App01.All resource file. X XIf you look at App.c, you will notice that main() is very minimal. The Xapplication is really defined by its resource file (the look and feel) Xand the callbacks (the behavior). Notice that the callbacks use Xseveral routines provided by the Wc library. They will be introduced Xin another README file. X XAfter you build App, you can try it out as follows: X X % cd DemosAthena X % se App01.All X % App X XAnother sample application included with the distribution is MD, which Xis built as two versions: MDathena and MDmotif. The Motif version Xcurrently does not work very well due buggy interactions between Motif Xand the Intrinsics. This application demonstrates how a single Xapplication can support multiple display connections with multiple Xwidget heirarchies. These may be executed like this: X X % se MD X % MDathena X % cd ../DemosMotif X % MDmotif X END_OF_FILE if test 9208 -ne `wc -c <'xrainbow/Wc1_05/Doc/1stREADME'`; then echo shar: \"'xrainbow/Wc1_05/Doc/1stREADME'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/Doc/1stREADME' fi if test -f 'xrainbow/Wc1_05/Imakefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/Imakefile'\" else echo shar: Extracting \"'xrainbow/Wc1_05/Imakefile'\" \(934 characters\) sed "s/^X//" >'xrainbow/Wc1_05/Imakefile' <<'END_OF_FILE' X#include "Wc.tmpl" X X#define IHaveSubdirs X X#if HaveAthenaWidgetSet X ATHENA_DIRS = Xp Ari DemosAthena X#endif X X#if HaveMotifWidgetSet X MOTIF_DIRS = Xmp Mri DemosMotif X#endif X X/* X * It is absolutely essential that sub-directories with libraries X * come before subdirectories which link against the libraries! X */ X SUBDIRS = Wc $(ATHENA_DIRS) $(MOTIF_DIRS) X X/**/# "make all" builds the library and the applications without X/**/# installing anything. If you are using shared libraries, these X/**/# applications will not work anywhere else! X/**/# X#define PassTestFlags 'CDEBUGFLAGS=-I.. -L../Wc -L../Xp -L../Xmp $(CDEBUGFLAGS)' X XNamedTargetSubdirs(all,$(SUBDIRS),"making",PassTestFlags,all) X X X/**/# "make install" first builds the library, then installs the library X/**/# and includes, then builds all the applications. We must do it X/**/# like this so the applications point to the installed library X/**/# when shared libs are used. END_OF_FILE if test 934 -ne `wc -c <'xrainbow/Wc1_05/Imakefile'`; then echo shar: \"'xrainbow/Wc1_05/Imakefile'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/Imakefile' fi if test -f 'xrainbow/Wc1_05/Install.rules' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/Install.rules'\" else echo shar: Extracting \"'xrainbow/Wc1_05/Install.rules'\" \(8291 characters\) sed "s/^X//" >'xrainbow/Wc1_05/Install.rules' <<'END_OF_FILE' X/**/########################################################################### X/**/# Imake rules for building and installing libraries, programs, X/**/# apps-defaults, and other data files. Unlike Imake.rules, these X/**/# rules allow files to be installed anywhere. X/**/# X/**/# These rules *override* rules of the same name defined in Imake.rules!! X/**/# X/**/# New variables: X/**/# INSTBIN default to $BINDIR - programs installed here X/**/# INSTMAN default to $MANDIR - man pages installed here X/**/# INSTAPP default to $XAPPLOADDIR - apps-defaults files go here X/**/# X/**/# David E. Smyth: Install.rules Wed Jan 2 07:12:10 PST 1991 X X/* X * Warning, when defining rules: make sure you don't include both a trailing X * backslash and double ampersand backslash or else you will get an extra X * backslash in the Makefile. X * X * These macros are defined for the various templates and Imakefiles: X * X * UninstalledComplexProgramTarget (program) X * UninstalledComplexProgramTarget_1 (program,locallib,syslib) X * UninstalledComplexProgramTarget_2 (program,locallib,syslib) X * UninstalledComplexProgramTarget_3 (program,locallib,syslib) X * InstallProgram (program,dest) X * ComplexProgramTarget (program) X * ComplexProgramTarget_1 (program,locallib,syslib) X * ComplexProgramTarget_2 (program,locallib,syslib) X * ComplexProgramTarget_3 (program,locallib,syslib) X * InstallAppDefaults (class) X */ X X/* X * UninstalledComplexProgramTarget - generate rules for compiling and linking X * program specified by $(OBJS) and $(SRCS), and generating dependencies. X * It should only be used in Imakefiles that describe a single program. X */ X#ifdef UninstalledComplexProgramTarget X#undef UninstalledComplexProgramTarget X#endif X#define UninstalledComplexProgramTarget(program) @@\ X PROGRAM = program @@\ X @@\ XAllTarget(program) @@\ X @@\ Xprogram: $(OBJS) $(DEPLIBS) @@\ X RemoveTargetProgram($@) @@\ X $(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS) @@\ X @@\ XSaberProgramTarget(program,$(SRCS),$(OBJS),$(LOCAL_LIBRARIES), /**/) @@\ X @@\ XDependTarget() @@\ XLintTarget() @@\ X @@\ Xclean:: @@\ X $(RM) $(PROGRAM) X/* UninstalledComplexProgramTarget */ X X X/* X * UninstalledComplexProgramTarget_1 - generate rules for compiling and linking X * program specified by $(OBJS1) and $(SRCS1), and generating dependencies for X * it and any programs described by $(SRCS2) and $(SRCS3). It should be used X * to build the primary program in Imakefiles that describe multiple programs. X */ X#ifdef UninstalledComplexProgramTarget_1 X#undef UninstalledComplexProgramTarget_1 X#endif X#define UninstalledComplexProgramTarget_1(program,locallib,syslib) @@\ X OBJS = $(OBJS1) $(OBJS2) $(OBJS3) @@\ X SRCS = $(SRCS1) $(SRCS2) $(SRCS3) @@\ X @@\ XAllTarget($(PROGRAMS)) @@\ X @@\ Xprogram: $(OBJS1) $(DEPLIBS1) @@\ X RemoveTargetProgram($@) @@\ X $(CC) -o $@ $(LDOPTIONS) $(OBJS1) locallib $(LDLIBS) syslib $(EXTRA_LOAD_FLAGS) @@\ X @@\ XSaberProgramTarget(program,$(SRCS1),$(OBJS1),locallib,syslib) @@\ X @@\ XDependTarget() @@\ XLintTarget() @@\ X @@\ Xclean:: @@\ X $(RM) $(PROGRAMS) X/* UninstalledComplexProgramTarget_1 */ X X X/* X * UninstalledComplexProgramTarget_2 - generate rules for compiling and linking X * program specified by $(OBJS2) and $(SRCS2). It should be used to build the X * second program in Imakefiles describing more than one program. X */ X#ifdef UninstalledComplexProgramTarget_2 X#undef UninstalledComplexProgramTarget_2 X#endif X#define UninstalledComplexProgramTarget_2(program,locallib,syslib) @@\ Xprogram: $(OBJS2) $(DEPLIBS2) @@\ X RemoveTargetProgram($@) @@\ X $(CC) -o $@ $(LDOPTIONS) $(OBJS2) locallib $(LDLIBS) syslib $(EXTRA_LOAD_FLAGS) @@\ X @@\ XSaberProgramTarget(program,$(SRCS2),$(OBJS2),locallib,syslib) X/* UninstalledComplexProgramTarget_2 */ X X X/* X * UninstalledComplexProgramTarget_3 - generate rules for compiling and linking X * program specified by $(OBJS3) and $(SRCS3) and installing the program and X * man page. It should be used to build the third program in Imakefiles X * describing more than one program. X */ X#ifdef UninstalledComplexProgramTarget_3 X#undef UninstalledComplexProgramTarget_3 X#endif X#define UninstalledComplexProgramTarget_3(program,locallib,syslib) @@\ Xprogram: $(OBJS3) $(DEPLIBS3) @@\ X RemoveTargetProgram($@) @@\ X $(CC) -o $@ $(LDOPTIONS) $(OBJS3) locallib $(LDLIBS) syslib $(EXTRA_LOAD_FLAGS) @@\ X @@\ XSaberProgramTarget(program,$(SRCS3),$(OBJS3),locallib,syslib) X/* UninstalledComplexProgramTarget_3 */ X X X/* X * InstallProgram - generate rules to install an executable program using any X * special install flags set in $(INSTALLFLAGS). If shared libraries are used, X * then the program is re-linked. X */ X#ifdef InstallProgram X#undef InstallProgram X#endif X#if HasSunOSSharedLibraries X#define InstallProgram(program,dest) @@\ Xinstall:: @@\ X RemoveTargetProgram(program) @@\ X @@\ XInstallProgramWithFlags(program,dest, /**/) X#else X#define InstallProgram(program,dest) @@\ XInstallProgramWithFlags(program,dest, /**/) X#endif X/* InstallProgram */ X X X/* X * ComplexProgramTarget - generate rules for compiling and linking the X * program specified by $(OBJS) and $(SRCS), installing the program and its X * man page, and generating dependencies. It should only be used in X * Imakefiles that describe a single program. X */ X#ifdef ComplexProgramTarget X#undef ComplexProgramTarget X#endif X#define ComplexProgramTarget(program) @@\ XUninstalledComplexProgramTarget(program) @@\ XInstallProgram(program,$(INSTBIN)) @@\ XInstallManPage(program,$(INSTMAN)) X/* ComplexProgramTarget */ X X X/* X * ComplexProgramTarget_1 - generate rules for compiling and linking the X * program specified by $(OBJS1) and $(SRCS1), installing the program and its X * man page, and generating dependencies for it and any programs described X * by $(SRCS2) and $(SRCS3). It should be used to build the primary X * program in Imakefiles that describe multiple programs. X */ X#ifdef ComplexProgramTarget_1 X#undef ComplexProgramTarget_1 X#endif X#define ComplexProgramTarget_1(program,locallib,syslib) @@\ XUninstalledComplexProgramTarget_1(program,locallib,syslib) @@\ XInstallProgram(program,$(INSTBIN)) @@\ XInstallManPage(program,$(INSTMAN)) X/* ComplexProgramTarget_1 */ X X X/* X * ComplexProgramTarget_2 - generate rules for compiling and linking the X * program specified by $(OBJS2) and $(SRCS2) and installing the program and X * man page. It should be used to build the second program in Imakefiles X * describing more than one program. X */ X#ifdef ComplexProgramTarget_2 X#undef ComplexProgramTarget_2 X#endif X#define ComplexProgramTarget_2(program,locallib,syslib) @@\ XUninstalledComplexProgramTarget_2(program,locallib,syslib) @@\ XInstallProgram(program,$(INSTBIN)) @@\ XInstallManPage(program,$(INSTMAN)) X/* ComplexProgramTarget_2 */ X X X/* X * ComplexProgramTarget_3 - generate rules for compiling and linking the X * program specified by $(OBJS3) and $(SRCS3) and installing the program and X * man page. It should be used to build the third program in Imakefiles X * describing more than one program. X */ X#ifdef ComplexProgramTarget_3 X#undef ComplexProgramTarget_3 X#endif X#define ComplexProgramTarget_3(program,locallib,syslib) @@\ XUninstalledComplexProgramTarget_3(program,locallib,syslib) @@\ XInstallProgram(program,$(INSTBIN)) @@\ XInstallManPage(program,$(INSTMAN)) X/* ComplexProgramTarget_3 */ X X X X/* X * InstallAppDefaults - generate rules to install appliation default files X * if the InstallAppDefFiles configuration parameter is set. X */ X#ifdef InstallAppDefaults X#undef InstallAppDefaults X#endif X#if InstallAppDefFiles X#define InstallAppDefaults(class) @@\ Xinstall:: class.ad @@\ X $(INSTALL) -c $(INSTAPPFLAGS) class.ad $(INSTAPP)/class X#else X#define InstallAppDefaults(class) X#endif /* InstallAppDefFiles */ X/* InstallAppDefaults */ X END_OF_FILE if test 8291 -ne `wc -c <'xrainbow/Wc1_05/Install.rules'`; then echo shar: \"'xrainbow/Wc1_05/Install.rules'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/Install.rules' fi if test -f 'xrainbow/Wc1_05/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/Makefile'\" else echo shar: Extracting \"'xrainbow/Wc1_05/Makefile'\" \(13001 characters\) sed "s/^X//" >'xrainbow/Wc1_05/Makefile' <<'END_OF_FILE' X# Makefile generated by imake - do not edit! X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $ X# X# The cpp used on this machine replaces all newlines and multiple tabs and X# spaces in a macro expansion with a single space. Imake tries to compensate X# for this, but is not always successful. X# X X########################################################################### X# Makefile generated from "Imake.tmpl" and <Imakefile> X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $ X# X# Platform-specific parameters may be set in the appropriate .cf X# configuration files. Site-wide parameters may be set in the file X# site.def. Full rebuilds are recommended if any parameters are changed. X# X# If your C preprocessor doesn't define any unique symbols, you'll need X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing X# "make Makefile", "make Makefiles", or "make World"). X# X# If you absolutely can't get imake to work, you'll need to set the X# variables at the top of each Makefile as well as the dependencies at the X# bottom (makedepend will do this automatically). X# X X########################################################################### X# platform-specific configuration parameters - edit sun.cf to change X X# platform: $XConsortium: sun.cf,v 1.38 89/12/23 16:10:10 jim Exp $ X# operating system: SunOS 4.0 X X########################################################################### X# site-specific configuration parameters - edit site.def to change X X# site: $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $ X X SHELL = /bin/sh X X TOP = . X CURRENT_DIR = . X X AR = ar cq X BOOTSTRAPCFLAGS = X CC = cc X X COMPRESS = compress X CPP = /lib/cpp $(STD_CPP_DEFINES) X PREPROCESSCMD = cc -E $(STD_CPP_DEFINES) X INSTALL = install X LD = ld X LINT = lint X LINTLIBFLAG = -C X LINTOPTS = -axz X LN = ln -s X MAKE = make X MV = mv X CP = cp X RANLIB = ranlib X RANLIBINSTFLAGS = X RM = rm -f X STD_INCLUDES = X STD_CPP_DEFINES = X STD_DEFINES = X EXTRA_LOAD_FLAGS = X EXTRA_LIBRARIES = X TAGS = ctags X X SHAREDCODEDEF = -DSHAREDCODE X SHLIBDEF = -DSUNSHLIB X X PROTO_DEFINES = X X INSTPGMFLAGS = X X INSTBINFLAGS = -m 0755 X INSTUIDFLAGS = -m 4755 X INSTLIBFLAGS = -m 0664 X INSTINCFLAGS = -m 0444 X INSTMANFLAGS = -m 0444 X INSTDATFLAGS = -m 0444 X INSTKMEMFLAGS = -m 4755 X X DESTDIR = X X TOP_INCLUDES = -I$(INCROOT) X X CDEBUGFLAGS = -O X CCOPTIONS = X COMPATFLAGS = -DXAW_BC X X ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) X ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS) X CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES) X LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) X LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) X LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) X LDCOMBINEFLAGS = -X -r X X MACROFILE = sun.cf X RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut X X IMAKE_DEFINES = X X IRULESRC = $(CONFIGDIR) X IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) X X ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \ X $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \ X $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES) X X########################################################################### X# X Window System Build Parameters X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $ X X########################################################################### X# X Window System make variables; this need to be coordinated with rules X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $ X X PATHSEP = / X USRLIBDIR = $(DESTDIR)/usr/lib X BINDIR = $(DESTDIR)/usr/bin/X11 X INCROOT = $(DESTDIR)/usr/include X BUILDINCROOT = $(TOP) X BUILDINCDIR = $(BUILDINCROOT)/X11 X BUILDINCTOP = .. X INCDIR = $(INCROOT)/X11 X ADMDIR = $(DESTDIR)/usr/adm X LIBDIR = $(USRLIBDIR)/X11 X CONFIGDIR = $(LIBDIR)/config X LINTLIBDIR = $(USRLIBDIR)/lint X X FONTDIR = $(LIBDIR)/fonts X XINITDIR = $(LIBDIR)/xinit X XDMDIR = $(LIBDIR)/xdm X AWMDIR = $(LIBDIR)/awm X TWMDIR = $(LIBDIR)/twm X GWMDIR = $(LIBDIR)/gwm X MANPATH = $(DESTDIR)/usr/man X MANSOURCEPATH = $(MANPATH)/man X MANDIR = $(MANSOURCEPATH)n X LIBMANDIR = $(MANSOURCEPATH)3 X XAPPLOADDIR = $(LIBDIR)/app-defaults X X SOXLIBREV = 4.2 X SOXTREV = 4.0 X SOXAWREV = 4.0 X SOOLDXREV = 4.0 X SOXMUREV = 4.0 X SOXEXTREV = 4.0 X X FONTCFLAGS = -t X X INSTAPPFLAGS = $(INSTDATFLAGS) X X IMAKE = imake X DEPEND = makedepend X RGB = rgb X FONTC = bdftosnf X MKFONTDIR = mkfontdir X MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier.sh X X CONFIGSRC = $(TOP)/config X CLIENTSRC = $(TOP)/clients X DEMOSRC = $(TOP)/demos X LIBSRC = $(TOP)/lib X FONTSRC = $(TOP)/fonts X INCLUDESRC = $(TOP)/X11 X SERVERSRC = $(TOP)/server X UTILSRC = $(TOP)/util X SCRIPTSRC = $(UTILSRC)/scripts X EXAMPLESRC = $(TOP)/examples X CONTRIBSRC = $(TOP)/../contrib X DOCSRC = $(TOP)/doc X RGBSRC = $(TOP)/rgb X DEPENDSRC = $(UTILSRC)/makedepend X IMAKESRC = $(CONFIGSRC) X XAUTHSRC = $(LIBSRC)/Xau X XLIBSRC = $(LIBSRC)/X X XMUSRC = $(LIBSRC)/Xmu X TOOLKITSRC = $(LIBSRC)/Xt X AWIDGETSRC = $(LIBSRC)/Xaw X OLDXLIBSRC = $(LIBSRC)/oldX X XDMCPLIBSRC = $(LIBSRC)/Xdmcp X BDFTOSNFSRC = $(FONTSRC)/bdftosnf X MKFONTDIRSRC = $(FONTSRC)/mkfontdir X EXTENSIONSRC = $(TOP)/extensions X X DEPEXTENSIONLIB = $(USRLIBDIR)/libXext.a X EXTENSIONLIB = -lXext X X DEPXLIB = $(DEPEXTENSIONLIB) X XLIB = $(EXTENSIONLIB) -lX11 X X DEPXAUTHLIB = $(USRLIBDIR)/libXau.a X XAUTHLIB = -lXau X X DEPXMULIB = X XMULIB = -lXmu X X DEPOLDXLIB = X OLDXLIB = -loldX X X DEPXTOOLLIB = X XTOOLLIB = -lXt X X DEPXAWLIB = X XAWLIB = -lXaw X X LINTEXTENSIONLIB = $(USRLIBDIR)/llib-lXext.ln X LINTXLIB = $(USRLIBDIR)/llib-lX11.ln X LINTXMU = $(USRLIBDIR)/llib-lXmu.ln X LINTXTOOL = $(USRLIBDIR)/llib-lXt.ln X LINTXAW = $(USRLIBDIR)/llib-lXaw.ln X X DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) X X DEPLIBS1 = $(DEPLIBS) X DEPLIBS2 = $(DEPLIBS) X DEPLIBS3 = $(DEPLIBS) X X########################################################################### X# Imake rules for building libraries, programs, scripts, and data files X# rules: $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $ X X########################################################################### X# start of Imakefile X X########################################################################### X# Imake rules for building and installing libraries, programs, X# apps-defaults, and other data files. Unlike Imake.rules, these X# rules allow files to be installed anywhere. X# X# These rules *override* rules of the same name defined in Imake.rules!! X# X# New variables: X# INSTBIN default to $BINDIR - programs installed here X# INSTMAN default to $MANDIR - man pages installed here X# INSTAPP default to $XAPPLOADDIR - apps-defaults files go here X# X# David E. Smyth: Install.rules Wed Jan 2 07:12:10 PST 1991 X X########################################################################### X# Makefile defines for Widget Creation Library distribution. X# David E. Smyth: Wc.tmpl Wed Jan 2 07:44:04 PST 1991 X X# What I use for pre-release testing X X INSTLIB = . X INSTLIN = . X INSTINC = . X INSTBIN = . X INSTMAN = . X INSTAPP = . X X MKDIRHIER = X X WCTOPDIR = . X X WCLIB = -L$(INSTLIB) -lWc X XPLIB = -L$(INSTLIB) -lXp X XMPLIB = -L$(INSTLIB) -lXmp X X SoWcRev = 1.05 X X ATHENA_DIRS = Xp Ari DemosAthena X X SUBDIRS = Wc $(ATHENA_DIRS) $(MOTIF_DIRS) X X# "make all" builds the library and the applications without X# installing anything. If you are using shared libraries, these X# applications will not work anywhere else! X# X Xall:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "making" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) 'CDEBUGFLAGS=-I.. -L../Wc -L../Xp -L../Xmp $(CDEBUGFLAGS)' all); \ X done X X# "make install" first builds the library, then installs the library X# and includes, then builds all the applications. We must do it X# like this so the applications point to the installed library X# when shared libs are used. X X########################################################################### X# common rules for all Makefiles - do not edit X Xemptyrule:: X Xclean:: X $(RM_CMD) \#* X XMakefile:: X -@if [ -f Makefile ]; then \ X echo " $(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \ X $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ X else exit 0; fi X $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) X Xtags:: X $(TAGS) -w *.[ch] X $(TAGS) -xw *.[ch] > TAGS X X########################################################################### X# rules for building in SUBDIRS - do not edit X Xinstall:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "installing" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) DESTDIR='$(DESTDIR)' install); \ X done X Xinstall.man:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "installing man pages" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) DESTDIR='$(DESTDIR)' install.man); \ X done X Xclean:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "cleaning" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) RM_CMD='$(RM_CMD)' clean); \ X done X Xtags:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo "tagging" "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) TAGS='$(TAGS)' tags); \ X done X XMakefiles:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X echo "making Makefiles in $(CURRENT_DIR)/$$i..."; \ X case "$$i" in \ X ./?*/?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \ X ./?*/?*/?*) newtop=../../../ sub=subsubsub;; \ X ./?*/?*) newtop=../../ sub=subsub;; \ X ./?*) newtop=../ sub=sub;; \ X */?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \ X */?*/?*) newtop=../../../ sub=subsubsub;; \ X */?*) newtop=../../ sub=subsub;; \ X *) newtop=../ sub=sub;; \ X esac; \ X case "$(TOP)" in \ X /?*) newtop= upprefix= ;; \ X *) upprefix=../ ;; \ X esac; \ X $(MAKE) $${sub}dirMakefiles UPPREFIX=$$upprefix NEWTOP=$$newtop \ X MAKEFILE_SUBDIR=$$i NEW_CURRENT_DIR=$(CURRENT_DIR)/$$i;\ X done X XsubdirMakefiles: X $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak X -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ X echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ X $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ X else exit 0; fi X cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(UPPREFIX)$(TOP) -DCURDIR=$(NEW_CURRENT_DIR); \ X $(MAKE) $(MFLAGS) Makefiles X XsubsubdirMakefiles: X $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak X -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ X echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ X $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ X else exit 0; fi X cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(UPPREFIX)$(UPPREFIX)$(TOP) -DCURDIR=$(NEW_CURRENT_DIR); \ X $(MAKE) $(MFLAGS) Makefiles X XsubsubsubdirMakefiles: X $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak X -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ X echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ X $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ X else exit 0; fi X cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(TOP) -DCURDIR=$(NEW_CURRENT_DIR); \ X $(MAKE) $(MFLAGS) Makefiles X XsubsubsubsubdirMakefiles: X $(RM) $(MAKEFILE_SUBDIR)/Makefile.bak X -@if [ -f $(MAKEFILE_SUBDIR)/Makefile ]; then \ X echo " $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak"; \ X $(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak; \ X else exit 0; fi X cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(UPPREFIX)$(TOP) -DCURDIR=$(NEW_CURRENT_DIR); \ X $(MAKE) $(MFLAGS) Makefiles X Xincludes:: X @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ X for i in $(SUBDIRS) ;\ X do \ X (cd $$i ; echo including "in $(CURRENT_DIR)/$$i..."; \ X $(MAKE) $(MFLAGS) includes); \ X done X X########################################################################### X# dependencies generated by makedepend X END_OF_FILE if test 13001 -ne `wc -c <'xrainbow/Wc1_05/Makefile'`; then echo shar: \"'xrainbow/Wc1_05/Makefile'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/Makefile' fi if test -f 'xrainbow/Wc1_05/README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/README'\" else echo shar: Extracting \"'xrainbow/Wc1_05/README'\" \(2291 characters\) sed "s/^X//" >'xrainbow/Wc1_05/README' <<'END_OF_FILE' XWidget Creation Library Version 1.05 Distribution X------------------------------------------------ X XThe distribution contains files which make up the Widget Creation XLibrary, Ari (the Athena Resource Interpreter), Mri (the Motif XResource Interpreter), two versions of the Table widget, and Athena Xand Motif demos. X X XREADME Files and Documentation X------------------------------ X XThe Doc directory provides Postscript and pure text README files for Xdocumentation. I hope you will find the comments in the source files Xuseful. Also, several example resource files are provided with Xextensive comments. X XThe postscript files are a paper and view graphs for a tutorial which I Xwill present at the 5th X Technical Conference in January 1991. X XMan pages for the installed programs (Ari and Mri) are provided. X X XImakefiles X--------- X XYou will probably need to edit the Wc.tmpl file in this directory. XComments in the file tell you what to do. X X XBuilding The Distribution using Imake X------------------------------------- X XAfter editing the Wc.tmpl file as discussed above, you can build the Xdistribution very simply. X X % make Makefile X % make Makefiles X % make X XNote: `make depend' may not work, and is completely unecessary for Xthis release. X X XTesting The Distribution X------------------------ X XI have included a simple test csh script which executes all of the Xexample programs. After you build, the test program will execute Xall of the executable targets it finds. Just do the following: X X % test X X X XInstalling the Distribution X--------------------------- X XThe Imakefiles generate an install target which causes the libraries to Xbe installed, and the applications re-linked on machines which support Xdynamic linking. Dynamically linked applications must be re-linked Xduring installation so the applications reference the installed Xlibraries, rather than the ones in the build tree. X XAgain, you should test the installed programs to make sure everything Xworks correctly: X X % make install X % make install.man X % test_install X XIf you have installed the apps-defaults files in a non-standard Xlocation (anywhere besides /usr/lib/X11/apps-defaults) then you Xwill need to specify the pathname as an argument to test_install Xlike this: X X % test_install ~/tmp/apps-defaults END_OF_FILE if test 2291 -ne `wc -c <'xrainbow/Wc1_05/README'`; then echo shar: \"'xrainbow/Wc1_05/README'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/README' fi if test -f 'xrainbow/Wc1_05/Wc.tmpl' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/Wc.tmpl'\" else echo shar: Extracting \"'xrainbow/Wc1_05/Wc.tmpl'\" \(1732 characters\) sed "s/^X//" >'xrainbow/Wc1_05/Wc.tmpl' <<'END_OF_FILE' X#include "Install.rules" X/**/########################################################################### X/**/# Makefile defines for Widget Creation Library distribution. X/**/# David E. Smyth: Wc.tmpl Wed Jan 2 07:44:04 PST 1991 X X/* X * Variables which may need to be tailored on a site by site basis: X * X * name value default X * X * HaveAthenaWidgetSet YES or NO YES X * HaveMotifWidgetSet YES or NO NO X * X * UsingOldXt (Pre-R4) YES or NO NO X * X * StandardInstallationLocation YES or NO YES X * INSTLIB libraries here $(LIBDIR) X * INSTLIN lint libs here $(LINTLIBDIR) X * INSTINC includes here $(INCDIR) X * INSTBIN progs installed here $(BINDIR) X * INSTMAN man pgs installed here $(MANDIR) X * INSTAPP app-defaults here $(XAPPLOADDIR) X */ X X#define HaveAthenaWidgetSet YES X#define HaveMotifWidgetSet NO X X#define UsingOldXt NO X X#define StandardInstallationLocation YES X X#if StandardInstallationLocation X INSTLIB = $(LIBDIR) X INSTLIN = $(LINTLIBDIR) X INSTINC = $(INCDIR) X INSTBIN = $(BINDIR) X INSTMAN = $(MANDIR) X INSTAPP = $(XAPPLOADDIR) X#else X/**/# What I use for pre-release testing X#define PreCM u/tds/david/tmp X INSTLIB = . X INSTLIN = . X INSTINC = . X INSTBIN = . X INSTMAN = . X INSTAPP = . X X MKDIRHIER = X#endif X X/* X * You probably never need to make any edits from here to end of file X */ X X#ifndef WcTopDir X#define WcTopDir . X#endif X X WCTOPDIR = WcTopDir X/* X * making all from the top level Makefile overrides these to use local libs X */ X WCLIB = -L$(INSTLIB) -lWc X XPLIB = -L$(INSTLIB) -lXp X XMPLIB = -L$(INSTLIB) -lXmp X X#if HasSunOSSharedLibraries X SoWcRev = 1.05 X#else X DEPLIBS = $(WCTOPDIR)/Wc/libWc.a X#endif END_OF_FILE if test 1732 -ne `wc -c <'xrainbow/Wc1_05/Wc.tmpl'`; then echo shar: \"'xrainbow/Wc1_05/Wc.tmpl'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/Wc.tmpl' fi if test ! -d 'xrainbow/Wc1_05/Wc' ; then echo shar: Creating directory \"'xrainbow/Wc1_05/Wc'\" mkdir 'xrainbow/Wc1_05/Wc' fi if test -f 'xrainbow/Wc1_05/Wc/Imakefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/Wc/Imakefile'\" else echo shar: Extracting \"'xrainbow/Wc1_05/Wc/Imakefile'\" \(2157 characters\) sed "s/^X//" >'xrainbow/Wc1_05/Wc/Imakefile' <<'END_OF_FILE' X#include "../Wc.tmpl" X X/**/# Imakefile for libWc X/**/# This file is derived from mit/lib/Xt/Imakefile X XCDEBUGFLAGS= -g X X# If you are building libWc to run on top of an Xt older X# than X11R4, then you must add Xt4GetResL.o to the list X# of object files built into libWc. X# Just define UsingOldXt to YES (see ../Wc.tmpl) and it will build properly. X X#if UsingOldXt XOLD_XT_SRCS = Xt4GetResL.c XOLD_XT_OBJS = Xt4GetResL.o X#endif X X APP_DEFINES = -DXAPPLOADDIR=\"$(XAPPLOADDIR)$(PATHSEP)\" X XHEADERS = WcCreate.h WcCreateP.h X XSRCS = \ X WcActions.c \ X WcCallb.c \ X WcConvert.c \ X WcCreate.c \ X WcName.c \ X WcReg.c \ X WcRegXt.c \ X $(OLD_XT_SRCS) X XOBJS = \ X WcActions.o \ X WcCallb.o \ X WcConvert.o \ X WcCreate.o \ X WcName.o \ X WcReg.o \ X WcRegXt.o \ X $(OLD_XT_OBJS) X Xall:: X#if 0 X#if HasSunOSSharedLibraries X# if DebugLibWc XSharedAndDebuggedLibraryObjectRule() XSpecialSharedAndDebuggedObjectRule(WcCallb.o,$(ICONFIGFILES),$(APP_DEFINES)) X# else XSharedLibraryObjectRule() XSpecialSharedObjectRule(WcCallb.o,$(ICONFIGFILES),$(APP_DEFINES)) X# endif X#else X# if DebugLibWc && ProfileLibWc XDebuggedAndProfiledLibraryObjectRule() XSpecialDebuggedAndProfiledObjectRule(WcCallb.o,$(ICONFIGFILES),$(APP_DEFINES)) X# else X# if DebugLibWc XDebuggedLibraryObjectRule() XSpecialDebuggedObjectRule(WcCallb.o,$(ICONFIGFILES),$(APP_DEFINES)) X# else X# if ProfileLibWc XProfiledLibraryObjectRule() XSpecialProfiledObjectRule(WcCallb.o,$(ICONFIGFILES),$(APP_DEFINES)) X# else XNormalLibraryObjectRule() XSpecialObjectRule(WcCallb.o,$(ICONFIGFILES),$(APP_DEFINES)) X# endif X# endif X# endif X#endif X#endif X X/* X * always generate unshared library too X */ X#if 0 /*HasSunOSSharedLibraries*/ XNormalSharedLibraryTarget(Wc,$(SoWcRev),$(OBJS)) XInstallSharedLibrary(Wc,$(SoWcRev),$(INSTLIB)) X#endif XNormalLibraryTarget(Wc,$(OBJS)) XInstallLibrary(Wc,$(INSTLIB)) X XLintLibraryTarget(Wc,$(SRCS)) XInstallLintLibrary(Wc,$(INSTLIN)) X X#if ProfileLibWc XProfiledLibraryTarget(Wc,$(OBJS)) XInstallLibrary(Wc_p,$(INSTLIB)) X#endif X X#if DebugLibWc XDebuggedLibraryTarget(Wc,$(OBJS)) X#endif X XMakeDirectories(install,$(INSTINC)/Wc) XInstallMultiple($(HEADERS),$(INSTINC)/Wc) X XDependTarget() X XNormalLintTarget($(SRCS)) END_OF_FILE if test 2157 -ne `wc -c <'xrainbow/Wc1_05/Wc/Imakefile'`; then echo shar: \"'xrainbow/Wc1_05/Wc/Imakefile'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/Wc/Imakefile' fi if test -f 'xrainbow/Wc1_05/Wc/Xt4GetResL.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/Wc/Xt4GetResL.c'\" else echo shar: Extracting \"'xrainbow/Wc1_05/Wc/Xt4GetResL.c'\" \(4039 characters\) sed "s/^X//" >'xrainbow/Wc1_05/Wc/Xt4GetResL.c' <<'END_OF_FILE' X/* X The following is the XtGetConstraintResourceList function from X the R4 Intrinsics. This function is not provided by the Motif X 1.0 Intrinsics. Only change: ConstraintClassFlag was changed to X _XtConstraintBit. X X This file normally does not get included into the Wc library. Only X if the Widget Creation Library is intended to be used with Motif 1.0 X (which is generally a bad idea - get Motif 1.1!!!!!!!), this file X should be compiled and either added to the library libWc, or X added to the list of object files during linking, placed between X libWc and libXtm. X X Or better yet, use Motif 1.1 so you can use the X11R4 Intrinsics!!! X X Here is the standard X11 copyright notice which applies to this X file: X XCopyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, Xand the Massachusetts Institute of Technology, Cambridge, Massachusetts. X X All Rights Reserved X XPermission to use, copy, modify, and distribute this software and its Xdocumentation for any purpose and without fee is hereby granted, Xprovided that the above copyright notice appear in all copies and that Xboth that copyright notice and this permission notice appear in Xsupporting documentation, and that the names of Digital or MIT not be Xused in advertising or publicity pertaining to distribution of the Xsoftware without specific, written prior permission. X XDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING XALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL XDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR XANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, XWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, XARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS XSOFTWARE. X X*/ X X#include <X11/IntrinsicP.h> X/*************** Begin source from X11R4 GetResList.c ***************/ X Xstatic Boolean ClassIsSubclassOf(class, superclass) X WidgetClass class, superclass; X{ X for (; class != NULL; class = class->core_class.superclass) { X if (class == superclass) return True; X } X return False; X} X Xvoid XtGetConstraintResourceList(widget_class, resources, num_resources) X WidgetClass widget_class; X XtResourceList *resources; X Cardinal *num_resources; X{ X int size; X register int i, dest = 0; X register XtResourceList *list, dlist; X ConstraintWidgetClass class = (ConstraintWidgetClass)widget_class; X X if ( (class->core_class.class_inited && X !(class->core_class.class_inited & _XtConstraintBit)) /* DES */ X || (!class->core_class.class_inited && X !ClassIsSubclassOf(widget_class, constraintWidgetClass)) X || class->constraint_class.num_resources == 0) { X X *resources = NULL; X *num_resources = 0; X return; X } X X size = class->constraint_class.num_resources * sizeof(XtResource); X *resources = (XtResourceList) XtMalloc((unsigned) size); X X if (!class->core_class.class_inited) { X /* Easy case */ X X bcopy((char *)class->constraint_class.resources, X (char *) *resources, size); X *num_resources = class->constraint_class.num_resources; X return; X } X X /* Nope, it's the hard case */ X X list = (XtResourceList *) class->constraint_class.resources; X dlist = *resources; X for (i = 0; i < class->constraint_class.num_resources; i++) { X if (list[i] != NULL) { X dlist[dest].resource_name = (String) X XrmQuarkToString((XrmQuark) list[i]->resource_name); X dlist[dest].resource_class = (String) X XrmQuarkToString((XrmQuark) list[i]->resource_class); X dlist[dest].resource_type = (String) X XrmQuarkToString((XrmQuark) list[i]->resource_type); X dlist[dest].resource_size = list[i]->resource_size; X dlist[dest].resource_offset = -(list[i]->resource_offset + 1); X dlist[dest].default_type = (String) X XrmQuarkToString((XrmQuark) list[i]->default_type); X dlist[dest].default_addr = list[i]->default_addr; X dest++; X } X } X *num_resources = dest; X} X X/*************** End source from X11R4 GetResList.c ***************/ END_OF_FILE if test 4039 -ne `wc -c <'xrainbow/Wc1_05/Wc/Xt4GetResL.c'`; then echo shar: \"'xrainbow/Wc1_05/Wc/Xt4GetResL.c'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/Wc/Xt4GetResL.c' fi if test -f 'xrainbow/Wc1_05/patchlevel.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/Wc1_05/patchlevel.h'\" else echo shar: Extracting \"'xrainbow/Wc1_05/patchlevel.h'\" \(21 characters\) sed "s/^X//" >'xrainbow/Wc1_05/patchlevel.h' <<'END_OF_FILE' X#define PATCHLEVEL 5 END_OF_FILE if test 21 -ne `wc -c <'xrainbow/Wc1_05/patchlevel.h'`; then echo shar: \"'xrainbow/Wc1_05/patchlevel.h'\" unpacked with wrong size! fi # end of 'xrainbow/Wc1_05/patchlevel.h' fi if test ! -d 'xrainbow/X11' ; then echo shar: Creating directory \"'xrainbow/X11'\" mkdir 'xrainbow/X11' fi if test ! -d 'xrainbow/X11/Xaw_d' ; then echo shar: Creating directory \"'xrainbow/X11/Xaw_d'\" mkdir 'xrainbow/X11/Xaw_d' fi if test -f 'xrainbow/X11/Xaw_d/DrawingA.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xrainbow/X11/Xaw_d/DrawingA.h'\" else echo shar: Extracting \"'xrainbow/X11/Xaw_d/DrawingA.h'\" \(1399 characters\) sed "s/^X//" >'xrainbow/X11/Xaw_d/DrawingA.h' <<'END_OF_FILE' X/* DrawingA.h - Public Header file */ X X/* Copyright 1990, David Nedde X/* X/* Permission to use, copy, modify, and distribute this X/* software and its documentation for any purpose and without fee X/* is granted provided that the above copyright notice appears in all copies. X/* It is provided "as is" without express or implied warranty. X*/ X X/* Define widget's class pointer and strings used to specify resources */ X X#ifndef _XawDrawingArea_h X#define _XawDrawingArea_h X X/* Resources ADDED to label widget: X X Name Class RepType Default Value X ---- ----- ------- ------------- X exposeCallback Callback Pointer NULL X inputCallback Callback Pointer NULL X motionCallback Callback Pointer NULL X resizeCallback Callback Pointer NULL X*/ X X Xextern WidgetClass drawingAreaWidgetClass; X Xtypedef struct _DrawingAreaClassRec *DrawingAreaWidgetClass; Xtypedef struct _DrawingAreaRec *DrawingAreaWidget; X X X/* Resource strings */ X#define XtNexposeCallback "exposeCallback" X#define XtNinputCallback "inputCallback" X#define XtNmotionCallback "motionCallback" X#define XtNresizeCallback "resizeCallback" X X Xtypedef struct _XawDrawingAreaCallbackStruct { X int reason; X XEvent *event; X Window window; X} XawDrawingAreaCallbackStruct; X X/* Reasons */ X#define XawCR_EXPOSE 1 X#define XawCR_INPUT 2 X#define XawCR_MOTION 3 X#define XawCR_RESIZE 4 X X#endif /* _XawDrawingArea_h */ END_OF_FILE if test 1399 -ne `wc -c <'xrainbow/X11/Xaw_d/DrawingA.h'`; then echo shar: \"'xrainbow/X11/Xaw_d/DrawingA.h'\" unpacked with wrong size! fi # end of 'xrainbow/X11/Xaw_d/DrawingA.h' fi if test ! -d 'xrainbow/include' ; then echo shar: Creating directory \"'xrainbow/include'\" mkdir 'xrainbow/include' fi echo shar: End of archive 1 \(of 5\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 4 5 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 5 archives. echo "Please Read README" rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- Dan Heller O'Reilly && Associates Z-Code Software Comp-sources-x: Senior Writer President comp-sources-x@uunet.uu.net argv@ora.com argv@zipcode.com