History log of /fuchsia/zircon/make/module.mk
Revision Date Author Comments
# 0413530a 08-Sep-2018 Roland McGrath <mcgrathr@google.com>

[build] Don't generate WITH_* in KERNEL_DEFINES for each module

These are no longer used.

Test: CQ & manual verification that kernel code size didn't change
Change-Id: I962221bed5a44f04a90fc9c9022bd5f934692c28


# 093e4bca 08-Aug-2018 George Kulakowski <kulakowski@google.com>

[make] Fix fidl dependencies

This patch fixes two bugs, both related to fidl library dependencies.

- When compiling coding tables, MODULE_FIDL_DEPS was not accounted for
when generating -I flags. This is now correctly accounted for in
module.mk.

- The MODULE_FIDL_INCLUDE_$(MODULE) and MODULE_FIDL_SRCS_$(MODULE)
mechanism was just busted. In both cases, we just directly call
TOBUILDDIR to reconstruct the paths. For SRCS, we also need to leave a
response file with a list of .fidl files to compile.

FIDL-254 #done

Test: cobalt now has and compiles dependencies, including in incremental
builds that I manually tested
Change-Id: I58b8c1549c146c67b3ce0438f9fa65997a9e26c0


# 98db72ef 17-Aug-2018 Roland McGrath <mcgrathr@google.com>

[build] Get rid of .mod.o files

The .mod.o files don't add any value except in shortening the linker
command line. Hopefully we don't really need them that short to avoid
problems on any real host.

Avoiding them makes it easy to have ALLMODULE_OBJS actually list everything
going into the kernel, which is useful for running analysis steps.

Test: CQ
Change-Id: I19d78d250d4df76b0262e48f2e98b0a1b7904800


# 4c65d2d8 29-May-2018 Aaron Green <aarongreen@google.com>

[make] Add libFuzzer support

This CL introduces the make rules needed to build libFuzzer fuzz
targets. These targets are ignored unless USE_ASAN=1 is specified.

SEC-43 #comment Adds minimal Zircon support

Test: Manually tested with HID parser fuzzer

Change-Id: I139f40800e2e41ad6906dab2816a0d2e3047cd4c


# b074ed50 27-May-2018 Tim Kilbourn <tkilbourn@google.com>

[build] Clear MODULE_FIDL_DEPS

Change-Id: I50f5cb5ecc534c10f24f2babd594d3577560112a


# e49838de 11-May-2018 David Stevens <stevensd@google.com>

[make] Let packaged libs depend on packaged fidl

Change-Id: I457300950be321f9860d7bb66c8a0c664413114b


# 094c6f1f 15-May-2018 Roland McGrath <mcgrathr@google.com>

[build] Add MODULE_FIRMWARE variable

This provides a standard way to get firmware blobs from a canonical
place in the source tree (managed by scripts/download-prebuilt) into
a canonical place in the BOOTFS (/boot/driver/firmware/).

ZX-2160 #comment Makefile support for MODULE_FIRMWARE

Change-Id: I834b46ca34af4c2df469121cbc21308064d3b553


# c4d9bf5d 11-May-2018 David Stevens <stevensd@google.com>

[make] Add fidl to ulib only build

Change-Id: I75bfc47db083fd67c178773c942503e0b1383dee


# 843a240d 10-May-2018 David Stevens <stevensd@google.com>

[fidl] Build libraries for fidl modules

Change-Id: If15b1f9fff7ea9165d9d141e2f64822818556163


# 5804d673 09-May-2018 George Kulakowski <kulakowski@google.com>

[fidl][pkg] Export fidl packages

Change-Id: Ic06e27c39248dbebe2c00f47e7e635ddea6c8566


# a11f50a8 09-May-2018 Adam Barth <abarth@google.com>

[fidl] Add a trivial process-launcher binary

This CL contains the build integration for the process-launcher binary.

Change-Id: I6550f80fbfe3e5a3fb035bf53e14f97e80d4220e


# a19bbe1e 01-May-2018 Brian Swetland <swetland@google.com>

[build] introduce hosttest module type

These get installed in $(BUILDDIR)/tests but otherwise are
just like hostapp modules.

Update existing host tests to use this module type.

Change-Id: Ic981d98a28faaa16699967e6263ecac5044bafc8


# edab61ba 26-Apr-2018 George Kulakowski <kulakowski@google.com>

[make] Unset MODULE_FIDL_LIBS when ending module.mk

This worked on the zircon CQ because no target's built more than
once. For the garnet cq build of zircon, there are multiple versions
built (for asan and so on), and dependencies all broke.

Change-Id: I3cbf8899e5fc5fb6b38ebec9c09d866e39609bc4


# 2c37f75a 26-Apr-2018 George Kulakowski <kulakowski@google.com>

[make] Split fidl compilation out into a separate fcompile.mk (currently just a clone of ucompile)

Change-Id: Ibbb6c78cb3c2defacbaa1fc87a3bd0b7eccaf767


# 9a026d42 26-Apr-2018 George Kulakowski <kulakowski@google.com>

[fidl][make] Make fidl its own module type

Change-Id: Iff852ab049b00fafb9a397f4e844580941f69184


# eb5b03b4 10-Nov-2017 George Kulakowski <kulakowski@google.com>

[make][fidl] Build fidl modules

The biggest piece of complexity here is that we need to introduce
$(BUILDDIR)/$(MODULE)/gen-hdr.stamp which indicates that all generated
public headers for a module (normally none, but fidl modules now
generate some) so that modules which depend on modules which generate
public headers are prevented from attempting to compile before those
headers have been generated.

Modules may now include .fidl files in MODULE_SRCS, and all of those
source fidl files will be processed by a single invocation of fidlc
into generated library.cpp and library.h files. The library.h file
is introduced into the module's visible public headers and the library.cpp
file is added to the module's objects list.

Modules which include fidl sources need to depend on the static library
system/ulib/fidl in order for those to compile properly.

Change-Id: Ib5e5a59e2d71973012e2c7d147faba7e1be37c4b


# 39534f35 31-Jan-2018 P.Y. Laligand <pylaligand@google.com>

[pkg] Packages without sources should be defined explicitly.

Otherwise the source detection mechanism kicks in and spurious sources may be included.

Change-Id: I7fdca06020b715b34ccd0b663c638af805ba07ff


# 938da167 19-Jan-2018 Brian Swetland <swetland@google.com>

[build] allow overriding of package sources and includes

For most packages the default automated selection mechanism works,
but MODULE_PACKAGE_SRCS and MODULE_PACKAGE_INCS now allows that to
be overridden with explicit lists of sources and includes if needed.

Updated async*.pkg to use this.

Change-Id: I5569779b1f59710efd33015c3a54c575f089d820


# 32741ad1 27-Oct-2017 Brian Swetland <swetland@google.com>

[build] start exporting package descriptions for source packages

Change-Id: Idd4e916dcfee4d9f40cbb82827042b746c8ce987


# cbd2fac7 26-Sep-2017 Roland McGrath <mcgrathr@google.com>

[build] Put userlib modules in manifest group {libs}

This will let things select on e.g "core" or "core,misc" and then
pull in libraries based on DT_NEEDED references.

Change-Id: Ia7aed19f80d592d124b2051e64afcd8e3365fcd7


# 008b27ed 15-Sep-2017 Roland McGrath <mcgrathr@google.com>

[build] Make MODULE_GROUP mandatory for user modules

Make sure everything in the manifest has a group tag.

Change-Id: Id33e8ef34c148d6b18e34acc7a59466a3e18daf2


# 99e9737a 10-Sep-2017 Roland McGrath <roland@hack.frob.com>

[build] Include devhost with ENABLE_ULIB_ONLY=true

The devhost executable is similar to shared libraries in spirit.
Drivers need a compatible devhost, just like executables need
compatible shared libraries.

This will make devhost.asan available to the Fuchsia build scripts.

Change-Id: Idf1b7c1ea43321edcba1a32c27419da919eea024


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 3eba7de5 25-Aug-2017 Brian Swetland <swetland@google.com>

[build][groups] annotate 'misc' and 'test' modules

This allows us to generate a bootdata.bin which excludes them,
reducing it from 4.52MB to 2.65MB

The default bootdata.bin still includes all modules.

Change-Id: If13bfcacba9386a691e6b7c380eed53d67bb44eb


# 9a93422a 18-Aug-2017 Jeff Brown <jeffbrown@google.com>

[make] Support dependencies on sub-modules.

Strip .postfixes from dependent module names before checking whether
their directory exists. This ensures that sub-module dependencies
can be resolved.

Change-Id: I9c48cf5bc339f830faa85922b9ad321d33c57eeb


# 04b8a91b 26-Jul-2017 Roland McGrath <mcgrathr@google.com>

[build] Support ENABLE_ULIB_ONLY=true make option

In this mode, the build produces nothing but a bootdata.bin that
places the shared library binaries into /boot. This will be useful
in a USE_ASAN=true build to provide the lib/asan/ libraries needed
by ASan builds of other components.

Since it doesn't build the host tools necessary to build some of the
libraries, it requires giving TOOLS=... on the command line to point
at the build-.../tools subdirectory of some other build.

Change-Id: Ie6dca88a1f55ca2839cf14797d6d876a07c4ac4b


# 21b30195 19-Jul-2017 Josh Conner <joshconner@google.com>

[bootloader] Add tftp support

Allow TFTP connections for transmitting boot files.
Adds an EFI library module type to the make logic, to support
building an EFI version of libtftp.

Change-Id: Iaa2a5efd005b5d1ad52557d9a7759554ad6ebef2


# 9dffe8e6 13-Jun-2017 Josh Conner <joshconner@google.com>

[build] Fix hostlibs include path

When hostlibs are specified, the corresponding include directories
must be added to the build commands.

Change-Id: Ib23e44ca8a6a1e59c41aab68c53c84cb56a72f83


# c091f720 09-Jun-2017 Josh Conner <joshconner@google.com>

[build] Add support for hostlib modules

Support building host libraries from sources in the magenta tree. The
first use-case for this is the tftp library that will be used in both
netsvc (magenta) and netprotocol (host).

Change-Id: I5366342e99f60e5e95e67712dd9c598a02b763b2


# 272e5f36 19-May-2017 George Kulakowski <kulakowski@google.com>

[make] Teach host apps about tracking their build flags

Change-Id: Id9730c134d45a7fad6b511d0055d649911ec7c91


# e798450e 22-May-2017 Petr Hosek <phosek@google.com>

[build] Use input ld script rather than relocatable object for modules

This allows using the same codepath for both LTO and non-LTO builds.

Change-Id: Id402408c9647994ae43167d3f11dfa608cda05a4


# 8183f6b2 15-May-2017 Haowei Wu <haowei@google.com>

[make] Fix an issue with compiler flag "--include <file>"

- Clang compiler requires "-include <file>" flag for including header
files.
- Magenta makefile uses "--include <file>" flag. Though it works but it
is not complied with standard.
- Current makefile breaks the compatibility with clang's scan-build
script.

Change-Id: I11827054abc5e2da5d0e6935b0f13fc77a4e7e14


# 50a2d07e 21-Mar-2017 Travis Geiselbrecht <travisg@google.com>

[make] add QUIET=1 option to the build to squelch all output

Change-Id: I57742bb6aa0ad1f0dc516c917dfecd65f6f65f43


# 326cb85d 11-Apr-2017 Brian Swetland <swetland@google.com>

[build] remove sysdeps mechanism

It's complicated and kinda ugly and it turns out nobody wants it
after all.

Change-Id: I5e2ea61e7698a6ae148918c8fa4a3ca51d5a9ec8


# ee19d535 11-Apr-2017 Brian Swetland <swetland@google.com>

[build] fix default module names for foo.bar modules

The old way of removing the leading path also removed the suffix.

This fixes the installation of the usb-ethernet drivers.

Change-Id: I0b70e4a6a0a672b5480d476df4f793f6d685d9db


# 16656ae0 05-Apr-2017 Brian Swetland <swetland@google.com>

[build] flatten the build

Previously we treated kernel/, system/, and third_party/ as
overlays on a shared namespace. This required the concept
of "canonical" module names, and a lot of complexity to ensure
that things didn't collide and the build worked.

This change gets rid of that, no longer passes -I to make,
so that include directives from our *.mk files do not magically
wildcard across various paths, etc.

The most user-visible change is that everywhere where a module
name is specified (MODULE_DEPS, MODULE_LIBS, etc), full module
names like kernel/lib/io or system/ulib/mxio must be used instead
of previously-allowed "short" names like lib/io and ulib/mxio.

The build output still has a similar shape, but the first segment
of the module path (kernel/, system/, or third_party/) is no
longer elided under $(BUILDDIR)

Change-Id: I525aba1da1c86eb7a86007bddc669f7eeebfedd5