flipper-io / flipper

Flipper is a development platform that can be controlled from any programming language.
https://www.flipper.io/
Apache License 2.0
72 stars 15 forks source link

Added build system for modules #113

Closed kjcolley7 closed 6 years ago

kjcolley7 commented 6 years ago

Also tweaked fdwarf.py to work better from a Makefile by exactly specifying the output name rather than having it automatically add the extension and correctly reporting success or failure via exit codes. This is still a work in progress as it currently relies on creating a symlink, but we're apparently trying to avoid those.

Intended filesystem structure:

MyProject/
 |- Build.mk
 |- Makefile -> flipper/assets/module.mk
 |- flipper/
 |   |- native_atsam4s_flipper_c_files.c
 |- host/
     |- x86_or_other_c_files_that_run_on_the_host_computer.c

Example Build.mk file contents:

MODULE := myproject

Output of running make help:

Make subcommands:
   all (default) - Build the Flipper module (build/flipper/myproject.bin) and the host client (build/host/myproject)
   fvm           - Build the Flipper module for the Flipper Virtual Machine (build/fvm/myproject.so)
   dump          - Display the assembly code listing of the built Flipper module
   install       - Build the Flipper module and upload it to a connected Flipper device
   clean         - Remove the entire build directory, containing all build products
georgemorgan commented 6 years ago

Did you update the example/app directory to reflect how this is used?

kjcolley7 commented 6 years ago

Just updated the example app and removed all usage of symlinks