PDA

View Full Version : Dev tool of choice for SEQ?



cmore
01-02-2002, 11:18 AM
I have been working with linux for a couple months now and have played with the command-line GCC compiler. Although professionally a programer, I only have experience on M$ platforms in xbase, MSSQL, and some other odds and ends.

I was going to play with the SEQ code to learn more about cpp.

Any reccomendations on dev environments (linux based)? I was hoping for a GUI project manager/code editor/debugger. Is there one that will gracefully open up the SEQ project as is?

Thanks in advance for your time. It is much appreciated.

high_jeeves
01-02-2002, 11:27 AM
Although I have never tried it with ShowEQ, you might want to give KDevelop a try (www.kdevelop.org).

casey
01-02-2002, 12:03 PM
tools i use:

vi - editing code
emacs - editing code (rarely)
automake - easier than writing makefiles
autconf - turn those makefile templates into makefiles
gdb - debugging
ddd - debugging (since i dont know all the gdb commands and i'm lazy, this helps a lot)
cvs - version control
(lots of debian tools) - packaging up code/binaries

i generally dont call gcc/g++ directly, except on very small projects (single source file, etc), since automake/autoconf make it trivial to generate makefiles for you.

my dev environment consists of a couple eterms, usually 3 for editing code, and one to run make, and mozilla window or two to reference documentation.

heres a pic of my dev desktop in a rather cluttered state.
http://www.ece.utexas.edu/~webster/desktopss.jpg

cmore
01-02-2002, 04:24 PM
Since reading your posts, I have looked into it a bit and am now thinking I have some misunderstandings. Below is what I thought ./configure, make clean, make, and make install did in laymans terms. If my understanding is correct, I don't understand the need for automake. I also dont understand why you would have makefile templates if makefiles are generated from ./configure (see below). I also looked at KDevelop, and it claims to use it's own project files to control the IDE, but is compatable with automake/autoconf (assume in reference to GCC). Not sure if it will have trouble interpreting the non-auto-generated screen code contained in the SEQ project but i doubt it. I'll have a go at it soon.


./configure

Builds makefiles.
./ refers to the current directory. The configuration file is a script that is edited for cross-platform building of makefiles

make clean

gets rid of all of the existing binaries to force a full clean compile

make

compiles binaries - links

make install

Using the specifications initially keyed into the configure file script and inherited into the make files, it puts the built and linked binaries into the appropriate execution directory

casey
01-02-2002, 04:42 PM
here is a basic rundown of automake/autoconf

here is an example, lets say i have 2 programs i want to build, well call them progA and progB. progA needs the files 1.cpp, 2.cpp, common.cpp and 3.cpp to build, and progB needs common.cpp, A.cpp and B.cpp to build. We make an automake template like this



bin_PROGRAMS=progA progB

progA_SOURCES=1.cpp 2.cpp 3.cpp common.cpp
progB_SOURCES=common.cpp A.cpp B.cpp

MAINTAINERCLEANFILES=Makefile.in


and we call that Makefile.am

now we go setup configure.in, the configure template (beyond the scope of this document), and we'll assume it uses a config header and some custom autoconf macros. This is the basic run of events to turn this into a buildable project.

aclocal

this takes acinclude.m4 (custom autoconf macros) and creats aclocal.m4, which is used by autoconf/automake

autoheader

scans configure.in and creats a list of #defines for various features you are going to check for, places output usisally in a file called config.h.in

automake

scans configure.in and then translates Makefile.am into Makefile.in, which is suitable to be processed by autoconf

autoconf

scans configure.in, and some other things and creates the configure script.

configure

performs feature checks, translates Makefile.in into Makefile, config.h.in into config.h

at this point you have Makefiles capabable of building your project (if you setup the templates right), and you can fire off make.

if you use automake, you automatically get a lot of helpful make targets.

dist

creates a tarball of the project in a form that is ready for just ./configure; make; make install

distcheck

same as above, but the dist is checked to verify it works :)

all

compiles the project (default target, same as just typing make)

install

copies the compiled binaries, docs, map pages, package data, etc into thier installed locations

uninstall

deleted installed files

etc. All these targets and more are created from that snippet i included at the top, and then autoconf finalizes them. Autoconf/automake compliment eachother and are usually used together, not just one or the other.

your synopsis of the build process is correct, autoconf and automake and some other tools are what build that configure script you use for processing the automake-generated makefile templates.

when you run make -f Makefile.dist in showeq, you are calling aclocal, autoheader, automake, autoconf and libtool.

cmore
01-02-2002, 04:51 PM
Beatiful. Thanks much for the explanation.

Now that I understand how they all compliment each other, with SEQ in particular I am not so sure it is all that beneficial to have a GUI like KDevelop to work from, but I will go ahead and approach it from that angle. If nothing else, the creation of a KDevelop project that can still produce 'targets' with a make that work will familiarize me with GCC, linux, and probably the SEQ in general.

Thanks much for your time.