Return to BSD News archive
Xref: sserve alt.sources:6387 comp.unix.bsd:12585 comp.sys.sun.admin:18113 Path: sserve!newshost.anu.edu.au!munnari.oz.au!spool.mu.edu!sol.ctr.columbia.edu!destroyer!news.itd.umich.edu!hellcow.css.itd.umich.edu!pauls From: pauls@css.itd.umich.edu (Paul Southworth) Newsgroups: alt.sources,comp.unix.bsd,comp.sys.sun.admin Subject: Net2 /bin/make diffs for SunOS 4.1.3 Date: 8 Sep 1993 19:25:48 GMT Organization: University of Michigan ITD Consulting and Support Services Lines: 198 Distribution: world Message-ID: <26lbjs$cpp@terminator.rs.itd.umich.edu> NNTP-Posting-Host: hellcow.css.itd.umich.edu SUMMARY Porting and installing Net2 /bin/make on a Sun SPARC running SunOS 4.1.3 I looked around, found Vix's ultrix patches, found an older Sun version ported (which, for me, died more horribly than the original Net2 release) then decided to redo the whole thing. The following has not been extensively tested, although I have used it to build Berkeley Sendmail 8.5. This was an entertaining little adventure. Most of the brain-work was done by cseeger@nielsen.com, and all the leg-work was done by me. I am probably a more clueless programmer than you will meet on an average Sunday walk in the park, so I suggest that you post questions to appropriate newsgroups. These are probably good: comp.unix.bsd, comp.sys.sun.wanted, comp.unix.questions. My fearless leader used the unbundled "acc" compiler to build it on his system. I used GCC 2.4.5. Both worked. By unofficial comparison the GCC-compiled binary "make" was 4k smaller. Hopefully-Idiot-Proof-Instructions: 1. Retrieve make from a Net2 source distribution. These diffs were created from working on sources from /systems/unix/bsd-sources/bin/make on ftp.uu.net. wuarchive.wustl.edu also has the Net2 distribution. Put these in a directory called "make". For further instructions I will assume you're getting sources from UUNet. 2. Retrieve /systems/unix/bsd-sources/share/mk and put it in make/mk on your machine. 3. Retrieve getenv.c and setenv.c from ...bsd-sources/lib/libc/stdlib and put them both in make/lst.lib on your machine. 4. Copy your /usr/include/ranlib.h to make/ranlib.h on your machine. 5. cd to make and patch this source tree with "patch -p1 <make.diff" 6. cd to make and "make -f Makefile.dist" Make directory /usr/share/mk, and then copy make/mk/* to /usr/share/mk. Then "./pmake". This will build a binary "make". I installed it as "pmake" since I use it rarely. 7. If you want to be clever about it, you can then build Berkeley mkdep and "./pmake depend" before building for the last time. My resulting binary was 131k. Your mileage may vary, and I can't do anything about it! Paul Southworth Archivist - etext.archive.umich.edu pauls@umich.edu This is make.diff ------------------------slice-and-dice-here--------------------------------- diff -cr make/Makefile make.fixed/Makefile *** make/Makefile Fri Mar 15 19:21:32 1991 --- make.fixed/Makefile Wed Sep 8 11:00:37 1993 *************** *** 1,7 **** # @(#)Makefile 5.2 (Berkeley) 12/28/90 ! PROG= make ! CFLAGS+=-I${.CURDIR} SRCS= arch.c buf.c compat.c cond.c dir.c hash.c job.c main.c \ make.c parse.c str.c suff.c targ.c var.c SRCS+= lstAppend.c lstAtEnd.c lstAtFront.c lstClose.c lstConcat.c \ --- 1,8 ---- # @(#)Makefile 5.2 (Berkeley) 12/28/90 ! CC= gcc PROG= make ! # bsd defines MACHINE in <sys/param.h>, but not Sun ! CFLAGS+=-I${.CURDIR} -DMACHINE='"sparc"' SRCS= arch.c buf.c compat.c cond.c dir.c hash.c job.c main.c \ make.c parse.c str.c suff.c targ.c var.c SRCS+= lstAppend.c lstAtEnd.c lstAtFront.c lstClose.c lstConcat.c \ *************** *** 9,14 **** --- 10,19 ---- lstFind.c lstFindFrom.c lstFirst.c lstForEach.c lstForEachFrom.c \ lstInit.c lstInsert.c lstIsAtEnd.c lstIsEmpty.c lstLast.c \ lstMember.c lstNext.c lstOpen.c lstRemove.c lstReplace.c lstSucc.c + SRCS+= getenv.c setenv.c .PATH: ${.CURDIR}/lst.lib + BINDIR= /local/ucb + .include <bsd.prog.mk> + diff -cr make/Makefile.dist make.fixed/Makefile.dist *** make/Makefile.dist Sun May 12 18:25:59 1991 --- make.fixed/Makefile.dist Wed Sep 8 00:38:35 1993 *************** *** 1,7 **** # a very simple makefile... pmake: @echo 'make started.' ! cc -I. -c *.c ! cd lst.lib; cc -I.. -c *.c ! cc *.o lst.lib/*.o -o pmake @echo 'make completed.' --- 1,8 ---- # a very simple makefile... + DEFS = -O -Usparc -DMACHINE='"sparc"' pmake: @echo 'make started.' ! gcc ${DEFS} -I. -c *.c ! cd lst.lib; gcc ${DEFS} -I.. -c *.c ! gcc ${DEFS} *.o lst.lib/*.o -o pmake @echo 'make completed.' diff -cr make/lst.lib/setenv.c make.fixed/lst.lib/setenv.c *** make/lst.lib/setenv.c Wed Sep 8 15:04:58 1993 --- make.fixed/lst.lib/setenv.c Wed Sep 8 00:36:58 1993 *************** *** 110,115 **** --- 110,116 ---- extern char **environ; register char **P; int offset; + char *_findenv(); while (_findenv(name, &offset)) /* if set multiple times */ for (P = &environ[offset];; ++P) diff -cr make/make.h make.fixed/make.h *** make/make.h Thu Apr 18 19:11:53 1991 --- make.fixed/make.h Wed Sep 8 00:36:24 1993 *************** *** 48,53 **** --- 48,56 ---- #include <sys/types.h> #include <string.h> + #ifdef sun + #include <strings.h> + #endif #include <ctype.h> #include "sprite.h" #include "lst.h" diff -cr make/mk/bsd.lib.mk make.fixed/mk/bsd.lib.mk *** make/mk/bsd.lib.mk Wed Sep 8 14:55:08 1993 --- make.fixed/mk/bsd.lib.mk Wed Sep 8 14:21:26 1993 *************** *** 5,11 **** .endif LIBDIR?= /usr/lib ! LINTLIBDIR?= /usr/libdata/lint LIBGRP?= bin LIBOWN?= bin LIBMODE?= 444 --- 5,11 ---- .endif LIBDIR?= /usr/lib ! LINTLIBDIR?= /usr/lib/lint LIBGRP?= bin LIBOWN?= bin LIBMODE?= 444 diff -cr make/mk/sys.mk make.fixed/mk/sys.mk *** make/mk/sys.mk Wed Sep 8 14:55:10 1993 --- make.fixed/mk/sys.mk Wed Sep 8 14:52:52 1993 *************** *** 31,37 **** LINT= lint LINTFLAGS= -chapbx ! MAKE= make PC= pc PFLAGS= --- 31,37 ---- LINT= lint LINTFLAGS= -chapbx ! MAKE= pmake PC= pc PFLAGS= diff -cr make/ranlib.h make.fixed/ranlib.h *** make/ranlib.h Wed Sep 8 14:56:18 1993 --- make.fixed/ranlib.h Wed Sep 8 10:06:41 1993 *************** *** 12,17 **** --- 12,21 ---- #ifndef _ranlib_h #define _ranlib_h + /* #define RANLIBMAG "!<arch>\n__.SYMDEF" /* archive file name */ + #define RANLIBMAG "__.SYMDEF" /* archive file name */ + #define RANLIBSKEW 3 /* creation time offset */ + struct ranlib { union { off_t ran_strx; /* string table index of */