AW: AW: C/C++ projects don't work for suse 7.2, suse7.3 and upcoming kdevelop 2.0.2

W. Tasin tasin at fhm.edu
Thu Nov 8 19:54:53 UTC 2001


Markus Kuehni wrote:

> Walter wrote:
> 
> 
>>To finish my 2.000001 cents:
>>WANTED code which updates Makefile.ams, Makefile.(dist|cvs),
>>configure.in(.in) and admin-dir (and also considering the actual content
>>of the old files or using *.kdevprj).
>>
> 
> Hi
> 
> I'm pretty new to KDevelop and much of U*X, so please forgive me (and tell
> me) if the following is naive:
> 
> What always bugs me with these auto*-approaches is the ballast you have to
> carry with you. One of the biggest difficulties for a newbie is simply
> finding out which files are input and which are output in all that clutter
> (*.in.in.in).


It also bugs me, but we have to see the history and the advantages you 
get from it.

kdevelop was first only used for the KDE/QT projects and like gnome 
(with autogen.sh/autoconf/automake) they are using a certain system 
(developing environment) to get a kind of the platform independance for 
different compilers, frameworks (Solaris, BSD, gccfront, egcs etc.).
Here you had and you still have more than the intel-platform like MS 
Wi**d*s HAD once ago.

Even creating an own compiler, debugger and IDE would break the goal of 
kdevelop IMHO and why we should do so, we would have to invent the wheel 
again....
So using the compilers from the UN*CES is still what we should do, but 
this means to have an developing environment which will be always 
up-to-date and due to lack of manpower we have not the possibility to 
maintain this.

Another point: Don't forget first at all kdevelop was used to develop 
kde applications and kde uses the automake/autoconf stuff.

That was the historical reason, now the advantage from my point of view:

If everything of the automake/autoconf stuff inside your project is ok, 
you will have the possibility to give the tarball of your project to 
one, who wants to compile it under FreeBSD or Solaris etc. and it SHOULD 
work.
If a new kind of linux distribution or a new kind un*x comes up the gnu 
software foundation tries to adapt this for the new stuff and step by 
step the parts (autoconf, automake, libtool, etc.) will be updated.

Remember first we had only make and several Makefiles for every special 
machine (or environment variables which had to be patched by the 
end-user of your product); then there was imake (which creates first 
Makefiles from Imakefile) now as another step of the evolution we have 
automake/autoconf which creates Makefile.in from Makefile.am and then by 
invoking "configure" converting Makefile.in to Makefile.

The more abstract it's getting the more complicated it becomes for the 
developing user (in this case the kdevelop-user). (NB: I personally 
think with Makefile.am and configure.in, it's less complicated then 
Imakefile, but I was also scared the first time I've seen it and that 
what I miss is a kind of tutorial of auto*-stuff - that's the greatest 
problem at all IMHO)


> 
> In most cases of KDevelop-ed projects (from scratch) all you'd need to save
> is
> 
> 1. the wizard template type used to boot-strap the project
> 2. a list of the file added afterwards
> 3. the settings set through one of KDevelops dialogs
> 
> Of course I know you can directly go to the auto*-files and change things,
> but if I *don't* *want* *to* , I should be able to let KDevelop know.


Yes, until a certain point you are right; but this is the task of a new 
project management and as already described in the last mail it isn't 
that easy.

One advantage you would give up with this method is to distribute a 
package as tarball, because everyone who wants to use your "product" 
must have kdevelop and KDE to compile it, there isn't ONE EXE file, the 
binary differs from system to system and from distribution to 
distribution (e.g. look at the different linux-file system specs 
/usr/lib/qt, /opt/kde2, /opt/kde/share/doc... only a little example). 
With the actual method you can untar it and build and install it from 
the console.


> 
> There should be a global option called "let KDevelop manage my project"
> which operates only on the above input and if necessary (when tools and
> templates change) re-generates/overwrites all auto*-files.


We are still in the same position as described above. KDevelop hasn't a 
project management, which allows to do so. You would have been 
up-to-date with all project-types (especially with the GUI one's) and an 
update system, which allows also to interpret new stuff and insert it at 
the right place of the right file, without corrupting an user changement.

Think about how often the macros of acinclude.m4.in or gnome.m4 have 
changed and are getting new features/improvements (python support, java 
support, etc.). If KDevelop wouldn't use these stuff it had to invent 
something similar, which had to be equivalent in every version and 
development stage of the GUI/compilers/frameworks (and the IDE).


> 
> This way a "pure" KDevelop project (within the concept of one of the wizard
> templates) could be distributed in a very compact and abstract form that is
> capable to evolve and adapt to different platforms (Windows, one day?).
> 

 > There would just be the .kdevprj file (minus the auto*-files content),
 > ChangeLog & Co. and the real source files.


Sounds like own compilerS, debuggerS in one ide. IMHO thats more the 
intention of some java ides (JBuilder, Forte, etc.), but for c- or c++ 
language usage?
Don't forget ANSI c++ and ANSI c have no intention to support gui 
programming AFAIK.

> Please don't misunderstand me: I know auto*-tools are very powerful and
> valuable for distribution and configuration and they should still be used in
> the background (on U*X).
> 


No, I don't misunderstand you... I already searched for another method 
(and e.g. other make systems where also discussed here), but it is 
really hard to find an effective and realistic compromise...

> -- Mark
> 


Ciao

Walter


-
to unsubscribe from this list send an email to kdevelop-devel-request at kdevelop.org with the following body:
unsubscribe »your-email-address«



More information about the KDevelop-devel mailing list