Code Warrior 10 make file generation

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Code Warrior 10 make file generation

4,867 次查看
codetrooper
Contributor II

I compile pretty big projects with this IDE. I encounter a very long delay caused by make file generation and building all files every time I compile.

Isn't there a check which file is modified prior compiling?

If I change only one single file I don't want the whole project to be compiled from scratch!

 

thx for any help.

标签 (1)
0 项奖励
回复
10 回复数

3,428 次查看
CrasyCat
Specialist III

Hello

  As far as I know Incremental build is activated by default when you create a project.

 

  Did you associate a pre-build step to your project? My experience is that when there is a pre-build step

  associated, the project, this forces a full rebuild of the project.

 

  To check that:

       - Open your project Properties dialog

       - Go to C/C++ Build > Settings page and switch to the Build Steps tab.

          Is anything specified in pre-build steps group?

 

CrasyCat

0 项奖励
回复

3,428 次查看
codetrooper
Contributor II

No, I just have a post-build step.

 

I don't see any "Incremental build" option in the project settings...

0 项奖励
回复

3,428 次查看
J2MEJediMaster
Specialist I

OK, let's try checking the settings again. In CodeWarrior v10.2 for MCUs, do the following:

 

1) In the C/C++ Perspective, select your project.

2) Choose Project > Properties.

    A Properties for <your project> window appears.

3) Choose C/C++ Build. Do NOT expand this choice, just click on it.

   A C/C++ Build view appears in the Properties window.

4) Click on the Behaviour tab to display the build settings.

5) In the Workbench Build Behaviour group, see if the Build (Incremental Build) option is checked.

 

---Tom

0 项奖励
回复

3,428 次查看
codetrooper
Contributor II

Thx. Now I know where it is. It has been already active.

Apparently it depends on which file I have changed. The dependency check then builds every file which depends on the

changed one (even if it's only a cpp file I changed).

I have seen some other strange effects:

1. If I disable incremental build, the compilation wouldn't start at all

2. If I disable automatic make-file generation I can't generate make files manually either (CTRL+6)

3. If automatic make-file generation is active, the generation process should only be done if the project changes. But it is done everytime (and last for nearly a minute on my pc)

4. If I change a cpp file x which is referenced by another cpp file y then y is also compiled again. If x was a header file this would make sense, but this behavior isn't. This leads to a lot of unnecessary compilation dependencies.

0 项奖励
回复

3,428 次查看
CrasyCat
Specialist III

Hello

 

What do you mean exactly when you say

"If I change a cpp file x which is referenced by another cpp file y"?

 

Do you have an include x.cpp inside of y.cpp?

 

Did you check the preprocessor output for file y.cpp?

 

CrasyCat

0 项奖励
回复

3,427 次查看
codetrooper
Contributor II

No, I use a class in y which is implemented in x. I just include x's header in y, which has not been changed, so y should not compile again.

 

 

0 项奖励
回复

3,427 次查看
CrasyCat
Specialist III

Hello

 

I would recommend you to submit a service request for that.

Click here to submit a service request.

Make sure to attach a reproducible project and installed product information to the service request.

 

CrasyCat

0 项奖励
回复

3,427 次查看
codetrooper
Contributor II

done.

Service Request number 1-906077612 

0 项奖励
回复

3,427 次查看
konrada
Contributor IV

You can bypass the regeneration of makefiles if you build from command-line. Just walk into the root of the build directory and run mingw-make.exe from c:\freescale\cw mcu 10.2\gnu\bin.

 

Probably there's also a switch somewhere in the Eclipse CDT project settings to stop regenerating makefiles, but then your build is silently wrong when you add files and don't remember to regenerate makefiles. 

 

If you observe that every file is compiled every time, even if you changed nothing at all, that's a different problem; the make tool should compare timestamps. Is your workspace on a fileserver with a noticeable clock difference? 

0 项奖励
回复

3,427 次查看
codetrooper
Contributor II

Thats quite uncomfortable. Using an IDE should avoid command-line calls.

Alas there isn't such a switch. But as you are the developer of this Eclipse-CW-Edition, it should be possible to add such a checkbox.

I build locally. It seems that the comparison does not work or there is also some kind of hidden switch?

0 项奖励
回复