summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.lib12
-rw-r--r--core.nix9
-rw-r--r--flags.mk12
-rw-r--r--test.nix2
-rw-r--r--test/Makefile13
5 files changed, 26 insertions, 22 deletions
diff --git a/Makefile.lib b/Makefile.lib
index ce5787c..d776318 100644
--- a/Makefile.lib
+++ b/Makefile.lib
@@ -1,13 +1,7 @@
-MCU = IMXRT1062
-MCU_DEF = ARDUINO_TEENSY40
+include flags.mk
-OPTIONS = -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH
-OPTIONS += -D__$(MCU)__ -DARDUINO=10813 -DTEENSYDUINO=154 -D$(MCU_DEF)
-
-CPU_OPTIONS = -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -mthumb
-
-CPPFLAGS = -Wall -g -O2 $(CPU_OPTIONS) -MMD $(OPTIONS) -I. -ffunction-sections -fdata-sections -I.
-CXXFLAGS = -std=gnu++14 -felide-constructors -fno-exceptions -fpermissive -fno-rtti -Wno-error=narrowing
+CPPFLAGS += -I.
+CXXFLAGS += -std=gnu++14
C_FILES := $(wildcard *.c)
CPP_FILES := $(wildcard *.cpp)
diff --git a/core.nix b/core.nix
index 6a98e55..fba64e7 100644
--- a/core.nix
+++ b/core.nix
@@ -23,6 +23,10 @@ pkgs.stdenvNoCC.mkDerivation rec {
pushd teensy4
rm main.cpp
cp ${./Makefile.lib} Makefile
+ substitute ${./flags.mk} flags.mk \
+ --subst-var-by TEENSY_INCLUDE . \
+ --subst-var-by TEENSY_LIB .
+ cp ${./flags.mk} flags.mk
make
ar rvs libteensy-core.a *.o
popd
@@ -36,7 +40,10 @@ pkgs.stdenvNoCC.mkDerivation rec {
cp -r debug $out/include/
cp -r util $out/include/
cp libteensy-core.a $out/lib/
- cp imxrt1062.ld $out/lib/
+ substitute ${./flags.mk} $out/include/flags.mk \
+ --subst-var-by TEENSY_INCLUDE $out/include \
+ --subst-var-by TEENSY_LIB $out/lib
+ cp imxrt1062.ld $out/include/IMXRT1062.ld
popd
'';
}
diff --git a/flags.mk b/flags.mk
new file mode 100644
index 0000000..e17ac2d
--- /dev/null
+++ b/flags.mk
@@ -0,0 +1,12 @@
+MCU = IMXRT1062
+MCU_DEF = ARDUINO_TEENSY40
+
+OPTIONS = -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH
+OPTIONS += -D__$(MCU)__ -DARDUINO=10813 -DTEENSYDUINO=154 -D$(MCU_DEF)
+
+CPU_OPTIONS = -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -mthumb
+
+CPPFLAGS = -Wall -g -O2 $(CPU_OPTIONS) -MMD $(OPTIONS) -ffunction-sections -fdata-sections
+CXXFLAGS = -felide-constructors -fno-exceptions -fpermissive -fno-rtti -Wno-error=narrowing -I@TEENSY_INCLUDE@
+
+LDFLAGS = -T@TEENSY_INCLUDE@/$(MCU).ld -L@TEENSY_LIB@ -Os -Wl,--gc-sections,--relax $(CPU_OPTIONS)
diff --git a/test.nix b/test.nix
index e6329a8..8945759 100644
--- a/test.nix
+++ b/test.nix
@@ -16,7 +16,7 @@ pkgs.stdenv.mkDerivation rec {
export OBJCOPY=arm-none-eabi-objcopy
export SIZE=arm-none-eabi-size
- export LDFLAGS="-T${teensy-core}/lib/imxrt1062.ld -L${teensy-core}/lib"
+ export TEENSY_PATH=${teensy-core}
make
'';
diff --git a/test/Makefile b/test/Makefile
index 0891b70..3bf5a70 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,15 +1,6 @@
-MCU = IMXRT1062
-MCU_DEF = ARDUINO_TEENSY40
+include $(TEENSY_PATH)/include/flags.mk
-OPTIONS = -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH
-OPTIONS += -D__$(MCU)__ -DARDUINO=10813 -DTEENSYDUINO=154 -D$(MCU_DEF)
-
-CPU_OPTIONS = -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -mthumb
-
-CPPFLAGS = $(NIX_CFLAGS_COMPILE) -Wall -g -O2 $(CPU_OPTIONS) -MMD $(OPTIONS) -I. -ffunction-sections -fdata-sections
-CXXFLAGS = -std=gnu++20 -felide-constructors -fno-exceptions -fpermissive -fno-rtti -Wno-error=narrowing
-
-LDFLAGS += -Os -Wl,--gc-sections,--relax $(CPU_OPTIONS)
+CXXFLAGS += -std=gnu++20
LIBS = -lm -lstdc++ -lteensy-core