ok. I think i need to explain in detail.
My
1. project Files (*.c, *.s, *.h) are saved in C:\prj\sd_fat\testing\bootloader\working . Lets call it
PRJ_WORK_DIR
2. Codelite Files related to project (prj_bootloader.mk, prj_bootloader.project) are in C:\users\hebbar\project\Tests\codelite\codelite_wrkspc\prj_bootloader . Lets call it
CL_PRJ_FILES_DIR
3. I want my project output(object, map, list files etc to be built inside C:\prj\sd_fat\testing\bootloader\prj\release . Lets call it
PRJ_OUT_DIR
All these folder exist. Including PRJ_OUT_DIR
1. I have set my compiler detilas in Settings -> Build Settings. Added new Compiler "cust_comp" . Added Compiler Name "runcc"
2. In Workspace tab - project "prj_bootloader" - right click -> Settings window
i have set
a. compiler - cust_comp
b. Output File field - blank
c. Intermediate Directory - release (it was ./release b4 but i used to get error. My compiler doesnt support ./)
d. command - ./$(ProjectName)
e. Working Directory - C:/prj/sd_fat/testing/bootloader/prj/ ( since i need files inside
PRJ_OUT_DIR & CL adds (IntermediateDirectory) to (Working Directory) )
f. Configuration Type - Release
g. Compiler Tab -> Compiler Options - -Wundef -Wall
I have imported 1 folder & created 2 Virtual Directories inside it. So in workspace tab i have
codelite_wrkspc
|
|-prj_bootloader
|
|-working
|
|-headers
|
|-command.h
|-common.h
|-src
|
|-command.c
|-common.c
My Custom Compiler creates a directory called "ccwork" inside directory it is being called. while compiling it places all object files into this directory
Now according to what i believe,
When i click on common.c & select compile, the object files should be built inside
PRJ_OUT_DIR/release
But, after select compile from right click context menu on common.c, i get
Building: "C:/cygwin/bin/make.EXE" -j 2 -f "prj_bootloader.mk" type=Release ./release/common.o
----------Building project:[ prj_bootloader - Release ] (Single File Build)----------
runcc -c "C:/prj/sd_fat/testing/bootloader/working/common.c" -Wundef -Wall -o ./release/common.o
Configuration: Release
Compiling "common.c"
..snip..
..snip..
Compilation finished successfully
----------Build Ended----------
And Files are created inside
CL_PRJ_FILES_DIR/ccwork.
So now what to do.
I have few doubts/ need clarification for below
1. In the Coonfiguration Manager window, For Workspace Configuration, i get only "Debug, <New>, <Edit>" options. No Release Option. Do i need to set something to get Release as default Configuration Type for all projects
2. I found 3 Options for build/clean/rebuild as below
1. Build/Clean/Rebuild Wokspace -> in Context menu from Right Click on workspace
2. Build/Clean/Rebuild ->in Context menu from Right Click on project
3. Project only Build/Clean.
Why 3 options provided. Isnt the 2nd & 3rd the same. Isnt 1st & 2nd enough for all purpose. Since i havent seen such a situation, i would like to know where it is or will be used.
3. Why does Compile option appear for .h file Filetypes. I have created a virtual folder and moved all header files under this directory. Compile option appears for thes header files also. Interesting if i give compile command from right click on these header files, respective .c files are sent for compilation without checking if such files exist. If i right click on dummy.h header file & select compile command, dummy.c file is sent for compilation, & if dumy.c doesnt exist, it gives an error saying. and if dummy.c file exists, then compilation continues.
Code: Select all
Building: "C:/cygwin/bin/make.EXE" -j 2 -f "prj_bootloader.mk" type=Release release/dummy.o
----------Building project:[ prj_bootloader - Release ] (Single File Build)----------
make: *** No rule to make target `release/dummy.o'. Stop.
----------Build Ended----------
4. In Workspace tab - project "prj_bootloader" - right click -> Settings window, i changed IntermediateDirectory to point to "C:/prj/sd_fat/testing/bootloader/prj/Release". When i select compile from src file->right click context menu i get below error
Building: "C:/cygwin/bin/make.EXE" -j 2 -f "prj_bootloader.mk" type=Release C:/prj/sd_fat/testing/bootloader/prj/Release/common.o
----------Building project:[ prj_bootloader - Release ] (Single File Build)----------
prj_bootloader.mk:60: *** target pattern contains no `%'. Stop.
----------Build Ended----------
TIA
Truely thanks for ur patience/time in explaining/clarifying things to me.
Regards
Gururaja