Xenixshlib - Shared libraries for xenix (part 3 of 3)
pgd at bbt.se
pgd at bbt.se
Sat Jan 26 01:57:17 AEST 1991
---- Cut Here and unpack ----
#!/bin/sh
# This is part 03 of Xenixshlib
if touch 2>&1 | fgrep 'amc' > /dev/null
then TOUCH=touch
else TOUCH=true
fi
# ============= xcc.c ==============
echo "x - extracting xcc.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > xcc.c &&
X#include <stdio.h>
X
X#define MAXARGS 100
X
Xchar *output, **outp;
Xint coffflag;
Xint vflag;
Xint sflag;
X
Xchar *args[MAXARGS];
Xint argcnt;
X
X
X
Xmain(argc, argv)
X int argc;
X char **argv;
X{
X int i, s;
X
X for (i = 0; i < argc; i++) {
X if (argv[i][0] == '-') {
X switch (argv[i][1]) {
X case 'o':
X output = argv[++i];
X outp = &argv[i];
X break;
X case 'L':
X argv[i][1] = 'l';
X coffflag = 1;
X break;
X case 'v':
X vflag = 1;
X break;
X case 's':
X sflag = 1;
X break;
X }
X }
X }
X if (coffflag) {
X *outp = "a.out";
X args[0] = "gcc";
X args[1] = "-nostdlib";
X args[2] = "/lib/386/Scrt0_s.o";
X args[3] = "/lib/386/Sseg.o";
X argcnt = 4;
X for (i = 1; i < argc; i++) {
X if (argv[i][0] == '-') {
X switch (argv[i][1]) {
X case 's':
X continue;
X }
X }
X args[argcnt++] = argv[i];
X }
X args[argcnt++] = NULL;
X if (vflag) {
X for (i = 0; args[i]; i++)
X printf("%s ", args[i]);
X putchar('\n');
X fflush(stdout);
X }
X if (fork() == 0) {
X execvp("gcc", args);
X perror("exec error");
X exit(1);
X }
X if (wait(&s) == -1 || s != 0)
X exit(s);
X if (vflag) {
X printf("convcoff a.out %s\n", output);
X fflush(stdout);
X }
X if (sflag)
X s = execlp("convcoff", "convcoff", "-s", "a.out", output, NULL);
X else
X s = execlp("convcoff", "convcoff", "a.out", output, NULL);
X } else {
X argv[0] = "gcc";
X if (vflag) {
X for (i = 0; argv[i]; i++)
X printf("%s ", argv[i]);
X putchar('\n');
X fflush(stdout);
X }
X execvp("gcc", argv);
X perror("exec error");
X }
X exit(s);
X}
SHAR_EOF
$TOUCH -am 0118092191 xcc.c &&
chmod 0660 xcc.c ||
echo "restore of xcc.c failed"
set `wc -c xcc.c`;Wc_c=$1
if test "$Wc_c" != "1516"; then
echo original size 1516, current size $Wc_c
fi
# ============= coffstrip.c ==============
echo "x - extracting coffstrip.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > coffstrip.c &&
X/*
X * coff strip utility
X */
X
X#include <stdio.h>
X#include <sys/types.h>
X#include <sys/fcntl.h>
X#include <sys/coff.h>
X
Xstruct filehdr fhdr;
Xstruct scnhdr shdr;
Xint nsyms;
Xlong symptr;
X
X
Xmain(argc, argv)
X int argc;
X char **argv;
X{
X char *fname, **argp;
X int fd, n;
X char buf[80];
X
X for (argp = argv; fname = *++argp; ) {
X fd = open(fname, O_RDWR);
X if (fd == -1) {
X perror(fname); continue;
X }
X n = read(fd, (char *)&fhdr, sizeof fhdr);
X if (fhdr.f_magic != I386MAGIC || n != sizeof fhdr) {
X close(fd);
X sprintf(buf, "strip %s\n", fname);
X if (system(buf) == -1)
X perror(fname);
X continue;
X }
X if (fhdr.f_nsyms == 0) {
X fprintf(stderr, "%s: already stripped\n", fname);
X close(fd);
X continue;
X }
X if (chsize(fd, (long)fhdr.f_symptr) == -1)
X perror(fname);
X else {
X fhdr.f_nsyms = 0;
X fhdr.f_flags |= F_LNNO|F_LSYMS;
X lseek(fd, 0L, 0);
X n = write(fd, (char *)&fhdr, sizeof fhdr);
X if (n != sizeof fhdr)
X perror(fname);
X }
X close(fd);
X }
X exit(0);
X}
X
SHAR_EOF
$TOUCH -am 0118145291 coffstrip.c &&
chmod 0660 coffstrip.c ||
echo "restore of coffstrip.c failed"
set `wc -c coffstrip.c`;Wc_c=$1
if test "$Wc_c" != "993"; then
echo original size 993, current size $Wc_c
fi
# ============= malloc.c ==============
echo "x - extracting malloc.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > malloc.c &&
X/*
X * Copyright (c) 1983 Regents of the University of California.
X * All rights reserved.
X *
X * Redistribution and use in source and binary forms are permitted
X * provided that: (1) source distributions retain this entire copyright
X * notice and comment, and (2) distributions including binaries display
X * the following acknowledgement: ``This product includes software
X * developed by the University of California, Berkeley and its contributors''
X * in the documentation or other materials provided with the distribution
X * and in all advertising materials mentioning features or use of this
X * software. Neither the name of the University nor the names of its
X * contributors may be used to endorse or promote products derived
X * from this software without specific prior written permission.
X * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
X * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
X * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X */
X
X#if defined(LIBC_SCCS) && !defined(lint)
Xstatic char sccsid[] = "@(#)malloc.c 5.9 (Berkeley) 6/1/90";
X#endif /* LIBC_SCCS and not lint */
X
X/*
X * malloc.c (Caltech) 2/21/82
X * Chris Kingsley, kingsley at cit-20.
X *
X * This is a very fast storage allocator. It allocates blocks of a small
X * number of different sizes, and keeps free lists of each size. Blocks that
X * don't exactly fit are passed up to the next larger size. In this
X * implementation, the available sizes are 2^n-4 (or 2^n-10) bytes long.
X * This is designed for use in a virtual memory environment.
X */
X
X#include <sys/types.h>
X#ifdef M_XENIX
X#include <sys/param.h>
X#include <sys/sysmacros.h>
X#include <sys/page.h>
X#define u_char uchar_t
X#define u_int uint
X#define getpagesize() PGSIZE
X#define bcopy(S, D, L) memcpy(D, S, L)
X#endif
X
X#define NULL 0
X
X/*
X * The overhead on a block is at least 4 bytes. When free, this space
X * contains a pointer to the next free block, and the bottom two bits must
X * be zero. When in use, the first byte is set to MAGIC, and the second
X * byte is the size index. The remaining bytes are for alignment.
X * If range checking is enabled then a second word holds the size of the
X * requested block, less 1, rounded up to a multiple of sizeof(RMAGIC).
X * The order of elements is critical: ov_magic must overlay the low order
X * bits of ov_next, and ov_magic can not be a valid ov_next bit pattern.
X */
Xunion overhead {
X union overhead *ov_next; /* when free */
X struct {
X u_char ovu_magic; /* magic number */
X u_char ovu_index; /* bucket # */
X#ifdef RCHECK
X u_short ovu_rmagic; /* range magic number */
X u_int ovu_size; /* actual block size */
X#endif
X } ovu;
X#define ov_magic ovu.ovu_magic
X#define ov_index ovu.ovu_index
X#define ov_rmagic ovu.ovu_rmagic
X#define ov_size ovu.ovu_size
X};
X
X#define MAGIC 0xef /* magic # on accounting info */
X#define RMAGIC 0x5555 /* magic # on range info */
X
X#ifdef RCHECK
X#define RSLOP sizeof (u_short)
X#else
X#define RSLOP 0
X#endif
X
X/*
X * nextf[i] is the pointer to the next free block of size 2^(i+3). The
X * smallest allocatable block is 8 bytes. The overhead information
X * precedes the data area returned to the user.
X */
X#define NBUCKETS 30
Xstatic union overhead *nextf[NBUCKETS];
Xextern char *sbrk();
X
Xstatic int pagesz; /* page size */
Xstatic int pagebucket; /* page size bucket */
X
X#ifdef MSTATS
X/*
X * nmalloc[i] is the difference between the number of mallocs and frees
X * for a given block size.
X */
Xstatic u_int nmalloc[NBUCKETS];
X#include <stdio.h>
X#endif
X
X#if defined(DEBUG) || defined(RCHECK)
X#define ASSERT(p) if (!(p)) botch("p")
X#include <stdio.h>
Xstatic
Xbotch(s)
X char *s;
X{
X fprintf(stderr, "\r\nassertion botched: %s\r\n", s);
X (void) fflush(stderr); /* just in case user buffered it */
X abort();
X}
X#else
X#define ASSERT(p)
X#endif
X
Xchar *
Xmalloc(nbytes)
X unsigned nbytes;
X{
X register union overhead *op;
X register int bucket, n;
X register unsigned amt;
X
X /*
X * First time malloc is called, setup page size and
X * align break pointer so all data will be page aligned.
X */
X if (pagesz == 0) {
X pagesz = n = getpagesize();
X op = (union overhead *)sbrk(0);
X n = n - sizeof (*op) - ((int)op & (n - 1));
X if (n < 0)
X n += pagesz;
X if (n) {
X if (sbrk(n) == (char *)-1)
X return (NULL);
X }
X bucket = 0;
X amt = 8;
X while (pagesz > amt) {
X amt <<= 1;
X bucket++;
X }
X pagebucket = bucket;
X }
X /*
X * Convert amount of memory requested into closest block size
X * stored in hash buckets which satisfies request.
X * Account for space used per block for accounting.
X */
X if (nbytes <= (n = pagesz - sizeof (*op) - RSLOP)) {
X#ifndef RCHECK
X amt = 8; /* size of first bucket */
X bucket = 0;
X#else
X amt = 16; /* size of first bucket */
X bucket = 1;
X#endif
X n = -(sizeof (*op) + RSLOP);
X } else {
X amt = pagesz;
X bucket = pagebucket;
X }
X while (nbytes > amt + n) {
X amt <<= 1;
X if (amt == 0)
X return (NULL);
X bucket++;
X }
X /*
X * If nothing in hash bucket right now,
X * request more memory from the system.
X */
X if ((op = nextf[bucket]) == NULL) {
X morecore(bucket);
X if ((op = nextf[bucket]) == NULL)
X return (NULL);
X }
X /* remove from linked list */
X nextf[bucket] = op->ov_next;
X op->ov_magic = MAGIC;
X op->ov_index = bucket;
X#ifdef MSTATS
X nmalloc[bucket]++;
X#endif
X#ifdef RCHECK
X /*
X * Record allocated size of block and
X * bound space with magic numbers.
X */
X op->ov_size = (nbytes + RSLOP - 1) & ~(RSLOP - 1);
X op->ov_rmagic = RMAGIC;
X *(u_short *)((caddr_t)(op + 1) + op->ov_size) = RMAGIC;
X#endif
X return ((char *)(op + 1));
X}
X
X/*
X * Allocate more memory to the indicated bucket.
X */
Xmorecore(bucket)
X int bucket;
X{
X register union overhead *op;
X register int sz; /* size of desired block */
X int amt; /* amount to allocate */
X int nblks; /* how many blocks we get */
X
X /*
X * sbrk_size <= 0 only for big, FLUFFY, requests (about
X * 2^30 bytes on a VAX, I think) or for a negative arg.
X */
X sz = 1 << (bucket + 3);
X#ifdef DEBUG
X ASSERT(sz > 0);
X#else
X if (sz <= 0)
X return;
X#endif
X if (sz < pagesz) {
X amt = pagesz;
X nblks = amt / sz;
X } else {
X amt = sz + pagesz;
X nblks = 1;
X }
X op = (union overhead *)sbrk(amt);
X /* no more room! */
X if ((int)op == -1)
X return;
X /*
X * Add new memory allocated to that on
X * free list for this hash bucket.
X */
X nextf[bucket] = op;
X while (--nblks > 0) {
X op->ov_next = (union overhead *)((caddr_t)op + sz);
X op = (union overhead *)((caddr_t)op + sz);
X }
X}
X
Xfree(cp)
X char *cp;
X{
X register int size;
X register union overhead *op;
X
X if (cp == NULL)
X return;
X op = (union overhead *)((caddr_t)cp - sizeof (union overhead));
X#ifdef DEBUG
X ASSERT(op->ov_magic == MAGIC); /* make sure it was in use */
X#else
X if (op->ov_magic != MAGIC)
X return; /* sanity */
X#endif
X#ifdef RCHECK
X ASSERT(op->ov_rmagic == RMAGIC);
X ASSERT(*(u_short *)((caddr_t)(op + 1) + op->ov_size) == RMAGIC);
X#endif
X size = op->ov_index;
X ASSERT(size < NBUCKETS);
X op->ov_next = nextf[size]; /* also clobbers ov_magic */
X nextf[size] = op;
X#ifdef MSTATS
X nmalloc[size]--;
X#endif
X}
X
X/*
X * When a program attempts "storage compaction" as mentioned in the
X * old malloc man page, it realloc's an already freed block. Usually
X * this is the last block it freed; occasionally it might be farther
X * back. We have to search all the free lists for the block in order
X * to determine its bucket: 1st we make one pass thru the lists
X * checking only the first block in each; if that fails we search
X * ``realloc_srchlen'' blocks in each list for a match (the variable
X * is extern so the caller can modify it). If that fails we just copy
X * however many bytes was given to realloc() and hope it's not huge.
X */
Xint realloc_srchlen = 4; /* 4 should be plenty, -1 =>'s whole list */
X
Xchar *
Xrealloc(cp, nbytes)
X char *cp;
X unsigned nbytes;
X{
X register u_int onb;
X register int i;
X union overhead *op;
X char *res;
X int was_alloced = 0;
X
X if (cp == NULL)
X return (malloc(nbytes));
X op = (union overhead *)((caddr_t)cp - sizeof (union overhead));
X if (op->ov_magic == MAGIC) {
X was_alloced++;
X i = op->ov_index;
X } else {
X /*
X * Already free, doing "compaction".
X *
X * Search for the old block of memory on the
X * free list. First, check the most common
X * case (last element free'd), then (this failing)
X * the last ``realloc_srchlen'' items free'd.
X * If all lookups fail, then assume the size of
X * the memory block being realloc'd is the
X * largest possible (so that all "nbytes" of new
X * memory are copied into). Note that this could cause
X * a memory fault if the old area was tiny, and the moon
X * is gibbous. However, that is very unlikely.
X */
X if ((i = findbucket(op, 1)) < 0 &&
X (i = findbucket(op, realloc_srchlen)) < 0)
X i = NBUCKETS;
X }
X onb = 1 << (i + 3);
X if (onb < pagesz)
X onb -= sizeof (*op) + RSLOP;
X else
X onb += pagesz - sizeof (*op) - RSLOP;
X /* avoid the copy if same size block */
X if (was_alloced) {
X if (i) {
X i = 1 << (i + 2);
X if (i < pagesz)
X i -= sizeof (*op) + RSLOP;
X else
X i += pagesz - sizeof (*op) - RSLOP;
X }
X if (nbytes <= onb && nbytes > i) {
X#ifdef RCHECK
X op->ov_size = (nbytes + RSLOP - 1) & ~(RSLOP - 1);
X *(u_short *)((caddr_t)(op + 1) + op->ov_size) = RMAGIC;
X#endif
X return(cp);
X } else
X free(cp);
X }
X if ((res = malloc(nbytes)) == NULL)
X return (NULL);
X if (cp != res) /* common optimization if "compacting" */
X bcopy(cp, res, (nbytes < onb) ? nbytes : onb);
X return (res);
X}
X
X/*
X * Search ``srchlen'' elements of each free list for a block whose
X * header starts at ``freep''. If srchlen is -1 search the whole list.
X * Return bucket number, or -1 if not found.
X */
Xstatic
Xfindbucket(freep, srchlen)
X union overhead *freep;
X int srchlen;
X{
X register union overhead *p;
X register int i, j;
X
X for (i = 0; i < NBUCKETS; i++) {
X j = 0;
X for (p = nextf[i]; p && j != srchlen; p = p->ov_next) {
X if (p == freep)
X return (i);
X j++;
X }
X }
X return (-1);
X}
X
X#ifdef MSTATS
X/*
X * mstats - print out statistics about malloc
X *
X * Prints two lines of numbers, one showing the length of the free list
X * for each size category, the second showing the number of mallocs -
X * frees for each size category.
X */
Xmstats(s)
X char *s;
X{
X register int i, j;
X register union overhead *p;
X int totfree = 0,
X totused = 0;
X
X fprintf(stderr, "Memory allocation statistics %s\nfree:\t", s);
X for (i = 0; i < NBUCKETS; i++) {
X for (j = 0, p = nextf[i]; p; p = p->ov_next, j++)
X ;
X fprintf(stderr, " %d", j);
X totfree += j * (1 << (i + 3));
X }
X fprintf(stderr, "\nused:\t");
X for (i = 0; i < NBUCKETS; i++) {
X fprintf(stderr, " %d", nmalloc[i]);
X totused += nmalloc[i] * (1 << (i + 3));
X }
X fprintf(stderr, "\n\tTotal in use: %d, total free: %d\n",
X totused, totfree);
X}
X#endif
X
SHAR_EOF
$TOUCH -am 0113162191 malloc.c &&
chmod 0600 malloc.c ||
echo "restore of malloc.c failed"
set `wc -c malloc.c`;Wc_c=$1
if test "$Wc_c" != "10837"; then
echo original size 10837, current size $Wc_c
fi
# ============= libX11_ver.c ==============
echo "x - extracting libX11_ver.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > libX11_ver.c &&
Xint libX11_version = VERSION;
SHAR_EOF
$TOUCH -am 0112133391 libX11_ver.c &&
chmod 0660 libX11_ver.c ||
echo "restore of libX11_ver.c failed"
set `wc -c libX11_ver.c`;Wc_c=$1
if test "$Wc_c" != "30"; then
echo original size 30, current size $Wc_c
fi
# ============= libXaw_s.c ==============
echo "x - extracting libXaw_s.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > libXaw_s.c &&
X/*
X * Prefix file and jump table for Xaw shared library
X *
X * Author: P.Garbha pgd at compuram.bbt.se
X */
X
X/*
X * Identifier to autload library
X */
Xchar __SHLIB__libXaw_s;
X
X__JumpTabEnd()
X{
X}
X
Xextern void (*_shlib_exit)();
X
X/*
X * exit routine to use from within library
X */
Xexit(status)
X int status;
X{
X _shlib_exit(status);
X}
X
SHAR_EOF
$TOUCH -am 0116154591 libXaw_s.c &&
chmod 0660 libXaw_s.c ||
echo "restore of libXaw_s.c failed"
set `wc -c libXaw_s.c`;Wc_c=$1
if test "$Wc_c" != "323"; then
echo original size 323, current size $Wc_c
fi
# ============= xenix.cf ==============
echo "x - extracting xenix.cf (Text)"
sed 's/^X//' << 'SHAR_EOF' > xenix.cf &&
X/*
X * SET VERSION NUMBERS BEFORE MAKING MAKEFILES; also, you'll need to install
X * util/scripts/bsdinstall.sh before doing a "make install"
X */
X#define SystemV YES
X#define OSName Xenix/386 System V Release 2.3.3
X#define OSMajorVersion 3
X#define OSMinorVersion 2
X#define OPERATING_SYSTEM sysV
X/**/# platform: $XConsortium: xenix.cf,v 1.0 90/03/10 15:39:46 jim Exp $
X/**/# operating system: OSName
X/*****************************************************************************
X * Platform-specfic parameters *
X *****************************************************************************/
X#define RemoveTargetProgramByMoving YES
X#define BootstrapCFlags -Dxenix -DSYSV
X#define StandardDefines /* -Datt */ -Dxenix -DSYSV -DUSG /* -DUSE_ASM */
X#define StandardCppDefines /* -Datt */ -Dxenix -DSYSV -DUSG /* -DUSE_ASM */
X#define ExecableScripts NO
X#define ExtraLibraries -lcfp -lgnu -lx -lXc
X#define Server_Extra_Libraries -levent -lsocket -lcfp -lgnu -lx
X#define ExtraLoadFlags -g
X#define Server_Extra_Load_Flags -g
X#define HasVoidSignalReturn YES
X#define NeedBerklibInXlib YES
X#define ConnectionFlags -DUNIXCONN -DLOCALCONN
X#define HasNdbm NO
X#define HasSdbm YES
X#define HasGcc YES
X#define HasRcc NO
X#define CcCmd xcc
X#define CppCmd /lib/cpp
X#define LdCombineFlags -r
X#define ManDir /usr/man/man.X
X#define ManDirectoryRoot /usr/man
X#define ManSuffix X
X#define UNCOMPRESSPATH /usr/bin/uncompress
X#define DefaultUserPath .:/bin:/usr/bin:/usr/bin/X11:/usr/local
X#define DefaultSystemPath .:/bin:/usr/bin:/usr/bin/X11:/usr/local:/etc
X#define StripInstalledPrograms YES
X/* #define LibraryCCOptions -DATTSHLIB */
X#define LibraryCCOptions
X#define RanlibCmd ranlib
X#define FontDefines -DFONT_SNF -DFONT_BDF -DCOMPRESSED_FONTS StandardDefines
X#define BuildExamples NO
X#define XibmServer Xibm
X#define ibmIncludeVGA YES
X#define BuildServer YES
X#define ServerCDebugFlags -DTRACE_X -DDEBUG
X#define ServerDefines StandardDefines ExtensionDefines -DNO_FUNCTION_PROTOTYPES
X#define InstallCmd $(SCRIPTSRC)/install.sh
X#define AsCmd gas
X#define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/75dpi/
X#define UsrLibDir /lib/386
X#define LibDir /usr/lib/X11
X#define LintlibDir /usr/lib/lint
X#define InstallLibrary(libname,dest) @@\
Xinstall:: lib/**/libname.a @@\
X rm -f Slib/**/libname.a @@\
X ln lib/**/libname.a Slib/**/libname.a @@\
X $(INSTALL) -c $(INSTLIBFLAGS) Slib/**/libname.a dest @@\
X $(RANLIB) $(RANLIBINSTFLAGS) dest/Slib/**/libname.a
X#define Xenix386
X#define Xenix
X#define NdbmDefines -DSDBM
X#define HasSockets
X#define InstallXinitConfig YES
X#define InstallXdmConfig YES
X#define ManSuffix X
X
X/*
X * Define if you have shared library
X */
X#define HasSharedLibraries YES
X#if HasSharedLibraries
X#define SharedLibXext NO
X#define SharedLibX YES
X#define SharedLibXmu NO
X#define SharedLibXt YES
X#define SharedLibXaw YES
X
X/*
X * Nulling of these functions is because the xenix library are using
X * the normal library for the build.
X */
X#define SharedLibraryObjectRule()
X#define SharedAndDebuggedLibraryObjectRule()
X#define SpecialSharedAndDebuggedObjectRule(objs,depends,options)
X#define SpecialSharedObjectRule(objs,depends,options)
X#define InstallSharedLibrary(libname,rev,dest)
X#define InstallSharedLibraryData(libname,rev,dest)
X#define NormalSharedLibraryTarget(libname,rev,solist)
X#define NormalSharedLibraryDataTarget(libname,rev,salist)
X
X#if 1
X#if SharedLibXext
X#define EXTENSIONLIB_Defined
X EXTENSIONLIB = -LXext_s
X#endif
X#if SharedLibX
X#define XLIB_Defined
X XLIB = $(EXTENSIONLIB) -LX11_s
X#endif
X#if SharedLibXmu
X#define XMULIB_Defined
X XMULIB = -LXmu_s
X#endif
X#if SharedLibXt
X#define XTOOLLIB_Defined
X XTOOLLIB = -LXt_s
X#endif
X#if SharedLibX
X#define XAWLIB_Defined
X XAWLIB = -LXaw_s
X#endif
X#endif
X
X#define XawClientLibs $(XAWLIB) $(XMULIB) $(XLIB)
X#endif
X
X/*
X * ServerTarget - generate rules to compile, link, and relink an X server.
X */
X#define ServerTarget(server,subdirs,objects,libs,syslibs) @@\
Xserver: subdirs objects libs @@\
X - at if [ -f server ]; then echo " $(MV) server server.bak"; \ @@\
X $(MV) server server.bak; else exit 0; fi @@\
X gcc $(CDEBUGFLAGS) $(CCOPTIONS) -o server objects libs Server_Extra_Libraries syslibs Server_Extra_Load_Flags @@\
X @@\
Xload/**/server: @@\
X - at if [ -f server ]; then echo " $(MV) server server.bak"; \ @@\
X $(MV) server server.bak; else exit 0; fi @@\
X $(CC) $(CDEBUGFLAGS) $(CCOPTIONS) -o server objects libs $(EXTRA_LIBRARIES) syslibs $(EXTRA_LOAD_FLAGS)
X#define FilesToClean *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut a.out
SHAR_EOF
$TOUCH -am 0122195191 xenix.cf &&
chmod 0660 xenix.cf ||
echo "restore of xenix.cf failed"
set `wc -c xenix.cf`;Wc_c=$1
if test "$Wc_c" != "4678"; then
echo original size 4678, current size $Wc_c
fi
# ============= Project.example ==============
echo "x - extracting Project.example (Text)"
sed 's/^X//' << 'SHAR_EOF' > Project.example &&
X#if SharedLibXext
X DEPEXTENSIONLIB = /* _Use($(USRLIBDIR),$(EXTENSIONSRC)/lib)/libXext.so.$(SOXEXTREV) */
X#ifndef EXTENSIONLIB_Defined
X EXTENSIONLIB = _Use(-lXext,-L$(EXTENSIONSRC) -lXext)
X#endif
X#else
X DEPEXTENSIONLIB = _Use($(USRLIBDIR),$(EXTENSIONSRC)/lib)/libXext.a
X EXTENSIONLIB = LoaderLibPrefix _Use(-lXext, $(DEPEXTENSIONLIB))
X#endif
X#if SharedLibX
X DEPXLIB = $(DEPEXTENSIONLIB) /* _Use($(USRLIBDIR),$(XLIBSRC))/libX11.so.$(SOXLIBREV) */
X#ifndef XLIB_Defined
X XLIB = $(EXTENSIONLIB) _Use(-lX11,-L$(XLIBSRC) -lX11)
X#endif
X#else
X DEPXLIB = $(DEPEXTENSIONLIB) _Use($(USRLIBDIR),$(XLIBSRC))/libX11.a
X XLIB = $(EXTENSIONLIB) LoaderLibPrefix _Use(-lX11,$(XLIBSRC)/libX11.a)
X#endif
X DEPXAUTHLIB = _Use($(USRLIBDIR),$(XAUTHSRC))/libXau.a
X#ifndef XAUTHLIB_Defined
X XAUTHLIB = LoaderLibPrefix _Use(-lXau,$(DEPXAUTHLIB))
X#endif
X#if SharedLibXmu
X DEPXMULIB = /* _Use($(USRLIBDIR),$(XMUSRC))/libXmu.so.$(SOXMUREV) */
X#ifndef XMULIB_Defined
X XMULIB = _Use(-lXmu,-L$(XMUSRC) -lXmu)
X#endif
X#else
X DEPXMULIB = _Use($(USRLIBDIR),$(XMUSRC))/libXmu.a
X XMULIB = LoaderLibPrefix _Use(-lXmu,$(DEPXMULIB))
X#endif
X#if SharedOldLibX
X DEPOLDXLIB = /* _Use($(USRLIBDIR),$(OLDXLIBSRC))/liboldX.so.$(SOOLDXREV) */
X#ifndef OLDXLIB_Defined
X OLDXLIB = _Use(-loldX,-L$(OLDXLIBSRC) -loldX)
X#endif
X#else
X DEPOLDXLIB = _Use($(USRLIBDIR),$(OLDXLIBSRC))/liboldX.a
X OLDXLIB = LoaderLibPrefix _Use(-loldX,$(DEPOLDXLIB))
X#endif
X#if SharedLibXt
X DEPXTOOLLIB = /* _Use($(USRLIBDIR),$(TOOLKITSRC))/libXt.so.$(SOXTREV) */
X#ifndef XTOOLLIB_Defined
X XTOOLLIB = _Use(-lXt,-L$(TOOLKITSRC) -lXt)
X#endif
X#else
X DEPXTOOLLIB = _Use($(USRLIBDIR),$(TOOLKITSRC))/libXt.a
X XTOOLLIB = LoaderLibPrefix _Use(-lXt,$(DEPXTOOLLIB))
X#endif
X#if SharedLibXaw
X DEPXAWLIB = /* _Use($(USRLIBDIR),$(AWIDGETSRC))/libXaw.so.$(SOXAWREV) */
X#ifndef XAWLIB_Defined
X XAWLIB = _Use(-lXaw,-L$(AWIDGETSRC) -lXaw)
X#endif
X#else
X DEPXAWLIB = _Use($(USRLIBDIR),$(AWIDGETSRC))/libXaw.a
X XAWLIB = LoaderLibPrefix _Use(-lXaw,$(DEPXAWLIB))
X#endif
SHAR_EOF
$TOUCH -am 0122180791 Project.example &&
chmod 0660 Project.example ||
echo "restore of Project.example failed"
set `wc -c Project.example`;Wc_c=$1
if test "$Wc_c" != "2158"; then
echo original size 2158, current size $Wc_c
fi
exit 0
More information about the Alt.sources
mailing list