Add the #goo to allow use in C++.

Silence a few more warnings.
Strip down the mkfiles more.
Fix bug in X11 mouse handling, note groups.
This commit is contained in:
rsc 2003-11-25 01:40:27 +00:00
parent dc13c29ed1
commit f7012583e9
41 changed files with 300 additions and 163 deletions

View file

@ -1,3 +1,9 @@
#ifndef _BIN_H_
#define _BIN_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* /*
#pragma lib "libbin.a" #pragma lib "libbin.a"
#pragma src "/sys/src/libbin" #pragma src "/sys/src/libbin"
@ -11,3 +17,8 @@ typedef struct Bin Bin;
void *binalloc(Bin **, ulong size, int zero); void *binalloc(Bin **, ulong size, int zero);
void *bingrow(Bin **, void *op, ulong osize, ulong size, int zero); void *bingrow(Bin **, void *op, ulong osize, ulong size, int zero);
void binfree(Bin **); void binfree(Bin **);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,5 +1,8 @@
#ifndef _BIOH_ #ifndef _BIO_H_
#define _BIOH_ 1 #define _BIO_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
#include <sys/types.h> /* for off_t */ #include <sys/types.h> /* for off_t */
#include <fcntl.h> /* for O_RDONLY, O_WRONLY */ #include <fcntl.h> /* for O_RDONLY, O_WRONLY */
@ -78,4 +81,7 @@ char* Brdstr(Biobuf*, int, int);
long Bgetrune(Biobuf*); long Bgetrune(Biobuf*);
int Bputrune(Biobuf*, long); int Bputrune(Biobuf*, long);
#if defined(__cplusplus)
}
#endif
#endif #endif

View file

