George Koehler
ac4cbd735e
Use libc assert(); fix dependencies; unbreak isduo().
...
Switch from custom assert() to libc assert() in mach/proto/as.
Continue to disable asserts if DEBUG == 0.
This change found a problem in the build system; comm2.y was missing
depedencies on comm0.h and comm1.h. Add the missing dependencies to
the cppfile rule. Allow the dependencies by modifying cppfile in
first/build.lua to act like cfile if t.dir is false.
Now that comm2.y gets rebuilt, I must fix the wrong prototype of
yyparse() in comm1.h.
I got unlucky as induo() in comm5.c was reading beyond the end of the
array. It found an operator "= " ('=' then space) in the garbage, so
it returned a garbage token number, and "VAR = 123" became a syntax
error. Unbreak induo() by terminating the array.
2017-11-11 16:09:05 -05:00
David Given
b5980af06f
Linker groups don't work on OSX; go back to the hacky way of simply specifying
...
the inputs multiple times, which seems to work.
2016-11-24 21:03:27 +01:00
David Given
e9fe1d70a6
Fix (or at least, work around) an issue with library order. Make sure the Basic
...
error symbols are actually defined.
2016-11-13 13:28:09 +01:00
David Given
1a7b4f8729
Build the examples when doing a normal build; this exercises the compiler as a
...
whole and is one step further towards a proper test suite.
2016-08-20 14:05:24 +02:00
David Given
c213602a02
Target lists can now have keyed items ({["foo"] = "+target"); this is
...
used by both installable and by clibrary{} to allow headers to be
installed into subdirectories.
2016-08-08 23:55:23 +02:00
David Given
5e84be70fd
Massive ackbuilder refactor --- cleaner and more expressive. Lists
...
are automatically flattened (leading to better build files), and the
list and filename functions are vastly more orthogonal.
2016-08-04 23:51:19 +02:00
David Given
b2bb4ce3b2
Builds libend (the simplest library). Becoming obvious I need to rework the way
...
ackbuilder deals with lists.
2016-07-30 00:39:22 +02:00
David Given
363d13cc2f
C preprocessor; tabgen; now the pc86 boot.s builds using the ack
...
toolchain.
2016-07-29 00:22:49 +02:00
David Given
f9c77fca03
Replace the hacky cflags variable with an equally hacky but vastly
...
more useful magic vars variable.
2016-07-27 00:10:15 +02:00
David Given
bff5c4019c
Baby steps towards building a platform --- make the assembler work.
...
Add ackbuilder support for C preprocessor files and yacc.
2016-07-24 00:50:02 +02:00
David Given
2770a83837
More programs, more libraries. src/modules build files are now saner.
2016-07-23 00:30:31 +02:00
David Given
05e3cf286f
Saner clibrary dependency and header handling.
2016-07-19 23:42:56 +02:00
David Given
cdbd605803
concat, targetnamesof. deps is now handled more consistently (treated the same
...
as ins but not passed in as inputs).
2016-07-14 23:53:34 +02:00
David Given
f70c12fad5
Allow headers which aren't .h files.
2016-06-30 13:27:47 +02:00
David Given
90764320bb
Better cwd handling.
2016-06-29 13:58:38 +02:00
David Given
c8711628ab
clibrary can now export headers.
2016-06-29 13:28:45 +02:00
David Given
d805052205
All the amisc binaries now build.
2016-06-19 09:32:45 +02:00
David Given
2af8568cc3
First draft at installables; not very satisfactory. make bugs with multiple
...
output targets and parallelism?
2016-06-16 05:26:44 +02:00
David Given
605651776e
We can build a real program now!
2016-06-12 20:59:43 +02:00
David Given
015804afce
cprogram works.
2016-06-09 07:14:41 +02:00
David Given
f47bb49c1f
Multiple build files work. Use deps intelligently. clibraries.
2016-06-09 06:55:44 +02:00
David Given
fcc5a878ae
Rather cleaner cfile implementation where you just give it a .c and a pile of .h files.
2016-06-08 03:21:53 +02:00
David Given
8082ef16a7
cfile with dynamically generated headers sort of works.
2016-06-07 05:00:26 +02:00
David Given
f4449e3f97
Multioutput rules work!
2016-06-07 04:20:08 +02:00
David Given
79f7c0ad23
Leaf rules work!
2016-06-07 04:13:56 +02:00
David Given
b7d2b9c3cf
Dependent rules work!
2016-06-07 00:10:22 +02:00