rich@oxtrap.UUCP (K. Richard Magill) (01/07/88)
I've had X11 up to patchlevel 90 clients working on sequent balance
(Dynix 3.0.4 w/nfs) for some time now. I had some unidentified
problems back on 2.1.1 but they went away when we upgraded, (as well
as a number of other network problems).
The following are sufficient conditions for compilation.
1) The easiest way to resolve a header file conflict is to add lines
that look like...
#if !defined(TYPES_H)
#define TYPES_H 1
...
#endif /* TYPES_H */
around /usr/include/types.h. This brings the file closer to ansii
compatible and it appears as though SunOS and Ultrix have already done
so.
2) Mostly for parallel makes, I hacked up a Sequent.macros, but that
also means hacking on Imake.rules and Imake.tmpl. Files and diffs
follow.
3) sequent has no usleep. I changed it to "sleep(1)". diff follows.
4) sequent has no gamma(3). remove "-DGAMMA" from ~line 111 of
clients/gnuplot/Makefile.
5) there is, of course, no server. This sometimes makes the Makefiles
choke.
6) I can't get the manuals to print right but I suspect the problem is
our printer.
7) xload compiles but doesn't work. (did you expect anything else?)
8) xcalc is sick. buttons work but the first key pressed hangs. I
suspect a byte order problem but haven't checked.
9) I couldn't figure out how to make Makefiles in parallel. If you
do, let me know.
10) I use xterm, xbiff, emacs (with rfrench's diffs), xclock, etc.
rather regularly with no problems.
--- start of util/imake.includes/Sequent.macros (search for "- end") ---
TOP = TOPDIR
AS = as
CC = cc
CPP = /lib/cpp
LD = ld
LINT = lint
MAKE = make 'PARALLEL=&'
CDEBUGFLAGS = -O -Dstrchr=index -Dstrrchr=rindex
DESTDIR =
/* These define the server(s) you want */
/* define this as you like for server compilation */
/* This defines the extensions you want */
/* #define ExtensionDefines -DZOID -DBEZIER */
#define ExtensionDefines
#define DebugLibX NO /* debugged X library */
#define ProfileLibX NO /* profiled X library */
#define DebugOldLibX NO /* debugged old X library */
#define ProfileOldLibX NO /* profiled old X library */
#define DebugLibXtk NO /* debugged toolkit library */
#define ProfileLibXtk NO /* profiled toolkit library */
#define DebugOldLibXtk NO /* debugged old toolkit library */
#define ProfileOldLibXtk NO /* profiled old toolkit library */
#define DebugOldLibXMenu NO /* debugged old XMenu library */
#define ProfileOldLibXMenu NO /* profiled old XMenu library */
#define DebugLibXext NO /* debugged Xext library */
#define ProfileLibXext NO /* profiled Xext library */
#define DebugLibXrm NO /* debugged Xrm library */
#define ProfileLibXrm NO /* profiled Xrm library */
#define DebugOldLibXrm NO /* debugged old Xrm library */
#define ProfileOldLibXrm NO /* profiled old Xrm library */
#define BigEndianArchitecture NO /* only the toolkit need this now */
/*
* Uncomment this if you have cpp sources.
*/
/* #define CppSourcesPresent /usr/src/lib/cpp */
/*
* use only one tab here.
*/
#define ManSuffix n /* for /usr/man/man?/manpage.? */
/* uncomment this if your make program has MAKEFLAGS but not MFLAGS */
/* #define ConstructMFLAGS */
--- end of util/imake.includes/Sequent.macros ---
--- start of util/imake.includes/Imake.rules (diff bigger than original) ---
/*
* This will build an uninstalled program. This can be used
* for multiple programs in the same Makefile.
*/
#define SingleProgramTarget(program,objects,locallibs,syslibs) @@\
program: $(PARALLEL) objects locallibs @@\
rm -f $@ @@\
$(CC) -o $@ objects locallibs $(LDFLAGS) syslibs @@\
@@\
relink:: @@\
rm -f program @@\
$(MAKE) $(MFLAGS) program @@\
@@\
clean:: @@\
rm -f program
/*
* This target can be called by all programs that are contained in
* a single c source file.
*/
#define SimpleProgramTarget(program) @@\
OBJS = program.o @@\
SRCS = program.c @@\
@@\
ComplexProgramTarget(program)
/*
* This target is the general interface for building a single program
*/
#define ComplexProgramTarget(program) @@\
PROGRAM = program @@\
@@\
all:: $(PARALLEL) program @@\
@@\
program: $(PARALLEL) $(OBJS) $(LOCAL_LIBRARIES) @@\
rm -f $@ @@\
$(CC) -o $@ $(OBJS) $(LOCAL_LIBRARIES) $(LDFLAGS) @@\
@@\
relink: @@\
rm -f $(PROGRAM) @@\
$(MAKE) $(MFLAGS) $(PROGRAM) @@\
@@\
InstallProgram(program,$(BINDIR)) @@\
InstallManPage(program,$(MANDIR)) @@\
DependTarget() @@\
clean:: @@\
rm -f $(PROGRAM)
/*
* These targets are the general interface for building multiple programs
* in a single Makefile.
*/
#define ComplexProgramTarget_1(program,locallib,syslib) @@\
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) @@\
SRCS = $(SRCS1) $(SRCS2) $(SRCS3) @@\
@@\
all: $(PARALLEL) $(PROGRAMS) @@\
@@\
program: $(PARALLEL) $(OBJS1) locallib @@\
rm -f $@ @@\
$(CC) -o $@ $(OBJS1) locallib $(LDFLAGS) syslib @@\
@@\
InstallProgram(program,$(BINDIR)) @@\
InstallManPage(program,$(MANDIR)) @@\
relink:: @@\
rm -f $(PROGRAMS) @@\
$(MAKE) $(MFLAGS) $(PROGRAMS) @@\
@@\
DependTarget() @@\
clean:: @@\
rm -f $(PROGRAMS)
#define ComplexProgramTarget_2(program,locallib,syslib) @@\
program: $(PARALLEL) $(OBJS2) locallib @@\
rm -f $@ @@\
$(CC) -o $@ $(OBJS2) locallib $(LDFLAGS) syslib @@\
@@\
InstallProgram(program,$(BINDIR)) @@\
InstallManPage(program,$(MANDIR))
#define ComplexProgramTarget_3(program,locallib,syslib) @@\
program: $(PARALLEL) $(OBJS3) locallib @@\
rm -f $@ @@\
$(CC) -o $@ $(OBJS3) locallib $(LDFLAGS) syslib @@\
@@\
InstallProgram(program,$(BINDIR)) @@\
InstallManPage(program,$(MANDIR))
#define ServerTarget(server,subdirs,objects,libs,syslibs) @@\
server: subdirs objects libs load/**/server @@\
@@\
load/**/server: @@\
-mv server server.bak @@\
$(CC) $(CDEBUGFLAGS) -o server objects libs syslibs
/*
* Install a Library.
*/
#define InstallLibrary(libname,dest) @@\
install:: $(PARALLEL) lib/**/libname.a @@\
$(INSTALL) $(INSTLIBFLAGS) lib/**/libname.a dest @@\
ranlib dest/lib/**/libname.a
/*
* Install a Library Alias.
*/
#define InstallLibraryAlias(libname,alias,dest) @@\
install:: @@\
rm -f dest/lib/**/alias.a @@\
ln dest/lib/**/libname.a dest/lib/**/alias.a
/*
* Install a Lint Library.
*/
#define InstallLintLibrary(libname,dest) @@\
install:: $(PARALLEL) llib-l/**/libname.ln @@\
$(INSTALL) $(INSTLIBFLAGS) llib-l/**/libname.ln dest
/*
* Install a man page.
*/
#define InstallManPage(file,dest) @@\
install:: $(PARALLEL) file.man @@\
$(INSTALL) -c -m 0664 file.man dest/file.ManSuffix
/*
* Install a non-executable file.
*/
#define InstallNonExec(file,dest) @@\
install:: $(PARALLEL) file @@\
$(INSTALL) -c -m 0664 file dest
/*
* Install a program
*/
#define InstallProgram(program,dest) @@\
install:: $(PARALLEL) program @@\
$(INSTALL) -c $(INSTALLFLAGS) program dest
/*
* Install a shell script
*/
#define InstallScript(program,dest) @@\
install:: $(PARALLEL) program.script @@\
$(INSTALL) -c $(INSTALLFLAGS) program.script dest/program
/*
* Install multiple programs
*/
#define InstallMultiple(list,dest) @@\
install:: $(PARALLEL) list @@\
@case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\
for i in list; do \ @@\
(set -x; $(INSTALL) -c $(INSTALLFLAGS) $$i dest); \ @@\
done
/*
* This makes the depend target given OBJS.
*/
#define DependTarget() @@\
depend:: @@\
$(DEPEND) -s "# DO NOT DELETE" $(CFLAGS) $(SRCS)
#define CleanTarget() @@\
clean:: @@\
$(RM_CMD) \#*
#define TagsTarget() @@\
tags:: @@\
$(TAGS) -w *.[ch] @@\
$(TAGS) -xw *.[ch] > TAGS
#define MakefileTarget() @@\
Makefile:: $(PARALLEL) Imakefile \ @@\
$(UTILSRC)/imake.includes/Imake.tmpl \ @@\
$(UTILSRC)/imake.includes/Imake.rules \ @@\
$(UTILSRC)/imake.includes/$(MACROFILE) @@\
-rm -f Makefile.bak; mv Makefile Makefile.bak @@\
$(IMAKE_CMD) -DTOPDIR=$(TOP)
/*
* for objects in libraries
*/
#define NormalLibraryObjectRule() @@\
.c.o: @@\
$(CC) -c $(CFLAGS) $*.c
#define ProfiledLibraryObjectRule() @@\
.c.o: @@\
$(CC) -pg -c $(CFLAGS) $*.c @@\
mv $*.o profiled/$*.o @@\
$(CC) -c $(CFLAGS) $*.c
#define DebuggedLibraryObjectRule() @@\
.c.o: @@\
$(CC) -g -c $(CFLAGS) $*.c @@\
mv $*.o debugger/$*.o @@\
$(CC) -c $(CFLAGS) $*.c
#define DebuggedAndProfiledLibraryObjectRule() @@\
.c.o: @@\
$(CC) -pg -c $(CFLAGS) $*.c @@\
mv $*.o profiled/$*.o @@\
$(CC) -g -c $(CFLAGS) $*.c @@\
mv $*.o debugger/$*.o @@\
$(CC) -c $(CFLAGS) $*.c
#define NormalLibraryTarget(libname,objlist) @@\
all:: $(PARALLEL) lib/**/libname.a @@\
@@\
lib/**/libname.a: $(PARALLEL) objlist @@\
rm -f $@ @@\
ar clq $@ objlist @@\
ranlib $@
#define ProfiledLibraryTarget(libname,objlist) @@\
all:: $(PARALLEL) lib/**/libname/**/_p.a @@\
@@\
lib/**/libname/**/_p.a: $(PARALLEL) objlist @@\
rm -f $@ @@\
cd profiled; ar clq ../$@ objlist @@\
ranlib $@ @@\
@@\
clean:: @@\
rm -f profiled/?*.o
#define DebuggedLibraryTarget(libname,objlist) @@\
all:: $(PARALLEL) lib/**/libname/**/_d.a @@\
@@\
lib/**/libname/**/_d.a: $(PARALLEL) objlist @@\
rm -f $@ @@\
cd debugger; ar clq ../$@ objlist @@\
ranlib $@ @@\
@@\
clean:: @@\
rm -f debugger/?*.o
#define AliasedLibraryTarget(libname,alias) @@\
all:: $(PARALLEL) lib/**/alias.a @@\
lib/**/alias.a: $(PARALLEL) lib/**/libname.a @@\
rm -f $@ @@\
ln -s lib/**/libname.a $@
/*
* Note that we force the lint library to always be newer than the
* library itself.
*/
#define LintLibraryTarget(libname,srclist) @@\
lintlib:: $(PARALLEL) llib-l/**/libname.ln @@\
@@\
llib-l/**/libname.ln: $(PARALLEL) srclist @@\
rm -f $@ @@\
$(LINT) -C/**/libname $(DEFINES) ${INCLUDES} srclist
/*
* if you want CDEBUGFLAGS passed along to subdirectories, then
* provide a line like this in the appropriate Imakefile
* #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
*/
#define MakeSubdirs(dirs) @@\
NamedMakeSubdirs(all,dirs)
#define NamedMakeSubdirs(name,dirs) @@\
name:: @@\
@case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
for i in dirs ;\ @@\
do \ @@\
(cd $$i ; echo "making $$i"; \ @@\
$(MAKE) PassCDebugFlags $(MFLAGS)); \ @@\
done
#define DependSubdirs(dirs) @@\
NamedDependSubdirs(depend,dirs)
#define NamedDependSubdirs(name,dirs) @@\
name:: @@\
@case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
for i in dirs ;\ @@\
do \ @@\
(cd $$i ; echo "depending $$i"; \ @@\
$(MAKE) $(MFLAGS) depend ); \ @@\
done
#define InstallSubdirs(dirs) @@\
install:: @@\
@case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
for i in dirs ;\ @@\
do \ @@\
(cd $$i ; echo "installing $$i"; \ @@\
$(MAKE) $(MFLAGS) \ @@\
INSTALL='$(INSTALL)' \ @@\
DESTDIR='$(DESTDIR)' install ); \ @@\
done
#define CleanSubdirs(dirs) @@\
clean:: @@\
@case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
for i in dirs ;\ @@\
do \ @@\
(cd $$i ; echo "cleaning $$i"; \ @@\
$(MAKE) $(MFLAGS) RM_CMD='$(RM_CMD)' clean ); \ @@\
done
#define TagSubdirs(dirs) @@\
tags:: @@\
@case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
for i in dirs ;\ @@\
do \ @@\
(cd $$i ; echo "tagging $$i"; \ @@\
$(MAKE) $(MFLAGS) TAGS='$(TAGS)' tags ); \ @@\
done
#define LintSubdirs(dirs) @@\
lint:: @@\
@case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
for i in dirs ;\ @@\
do \ @@\
(cd $$i ; echo "linting $$i"; \ @@\
$(MAKE) $(MFLAGS) LINT='$(LINT)' lint ); \ @@\
done
#define MakeLintLibSubdirs(dirs) @@\
lintlib:: @@\
@case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
for i in dirs ;\ @@\
do \ @@\
(cd $$i ; echo "making lintlib in $$i"; \ @@\
$(MAKE) $(MFLAGS) LINT='$(LINT)' lintlib ); \ @@\
done
#define MakefileSubdirs(dirs) @@\
Makefiles:: $(PARALLEL) @@\
@case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
for i in dirs ;\ @@\
do \ @@\
echo "Making Makefiles in $$i..."; \ @@\
case "$$i" in \ @@\
./?*/?*/?*) newtop=../../../ sub=subsubsub;; \ @@\
./?*/?*) newtop=../../ sub=subsub;; \ @@\
./?*) newtop=../ sub=sub;; \ @@\
*/?*/?*) newtop=../../../ sub=subsubsub;; \ @@\
*/?*) newtop=../../ sub=subsub;; \ @@\
*) newtop=../ sub=sub;; \ @@\
esac; \ @@\
$(MAKE) $${sub}dirMakefiles NEWTOP=$$newtop \ @@\
MAKEFILE_SUBDIR=$$i;\ @@\
done @@\
@@\
subdirMakefiles: @@\
rm -f $(MAKEFILE_SUBDIR)/Makefile.bak @@\
-mv $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak @@\
cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(TOP)/..; \ @@\
$(MAKE) $(MFLAGS) Makefiles @@\
@@\
subsubdirMakefiles: @@\
rm -f $(MAKEFILE_SUBDIR)/Makefile.bak @@\
-mv $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak @@\
cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(TOP)/../..; \ @@\
$(MAKE) $(MFLAGS) Makefiles @@\
@@\
subsubsubdirMakefiles: @@\
rm -f $(MAKEFILE_SUBDIR)/Makefile.bak @@\
-mv $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak @@\
cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(TOP)/../../..; \ @@\
$(MAKE) $(MFLAGS) Makefiles @@\
--- end of util/imake.includes/Imake.rules ---
--- start of util/imake.includes/Imake.tmpl diff ---
RCS file: RCS/Imake.tmpl,v
retrieving revision 1.1
diff -c -r1.1 Imake.tmpl
*** /tmp/,RCSt1004865 Wed Jan 6 16:04:32 1988
--- Imake.tmpl Wed Jan 6 15:11:12 1988
***************
*** 37,42
#define ApolloArchitecture
#endif apollo
#include MacroIncludeFile
#ifdef ConstructMFLAGS
--- 37,49 -----
#define ApolloArchitecture
#endif apollo
+ #ifdef sequent
+ #define MacroIncludeFile "Sequent.macros"
+ #define MacroFile Sequent.macros
+ #undef sequent
+ #define VaxArchitecture
+ #endif /* sequent */
+
#include MacroIncludeFile
#ifdef ConstructMFLAGS
--- end of util/imake.includes/Imake.tmpl diff ---
--- start of diff to lib/oldXmenu/XMenuInternal.h ---
RCS file: RCS/XMenuInternal.h,v
retrieving revision 1.1
diff -c -r1.1 XMenuInternal.h
*** /tmp/,RCSt1004960 Wed Jan 6 16:15:26 1988
--- XMenuInternal.h Tue Nov 17 15:01:09 1987
***************
*** 1,5
! /* $Header: /local/src/X.V11R1/lib/oldXMenu/RCS/XMenuInternal.h,v 1.1 87/11/17 15:00:10 rich Exp $ */
/* Copyright Massachusetts Institute of Technology 1985 */
/*
--- 1,5 -----
! /* $Header: /local/X.V11R1/lib/oldXMenu/RCS/XMenuInternal.h,v 1.1 87/11/17 15:00:10 rich Exp $ */
/* Copyright Massachusetts Institute of Technology 1985 */
/*
***************
*** 20,25
#include <X11/X10.h>
#include <stdio.h>
#include "XMenu.h"
#define min(x, y) ((x) <= (y) ? (x) : (y))
#define max(x, y) ((x) >= (y) ? (x) : (y))
--- 20,29 -----
#include <X11/X10.h>
#include <stdio.h>
#include "XMenu.h"
+
+ #if defined(ns32000)
+ #define usleep(x) sleep(1)
+ #endif /* ns32000 */
#define min(x, y) ((x) <= (y) ? (x) : (y))
#define max(x, y) ((x) >= (y) ? (x) : (y))
RCS file: RCS/XMenuInternal.h,v
retrieving revision 1.1
diff -c -r1.1 XMenuInternal.h
*** /tmp/,RCSt1004960 Wed Jan 6 16:15:26 1988
--- XMenuInternal.h Tue Nov 17 15:01:09 1987
***************
*** 1,5
! /* $Header: /local/src/X.V11R1/lib/oldXMenu/RCS/XMenuInternal.h,v 1.1 87/11/17 15:00:10 rich Exp $ */
/* Copyright Massachusetts Institute of Technology 1985 */
/*
--- 1,5 -----
! /* $Header: /local/X.V11R1/lib/oldXMenu/RCS/XMenuInternal.h,v 1.1 87/11/17 15:00:10 rich Exp $ */
/* Copyright Massachusetts Institute of Technology 1985 */
/*
***************
*** 20,25
#include <X11/X10.h>
#include <stdio.h>
#include "XMenu.h"
#define min(x, y) ((x) <= (y) ? (x) : (y))
#define max(x, y) ((x) >= (y) ? (x) : (y))
--- 20,29 -----
#include <X11/X10.h>
#include <stdio.h>
#include "XMenu.h"
+
+ #if defined(ns32000)
+ #define usleep(x) sleep(1)
+ #endif /* ns32000 */
#define min(x, y) ((x) <= (y) ? (x) : (y))
#define max(x, y) ((x) >= (y) ? (x) : (y))
--- end of diff to lib/oldXmenu/XMenuInternal.h ---