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 |
|
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
|
7f7005bac5
|
Local rules; include() and replace().
|
2016-06-29 13:28:22 +02:00 |
|
David Given
|
d805052205
|
All the amisc binaries now build.
|
2016-06-19 09:32:45 +02:00 |
|
David Given
|
1978867fd2
|
Add ninja support. It works so much better than make.
|
2016-06-19 08:55:02 +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
|
09554cb324
|
installable works, although it's a bit kludgy. Change the : separator to +
because : is special in make and non of the others I could think of would work.
|
2016-06-14 07:34:14 +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 |
|
David Given
|
14ccf7151e
|
Most of simplerule now looks like it's working.
|
2016-06-06 22:13:30 +02:00 |
|
David Given
|
cb0111b290
|
Skeleton of the rule engine and type system.
|
2016-06-06 20:50:48 +02:00 |
|
David Given
|
df1372ab35
|
Really basic skeleton of Ackbuilder mark 2.
|
2016-06-06 17:18:19 +02:00 |
|