libDaisy icon indicating copy to clipboard operation
libDaisy copied to clipboard

Build: core/Makefile - Major overhaul

Open HeckHeckHeckHeck opened this issue 1 year ago • 0 comments

Aims And Claims

  • Build is fully customizable now from the "User Project" without any changes required in this repo
  • Fully backwards compatible with prior version (regression tested with latest DaisyExamples and DaisyBlinkProject)
  • Separate interface from implementation and present it with more detailed documentation on how to use

Changes

  • Add Makefile.conf - declarative build settings interface
  • Fix: support of user defined CFLAGS, CXXFLAGS, ASFLAGS, LDFLAGS
  • Fix: support build config from shell env vars
  • Fix: debug symbols now only in DEBUG build
  • Feature: support user defined suffix for c++ files (USER_SUFFIX_CXX)
  • Provide structure and process to remove items from flags and lists (not just appending to it)
  • Structure the customization into three documented levels of build customization needs (Required, Optional, DangerZone)
  • More error handling of build mis-configuration (warn/error messages)

New Build Options

  • STARTUP_CODE {ASM, C}
  • USER_SUFFIX_CXX
  • C_STANDARD
  • CXX_STANDARD
  • GCC_SPECS
  • new APP_TYPE 'CUSTOM' - allows custom linkerscript
  • LDSCRIPT

HeckHeckHeckHeck avatar Sep 24 '24 01:09 HeckHeckHeckHeck