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:
parent
dc13c29ed1
commit
f7012583e9
41 changed files with 300 additions and 163 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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_ */
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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_ */
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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*);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
20
src/mkcommon
20
src/mkcommon
|
|
@ -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
|
|
||||||
|
|
|
||||||
29
src/mkhdr
29
src/mkhdr
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
57
src/mkmany
57
src/mkmany
|
|
@ -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
|
|
||||||
|
|
|
||||||
10
src/mkmk.sh
10
src/mkmk.sh
|
|
@ -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 ..
|
||||||
|
|
|
||||||
35
src/mkone
35
src/mkone
|
|
@ -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
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue