Project Home
Project Home
Source Code
Source Code
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - .qnx_internal.mk and automated builds: (5 Items)
   
.qnx_internal.mk and automated builds  
I need to be able to take my IDE projects and build them from the command line.

However, it looks as though .qnx_internal.mk is being used by the IDE to do some fancy stuff with LIBS and other 
variables.

Since .qnx_internal.mk is generated (or at least I understand it to be) by the IDE, we don't check these files into 
source code control, and we don't deliver this file to the customer.  

The customer needs to be able to build the projects from the command line w/o haveing to use the IDE.  I also want to 
keep from having to have two different common.mk files for command line vs IDE builds.

My question is, should this file .qnx_internal.mk be included in source code control?

Does it change with changes to build settings in the IDE?  Or is this file pretty static?

It has some nice conventions in it, and I'd like to use it, but in the past, I've had to check out this file manually 
when changing projects settings or other (now since forgotten) IDE operations.

Any insight into this would be helpful.  I'm having a hard time making this work in a way that is a no-brainer for our 
customer.

Thanks much
Kevin
 
Re: .qnx_internal.mk and automated builds  
Hi, Kevin,

See some comments in-line, below.  I'm sorry that you're having to
wrestle with this question after such a long day!

HTH,

Christian


On Thu, 2009-07-02 at 03:55 -0400, Kevin Stallard wrote:

> I need to be able to take my IDE projects and build them from the command line.


Did you know that the 4.6 release features new support for integrating
the IDE into headless build processes, to build your projects just as in
an interactive session?



> However, it looks as though .qnx_internal.mk is being used by the IDE to do some fancy stuff with LIBS and other 
variables.
> 
> Since .qnx_internal.mk is generated (or at least I understand it to be) by the IDE, we don't check these files into 
source code control, and we don't deliver this file to the customer.


But, if you want to build your project the way that the IDE does it,
then you will need to have this file available.  Especially as the
common.mk file includes it.



> The customer needs to be able to build the projects from the command line w/o haveing to use the IDE.  I also want to 
keep from having to have two different common.mk files for command line vs IDE builds.


Yes, duplication is bad.  Does your customer need to build without the
IDE's headless build support?



> My question is, should this file .qnx_internal.mk be included in source code control?


If you need to share it with a system that doesn't have access to the
IDE to generate this file, and which expects to check out all of its
requirements from source control, then yes.  Also, maintaining it in
source control ensures that every member of the development team has the
same build settings for consistent behaviour.


> Does it change with changes to build settings in the IDE?  Or is this file pretty static?


>From what I can tell in the IDE source code, the entire content of this
file is hard-coded.  There are different templates for the file for
radically different situations.  For example, if you are using IDE 4.6
targeting an SDP 6.3.2 install, then the .qnx_internal.mk file will look
different.  Likewise if the project is a Photon Application Builder
project, was imported from a BSP, or converted from a CDT-style make
project.  But, in an SDP 6.4.1 context, if you create a new "QNX C/C++"
project, the .qnx_insternal.mk file will not be expected to change.
Note that it can be altered slightly from release to release, which is
why it has a version stamp comment.


> It has some nice conventions in it, and I'd like to use it, but in the past, I've had to check out this file manually 
when changing projects settings or other (now since forgotten) IDE operations.


If you need to check the file out, yourself, in order to complete some
IDE operation, then that's a bug.  The IDE should trigger check-outs
automatically in systems such as ClearCase that use an explicit
check-out policy (assuming, of course, that you have installed the
appropriate team provider plug-in).


> Any insight into this would be helpful.  I'm having a hard time making this work in a way that is a no-brainer for our
 customer.
> 
> Thanks much
> Kevin
>  
> 
> _______________________________________________
> General
> http://community.qnx.com/sf/go/post32942


Re: .qnx_internal.mk and automated builds  
Hey Christian,

I can see today is going to be a fantastic day.  Thanks very much for the insight, that really helps.

What is headless?  Yesterday, I was feeling a bit headless, but I m not sure that is in the same context :)

Best,
Kevin
Re: .qnx_internal.mk and automated builds  
Hi, Kevin,

My pleasure.

"Headless" is a jargon term for a process that runs without a user
interface, in a context where often we expect to have one.  So, in this
case, the "normal" case for QNX projects is to build them in the IDE.  A
headless build uses the new-in-4.6 mkbuild script to run the IDE,
without the workbench UI, to compile the projects.

Cheers,

Christian


On Thu, 2009-07-02 at 10:56 -0400, Kevin Stallard wrote:

> Hey Christian,
> 
> I can see today is going to be a fantastic day.  Thanks very much for the insight, that really helps.
> 
> What is headless?  Yesterday, I was feeling a bit headless, but I m not sure that is in the same context :)
> 
> Best,
> Kevin
> 
> 
> _______________________________________________
> General
> http://community.qnx.com/sf/go/post32967
> 


________________________________________________________________________

Christian W. Damus
Software Developer, IDE Team
QNX Software Systems
Re: .qnx_internal.mk and automated builds  
>  I've had to check out this file manually when changing projects settings or 
> other (now since forgotten) IDE operations.
> 
> 
> If you need to check the file out, yourself, in order to complete some
> IDE operation, then that's a bug.  The IDE should trigger check-outs
> automatically in systems such as ClearCase that use an explicit
> check-out policy (assuming, of course, that you have installed the
> appropriate team provider plug-in).
> 

Past IDE's have been a problem, I would add the .project and .cprojects, those would check out w/o a problem, but I seem
 to recall having issues with .qnx_internal.mk.  

However, I will try it again and see how it goes.  I can see that I really need to keep this file.

Thanks again
Kevin