Commit graph

26 commits

Author SHA1 Message Date
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