@ -1,3 +1,9 @@
#ifndef _CURSOR_H_
#define _CURSOR_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct Cursor Cursor; typedef struct Cursor Cursor;
struct Cursor struct Cursor
{ {
@ -5,3 +11,8 @@ struct Cursor
uchar clr[2*16]; uchar clr[2*16];
uchar set[2*16]; uchar set[2*16];
}; };
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,9 @@
#ifndef _DRAW_H_
#define _DRAW_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct Cachefont Cachefont; typedef struct Cachefont Cachefont;
typedef struct Cacheinfo Cacheinfo; typedef struct Cacheinfo Cacheinfo;
typedef struct Cachesubf Cachesubf; typedef struct Cachesubf Cachesubf;
@ -531,3 +537,8 @@ void drawtopwindow(void);
int _drawmsgread(Display*, void*, int); int _drawmsgread(Display*, void*, int);
int _drawmsgwrite(Display*, void*, int); int _drawmsgwrite(Display*, void*, int);
int _latin1(Rune*, int); int _latin1(Rune*, int);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,9 @@
#ifndef _EVENT_H_
#define _EVENT_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct Event Event; typedef struct Event Event;
typedef struct Menu Menu; typedef struct Menu Menu;
@ -61,3 +67,8 @@ extern Rectangle egetrect(int, Mouse*);
extern void edrawgetrect(Rectangle, int); extern void edrawgetrect(Rectangle, int);
extern int ereadmouse(Mouse*); extern int ereadmouse(Mouse*);
extern int eatomouse(Mouse*, char*, int); extern int eatomouse(Mouse*, char*, int);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _FCALL_H_
#define _FCALL_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* /*
#pragma src "/sys/src/libc/9sys" #pragma src "/sys/src/libc/9sys"
#pragma lib "libc.a" #pragma lib "libc.a"
@ -118,3 +123,7 @@ int read9pmsg(int, void*, uint);
#pragma varargck type "M" ulong #pragma varargck type "M" ulong
#pragma varargck type "D" Dir* #pragma varargck type "D" Dir*
*/ */
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _FLATE_H_
#define _FLATE_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* /*
#pragma lib "libflate.a" #pragma lib "libflate.a"
#pragma src "/sys/src/libflate" #pragma src "/sys/src/libflate"
@ -39,3 +44,7 @@ ulong *mkcrctab(ulong);
ulong blockcrc(ulong *tab, ulong crc, void *buf, int n); ulong blockcrc(ulong *tab, ulong crc, void *buf, int n);
ulong adler32(ulong adler, void *buf, int n); ulong adler32(ulong adler, void *buf, int n);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _FMT_H_
#define _FMT_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* /*
* The authors of this software are Rob Pike and Ken Thompson. * The authors of this software are Rob Pike and Ken Thompson.
@ -13,14 +18,8 @@
* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
*/ */
#ifndef _FMTH_
#define _FMTH_ 1
#include <stdarg.h> #include <stdarg.h>
#ifndef _UTFH_
#include <utf.h> #include <utf.h>
#endif
typedef struct Fmt Fmt; typedef struct Fmt Fmt;
struct Fmt{ struct Fmt{
@ -97,4 +96,7 @@ extern int fmtstrcpy(Fmt*, char*);
extern double fmtstrtod(const char *, char **); extern double fmtstrtod(const char *, char **);
extern double fmtcharstod(int(*)(void*), void*); extern double fmtcharstod(int(*)(void*), void*);
#if defined(__cplusplus)
}
#endif
#endif #endif

View file

@ -1,3 +1,9 @@
#ifndef _FRAME_H_
#define _FRAME_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct Frbox Frbox; typedef struct Frbox Frbox;
typedef struct Frame Frame; typedef struct Frame Frame;
@ -83,3 +89,7 @@ void frinittick(Frame*);
#define NRUNE(b) ((b)->nrune<0? 1 : (b)->nrune) #define NRUNE(b) ((b)->nrune<0? 1 : (b)->nrune)
#define NBYTE(b) strlen((char*)(b)->ptr) #define NBYTE(b) strlen((char*)(b)->ptr)
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _HTTPD_H_
#define _HTTPD_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* /*
#pragma lib "libhttpd.a" #pragma lib "libhttpd.a"
#pragma src "/sys/src/libhttpd" #pragma src "/sys/src/libhttpd"
@ -278,3 +283,8 @@ int hxferenc(Hio*, int);
#pragma varargck type "U" char* #pragma varargck type "U" char*
#pragma varargck type "H" char* #pragma varargck type "H" char*
*/ */
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _IP_H_
#define _IP_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* /*
#pragma src "/sys/src/libip" #pragma src "/sys/src/libip"
#pragma lib "libip.a" #pragma lib "libip.a"
@ -121,3 +126,7 @@ extern uchar IPallbits[IPaddrlen];
#define CLASS(p) ((*(uchar*)(p))>>6) #define CLASS(p) ((*(uchar*)(p))>>6)
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _KEYBOARD_H_
#define _KEYBOARD_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct Keyboardctl Keyboardctl; typedef struct Keyboardctl Keyboardctl;
struct Keyboardctl struct Keyboardctl
@ -34,3 +39,8 @@ enum {
Kshift= KF|0x16, Kshift= KF|0x16,
Kctl= KF|0x17, Kctl= KF|0x17,
}; };
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -3,9 +3,8 @@
* fit into libutf or into libfmt, but is still missing from traditional * fit into libutf or into libfmt, but is still missing from traditional
* Unix C libraries. * Unix C libraries.
*/ */
#ifndef _LIB9H_ #ifndef _LIB9_H_
#define _LIB9H_ 1 #define _LIB9_H_ 1
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#endif #endif
@ -861,5 +860,4 @@ extern void __fixargv0(void);
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif #endif
#endif /* _LIB9_H_ */
#endif /* _LIB9H_ */

View file

