Commit graph

185 commits

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