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
fd10cf7ac2
Merge from trunk.
2017-08-06 10:42:16 +02:00
David Given
1ea46f6afe
Actually tell the user which tests failed.
2017-01-15 22:26:09 +01:00
David Given
3fe285f8f8
Fix some shell issues that would occasionally cause hangs if no tests failed.
2016-12-05 21:06:38 +01:00
David Given
353e2d2842
Typo fix.
2016-12-02 00:18:44 +01:00
David Given
213def9666
Don't fail to build if all tests are skipped.
2016-12-02 00:14:40 +01:00
David Given
3aa0487289
UI tweaks to the test summary.
2016-12-02 00:10:33 +01:00
David Given
467709ff38
Report skipped, failed and timed out tests.
2016-12-02 00:00:31 +01:00
David Given
8c99e2b7ad
Run all tests, even the ones which fail, and emit a test summary right at the
...
end of the build (and fail then).
2016-12-01 23:03:30 +01: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
84ee75ec07
Merge from default.
2016-11-11 20:17:54 +01:00
David Given
e7eb563ee9
Disable gethostid() in the build system Lua; it's unused and doesn't work on
...
Haiku.
2016-11-11 20:16:43 +01:00
David Given
694d1e2deb
Merge from default.
2016-10-30 15:59:44 +01:00
David Given
5f0164db62
Bolt mcg into the PowerPC backend. It doesn't build yet, but it is generating
...
*some* code.
2016-10-17 00:06:06 +02:00
David Given
479a4efa4f
Use a self-hosted Lua instead of the system one.
2016-10-16 20:07:54 +02:00
David Given
56e13e24e0
Cleanup some stray files.
2016-09-03 19:22:38 +02:00
David Given
1b8df04e58
Add modeline, fix formatting.
2016-09-03 19:17:09 +02:00
David Given
de2f99dc1a
More documentation.
2016-09-03 19:01:47 +02:00
David Given
ea4142daee
First half of the ackbuilder documentation.
2016-09-03 01:04:16 +02:00
David Given
ff9bf5b08a
Makefiles are now slightly less inaccurate. Does actually seem to do sensible
...
incremental builds now. I loathe make.
2016-09-03 00:20:11 +02:00
David Given
f67c98e239
Distributions are a pain --- let's not bother any more. Instead, we just tag
...
the repository and download a complete snapshot, old and ancient stuff and all.
2016-09-02 23:00:38 +02:00
David Given
612e38f1c6
Remove the old make-based build system, plus some big chunks of horribly
...
obsolete protomake build system.
2016-09-02 22:17:51 +02:00
David Given
08823a172c
filenamesof() an installable now returns all installed files, not just the ones
...
at the top level (necessary to make a lot of the dependency stuff work when
using tools which depend on installables).
2016-08-21 21:55:21 +02: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
23e8d5af5a
Wildcards are allowed to match no files now.
2016-08-20 12:40:00 +02:00
David Given
46bd70380c
Filename variables now get passed into ackbuilder on the command line.
2016-08-15 00:47:08 +02:00
David Given
53f043ff40
Backport to Lua 5.1 (because 5.2 on Travis doesn't have luaposix...).
2016-08-14 22:52:57 +02:00
David Given
fb2a42a2db
installables need to depend on their source files...
2016-08-14 11:25:47 +02:00
David Given
10746f8b97
Add cycle detection, because it was ruining my day. Allow targets to be stored
...
in a file called build-<target>.lua to allow better dividing up of build rules
(to break cycles).
2016-08-14 01:38:36 +02:00
David Given
b592c88bdf
replace() gets confused if you give it a singleton list as its parameter.
2016-08-12 00:19:30 +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
0d77cb8279
We can build our first C file.
2016-08-07 21:56:53 +02:00
David Given
b50dc4214a
Add check for undefined variables. Find undefined variables. Fix undefined
...
variables.
2016-08-05 00:01:55 +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
c6292642c6
Fix a nasty dependency bug where filenamesof() on installables wouldn't
...
return any of the installable files (which meant installables were
never considered as dependencies).
2016-07-29 00:22:22 +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
cdeea836f2
Replaced the fairly complex environment code with a much simpler
...
emitter object.
2016-07-26 23:43:31 +02:00
David Given
a8a9d1bbfa
yacc, ncgg; platform ncg builds now.
2016-07-26 23:35:30 +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
b7720c298b
Error out if a template expansion returns nil (as it's normally an error).
2016-07-19 23:42:42 +02:00
David Given
2d2497c318
ackbuilder rules files now require absolute paths in external variables
...
(otherwise commands which change directory don't work).
2016-07-18 23:16:27 +02:00
David Given
523374c36b
Built a make bootstrap that runs either make or ninja depending on which is
...
installed.
2016-07-16 14:58:29 +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
60edd08390
Make work with make.
2016-06-30 13:19:10 +02:00