@ -1,3 +1,8 @@
#ifndef _LIBSEC_H_
#define _LIBSEC_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* /*
#pragma lib "libsec.a" #pragma lib "libsec.a"
#pragma src "/sys/src/libsec" #pragma src "/sys/src/libsec"
@ -338,3 +343,8 @@ extern int okThumbprint(uchar *sha1, Thumbprint *ok);
// readcert.c // readcert.c
extern uchar *readcert(char *filename, int *pcertlen); extern uchar *readcert(char *filename, int *pcertlen);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _MEMDRAW_H_
#define _MEMDRAW_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct Memimage Memimage; typedef struct Memimage Memimage;
typedef struct Memdata Memdata; typedef struct Memdata Memdata;
typedef struct Memsubfont Memsubfont; typedef struct Memsubfont Memsubfont;
@ -208,3 +213,8 @@ extern Memdrawparam* _memimagedrawsetup(Memimage*,
Point, int); Point, int);
extern void _memimagedraw(Memdrawparam*); extern void _memimagedraw(Memdrawparam*);
extern void _drawreplacescreenimage(Memimage*); extern void _drawreplacescreenimage(Memimage*);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,9 @@
#ifndef _MEMLAYER_H_
#define _MEMLAYER_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct Memscreen Memscreen; typedef struct Memscreen Memscreen;
typedef void (*Refreshfn)(Memimage*, Rectangle, void*); typedef void (*Refreshfn)(Memimage*, Rectangle, void*);
@ -46,3 +52,9 @@ void memlexpose(Memimage*, Rectangle);
void _memlsetclear(Memscreen*); void _memlsetclear(Memscreen*);
int memlorigin(Memimage*, Point, Point); int memlorigin(Memimage*, Point, Point);
void memlnorefresh(Memimage*, Rectangle, void*); void memlnorefresh(Memimage*, Rectangle, void*);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _MOUSE_H_
#define _MOUSE_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct Menu Menu; typedef struct Menu Menu;
typedef struct Mousectl Mousectl; typedef struct Mousectl Mousectl;
@ -42,3 +47,9 @@ extern void setcursor(Mousectl*, struct Cursor*);
extern void drawgetrect(Rectangle, int); extern void drawgetrect(Rectangle, int);
extern Rectangle getrect(int, Mousectl*); extern Rectangle getrect(int, Mousectl*);
extern int menuhit(int, Mousectl*, Menu*, Screen*); extern int menuhit(int, Mousectl*, Menu*, Screen*);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,3 +1,8 @@
#ifndef _LIBPLUMB_H_
#define _LIBPLUMB_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* /*
#pragma lib "libplumb.a" #pragma lib "libplumb.a"
#pragma src "/sys/src/libplumb" #pragma src "/sys/src/libplumb"
@ -48,3 +53,8 @@ void plumbfree(Plumbmsg*);
char* plumblookup(Plumbattr*, char*); char* plumblookup(Plumbattr*, char*);
int plumbopen(char*, int); int plumbopen(char*, int);
int eplumb(int, char*); int eplumb(int, char*);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -1,6 +1,9 @@
#ifndef _REGEXP9H_ #ifndef _REGEXP9_H_
#define _REGEXP9_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
#define _REGEXP9H_ 1
#include <utf.h> #include <utf.h>
typedef struct Resub Resub; typedef struct Resub Resub;
@ -83,4 +86,7 @@ extern void rregsub9(Rune*, Rune*, Resub*, int);
#define rregsub rregsub9 #define rregsub rregsub9
#endif #endif
#if defined(__cplusplus)
}
#endif
#endif #endif

View file

@ -1,5 +1,8 @@
#ifndef _THREADH_ #ifndef _THREAD_H_
#define _THREADH_ 1 #define _THREAD_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* avoid conflicts with socket library */ /* avoid conflicts with socket library */
#undef send #undef send
@ -129,4 +132,7 @@ int iosleep(Ioproc*, long);
long iocall(Ioproc*, long (*)(va_list*), ...); long iocall(Ioproc*, long (*)(va_list*), ...);
void ioret(Ioproc*, int); void ioret(Ioproc*, int);
#if defined(__cplusplus)
}
#endif
#endif /* _THREADH_ */ #endif /* _THREADH_ */

View file

