]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-rtos/edma3_lld.git/blobdiff - makerules/rules_a15.mk
updated lib path for gcc compiler
[keystone-rtos/edma3_lld.git] / makerules / rules_a15.mk
old mode 100644 (file)
new mode 100755 (executable)
index 1856915..96f3c52
 #     4. a rule common for A15 ISA has to be added or modified\r
 \r
 # Set compiler/archiver/linker commands and include paths\r
-CODEGEN_INCLUDE = $(CODEGEN_PATH_A15)/arm-none-eabi/include\r
+CODEGEN_INCLUDE = $(CODEGEN_PATH_A15)/arm-none-eabi/include $(CODEGEN_PATH_A15)/arm-none-eabi/include/newlib-nano\r
 CC = $(CODEGEN_PATH_A15)/bin/arm-none-eabi-gcc \r
 AR = $(CODEGEN_PATH_A15)/bin/arm-none-eabi-ar\r
-LNK = $(CODEGEN_PATH_A15)/bin/arm-none-eabi-ld\r
+#LNK = $(CODEGEN_PATH_A15)/bin/arm-none-eabi-ld\r
+LNK = $(CODEGEN_PATH_A15)/bin/arm-none-eabi-gcc\r
 \r
 # XDC Specific defines\r
 ifneq ($(XDC_CFG_FILE_$(CORE)),)\r
@@ -31,7 +32,7 @@ ifneq ($(XDC_CFG_FILE_$(CORE)),)
   endif\r
   CFG_CFILE_XDC =$(patsubst %.cfg,%_$(CFG_CFILENAMEPART_XDC).c,$(notdir $(XDC_CFG_FILE_$(CORE))))\r
   CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))\r
-  XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC)_x.xdl, $(CFG_C_XDC))\r
+  XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC).xdl, $(CFG_C_XDC))\r
 # CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))\r
   CFG_COBJ_XDC = $(patsubst %.c,%.oa15fg,$(CFG_CFILE_XDC))\r
 #  OBJ_PATHS += $(CFG_COBJ_XDC)\r
@@ -43,11 +44,11 @@ ifneq ($(XDC_CFG_FILE_$(CORE)),)
 #  XDC_GREP_STRING += \|$(CONFIGURO_DIRNAME)\r
 endif\r
 # Internal CFLAGS - normally doesn't change\r
-CFLAGS_INTERNAL = -Wall -Wunknown-pragmas -c -mcpu=cortex-a15 -g -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame  \r
+CFLAGS_INTERNAL = -Wall -Wunknown-pragmas -c -mcpu=cortex-a15 -g -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame  -Wswitch\r
 #-ffunction-sections -fdata-sections\r
 CFLAGS_DIROPTS =\r
 \r
-#LNKFLAGS_INTERNAL = -nostartfiles -static -Wl,--gc-sections\r
+LNKFLAGS_INTERNAL = -nostartfiles -static -Wl,--gc-sections -mfloat-abi=hard\r
 \r
 # CFLAGS based on profile selected\r
 CFLAGS_XDCINTERNAL = -Dxdc_target_name__=A15F -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h'\r
@@ -77,7 +78,8 @@ ifeq ($(PROFILE_$(CORE)), debug)
 CFLAGS_INTERNAL += -D_DEBUG_=1\r
 endif\r
 ifeq ($(PROFILE_$(CORE)), release)\r
- LNKFLAGS_INTERNAL_PROFILE =\r
+  CFLAGS_INTERNAL += -O2 -s -DNDEBUG\r
+  LNKFLAGS_INTERNAL_PROFILE = -O2\r
 endif\r
 \r
 # Assemble CFLAGS from all other CFLAGS definitions\r
@@ -118,10 +120,11 @@ _LNKFLAGS = $(LNKFLAGS_INTERNAL) $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL
 \r
 # Path of the RTS library - normally doesn't change for a given tool-chain\r
 RTSLIB_PATH =\r
