-- Provides rules for building things with the half-built ACK itself.
-ACKBUILDFLAGS = {"-m%ARCH%", "%OPTIMISATION%"}
+ACKBUILDFLAGS = {"-m%PLATFORM%", "%OPTIMISATION%"}
ACKDEFINES = EMPTY
ACKINCLUDES = EMPTY
+++ /dev/null
-/* $Id$ */
-/*
- * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
- * See the copyright notice in the ACK home directory, in the file "Copyright".
- */
-
-/*
- * Basic system types and major/minor device constructing/busting macros.
- */
-
-#if !defined(_SYS_TYPES_H)
-#define _SYS_TYPES_H
-
-#ifdef __STDC__
-#if !defined(_SIZE_T)
-#define _SIZE_T
-typedef unsigned int size_t; /* type returned by sizeof */
-#endif /* _SIZE_T */
-
-#if !defined(_TIME_T)
-#define _TIME_T
-typedef unsigned long time_t;
-#endif /* TIME_T */
-#endif
-
-#if !defined(_POSIX_SOURCE)
-
-/* major part of a device */
-#define major(x) ((int)(((unsigned)(x)>>8)&0377))
-
-/* minor part of a device */
-#define minor(x) ((int)((x)&0377))
-
-/* make a device number */
-#define makedev(x,y) ((dev_t)(((x)<<8) | (y)))
-
-typedef unsigned char u_char;
-typedef unsigned short u_short;
-typedef unsigned int u_int;
-typedef unsigned long u_long;
-
-typedef struct _physadr { int r[1]; } *physadr;
-typedef long daddr_t;
-typedef char * caddr_t;
-#if defined(__BSD4_2)
-typedef u_long ino_t;
-#else
-typedef u_short ino_t;
-#endif
-typedef long swblk_t;
-
-#include <sys/stdtypes.h>
-
-typedef long label_t[14];
-typedef short dev_t;
-typedef long off_t;
-
-/* system V compatibility: */
-typedef unsigned int uint;
-typedef unsigned short ushort;
-typedef unsigned char uchar_t;
-typedef short cnt_t;
-typedef long paddr_t;
-typedef long key_t;
-
-#else /* _POSIX_SOURCE */
-#if defined(_MINIX)
-typedef unsigned short dev_t; /* hold (major|minor) device pair */
-typedef unsigned char gid_t; /* group id */
-typedef unsigned short ino_t; /* i-node number */
-typedef unsigned short mode_t; /* mode number within an i-node */
-typedef unsigned char nlink_t; /* number-of-links field within an i-node */
-typedef long off_t; /* offsets within a file */
-typedef int pid_t; /* type for pids (must be signed) */
-typedef unsigned short uid_t; /* user id */
-#endif /* _MINIX */
-#endif /* _POSIX_SOURCE */
-
-#endif /* _SYS_TYPES_H */
-- $Source$
-- $State$
+-- $Revision$
local d = ROOTDIR.."lang/basic/lib/"
lang_basic_runtime = acklibrary {
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"},
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h"},
ackfile (d.."fif.e"),
ackfile (d.."fef.e"),
ackfile (d.."trap.c"),
ackfile (d.."write.c"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_bc")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_bc")
}
local crt = ackfile {
ACKINCLUDES = {PARENT, "%ROOTDIR%h"},
file (d.."head_ac.e"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/head_ac")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/head_ac")
}
local libc = acklibrary {
ACKBUILDFLAGS = {PARENT, "-ansi"},
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", d.."headers", "%ROOTDIR%include/_tail_cc"},
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h", d.."headers"},
outputs = {"%U%/tail_ac.a"},
-- assert
ackfile (d.."time/misc.c"),
install = {
- pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_ac")
+ pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_ac")
}
}
local headers = group {
install = {
- pm.install(d.."headers/assert.h", "%BINDIR%include/assert.h"),
- pm.install(d.."headers/ctype.h", "%BINDIR%include/ctype.h"),
- pm.install(d.."headers/dirent.h", "%BINDIR%include/dirent.h"),
- pm.install(d.."headers/errno.h", "%BINDIR%include/errno.h"),
- pm.install(d.."headers/float.h", "%BINDIR%include/float.h"),
- pm.install(d.."headers/grp.h", "%BINDIR%include/grp.h"),
- pm.install(d.."headers/limits.h", "%BINDIR%include/limits.h"),
- pm.install(d.."headers/locale.h", "%BINDIR%include/locale.h"),
- pm.install(d.."headers/math.h", "%BINDIR%include/math.h"),
- pm.install(d.."headers/mathconst.h", "%BINDIR%include/mathconst.h"),
- pm.install(d.."headers/setjmp.h", "%BINDIR%include/setjmp.h"),
- pm.install(d.."headers/signal.h", "%BINDIR%include/signal.h"),
- pm.install(d.."headers/stdarg.h", "%BINDIR%include/stdarg.h"),
- pm.install(d.."headers/stddef.h", "%BINDIR%include/stddef.h"),
- pm.install(d.."headers/stdio.h", "%BINDIR%include/stdio.h"),
- pm.install(d.."headers/stdlib.h", "%BINDIR%include/stdlib.h"),
- pm.install(d.."headers/string.h", "%BINDIR%include/string.h"),
- pm.install(d.."headers/time.h", "%BINDIR%include/time.h"),
- pm.install(d.."headers/sys/dirent.h", "%BINDIR%include/sys/dirent.h"),
- pm.install(d.."headers/sys/errno.h", "%BINDIR%include/sys/errno.h"),
+ pm.install(d.."headers/assert.h", "%BINDIR%include/ansi/assert.h"),
+ pm.install(d.."headers/ctype.h", "%BINDIR%include/ansi/ctype.h"),
+ pm.install(d.."headers/dirent.h", "%BINDIR%include/ansi/dirent.h"),
+ pm.install(d.."headers/errno.h", "%BINDIR%include/ansi/errno.h"),
+ pm.install(d.."headers/float.h", "%BINDIR%include/ansi/float.h"),
+ pm.install(d.."headers/grp.h", "%BINDIR%include/ansi/grp.h"),
+ pm.install(d.."headers/limits.h", "%BINDIR%include/ansi/limits.h"),
+ pm.install(d.."headers/locale.h", "%BINDIR%include/ansi/locale.h"),
+ pm.install(d.."headers/math.h", "%BINDIR%include/ansi/math.h"),
+ pm.install(d.."headers/mathconst.h", "%BINDIR%include/ansi/mathconst.h"),
+ pm.install(d.."headers/setjmp.h", "%BINDIR%include/ansi/setjmp.h"),
+ pm.install(d.."headers/signal.h", "%BINDIR%include/ansi/signal.h"),
+ pm.install(d.."headers/stdarg.h", "%BINDIR%include/ansi/stdarg.h"),
+ pm.install(d.."headers/stddef.h", "%BINDIR%include/ansi/stddef.h"),
+ pm.install(d.."headers/stdio.h", "%BINDIR%include/ansi/stdio.h"),
+ pm.install(d.."headers/stdlib.h", "%BINDIR%include/ansi/stdlib.h"),
+ pm.install(d.."headers/string.h", "%BINDIR%include/ansi/string.h"),
+ pm.install(d.."headers/time.h", "%BINDIR%include/ansi/time.h"),
+ pm.install(d.."headers/sys/dirent.h", "%BINDIR%include/ansi/sys/dirent.h"),
+ pm.install(d.."headers/sys/errno.h", "%BINDIR%include/ansi/sys/errno.h"),
}
}
local d = ROOTDIR.."lang/cem/libcc/gen/"
-lang_cem_gen_runtime = acklibrary {
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"},
-
+local head = acklibrary {
+ ackfile (d.."head_cc.e"),
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/head_cc")
+}
+
+local tail = acklibrary {
ackfile (d.."abs.c"),
ackfile (d.."atof.c"),
ackfile (d.."strtod.c"),
ackfile (d.."modf.e"),
ackfile (d.."setjmp.e"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_cc.2g")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_cc.2g")
+}
+
+lang_cem_gen_runtime = group {
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h"},
+
+ head,
+ tail
}
#else
#define HUPCL 0000001 /* unused ??? */
#endif
-/*#define COOKED 0000000 /* neither CBREAK nor RAW */
+/*#define COOKED 0000000 */ /* neither CBREAK nor RAW */
#ifdef __BDS4_2
#define TIOCGETP (('t'<<8) | 8 | (6 << 16) | 0x40000000)
local d = ROOTDIR.."lang/cem/libcc/math/"
lang_cem_math_runtime = acklibrary {
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"},
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h"},
ackfile (d.."asin.c"),
ackfile (d.."atan2.c"),
ackfile (d.."exp.c"),
ackfile (d.."floor.c"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_m")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_m")
}
local d = ROOTDIR.."lang/cem/libcc/mon/"
lang_cem_mon_runtime = acklibrary {
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc",
- "%ROOTDIR%include/_tail_mon"},
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_mon"},
ackfile (d.."exit.c"),
ackfile (d.."gtty.c"),
ackfile (d.."_wait.e"),
ackfile (d.."_write.e"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_mon")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_mon")
}
include (d.."mon/pmfile")
include (d.."stdio/pmfile")
+local headers = group {
+ install = {
+ pm.install(d.."headers/assert.h", "%BINDIR%include/knr/assert.h"),
+ pm.install(d.."headers/ctype.h", "%BINDIR%include/knr/ctype.h"),
+ pm.install(d.."headers/errno.h", "%BINDIR%include/knr/errno.h"),
+ pm.install(d.."headers/fcntl.h", "%BINDIR%include/knr/fcntl.h"),
+ pm.install(d.."headers/grp.h", "%BINDIR%include/knr/grp.h"),
+ pm.install(d.."headers/math.h", "%BINDIR%include/knr/math.h"),
+ pm.install(d.."headers/pwd.h", "%BINDIR%include/knr/pwd.h"),
+ pm.install(d.."headers/setjmp.h", "%BINDIR%include/knr/setjmp.h"),
+ pm.install(d.."headers/sgtty.h", "%BINDIR%include/knr/sgtty.h"),
+ pm.install(d.."headers/signal.h", "%BINDIR%include/knr/signal.h"),
+ pm.install(d.."headers/stdio.h", "%BINDIR%include/knr/stdio.h"),
+ pm.install(d.."headers/time.h", "%BINDIR%include/knr/time.h"),
+ pm.install(d.."headers/varargs.h", "%BINDIR%include/knr/varargs.h"),
+ pm.install(d.."headers/sys/dir.h", "%BINDIR%include/knr/sys/dir.h"),
+ pm.install(d.."headers/sys/errno.h", "%BINDIR%include/knr/sys/errno.h"),
+ pm.install(d.."headers/sys/stat.h", "%BINDIR%include/knr/sys/stat.h"),
+ pm.install(d.."headers/sys/stdtypes.h", "%BINDIR%include/knr/sys/stdtypes.h"),
+ pm.install(d.."headers/sys/types.h", "%BINDIR%include/knr/sys/types.h"),
+ }
+}
+
lang_cem_runtime = group {
+ headers,
lang_cem_gen_runtime,
lang_cem_math_runtime,
lang_cem_mon_runtime,
local d = ROOTDIR.."lang/cem/libcc/stdio/"
lang_cem_stdio_runtime = acklibrary {
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"},
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h"},
ackfile (d.."vsprintf.c"),
ackfile (d.."vfprintf.c"),
ackfile (d.."timezone.c"),
ackfile (d.."ungetc.c"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_cc.1s")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_cc.1s")
}
local d = ROOTDIR.."lang/m2/libm2/"
-lang_m2_runtime = acklibrary {
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"},
+local headers = group {
+ install = {
+ pm.install(d.."Arguments.def", "%BINDIR%include/m2/Arguments.def"),
+ pm.install(d.."ArraySort.def", "%BINDIR%include/m2/ArraySort.def"),
+ pm.install(d.."ASCII.def", "%BINDIR%include/m2/ASCII.def"),
+ pm.install(d.."Conversion.def", "%BINDIR%include/m2/Conversion.def"),
+ pm.install(d.."CSP.def", "%BINDIR%include/m2/CSP.def"),
+ pm.install(d.."EM.def", "%BINDIR%include/m2/EM.def"),
+ pm.install(d.."Epilogue.def", "%BINDIR%include/m2/Epilogue.def"),
+ pm.install(d.."InOut.def", "%BINDIR%include/m2/InOut.def"),
+ pm.install(d.."MathLib0.def", "%BINDIR%include/m2/MathLib0.def"),
+ pm.install(d.."Mathlib.def", "%BINDIR%include/m2/Mathlib.def"),
+ pm.install(d.."PascalIO.def", "%BINDIR%include/m2/PascalIO.def"),
+ pm.install(d.."Processes.def", "%BINDIR%include/m2/Processes.def"),
+ pm.install(d.."random.def", "%BINDIR%include/m2/random.def"),
+ pm.install(d.."RealConver.def", "%BINDIR%include/m2/RealConver.def"),
+ pm.install(d.."RealInOut.def", "%BINDIR%include/m2/RealInOut.def"),
+ pm.install(d.."Semaphores.def", "%BINDIR%include/m2/Semaphores.def"),
+ pm.install(d.."Storage.def", "%BINDIR%include/m2/Storage.def"),
+ pm.install(d.."Streams.def", "%BINDIR%include/m2/Streams.def"),
+ pm.install(d.."Strings.def", "%BINDIR%include/m2/Strings.def"),
+ pm.install(d.."StripUnix.def", "%BINDIR%include/m2/StripUnix.def"),
+ pm.install(d.."Termcap.def", "%BINDIR%include/m2/Termcap.def"),
+ pm.install(d.."Terminal.def", "%BINDIR%include/m2/Terminal.def"),
+ pm.install(d.."Traps.def", "%BINDIR%include/m2/Traps.def"),
+ pm.install(d.."Unix.def", "%BINDIR%include/m2/Unix.def"),
+ pm.install(d.."XXTermcap.def", "%BINDIR%include/m2/XXTermcap.def"),
+ }
+}
+
+local head = ackfile {
+ file (d.."head_m2.e"),
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/head_m2")
+}
+
+local tail = acklibrary {
ackfile (d.."Termcap.mod"),
ackfile (d.."CSP.mod"),
ackfile (d.."PascalIO.mod"),
ackfile (d.."rckil.c"),
ackfile (d.."EM.e"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_m2")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_m2")
+}
+
+lang_m2_runtime = acklibrary {
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h"},
+
+ headers,
+ head,
+ tail
}
local d = ROOTDIR.."lang/occam/lib/"
-lang_occam_runtime = acklibrary {
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"},
+lang_occam_lib_runtime = acklibrary {
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h"},
ackfile (d.."builtin.c"),
ackfile (d.."chan_strct.c"),
ackfile (d.."par_misc.e"),
ackfile (d.."parco.c"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_ocm")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_ocm")
}
include (d.."comp/pmfile")
include (d.."lib/pmfile")
+
+local headers = group {
+ install = {
+ pm.install(d.."headers/dec.ocm", "%BINDIR%include/occam/dec.ocm"),
+ pm.install(d.."headers/printd.ocm", "%BINDIR%include/occam/printd.ocm"),
+ pm.install(d.."headers/prints.ocm", "%BINDIR%include/occam/prints.ocm"),
+ }
+}
+
+lang_occam_runtime = group {
+ headers,
+ lang_occam_lib_runtime
+}
local d = ROOTDIR.."lang/pc/libpc/"
-lang_pc_runtime = acklibrary {
- ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"},
+head = ackfile {
+ file (d.."head_pc.e"),
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/head_pc")
+}
+
+tail = acklibrary {
ackfile (d.."abi.c"),
ackfile (d.."abl.c"),
ackfile (d.."abr.c"),
ackfile (d.."rcka.c"),
ackfile (d.."trp.e"),
- install = pm.install("%BINDIR%%PLATIND%/%ARCH%/tail_pc")
+ install = pm.install("%BINDIR%%PLATIND%/%PLATFORM%/tail_pc")
+}
+
+lang_pc_runtime = group {
+ ACKINCLUDES = {PARENT, "%ROOTDIR%h"},
+
+ head,
+ tail
}
+
# Don't generate line updating code by default (i.e.: -L flag provided to cem).
# To put it on again: use -NL
var LFLAG=-L
-var C_INCLUDES=-I{EM}/include/_tail_cc
-var ANSI_C_INCLUDES=-I{EM}/include/tail_ac
+var MODULA2_INCLUDES=-I{EM}/include/m2
+var OCCAM_INCLUDES=-I{EM}/include/occam
+var C_INCLUDES=-I{EM}/include/knr
+var ANSI_C_INCLUDES=-I{EM}/include/ansi
callname ack
name cpp
mapflag -C CPP_F={CPP_F?} -C
mapflag -wo CPP_F={CPP_F?} -o
mapflag -ansi ANSI_C=.ansi
- args {CPP_F?} ({SUFFIX?}:.ocm=-I{EM}/include/occam) \
- -D__{NAME} \
+ args {CPP_F?} \
+ ({SUFFIX?}:.ocm={OCCAM_INCLUDES}) \
+ -D__{ARCH} -D__{PLATFORM} \
-D__ACK \
{SYSINCLUDES?} \
({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
{C_INCLUDES} \
{INCLUDES?} \
- ({ANSI_C?.xx}:.xx=-D{NAME} \
+ ({ANSI_C?.xx}:.xx=-D{ARCH} \
-DEM_WSIZE={w} -DEM_PSIZE={p} \
-DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d}) \
-D_EM_WSIZE={w} -D_EM_PSIZE={p} \
need .c
args \
{CPP_F?} \
- -D__{NAME} \
+ -D__{ARCH} -D__{PLATFORM} \
-D__ACK \
{SYSINCLUDES?} \
({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
{C_INCLUDES} \
{INCLUDES?} \
- ({ANSI_C?.xx}:.xx=-D{NAME} \
+ ({ANSI_C?.xx}:.xx=-D{ARCH} \
-DEM_WSIZE={w} -DEM_PSIZE={p} \
-DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d}) \
-D_EM_WSIZE={w} -D_EM_PSIZE={p} \
mapflag -V* M2_F={M2_F?} -V*
mapflag --* M2_F={M2_F?} -*
args \
- {M2_INCL?} -I{EM}/lib/m2 {M2SYSLIB?} \
+ {M2_INCL?} {MODULA2_INCLUDES} {M2SYSLIB?} \
-Vw{w}.{w}i{w}.{w}p{p}.{w}l{l}.{w}f{f}.{w}d{d}.{w} \
{M2_ALIGN?} {M2_F?} < >
prep cond
--- /dev/null
+-- $Source$
+-- $State$
+-- $Revision$
+
+local d = ROOTDIR.."mach/i86/libem/"
+
+libem_i86 = acklibrary {
+ outputs = {"%U%/libem-%PLATFORM%.a"},
+
+ ackfile (d.."adi.s"),
+ ackfile (d.."and.s"),
+ ackfile (d.."cii.s"),
+ ackfile (d.."cms.s"),
+ ackfile (d.."cmi4.s"),
+ ackfile (d.."cmu4.s"),
+ ackfile (d.."com.s"),
+ ackfile (d.."csa2.s"),
+ ackfile (d.."csb2.s"),
+ ackfile (d.."csa4.s"),
+ ackfile (d.."csb4.s"),
+ ackfile (d.."cuu.s"),
+ ackfile (d.."dup.s"),
+ ackfile (d.."dvi.s"),
+ ackfile (d.."dvi4.s"),
+ ackfile (d.."dvu.s"),
+ ackfile (d.."dvu4.s"),
+ ackfile (d.."exg.s"),
+ ackfile (d.."fp8087.s"),
+ ackfile (d.."gto.s"),
+ ackfile (d.."iaar.s"),
+ ackfile (d.."ilar.s"),
+ ackfile (d.."inn.s"),
+ ackfile (d.."ior.s"),
+ ackfile (d.."isar.s"),
+ ackfile (d.."lar2.s"),
+ ackfile (d.."loi.s"),
+ ackfile (d.."mli.s"),
+ ackfile (d.."mli4.s"),
+ ackfile (d.."mon.s"),
+ ackfile (d.."ngi.s"),
+ ackfile (d.."nop.s"),
+ ackfile (d.."rck.s"),
+ ackfile (d.."rmi.s"),
+ ackfile (d.."rmi4.s"),
+ ackfile (d.."rmu.s"),
+ ackfile (d.."rmu4.s"),
+ ackfile (d.."rol.s"),
+ ackfile (d.."ror.s"),
+ ackfile (d.."sar2.s"),
+ ackfile (d.."sbi.s"),
+ ackfile (d.."set.s"),
+ ackfile (d.."sli.s"),
+ ackfile (d.."sri.s"),
+ ackfile (d.."sti.s"),
+ ackfile (d.."strhp.s"),
+ ackfile (d.."xor.s"),
+ ackfile (d.."error.s"),
+ ackfile (d.."unknown.s"),
+ ackfile (d.."fat.s"),
+ ackfile (d.."trp.s"),
+ ackfile (d.."print.s"),
+ ackfile (d.."ret6.s"),
+ ackfile (d.."ret8.s"),
+ ackfile (d.."lfr6.s"),
+ ackfile (d.."lfr8.s"),
+ ackfile (d.."retarea.s"),
+ ackfile (d.."blm.s"),
+ ackfile (d.."return.s"),
+
+ install = pm.install("%BINDIR%lib/%PLATFORM%/libem.a"),
+}
--- /dev/null
+-- $Source$
+-- $State$
+-- $Revision$
+
+local d = ROOTDIR.."mach/i86/libend/"
+
+libend_i86 = acklibrary {
+ outputs = {"%U%/libend-%PLATFORM%.a"},
+
+ ackfile (d.."edata.s"),
+ ackfile (d.."em_end.s"),
+ ackfile (d.."end.s"),
+ ackfile (d.."etext.s"),
+
+ install = pm.install("%BINDIR%lib/%PLATFORM%/libend.a"),
+}
local d = ROOTDIR.."mach/i86/"
+include (d.."libem/pmfile")
+include (d.."libend/pmfile")
+
mach_i86 = group {
- ARCH = "i86",
-
proto_as,
proto_ncg { ARCHDIR = "i86" },
ego_descr,
-
- install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
}
--- Revision history
--- $Log$
--- Revision 1.2 2006-07-22 00:52:01 dtrg
--- Added support for the ego global optimisation suite.
---
--- Revision 1.1 2006/07/20 23:18:18 dtrg
--- First version in CVS.
---
+support_i86 = group {
+ OPTIMISATION = "-O",
+
+ libem_i86,
+ libend_i86,
+}
+
local cfile_with_tables = cfile {
class = "cfile_with_tables",
+ CINCLUDES = {PARENT, "%ROOTDIR%mach/%ARCH%/as"},
+
dynamicheaders = {
parser,
- file (ROOTDIR.."mach/%ARCH%/as/")
}
}
lib_object,
- outputs = {"%U%/%ARCH%-as"},
- install = pm.install(BINDIR.."%PLATDEP%/%ARCH%/as")
+ outputs = {"%U%/%PLATFORM%-as"},
+ install = pm.install(BINDIR.."%PLATDEP%/%PLATFORM%/as")
}
-- Revision history
-- $Log$
--- Revision 1.3 2006-10-15 00:28:12 dtrg
+-- Revision 1.4 2007-02-20 00:45:19 dtrg
+-- Done a major overhaul of the way target include files are installed and
+-- how platform libraries are built. The ARCH pm variable has now been
+-- renamed PLATFORM (which is more accurate) and a different ARCH
+-- variable added, which represents the CPU family rather than the
+-- hardware platform.
+--
+-- Revision 1.3 2006/10/15 00:28:12 dtrg
-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes).
--
-- Revision 1.2 2006/07/30 23:41:16 dtrg
local d = ROOTDIR.."mach/proto/cg/"
local make_tables = cgg {
- CGGINCLUDEDIR = (ROOTDIR.."mach/%ARCH%/cg/"),
- file (ROOTDIR.."mach/%ARCH%/cg/table")
+ CGGINCLUDEDIR = (ROOTDIR.."mach/%PLATFORM%/cg/"),
+ file (ROOTDIR.."mach/%PLATFORM%/cg/table")
}
local cfile_with_tables = cfile {
class = "cfile_with_tables",
dynamicheaders = {
make_tables,
- file (ROOTDIR.."mach/%ARCH%/cg/"),
+ file (ROOTDIR.."mach/%PLATFORM%/cg/"),
file (ROOTDIR.."mach/")
}
}
cfile {
ith { make_tables, i = 1 },
dynamicheaders = {
- file (ROOTDIR.."mach/%ARCH%/cg/"),
+ file (ROOTDIR.."mach/%PLATFORM%/cg/"),
file (d)
}
},
lib_em_data,
lib_flt_arith,
- outputs = {"%U%/%ARCH%-cg"},
- install = pm.install("%BINDIR%%PLATDEP%/%ARCH%/cg")
+ outputs = {"%U%/%PLATFORM%-cg"},
+ install = pm.install("%BINDIR%%PLATDEP%/%PLATFORM%/cg")
}
-- Revision history
-- $Log$
--- Revision 1.2 2006-10-15 00:28:12 dtrg
+-- Revision 1.3 2007-02-20 00:45:19 dtrg
+-- Done a major overhaul of the way target include files are installed and
+-- how platform libraries are built. The ARCH pm variable has now been
+-- renamed PLATFORM (which is more accurate) and a different ARCH
+-- variable added, which represents the CPU family rather than the
+-- hardware platform.
+--
+-- Revision 1.2 2006/10/15 00:28:12 dtrg
-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes).
--
-- Revision 1.1 2006/07/20 23:18:19 dtrg
CINCLUDES = {
PARENT,
- "mach/%ARCH%/ncg",
+ "mach/%PLATFORM%/ncg",
"mach/%ARCHDIR%/ncg",
"mach"
},
lib_em_data,
lib_flt_arith,
- outputs = {"%U%/%ARCH%-ncg"},
- install = pm.install("%BINDIR%%PLATDEP%/%ARCH%/ncg")
+ outputs = {"%U%/%PLATFORM%-ncg"},
+ install = pm.install("%BINDIR%%PLATDEP%/%PLATFORM%/ncg")
}
local d = ROOTDIR.."mach/proto/top/"
local make_tables = topgen {
- file (ROOTDIR.."mach/%ARCH%/top/table")
+ file (ROOTDIR.."mach/%PLATFORM%/top/table")
}
local cfile_with_tables = cfile {
proto_top = cprogram {
CINCLUDES = {
PARENT,
- "mach/%ARCH%/ncg",
+ "mach/%PLATFORM%/ncg",
"mach",
d
},
lib_string,
- outputs = {"%U%/%ARCH%-top"},
- install = pm.install("%BINDIR%%PLATDEP%/%ARCH%/top")
+ outputs = {"%U%/%PLATFORM%-top"},
+ install = pm.install("%BINDIR%%PLATDEP%/%PLATFORM%/top")
}
-- Revision history
-- $Log$
--- Revision 1.2 2006-10-15 00:28:12 dtrg
+-- Revision 1.3 2007-02-20 00:45:19 dtrg
+-- Done a major overhaul of the way target include files are installed and
+-- how platform libraries are built. The ARCH pm variable has now been
+-- renamed PLATFORM (which is more accurate) and a different ARCH
+-- variable added, which represents the CPU family rather than the
+-- hardware platform.
+--
+-- Revision 1.2 2006/10/15 00:28:12 dtrg
-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes).
--
-- Revision 1.1 2006/07/22 12:31:19 dtrg
include "first/llgen.pm"
include "config.pm"
include "first/ack.pm"
+include "first/ack-custom.pm"
CINCLUDES = {
ROOTDIR.."h",
include "util/data/pmfile"
+include "util/LLgen/pmfile-ack"
+
include "modules/src/alloc/pmfile"
include "modules/src/assert/pmfile"
include "modules/src/system/pmfile"
include "lang/basic/pmfile"
include "mach/proto/pmfile"
+
+include "mach/i386/pmfile"
+--[[
include "mach/6500/pmfile"
include "mach/6800/pmfile"
include "mach/6805/pmfile"
include "mach/6809/pmfile"
include "mach/arm/pmfile"
-include "mach/i386/pmfile"
include "mach/i80/pmfile"
-include "mach/i86/pmfile"
include "mach/m68020/pmfile"
include "mach/m68k2/pmfile"
include "mach/m68k4/pmfile"
include "mach/vax4/pmfile"
include "mach/z80/pmfile"
include "mach/z8000/pmfile"
+--]]
-- This is the list of language runtimes that is built for each architecture.
lang_basic_runtime,
}
+-- Include the platform descriptions.
+
+include "mach/i86/pmfile" -- generic i86
+include "plat/pc86/pmfile" -- PC standalone
+
default = group {
+ -- Lots of things use LLgen, so we need to build it first.
+
+ tool_LLgen,
+
-- Some of the dependency management across modules isn't entirely
-- complete, for simplicity; as a result, the order here is important.
-- In particular, referencing a library does not cause the library to
lang_occam_compiler,
lang_basic_compiler,
+ -- Build the code generators and the architecture-independent
+ -- libraries.
+
+--[[
mach_6500,
lang_runtimes { ARCH="6500", OPTIMISATION="-O" },
mach_i386, lang_runtimes { ARCH="i386", OPTIMISATION="-O" },
mach_i80, lang_runtimes { ARCH="i80", OPTIMISATION="-O" },
- mach_i86, support_i86,
- lang_runtimes { ARCH="i86", OPTIMISATION="-O" },
-
mach_m68020, lang_runtimes { ARCH="m68020", OPTIMISATION="-O" },
-- mach_m68k2, lang_runtimes { ARCH="m68k2", OPTIMISATION="-O" },
-- mach_m68k4, lang_runtimes { ARCH="m68k4", OPTIMISATION="-O" },
-- mach_vax4, lang_runtimes { ARCH="vax4", OPTIMISATION="-O" },
mach_z80, lang_runtimes { ARCH="z80", OPTIMISATION="-O" },
mach_z8000, lang_runtimes { ARCH="z8000", OPTIMISATION="-O" },
+--]]
+
+ -- Build the platform-specific libraries.
+
+ platform_pc86
}
-- Ensure that the work directories exist.