@ -1,5 +1,8 @@
#ifndef _UTFH_ #ifndef _UTF_H_
#define _UTFH_ 1 #define _UTF_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
typedef unsigned short Rune; /* 16 bits */ typedef unsigned short Rune; /* 16 bits */
@ -48,4 +51,7 @@ extern int isspacerune(Rune);
extern int istitlerune(Rune); extern int istitlerune(Rune);
extern int isupperrune(Rune); extern int isupperrune(Rune);
#if defined(__cplusplus)
}
#endif
#endif #endif

View file

@ -1,3 +1,8 @@
#ifndef _VENTI_H_
#define _VENTI_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
/* XXX should be own library? */ /* XXX should be own library? */
/* /*
* Packets * Packets
@ -413,3 +418,7 @@ int vtfilelock(VtFile*, int);
int vtfilelock2(VtFile*, VtFile*, int); int vtfilelock2(VtFile*, VtFile*, int);
int vtfileflushbefore(VtFile*, u64int); int vtfileflushbefore(VtFile*, u64int);
#if defined(__cplusplus)
}
#endif
#endif

View file

@ -82,11 +82,14 @@ int
opentemp(char *template, int mode, long perm) opentemp(char *template, int mode, long perm)
{ {
int fd; int fd;
Dir d;
fd = mkstemp(template); fd = mkstemp(template);
if(fd < 0) if(fd < 0)
sysfatal("could not create temporary file"); sysfatal("could not create temporary file");
fchmod(fd, perm); nulldir(&d);
d.mode = perm;
dirfwstat(fd, &d);
return fd; return fd;
} }

View file

@ -6,7 +6,7 @@ LDFLAGS=$LDFLAGS -lsec -lregexp9 -l9 -lbio -lfmt -lutf
<$PLAN9/src/mkmany <$PLAN9/src/mkmany
BUGGERED='CVS|oplumb|plumb|plumb2|mk|vac|9term' BUGGERED='CVS|oplumb|plumb|plumb2|mk|vac|9term|venti'
DIRS=`ls -l |sed -n 's/^d.* //p' |egrep -v "$BUGGERED"` DIRS=`ls -l |sed -n 's/^d.* //p' |egrep -v "$BUGGERED"`
<$PLAN9/src/mkdirs <$PLAN9/src/mkdirs

View file

@ -141,6 +141,7 @@ rescue(void)
File *f; File *f;
char *c; char *c;
char buf[256]; char buf[256];
char *root;
if(rescuing++) if(rescuing++)
return; return;
@ -162,7 +163,10 @@ rescue(void)
free(c); free(c);
}else }else
sprint(buf, "nameless.%d", nblank++); sprint(buf, "nameless.%d", nblank++);
fprint(io, "#!%s '%s' $* <<'---%s'\n", SAMSAVECMD, buf, buf); root = getenv("PLAN9");
if(root == nil)
root = "/usr/local/plan9";
fprint(io, "#!/bin/sh\n%s/bin/samsave '%s' $* <<'---%s'\n", root, buf, buf);
addr.r.p1 = 0, addr.r.p2 = f->b.nc; addr.r.p1 = 0, addr.r.p2 = f->b.nc;
writeio(f); writeio(f);
fprint(io, "\n---%s\n", (char *)buf); fprint(io, "\n---%s\n", (char *)buf);

View file

@ -345,7 +345,6 @@ extern char SH[];
extern char SHPATH[]; extern char SHPATH[];
extern char RX[]; extern char RX[];
extern char RXPATH[]; extern char RXPATH[];
extern char SAMSAVECMD[];
/* /*
* acme globals * acme globals

View file

@ -38,9 +38,6 @@ Rune *right[]= { r1, r2, r3, 0};
#ifndef RXPATHNAME #ifndef RXPATHNAME
#define RXPATHNAME "ssh" #define RXPATHNAME "ssh"
#endif #endif
#ifndef SAMSAVECMDNAME
#define SAMSAVECMDNAME "/bin/sh\n/usr/local/plan9/bin/samsave"
#endif
char RSAM[] = "sam"; char RSAM[] = "sam";
char SAMTERM[] = SAMTERMNAME; char SAMTERM[] = SAMTERMNAME;
@ -50,7 +47,6 @@ char SH[] = SHNAME;
char SHPATH[] = SHPATHNAME; char SHPATH[] = SHPATHNAME;
char RX[] = RXNAME; char RX[] = RXNAME;
char RXPATH[] = RXPATHNAME; char RXPATH[] = RXPATHNAME;
char SAMSAVECMD[] = SAMSAVECMDNAME;
void void

View file

@ -1,3 +1,7 @@
/*
* stupid little program to pipe unicode chars through
* when converting to non-utf compilers.
*/
#include <u.h> #include <u.h>
#include <libc.h> #include <libc.h>
#include <bio.h> #include <bio.h>

View file

@ -22,16 +22,21 @@ futimes(int fd, struct timeval *tv)
int int
dirfwstat(int fd, Dir *dir) dirfwstat(int fd, Dir *dir)
{ {
int ret;
struct timeval tv[2]; struct timeval tv[2];
/* BUG handle more */ if(~dir->mode != 0){
if(dir->mtime == ~0ULL) if(fchmod(fd, dir->mode) < 0)
return 0; ret = -1;
}
if(~dir->mtime != 0){
tv[0].tv_sec = dir->mtime; tv[0].tv_sec = dir->mtime;
tv[0].tv_usec = 0; tv[0].tv_usec = 0;
tv[1].tv_sec = dir->mtime; tv[1].tv_sec = dir->mtime;
tv[1].tv_usec = 0; tv[1].tv_usec = 0;
return futimes(fd, tv); if(futimes(fd, tv) < 0)
ret = -1;
}
return ret;
} }

View file

@ -1,31 +1,22 @@
#include <u.h> #include <u.h>
#define NOPLAN9DEFINES
#include <libc.h> #include <libc.h>
#undef asctime
#undef ctime
#undef gmtime
#undef localtime
#include <sys/stat.h> #include <sys/stat.h>
#include <dirent.h> #include <dirent.h>
extern int _p9dir(struct stat*, char*, Dir*, char**, char*); extern int _p9dir(struct stat*, char*, Dir*, char**, char*);
/* everyone has getdirentries, just use that */ /* almost everyone has getdirentries, just use that */
static int static int
mygetdents(int fd, char *buf, int n) mygetdents(int fd, char *buf, int n)
{ {
ssize_t nn; ssize_t nn;
#if _GETDIRENTRIES_TAKES_LONG
long off; long off;
#else
off_t off;
#endif
off = seek(fd, 0, 1); off = p9seek(fd, 0, 1);
nn = getdirentries(fd, buf, n, &off); nn = getdirentries(fd, buf, n, &off);
if(nn > 0) if(nn > 0)
seek(fd, off, 0); p9seek(fd, off, 0);
return nn; return nn;
} }

View file

View file

@ -26,6 +26,15 @@ _initdisplay(void (*error)(Display*, char*), char *label)
Display *d; Display *d;
Memimage *m; Memimage *m;
/*
* This rfork(RFNOTEG) isn't exactly right,
* but we need some way to signal window
* closes. Right now we post a hangup
* note to the note group, which kills a whole
* lot more than just the current program
* if we don't do this.
*/
rfork(RFNOTEG);
memimageinit(); memimageinit();
d = mallocz(sizeof(Display), 1); d = mallocz(sizeof(Display), 1);

View file

