Commit graph

7009 commits

Author SHA1 Message Date
David Given 38fa6941d5 linux68k builds now. 2016-08-14 11:34:18 +02:00
David Given fb2a42a2db installables need to depend on their source files... 2016-08-14 11:25:47 +02:00
David Given 3df4906d52 Turns out I wasn't building the syscall libraries. Do so. 2016-08-14 11:23:57 +02:00
David Given b549980af2 Wasn't exporting the plat headers; refactor to make this a little cleaner. 2016-08-14 11:01:36 +02:00
David Given f253b6a169 linux386 builds. Also, forgot to turn back on the language runtimes. 2016-08-14 10:37:55 +02:00
David Given 262c5fedcf Biggish refactor to break cycles; my build rules were full of them. cpm builds,
which requires top and topgen.
2016-08-14 01:39:40 +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 e0b8bd221d Pascal runtime library now builds. 2016-08-13 13:07:19 +02:00
David Given e770d09dc8 Pascal compiler builds. 2016-08-13 13:03:06 +02:00
David Given 00c67fcc0e Modula-2 runtime library now builds. 2016-08-13 12:43:44 +02:00
David Given dbf8332bf0 Fixed a small bug where two line number directives next to each other wouldn't
be parsed properly (the second one would be treated as Modula-2 syntax).
2016-08-13 12:21:16 +02:00
David Given 8e869b56e7 The Modula-2 compiler now builds. 2016-08-13 00:02:21 +02:00
David Given 08b7c4aaae The Basic runtime builds now. 2016-08-12 00:24:40 +02:00
David Given 7c60c27302 The Basic compiler works now. 2016-08-12 00:19:51 +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 a200a2fb53 Replaced the funky and hard-to-compile ACK malloc with a much smaller
and simpler one stolen from K&R. libc builds now.
2016-08-11 00:30:32 +02:00
David Given 3ce4e53aa9 Most of libc builds now (missing malloc). 2016-08-08 23:55:47 +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 1fdc69fb97 cemcom.ansi now builds. 2016-07-19 23:43:14 +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 bcf3408e36 More stuff builds; almost the C compiler now. 2016-07-14 23:54:13 +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 a04dbf33f3 Add hgignore file. 2016-06-12 20:59:16 +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