@@ -388,28 +388,80 @@ endif
388
388
# #######################################################################
389
389
# Arduino and system paths
390
390
391
+ ifndef TOOL_PREFIX
392
+ TOOL_PREFIX = avr
393
+ endif
394
+
391
395
ifndef CC_NAME
392
- CC_NAME = avr-gcc
396
+ CC_NAME := $(call PARSE_BOARD,$(BOARD_TAG ) ,build.command.gcc)
397
+ ifndef CC_NAME
398
+ CC_NAME := $(TOOL_PREFIX ) -gcc
399
+ else
400
+ $(call show_config_variable,CC_NAME,[COMPUTED])
401
+ endif
393
402
endif
394
403
395
404
ifndef CXX_NAME
396
- CXX_NAME = avr-g++
405
+ CXX_NAME := $(call PARSE_BOARD,$(BOARD_TAG ) ,build.command.g++)
406
+ ifndef CXX_NAME
407
+ CXX_NAME := $(TOOL_PREFIX ) -g++
408
+ else
409
+ $(call show_config_variable,CXX_NAME,[COMPUTED])
410
+ endif
411
+ endif
412
+
413
+ ifndef AS_NAME
414
+ AS_NAME := $(call PARSE_BOARD,$(BOARD_TAG ) ,build.command.as)
415
+ ifndef AS_NAME
416
+ AS_NAME := $(TOOL_PREFIX ) -as
417
+ else
418
+ $(call show_config_variable,AS_NAME,[COMPUTED])
419
+ endif
397
420
endif
398
421
399
422
ifndef OBJCOPY_NAME
400
- OBJCOPY_NAME = avr-objcopy
423
+ OBJCOPY_NAME := $(call PARSE_BOARD,$(BOARD_TAG ) ,build.command.objcopy)
424
+ ifndef OBJCOPY_NAME
425
+ OBJCOPY_NAME := $(TOOL_PREFIX ) -objcopy
426
+ else
427
+ $(call show_config_variable,OBJCOPY_NAME,[COMPUTED])
428
+ endif
401
429
endif
402
430
403
431
ifndef OBJDUMP_NAME
404
- OBJDUMP_NAME = avr-objdump
432
+ OBJDUMP_NAME := $(call PARSE_BOARD,$(BOARD_TAG ) ,build.command.objdump)
433
+ ifndef OBJDUMP_NAME
434
+ OBJDUMP_NAME := $(TOOL_PREFIX ) -objdump
435
+ else
436
+ $(call show_config_variable,OBJDUMP_NAME,[COMPUTED])
437
+ endif
438
+ endif
439
+
440
+ ifndef AR_NAME
441
+ AR_NAME := $(call PARSE_BOARD,$(BOARD_TAG ) ,build.command.ar)
442
+ ifndef AR_NAME
443
+ AR_NAME := $(TOOL_PREFIX ) -ar
444
+ else
445
+ $(call show_config_variable,AR_NAME,[COMPUTED])
446
+ endif
405
447
endif
406
448
407
449
ifndef SIZE_NAME
408
- SIZE_NAME = avr-size
450
+ SIZE_NAME := $(call PARSE_BOARD,$(BOARD_TAG ) ,build.command.size)
451
+ ifndef SIZE_NAME
452
+ SIZE_NAME := $(TOOL_PREFIX ) -size
453
+ else
454
+ $(call show_config_variable,SIZE_NAME,[COMPUTED])
455
+ endif
409
456
endif
410
457
411
458
ifndef NM_NAME
412
- NM_NAME = avr-nm
459
+ NM_NAME := $(call PARSE_BOARD,$(BOARD_TAG ) ,build.command.nm)
460
+ ifndef NM_NAME
461
+ NM_NAME := $(TOOL_PREFIX ) -nm
462
+ else
463
+ $(call show_config_variable,NM_NAME,[COMPUTED])
464
+ endif
413
465
endif
414
466
415
467
ifndef AVR_TOOLS_DIR
@@ -457,8 +509,8 @@ ifndef AVR_TOOLS_DIR
457
509
AVR_TOOLS_DIR = $(SYSTEMPATH_AVR_TOOLS_DIR )
458
510
$(call show_config_variable,AVR_TOOLS_DIR,[AUTODETECTED],(found in $$PATH))
459
511
else
460
- # One last attempt using avr -gcc in case using arm
461
- SYSTEMPATH_AVR_TOOLS_DIR := $(call dir_if_exists,$(abspath $(dir $(shell which $(avr -gcc ) ) ) /..) )
512
+ # One last attempt using $(TOOL_PREFIX) -gcc in case using arm
513
+ SYSTEMPATH_AVR_TOOLS_DIR := $(call dir_if_exists,$(abspath $(dir $(shell which $($( TOOL_PREFIX ) -gcc) ) ) /..) )
462
514
ifdef SYSTEMPATH_AVR_TOOLS_DIR
463
515
AVR_TOOLS_DIR = $(SYSTEMPATH_AVR_TOOLS_DIR )
464
516
$(call show_config_variable,AVR_TOOLS_DIR,[AUTODETECTED],(found in $$PATH))
483
535
484
536
endif # ndef AVR_TOOLS_DIR
485
537
486
- ifndef AVR_TOOLS_PATH
487
- AVR_TOOLS_PATH = $(AVR_TOOLS_DIR ) /bin
538
+ ifndef TOOLS_PATH
539
+ TOOLS_PATH = $(AVR_TOOLS_DIR ) /bin
488
540
endif
489
541
490
542
ifndef ARDUINO_LIB_PATH
@@ -821,7 +873,7 @@ endif
821
873
ifeq ($(strip $(NO_CORE ) ) ,)
822
874
ifdef ARDUINO_CORE_PATH
823
875
CORE_C_SRCS = $(wildcard $(ARDUINO_CORE_PATH ) /* .c)
824
- CORE_C_SRCS += $(wildcard $(ARDUINO_CORE_PATH ) /avr -libc/* .c)
876
+ CORE_C_SRCS += $(wildcard $(ARDUINO_CORE_PATH ) /$( TOOL_PREFIX ) -libc/* .c)
825
877
CORE_CPP_SRCS = $(wildcard $(ARDUINO_CORE_PATH ) /* .cpp)
826
878
CORE_AS_SRCS = $(wildcard $(ARDUINO_CORE_PATH ) /* .S)
827
879
@@ -931,18 +983,22 @@ TARGET_EEP = $(OBJDIR)/$(TARGET).eep
931
983
TARGET_BIN = $(OBJDIR ) /$(TARGET ) .bin
932
984
CORE_LIB = $(OBJDIR ) /libcore.a
933
985
934
- # Names of executables - chipKIT needs to override all to set paths to PIC32
935
- # tools, and we can't use "?=" assignment because these are already implicitly
986
+ # Names of executables
987
+ # In the rare case of wanting to override a path and/or excecutable
988
+ # name, the OVERRIDE_EXECUTABLES variable must be defned and _all_
989
+ # the excecutables (CC, CXX, AS, OBJCOPY, OBJDUMP AR, SIZE and NM)
990
+ # _must_ be defined in the calling makefile.
991
+ # We can't use "?=" assignment because these are already implicitly
936
992
# defined by Make (e.g. $(CC) == cc).
937
993
ifndef OVERRIDE_EXECUTABLES
938
- CC = $(AVR_TOOLS_PATH ) /$(CC_NAME )
939
- CXX = $(AVR_TOOLS_PATH ) /$(CXX_NAME )
940
- AS = $(AVR_TOOLS_PATH ) /$(AS_NAME )
941
- OBJCOPY = $(AVR_TOOLS_PATH ) /$(OBJCOPY_NAME )
942
- OBJDUMP = $(AVR_TOOLS_PATH ) /$(OBJDUMP_NAME )
943
- AR = $(AVR_TOOLS_PATH ) /$(AR_NAME )
944
- SIZE = $(AVR_TOOLS_PATH ) /$(SIZE_NAME )
945
- NM = $(AVR_TOOLS_PATH ) /$(NM_NAME )
994
+ CC = $(TOOLS_PATH ) /$(CC_NAME )
995
+ CXX = $(TOOLS_PATH ) /$(CXX_NAME )
996
+ AS = $(TOOLS_PATH ) /$(AS_NAME )
997
+ OBJCOPY = $(TOOLS_PATH ) /$(OBJCOPY_NAME )
998
+ OBJDUMP = $(TOOLS_PATH ) /$(OBJDUMP_NAME )
999
+ AR = $(TOOLS_PATH ) /$(AR_NAME )
1000
+ SIZE = $(TOOLS_PATH ) /$(SIZE_NAME )
1001
+ NM = $(TOOLS_PATH ) /$(NM_NAME )
946
1002
endif
947
1003
948
1004
REMOVE = rm -rf
@@ -1078,15 +1134,15 @@ ifneq ($(CATERINA),)
1078
1134
CPPFLAGS += -DUSB_VID=$(USB_VID ) -DUSB_PID=$(USB_PID )
1079
1135
endif
1080
1136
1081
- # avr -gcc version that we can do maths on
1137
+ # $(TOOL_PREFIX) -gcc version that we can do maths on
1082
1138
CC_VERNUM = $(shell $(CC ) -dumpversion | sed 's/\.//g')
1083
1139
1084
1140
# moved from above so we can find version-dependant ar
1085
- ifndef AR_NAME
1141
+ ifeq ( $( TOOL_PREFIX ) , avr)
1086
1142
ifeq ($(shell expr $(CC_VERNUM) '>' 490), 1)
1087
- AR_NAME = avr -gcc-ar
1143
+ AR_NAME := $( TOOL_PREFIX ) -gcc-ar
1088
1144
else
1089
- AR_NAME = avr -ar
1145
+ AR_NAME := $( TOOL_PREFIX ) -ar
1090
1146
endif
1091
1147
endif
1092
1148
@@ -1404,7 +1460,7 @@ CTAGS_CMD = $(CTAGS_EXEC) $(CTAGS_OPTS) -auf
1404
1460
1405
1461
# If avrdude is installed separately, it can find its own config file
1406
1462
ifndef AVRDUDE
1407
- AVRDUDE = $(AVR_TOOLS_PATH ) /avrdude
1463
+ AVRDUDE = $(TOOLS_PATH ) /avrdude
1408
1464
endif
1409
1465
1410
1466
# Default avrdude options
@@ -1747,7 +1803,7 @@ help:
1747
1803
make debug_init - start openocd gdb server\n\
1748
1804
make debug - connect to gdb target and begin debugging\n\
1749
1805
make size - show the size of the compiled output (relative to\n\
1750
- resources, if you have a patched avr -size).\n\
1806
+ resources, if you have a patched $(TOOL_PREFIX) -size).\n\
1751
1807
make verify_size - verify that the size of the final file is less than\n\
1752
1808
the capacity of the micro controller.\n\
1753
1809
make symbol_sizes - generate a .sym file containing symbols and their\n\
0 commit comments