@ -190,8 +190,15 @@ xtoplan9mouse(XDisplay *xd, XEvent *e, Mouse *m)
switch(e->type){ switch(e->type){
case ButtonPress: case ButtonPress:
be = (XButtonEvent*)e; be = (XButtonEvent*)e;
/* Fake message, just sent to make us announce snarf. */ /*
if(be->send_event && be->state==~0 && be->button==~0) * Fake message, just sent to make us announce snarf.
* Apparently state and button are 16 and 8 bits on
* the wire, since they are truncated by the time they
* get to us.
*/
if(be->send_event
&& (~be->state&0xFFFF)==0
&& (~be->button&0xFF)==0)
return -1; return -1;
/* BUG? on mac need to inherit these from elsewhere? */ /* BUG? on mac need to inherit these from elsewhere? */
m->xy.x = be->x; m->xy.x = be->x;

View file

@ -15,7 +15,6 @@ static char* abspath(HConnect *cc, char *origpath, char *curdir);
static int getc(HConnect*); static int getc(HConnect*);
static char* getword(HConnect*); static char* getword(HConnect*);
static Strings parseuri(HConnect *c, char*); static Strings parseuri(HConnect *c, char*);
static Strings stripmagic(char*);
static Strings stripsearch(char*); static Strings stripsearch(char*);
/* /*

View file

@ -3,12 +3,14 @@
//static Thread *runthread(Proc*); //static Thread *runthread(Proc*);
#if 0
static char *_psstate[] = { static char *_psstate[] = {
"Dead", "Dead",
"Running", "Running",
"Ready", "Ready",
"Rendezvous", "Rendezvous",
}; };
#endif
static char* static char*
psstate(int s) psstate(int s)

View file

@ -6,16 +6,20 @@
%.$O: %.s %.$O: %.s
$AS $AFLAGS $stem.s $AS $AFLAGS $stem.s
clean:V: y.tab.h y.tab.c: $YFILES
$YACC $YFLAGS $prereq
nuke:V: nuke-common
clean:V: clean-common
%.clean:V: %.clean-common
nuke-common:V:
rm -f *.[$OS] [$OS].out $CLEANFILES $NUKEFILES
clean-common:
rm -f *.[$OS] [$OS].out $CLEANFILES rm -f *.[$OS] [$OS].out $CLEANFILES
%.clean:V: %.clean-common:V:
rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem
nuke:V:
rm -f *.[$OS] [$OS].out $CLEANFILES
Makefile:D: mkfile
rm -f Makefile
sh $PLAN9/src/mk2make mkfile >Makefile
chmod 444 Makefile

View file

@ -1,26 +1,25 @@
SYSNAME=`uname` SYSNAME=`uname`
OBJTYPE=`uname -m | sed 's;i.86;386;; s;/.*;;; s; ;;g'` OBJTYPE=`uname -m | sed 's;i.86;386;; s;/.*;;; s; ;;g'`
X11=/usr/X11R6
CC=9c
LD=9l
AS=9a
AR=9ar
CFLAGS=
LDFLAGS=
AFLAGS=
O=o
BIN=$PLAN9/bin BIN=$PLAN9/bin
LIBDIR=$PLAN9/lib LIBDIR=$PLAN9/lib
<|cat $PLAN9/src/mk.$SYSNAME-$OBJTYPE 2>/dev/null || true # BUG - figure this out automatically
X11=/usr/X11R6
O=o
OS=$O OS=$O
LD=9l
LDFLAGS=$LDFLAGS -L$LIBDIR
CLEANFILES=*.$O CC=9c
LD=9l
AS=9a
AR=9ar
INSTALL=install -c
CFLAGS=
LDFLAGS=
AFLAGS=
CLEANFILES=
NUKEFILES= NUKEFILES=
INSTALL=install -c <|cat $PLAN9/src/mk.$SYSNAME-$OBJTYPE 2>/dev/null || true

View file

@ -1,73 +1,26 @@
PROGS=${TARG:%=$O.%}
none:VQ: none:VQ:
echo usage: mk all, install, installall, '$O'.cmd, cmd.install, or cmd.installall echo usage: mk all, install, installall, '$O'.cmd, cmd.install, or cmd.installall
PROGS=${TARG:%=$O.%}
all:V: $PROGS all:V: $PROGS
$O.%: %.$O $OFILES $LIB $O.%: %.$O $OFILES $LIB
$LD -o $target $prereq $LDFLAGS $LD -o $target $prereq $LDFLAGS
%.$O: $HFILES # don't combine with following %.$O rules
%.$O: %.c
$CC $CFLAGS $stem.c
%.$O: %.s
$AS $AFLAGS $stem.s
y.tab.h y.tab.c: $YFILES
$YACC $YFLAGS $prereq
%.install:V: $BIN/% %.install:V: $BIN/%
$BIN/%: $O.% $BIN/%: $O.%
$INSTALL $O.$stem $BIN/$stem $INSTALL $O.$stem $BIN/$stem
%.installall:V:
for (objtype in $CPUS)
mk $stem.install
install:V: install:V:
# for (i in $TARG)
# mk $MKFLAGS $i.install
for i in $TARG for i in $TARG
do do
mk $MKFLAGS $i.install mk $MKFLAGS $i.install
done done
installall:V: CLEANFILES=$CLEANFILES $PROGS
for(objtype in $CPUS) NUKEFILES=$NUKEFILES ${TARG:%=$BIN/%}
mk $MKFLAGS install
%.safeinstall:V: <$PLAN9/src/mkcommon
mk $O.$stem
test -e $BIN/$stem && mv $BIN/$stem $BIN/_$stem
mk $stem.install
%.safeinstallall:V:
for(objtype in $CPUS)
mk $MKFLAGS $stem.safeinstall
safeinstall:V:
for(i in $TARG)
mk $MKFLAGS $i.safeinstall
safeinstallall:V:
for (objtype in $CPUS)
mk safeinstall
update:V:
update $UPDATEFLAGS $UPDATE
nuke:V:
rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* *.acid $TARG $NUKEFILES
clean:V:
rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* $TARG $CLEANFILES
%.clean:V:
rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem
%.acid: %.$O $HFILES
$CC $CFLAGS -a $stem.c >$target

View file

@ -19,7 +19,7 @@ cd libutf
9c utfrrune.c 9c utfrrune.c
9c utfrune.c 9c utfrune.c
9c utfutf.c 9c utfutf.c
ar rvc ../../lib/libutf.a rune.o runestrcat.o runestrchr.o runestrcmp.o runestrcpy.o runestrdup.o runestrlen.o runestrecpy.o runestrncat.o runestrncmp.o runestrncpy.o runestrrchr.o runestrstr.o runetype.o utfecpy.o utflen.o utfnlen.o utfrrune.o utfrune.o utfutf.o 9ar rvc ../../lib/libutf.a rune.o runestrcat.o runestrchr.o runestrcmp.o runestrcpy.o runestrdup.o runestrlen.o runestrecpy.o runestrncat.o runestrncmp.o runestrncpy.o runestrrchr.o runestrstr.o runetype.o utfecpy.o utflen.o utfnlen.o utfrrune.o utfrune.o utfutf.o
cd .. cd ..
cd libfmt cd libfmt
9c dofmt.c 9c dofmt.c
@ -56,7 +56,7 @@ cd libfmt
9c vsnprint.c 9c vsnprint.c
9c charstod.c 9c charstod.c
9c pow10.c 9c pow10.c
ar rvc ../../lib/libfmt.a dofmt.o errfmt.o fltfmt.o fmt.o fmtfd.o fmtfdflush.o fmtlock.o fmtprint.o fmtquote.o fmtrune.o fmtstr.o fmtvprint.o fprint.o nan64.o print.o runefmtstr.o runeseprint.o runesmprint.o runesnprint.o runesprint.o runevseprint.o runevsmprint.o runevsnprint.o seprint.o smprint.o snprint.o sprint.o strtod.o vfprint.o vseprint.o vsmprint.o vsnprint.o charstod.o pow10.o 9ar rvc ../../lib/libfmt.a dofmt.o errfmt.o fltfmt.o fmt.o fmtfd.o fmtfdflush.o fmtlock.o fmtprint.o fmtquote.o fmtrune.o fmtstr.o fmtvprint.o fprint.o nan64.o print.o runefmtstr.o runeseprint.o runesmprint.o runesnprint.o runesprint.o runevseprint.o runevsmprint.o runevsnprint.o seprint.o smprint.o snprint.o sprint.o strtod.o vfprint.o vseprint.o vsmprint.o vsnprint.o charstod.o pow10.o
cd .. cd ..
cd libbio cd libbio
9c bbuffered.c 9c bbuffered.c
@ -75,7 +75,7 @@ cd libbio
9c bwrite.c 9c bwrite.c
9c bgetrune.c 9c bgetrune.c
9c bputrune.c 9c bputrune.c
ar rvc ../../lib/libbio.a bbuffered.o bfildes.o bflush.o bgetc.o bgetd.o binit.o boffset.o bprint.o bputc.o brdline.o brdstr.o bread.o bseek.o bwrite.o bgetrune.o bputrune.o 9ar rvc ../../lib/libbio.a bbuffered.o bfildes.o bflush.o bgetc.o bgetd.o binit.o boffset.o bprint.o bputc.o brdline.o brdstr.o bread.o bseek.o bwrite.o bgetrune.o bputrune.o
cd .. cd ..
cd libregexp cd libregexp
9c regcomp.c 9c regcomp.c
@ -86,7 +86,7 @@ cd libregexp
9c rregaux.c 9c rregaux.c
9c rregexec.c 9c rregexec.c
9c rregsub.c 9c rregsub.c
ar rvc ../../lib/libregexp9.a regcomp.o regerror.o regexec.o regsub.o regaux.o rregaux.o rregexec.o rregsub.o 9ar rvc ../../lib/libregexp9.a regcomp.o regerror.o regexec.o regsub.o regaux.o rregaux.o rregexec.o rregsub.o
cd .. cd ..
cd cmd/mk cd cmd/mk
9c arc.c 9c arc.c
@ -111,6 +111,6 @@ cd cmd/mk
9c varsub.c 9c varsub.c
9c word.c 9c word.c
9c unix.c 9c unix.c
9l -o o.mk arc.o archive.o bufblock.o env.o file.o graph.o job.o lex.o main.o match.o mk.o parse.o recipe.o rule.o run.o sh.o shprint.o symtab.o var.o varsub.o word.o unix.o -L../../../lib -lregexp9 -lbio -lfmt -lutf 9l -o o.mk arc.o archive.o bufblock.o env.o file.o graph.o job.o lex.o main.o match.o mk.o parse.o recipe.o rule.o run.o sh.o shprint.o symtab.o var.o varsub.o word.o unix.o -lregexp9 -lbio -lfmt -lutf
install -c o.mk ../../../bin/mk install -c o.mk ../../../bin/mk
cd .. cd ..

View file

@ -2,43 +2,16 @@ PROG=$O.$TARG
all:V: $PROG all:V: $PROG
$O.$TARG: $OFILES $LIB $PROG: $OFILES $LIB
$LD -o $target $prereq $LDFLAGS $LD -o $target $prereq $LDFLAGS
%.$O: $HFILES # don't combine with following %.$O rules install:V: $TARG.install
%.$O: %.c
$CC $CFLAGS $stem.c
%.$O: %.s
$AS $AFLAGS $stem.s
y.tab.h y.tab.c: $YFILES
$YACC $YFLAGS $prereq
%.install:V: $BIN/% %.install:V: $BIN/%
$BIN/%: $O.% $BIN/%: $O.%
$INSTALL $O.$stem $BIN/$stem $INSTALL $O.$stem $BIN/$stem
%.installall:V: NUKEFILES=$NUKEFILES $BIN/$TARG
for (objtype in $CPUS)
mk $stem.install
install:V: $TARG.install <$PLAN9/src/mkcommon
installall:V:
for(objtype in $CPUS)
mk $MKFLAGS install
nuke:V:
rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* *.acid $TARG $NUKEFILES
clean:V:
rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* $TARG $CLEANFILES
%.clean:V:
rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem
%.acid: %.$O $HFILES
$CC $CFLAGS -a $stem.c >$target

View file

@ -8,4 +8,6 @@ $PLAN9/lib/$LIB:V: $OFILES # force archive even when not needed
all install:V: $PLAN9/lib/$LIB all install:V: $PLAN9/lib/$LIB
NUKEFILES=$NUKEFILES $PLAN9/lib/$LIB
<$PLAN9/src/mkcommon <$PLAN9/src/mkcommon