Travis Geiselbrecht
0780dc8782
[make] allow passing a default project to build if none specified and set the build output root
...
Change-Id: I5241108517be250535329513996c844f68073564
2014-08-08 16:27:11 -07:00
Travis Geiselbrecht
f3ff1430af
[make] extend the top level make file to set the root of lk and pass toolchain_prefix via make variable
2014-08-08 16:00:46 -07:00
Travis Geiselbrecht
eaa673169e
[make] add feature to allow multiple parallel build dirs
...
Using environment variables LKROOT and LKINC you can specify multiple
parallel top level directories (outside of the lk root) that are overlayed
on top of the build system. This allows for a structure like
lk/
testproject/
someotherfirmware/
Where each of these subdirs has an entire overlayed tree of libraries, platforms,
targets, and projects.
To accomplish this, copy makefile into the root dir and build a lk_inc.mk that
sets LKROOT and LKINC.
2013-03-12 03:12:24 -07:00
Travis Geiselbrecht
e1b5462d65
[make] remove some trailing spaces in the top level make file
2013-01-12 20:35:38 -08:00
Travis Geiselbrecht
0e0c77c04f
[make] also output .hex files in intel hex format
2012-11-02 11:48:17 -07:00
Travis Geiselbrecht
3635b5d314
[make] put all of the global and local build switches in config.h files
...
-now if you change any interesting build flags, the appropriate sources
will be rebuilt
2012-09-23 18:48:11 -07:00
Travis Geiselbrecht
6830dfe447
[make] add options to add extra .o files to the link line at the module and global scope
2012-09-23 18:29:34 -07:00
Travis Geiselbrecht
1286f5bdc9
[make] let the command line or local.mk define additional variables
...
-print some more info about what is being built or if there are any external overrides
2012-09-23 18:06:53 -07:00
Travis Geiselbrecht
734f32b143
[make] better modularize the build system
...
-Each module's rules.mk defines a seperate linkage unit. Each
module can have a private set of CFLAGS, DEFINES, INCLUDES, and so
forth.
-Files to be compiled are now added by source, not object.
Most rules.mk files can be converted easily by following these steps:
1) add 'MODULE := $(LOCAL_DIR)' near the top of the file
2) change OBJS += to MODULE_SRCS += and list source files instead of .os
3) add 'include make/module.mk' at the bottom of the file
See make/module.mk for directions.
2012-08-31 15:52:24 -07:00
Travis Geiselbrecht
9c0f307ce6
[make] rename module.mk to recurse.mk to make way for a real module.mk
2012-08-31 15:42:44 -07:00
Travis Geiselbrecht
6947f41ff6
[make] make implicit function declarations illegal
2012-03-21 00:14:50 -07:00
Travis Geiselbrecht
4b7fd32e65
[make] remove the BOOTOBJS variable, ordering is handled via a special linker section
2012-01-24 15:42:44 -08:00
Travis Geiselbrecht
c7a992f524
[make] make the spotless target not depend on anything
2009-11-27 13:37:03 -08:00
Brian Swetland
f1e5afdb3c
[lk] allow "make projectname"
2009-01-24 22:09:30 -08:00
Travis Geiselbrecht
577036f27f
get rid of project as a container of code, flatten it one level
2009-01-24 21:45:36 -08:00
Travis Geiselbrecht
6837223d02
[app] add the app module init system
2009-01-24 21:21:08 -08:00
Travis Geiselbrecht
5bcbd9d68e
move the stray .mk files from the root dir into a make/ subdir
2009-01-24 20:15:32 -08:00
Travis Geiselbrecht
eb9460542e
[IO] rework dprintf to take a debug level, defined in DEBUGLEVEL
...
printf at the moment just calls dprintf, but soon will become
a seperate I/O queue.
2008-09-13 15:21:57 -07:00
Travis Geiselbrecht
f54ab82112
flatten the make system a little bit by providing only modules as a
...
compilation unit.
to add a module as a dependency of another, just add to the MODULE make
variable, instead of APPS/LIBS/DEVS
2008-09-05 04:18:30 -07:00
Travis Geiselbrecht
1d0df69964
initial commit of lk (little kernel) project
2008-09-01 02:26:09 -07:00