This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Autogenerated Makefiles



Hi,

I am new to CCS, I am working on an application we inheriated from another company we purchased after they shut down.

I was successful in importing the project into CCS4 and getting the application to compile.  But being the anal person that I am I wanted to get all the compiler output under one folder.  The old project was setup to send output to to {PROJECT_ROOT}\Out.  CCS has a system macro PROJECT_BUILD_DIR that I cannot seem to edit.  Thus I decided I would try to direct all compiler output to ${PROJECT_BUILD_DIR}. 

Upon trying this I got a make error "No rule to make target `Obj/boot2812.obj'.  In looking into the makefiles I see are still references to the old .\Out folder.  I have looked through all the project setttings I could find and I cannot find any setttings that tell makefile generator where to look for files.

It seems to me the makefile generator made a lot of decisions when the project was first imported and there does not seem to be any dialogs to alter these decisions.  I don't really want to resort to editing my own makefile.  Any ideas??

Thanks

   

 

  • Jim Donahue said:
    Thus I decided I would try to direct all compiler output to ${PROJECT_BUILD_DIR}. 

    How did you do this? Did you add that macro in the "Directory Specifier" section in the Build Properties?

    ki

  • Yes.  I tried both the macro and a hardcoded path, neither worked.

  • Did you just set the -fr option or did you do it for all of them on that page?

  • I only set it for the -fr and -fs, they were the only ones that had entries when I started making changes.

    FYI- I attached a renamed copy of the generated makefile.

     

    ################################################################################
    # Automatically-generated file. Do not edit!
    ################################################################################
    
    EMPTY := 
    SPACE := $(EMPTY) $(EMPTY)
    
    ORDERED_OBJS += \
    "./Obj/flashstart.obj" \
    "./Obj/boot2812.obj" \
    "./Obj/PPMC_spiADC.obj" \
    "./Obj/PPMC_paramTable.obj" \
    "./Obj/PPMC_UserInterface.obj" \
    "./Obj/PPMC_UIB.obj" \
    "./Obj/PPMC_RTC.obj" \
    "./Obj/PPMC_Main.obj" \
    "./Obj/PPMC_Init.obj" \
    "./Obj/PPMC_Faults.obj" \
    "./Obj/PPMC_FLASH.obj" \
    "./Obj/PPMC_EEPROM.obj" \
    "./Obj/PPMC_DataDump.obj" \
    "./Obj/PPMC_DataDisplayAPI.obj" \
    "./Obj/PPMC_DPRAM.obj" \
    "./Obj/PPMC_Contactor.obj" \
    "./Obj/PPMC_CommandTerminal.obj" \
    "./Obj/PPMC_Buzzer.obj" \
    "./Obj/DSP28_Xintf.obj" \
    "./Obj/DSP28_XIntrupt.obj" \
    "./Obj/DSP28_SysCtrl.obj" \
    "./Obj/DSP28_Spi.obj" \
    "./Obj/DSP28_Scib.obj" \
    "./Obj/DSP28_Scia.obj" \
    "./Obj/DSP28_PieVect.obj" \
    "./Obj/DSP28_PieCtrl.obj" \
    "./Obj/DSP28_Mcbsp.obj" \
    "./Obj/DSP28_Gpio.obj" \
    "./Obj/DSP28_GlobalVariableDefs.obj" \
    "./Obj/DSP28_Ev.obj" \
    "./Obj/DSP28_DefaultIsr.obj" \
    "./Obj/DSP28_CpuTimers.obj" \
    "./Obj/DSP28_Adc.obj" \
    -l"rts2800_ml.lib" \
    "../PCMC_TMX320F2812_New_Boot.cmd" \
    
    -include ../makefile.init
    
    RM := "C:/Program Files (x86)/Texas Instruments/ccsv4/utils/Cygwin/rm" -rf
    
    # All of the sources participating in the build are defined here
    -include sources.mk
    -include subdir.mk
    -include src/subdir.mk
    -include Out/PCMC_RELEASE_NB/Obj/subdir.mk
    -include Out/PCMC_RELEASE/Obj/subdir.mk
    -include Out/PCMC_DEBUG/Obj/subdir.mk
    -include Out/PCMC_DAC_DEBUG/Obj/subdir.mk
    -include objects.mk
    
    ifneq ($(MAKECMDGOALS),clean)
    ifneq ($(strip $(S62_DEPS)),)
    -include $(S62_DEPS)
    endif
    ifneq ($(strip $(ASM_DEPS)),)
    -include $(ASM_DEPS)
    endif
    ifneq ($(strip $(C55_DEPS)),)
    -include $(C55_DEPS)
    endif
    ifneq ($(strip $(S_UPPER_DEPS)),)
    -include $(S_UPPER_DEPS)
    endif
    ifneq ($(strip $(C++_DEPS)),)
    -include $(C++_DEPS)
    endif
    ifneq ($(strip $(S_DEPS)),)
    -include $(S_DEPS)
    endif
    ifneq ($(strip $(CC_DEPS)),)
    -include $(CC_DEPS)
    endif
    ifneq ($(strip $(C64_DEPS)),)
    -include $(C64_DEPS)
    endif
    ifneq ($(strip $(CPP_DEPS)),)
    -include $(CPP_DEPS)
    endif
    ifneq ($(strip $(S64_DEPS)),)
    -include $(S64_DEPS)
    endif
    ifneq ($(strip $(CXX_DEPS)),)
    -include $(CXX_DEPS)
    endif
    ifneq ($(strip $(C67_DEPS)),)
    -include $(C67_DEPS)
    endif
    ifneq ($(strip $(S67_DEPS)),)
    -include $(S67_DEPS)
    endif
    ifneq ($(strip $(S43_DEPS)),)
    -include $(S43_DEPS)
    endif
    ifneq ($(strip $(C62_DEPS)),)
    -include $(C62_DEPS)
    endif
    ifneq ($(strip $(C43_DEPS)),)
    -include $(C43_DEPS)
    endif
    ifneq ($(strip $(C??_DEPS)),)
    -include $(C??_DEPS)
    endif
    ifneq ($(strip $(ASM_UPPER_DEPS)),)
    -include $(ASM_UPPER_DEPS)
    endif
    ifneq ($(strip $(OPT_DEPS)),)
    -include $(OPT_DEPS)
    endif
    ifneq ($(strip $(S??_DEPS)),)
    -include $(S??_DEPS)
    endif
    ifneq ($(strip $(S55_DEPS)),)
    -include $(S55_DEPS)
    endif
    ifneq ($(strip $(C_DEPS)),)
    -include $(C_DEPS)
    endif
    ifneq ($(strip $(SA_DEPS)),)
    -include $(SA_DEPS)
    endif
    ifneq ($(strip $(C_UPPER_DEPS)),)
    -include $(C_UPPER_DEPS)
    endif
    endif
    
    -include ../makefile.defs
    
    # Add inputs and outputs from these tool invocations to the build variables 
    
    # All Target
    all: X:/My\ Documents/CCSwksp1/pcmcPrimary/PCMC_RELEASE_NB/pcmcFlash.out
    
    # Tool invocations
    X:/My\ Documents/CCSwksp1/pcmcPrimary/PCMC_RELEASE_NB/pcmcFlash.out: $(GEN_CMDS) $(CMD_SRCS) $(OBJS)
    	@echo 'Building target: $@'
    	@echo 'Invoking: C2000 Linker'
    	"C:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c2000/bin/cl2000" -z -m"X:/My Documents/CCSwksp1/pcmcPrimary/PCMC_RELEASE_NB/pcmcFlash.map" --warn_sections -i"C:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c2000/lib" -i"C:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c2000/include" -i"X:/My Documents/CCSwksp1/pcmcPrimary" --reread_libs --rom_model -o "X:/My Documents/CCSwksp1/pcmcPrimary/PCMC_RELEASE_NB/pcmcFlash.out" $(GEN_CMDS_QUOTED) $(ORDERED_OBJS)
    	@echo 'Finished building target: $@'
    	@echo ' '
    	$(MAKE) --no-print-directory post-build
    
    # Other Targets
    clean:
    	-$(RM) $(S62_DEPS)$(ASM_DEPS)$(C55_DEPS)$(S_UPPER_DEPS)$(S_DEPS)$(CPP_DEPS)$(C64_DEPS)$(C43_DEPS)$(C62_DEPS)$(OBJS)$(C??_DEPS)$(S??_DEPS)$(S55_DEPS)$(C_DEPS)$(C_UPPER_DEPS)$(SA_DEPS)$(C2000_EXECUTABLE_OUTPUTS)$(C++_DEPS)$(CC_DEPS)$(S64_DEPS)$(CXX_DEPS)$(S43_DEPS)$(S67_DEPS)$(C67_DEPS)$(ASM_UPPER_DEPS)$(OPT_DEPS) "X:/My Documents/CCSwksp1/pcmcPrimary/PCMC_RELEASE_NB/pcmcFlash.out"
    	-@echo ' '
    
    post-build:
    	-"X:/My Documents/CCSwksp1/pcmcPrimary/postBuildStep_PCMC_RELEASE_NB.bat"
    	-@echo ' '
    
    .PHONY: all clean dependents
    .SECONDARY: post-build
    
    -include ../makefile.targets
    

  • -fr is a deprecated option with newer CGT version (including what ships with v4). Try setting -ft and -ff also and see if this helps.