-LIB_PATHS += $(EXT_LIB_a15host) $(CODEGEN_PATH_A15)/arm-none-eabi/lib/fpu/libc.a $(CODEGEN_PATH_A15)/arm-none-eabi/lib/fpu/libg.a $(CODEGEN_PATH_A15)/arm-none-eabi/lib/fpu/libm.a $(CODEGEN_PATH_A15)/arm-none-eabi/lib/fpu/librdimon.a $(CODEGEN_PATH_A15)/lib/gcc/arm-none-eabi/4.7.3/fpu/libgcc.a\r
+BIOS_RUNTIME_PATH = $(bios_PATH)/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/thumb/v7-a/hard\r
+STD_LIB_PATHS += c m g rdimon\r
+LIB_GCC_PATH = $(CODEGEN_PATH_A15)/lib/gcc/arm-none-eabi/9.2.1/thumb/v7+fp/hard\r
 \r
-\r
-LNK_LIBS = $(addprefix -l,$(LIB_PATHS))\r
+STD_LNK_LIBS = $(addprefix -l,$(STD_LIB_PATHS))\r
 # Linker - to create executable file\r
 \r
 ifeq ($(LOCAL_APP_NAME),)\r
@@ -137,14 +140,25 @@ endif
 $(EXE_NAME) : $(OBJ_PATHS_ASM) $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE)  $(CONFIGURO_DIR)/package/cfg/$(CFG_COBJ_XDC)\r
        $(ECHO) \# Linking into $(EXE_NAME)...\r
        $(ECHO) \#\r
-       $(LNK) $(_LNKFLAGS) $(OBJ_PATHS_ASM) $(OBJ_PATHS) -T $(LNKCMD_FILE) -Map $@.map $(LIB_PATHS) -o $@ \r
+       $(LNK) $(_LNKFLAGS) $(OBJ_PATHS_ASM) $(OBJ_PATHS) -Wl,-T,$(LNKCMD_FILE) -Wl,-Map,$@.map $(LIB_PATHS) -L$(BIOS_RUNTIME_PATH) -L$(LIB_GCC_PATH) $(STD_LNK_LIBS) -o $@ \r
        $(ECHO) \#\r
        $(ECHO) \# $@ created.\r
        $(ECHO) \#\r
 \r
+ifeq ($(CONFIG_BLD_XDC_CUSTOM),)\r
+  CONFIG_BLD_FILE = $(CONFIG_BLD_XDC_$(ISA))\r
+else\r
+  CONFIG_BLD_FILE = $(CONFIG_BLD_XDC_CUSTOM)\r
+endif\r
+ifeq ($(PLATFORM_XDC_CUSTOM),)\r
+  PLATFORM_XDC_NAME = $(PLATFORM_XDC)\r
+else\r
+  PLATFORM_XDC_NAME = $(PLATFORM_XDC_CUSTOM)\r
+endif\r
+\r
 # XDC specific - assemble XDC-Configuro command\r
-CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \\r
-               -r debug -c $(CODEGEN_PATH_A15) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)\r
+CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p "$(PLATFORM_XDC_NAME)" \\r
+               -r $(PROFILE_$(CORE)) -c $(CODEGEN_PATH_A15) -b $(CONFIG_BLD_FILE) $(XDC_CFG_FILE_NAME)\r
 _XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"\r
 EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)\r
 \r
@@ -164,13 +178,13 @@ xdc_configuro : $(XDC_CFG_FILE)
        $(ECHO) \# Invoking configuro...\r
        $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
 ifeq ($(OS),Windows_NT)\r
-       CACLS $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat /E /P Everyone:F\r
+       ICACLS $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat /q /c /t /grant Everyone:F /T\r
        $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
 else\r
        $(CHMOD) a+x $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
        ./$(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
 endif\r
-#      $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+       $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
 #      $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
 #      ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
 #      $(EGREP_CMD) > $(LNKCMD_FILE)\r
@@ -183,12 +197,6 @@ $(LNKCMD_FILE) :
 #      ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
 #      $(EGREP_CMD) > $(LNKCMD_FILE)\r
  \r
-ifndef MODULE_NAME\r
-$(CONFIGURO_DIR)/package/cfg/$(CFG_COBJ_XDC) : $(CFG_C_XDC)\r
-       $(ECHO) \# Compiling generated $< to $@ ...\r
-       $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -o $(CONFIGURO_DIR)/package/cfg/$(CFG_COBJ_XDC) $(CFG_C_XDC)\r
-endif\r
-\r
 # Include dependency make files that were generated by $(CC)\r
 -include $(SRCS:%.c=$(DEPDIR)/%.P)\r
 # Nothing beyond this point\r