jw-pkg supports more than RPM-based package managers, but for historic reasons, lots of its Makefile variables still have "RPM" in their names. This is misleading. Replace "RPM" in variable names by the more generic "PKG" where appropriate.
jw-build doesn't stop at building software, packaging it afterwards is also a core feature, so this commit gives the package a better name.
The commit replaces strings s/jw-build/jw-pkg/ in text files and file names. Fallout to the functionality is fixed, variable names are left as they are, though. To be adjusted by later commits.
Re-add everthing needed for building and packaging ytools. This is a big commit, 2002 lines of code. It mostly consists of C/C++ machinery, plus some documentation-related stuff.
gdb --core=vgcore.123 doesn't output a usable executable path with "was generated by ...". This commit make make gdb fall back to using $(EXE_PATH) as the executable with valgrind core files.
CC, LD and CXX are builtin, and they also override ?=, so ?= is pointless.
This solution disallows specifying a compiler from the environment. There should be some solution with $(origin CC), but this seems too clunky for now.
MCU_OPENOCD_CFG_NAME was defined in cfg-cpp.mk and mcu-defs.mk. Not sure which is the best place, but have them compete is clearly the worst idea. This patch puts them into defs-cpp.mk. A future patch should place the whole bunch somewhere else, I guess.
Rename CFLAGS and friends to follow the conventions of the implicit rules defined by GNU Make:
- $(CPPFLAGS) is passed to both C++ and C compiler - $(CXXFLAGS) is passed to C++ compiler only - $(CFLAGS) is passed to C compiler only - C++ compiler is in $(CXX)
This commit adds compiler flags needed for compilation with modm. Cleanup is needed, most notably should mcu-tags.mk be dissolved into defs-cpp.mk. The good part is that it works.
These variables denote the flags used in compiler and linker rules. They are defined as REAL_(CPP|C|LD)FLAGS ?= BUILD_(CPP|C|LD)FLAGS and provide a means to override the flags assembled cumulatively.
USE_DISABLE_COMPILER_OPTIMISATION_OPTS = true disables options targeted at disabling optimization features, which were introduced to facilitate debugging in the first place, but make the commandline harder to compare to others while troubleshooting the compile process
Code generated for Cortex M3 stopped working after adding -L$(TC_SYS_ROOT)/lib. The problem is that libc et al have to be taken from $(TC_SYS_ROOT)/lib/thumb, which is correctly taken if explicit -L is left out.
Probably breaks mingw, to be tested and fixed in the next iteration.
This commit takes the MinGW cross compilation further into the direction of being a more general framework for cross compilation. Changed some variable names that are too specialized, notably MinGW tool chain directories, compilers, utilities.
This commit makes it possible to successfully run "make all" against ytools' again, with TARGET_TUPLE set to i686-ms-w64-mingw. Lots of minor and major tweaks here and there.
The biggest diff is a move of the architecture-related definitions into platform.mk. The are needed pretty early on, so that seems reasonable.
Making this work again is part of the larger effort to support cross buildchains in a more concise way, i.e. without so many if ($(TARGET),mingw)) all over the place. TARGET's relevance should dwindle, until it's finally taken over by the TARGET_XXX variables extracted from TARGET_TUPLE or TARGET_TRIPLET.
C++ definitions are numerous, and they shouldn't pollute variable space and performance outside of directories containing C++ files. This commit pushes them into a defs-cpp.mk file.