Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ TheIDE » U++ TheIDE: Other Features Wishlist and/or Bugs » What is the purpose of "GCC.bm.in" in tarbals? (Several proposition about IDE)
icon5.gif  What is the purpose of "GCC.bm.in" in tarbals? [message #43760] Sun, 05 October 2014 15:09 Go to next message
Klugier is currently offline  Klugier
Messages: 1075
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello,

I can not fully understand what is the purpose of file "GCC.bm.in". The first problem I have found is when you copy this file to "~/.upp/theide" the build method will be not detected. At least until the time when you change the name to "GCC.bm". Moreover even "Build methods" (Ide -> Setup -> Build methods..) cannot import this file. It can only works with "GCC.bm". Simply rename do the trick.

Do we need "GCC.bm.in" which is the same file as "GCC.in", but it posses import limitation?

P.S. 1
"GCC.bm" is not included in nightly tarbals. What is interesting here is that makefile can react on succesfull ide build and copy "GCC.bm" to following directory "~/.upp/theide" (Do not override if the file exists!!!). This small change will guarantee that IDE will works out of the box on POSIX.

P.S. 2
IDE should have capability to export certain build method or all methods.

Sincerely,
Klugier


U++ - one framework to rule them all.

[Updated on: Sun, 05 October 2014 17:33]

Report message to a moderator

Re: What is the purpose of "GCC.bm.in" in tarbals? [message #43762 is a reply to message #43760] Mon, 06 October 2014 08:40 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

Hi Klugier

Klugier wrote on Sun, 05 October 2014 15:09
Hello,

I can not fully understand what is the purpose of file "GCC.bm.in". The first problem I have found is when you copy this file to "~/.upp/theide" the build method will be not detected. At least until the time when you change the name to "GCC.bm". Moreover even "Build methods" (Ide -> Setup -> Build methods..) cannot import this file. It can only works with "GCC.bm". Simply rename do the trick.

Do we need "GCC.bm.in" which is the same file as "GCC.in", but it posses import limitation?

P.S. 1
"GCC.bm" is not included in nightly tarbals. What is interesting here is that makefile can react on succesfull ide build and copy "GCC.bm" to following directory "~/.upp/theide" (Do not override if the file exists!!!). This small change will guarantee that IDE will works out of the box on POSIX.

Files called "*.in" are commonly used in Makefiles and other build systems as templates. They do not contain fully functional content, but they are used as input to the build system, which fills in the missing parts to create full file. This is mostly used to allow different files on different systems, the build system always fill correct values. In this particular case, it takes care of the library paths, which can be different between various Linux distributions.

Klugier wrote on Sun, 05 October 2014 15:09

P.S. 2
IDE should have capability to export certain build method or all methods.

Why? It seems perfectly fine for me to just copy the file *.bm from ~/.upp/ide if I need it to move somewhere else. It is actually simpler then exporting it, because I don't have to start TheIDE first Smile

Best regards,
Honza
Re: What is the purpose of "GCC.bm.in" in tarbals? [message #43764 is a reply to message #43762] Mon, 06 October 2014 18:57 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1075
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello dolik.rce,

The main problem with "GCC.bm.in" is that it cannot be used as build method. Moreover tarbal dosen't offer any build method (.bm file), so after successful compilation, ide cannot compile any application. This is huge drawback, because you will need to configure ide that you dosen't know.

Like I sad before we can copy "GCC.bm" to "~/.upp/ide" after build and then user can use ide out of the box.

GCC.bm IS THE SAME FILE AS GCC.bm.in !!!

Quote:

Why? It seems perfectly fine for me to just copy the file *.bm from ~/.upp/ide if I need it to move somewhere else. It is actually simpler then exporting it, because I don't have to start TheIDE first Smile

Fine, but new user dosen't know where ide stores its build methods. Moreover "~/.upp/ide" is hard to find. I have discovered this directory after one year of using Upp. So the idea of adding export beside import option seems to be reasonable.

Sincerely,
Klugier


U++ - one framework to rule them all.

[Updated on: Mon, 06 October 2014 20:34]

Report message to a moderator

Re: What is the purpose of "GCC.bm.in" in tarbals? [message #43766 is a reply to message #43764] Tue, 07 October 2014 06:27 Go to previous message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

Klugier wrote on Mon, 06 October 2014 18:57
The main problem with "GCC.bm.in" is that it cannot be used as build method. Moreover tarbal dosen't offer any build method (.bm file), so after successful compilation, ide cannot compile any application. This is huge drawback, because you will need to configure ide that you dosen't know.
It is not intended to be used as build method. It is only template, the actual build method is created when building TheIDE.

Klugier wrote on Mon, 06 October 2014 18:57
Like I sad before we can copy "GCC.bm" to "~/.upp/ide" after build and then user can use ide out of the box.
GCC.bm is installed automatically, when you call either "make install" or the "doinstall" script directly.


Klugier wrote on Mon, 06 October 2014 18:57
GCC.bm IS THE SAME FILE AS GCC.bm.in !!!
No, it is not. The GCC.bm.in contains placeholder "((INCLUDES))". This string is replaced by "domake" script, to create actuall GCC.bm, using this exact code:
if which pkg-config
then
	sed -e "s@-I((INCLUDES))@`pkg-config --cflags-only-I gtk+-2.0`@g" uppsrc/Makefile.in >uppsrc/Makefile
	sed -e "s@((INCLUDES))@`pkg-config --cflags-only-I gtk+-2.0|sed -e s/-I//g -e \"s/ /;/g\"`@g" GCC.bm.in >GCC.bm
else
	sed -e "s@((INCLUDES))@@g" uppsrc/Makefile.in >uppsrc/Makefile
	sed -e "s@((INCLUDES))@@g" GCC.bm.in >GCC.bm
fi

That means, that if there is pkg-config installed on the target machine, it will be used to determine correct include paths for gtk+-2.0, which is known to vary between its versions.

Klugier wrote on Mon, 06 October 2014 18:57
Quote:

Why? It seems perfectly fine for me to just copy the file *.bm from ~/.upp/ide if I need it to move somewhere else. It is actually simpler then exporting it, because I don't have to start TheIDE first Smile

Fine, but new user dosen't know where ide stores its build methods. Moreover "~/.upp/ide" is hard to find. I have discovered this directory after one year of using Upp. So the idea of adding export beside import option seems to be reasonable.

I'm not saying I'm strictly opposed to the idea. Just that it seems redundant to me. It could be also fixed by providing better documentation. Actually, it is even documented in the Getting started with TheIDE article, there is only slight mistake in the directory path.

Honza
Previous Topic: [solved] TheIDE "Run Options..." bug
Next Topic: U++ Drawing/Positioning Issue with Linux Mint Mate + Compiz
Goto Forum:
  


Current Time: Thu Mar 28 15:00:19 CET 2024

Total time taken to generate the page: 0.01078 seconds