[Bf-committers] keeping it cross platform

Michel Selten bf-committers@blender.org
02 Dec 2002 20:21:09 +0100


On Sun, 2002-12-01 at 15:43, Ton Roosendaal wrote:
> Hi all,
<snip>
> It would be very wise, accompanying the 'autoconf' release, to publish a 
> spreadsheet outlining all MINIMUM revisions (versions) of OS's, 
> compilers, external libraries and tools for each Blender version. That 
> then could serve as a reference for developers, and provide relevant 
> information for developers who like to support a different OS as well.
> 
> Anyone here interested in gathering & compiling this information?

Okay, I'm ready to take a shot :)

First of all I think it's necessary to know what the intended audience
is for a specific audience. I've come up with three different groups:

1) Blender developers (the people who have cvs access).
   This group of people like to work with the latest stuff and should be
   able to do so as long as the other two groups don't have to bother
   with following every latest tiny feature in a (Maybe even obscure)
   developer tool.
2) Users who build from source (those who download a source package).
   This group like to compile an application from source because of two
   reasons:
   a) There is no binary package available for their system.
   b) They want to use the best possible optimizations for their system.
   This group should need only the basic developer tools necessary to
   build Blender, but (if possible) not the tools to support the
   development environment.
3) Users who install a binary (RedHat, Debian, ... Windows MSI package).
   Those people don't want to be bothered with development stuff. They
   just want to be able to download the latest (stable) release of
   Blender and install it without having to compile anything. They do
   however need some support libraries such as OpenGL.

Since my main system is Linux, I only created this table with Linux
suport in mind. I think that for each OS a seperate table should be
made. When a tool is used on multiple platforms (think gcc for example),
the oldest possible version of that tool should be supported for those
platforms. Example: if gcc 3.1 is common on Linux, but MacOS currently
only supports 3.0, gcc 3.0 should be used as a minimum on both
platforms.

In the table below I've put 4 columns:
- the development tool or support library
- CVS (group 1 in the above list of groups of people)
- Source (group 2 in the above list of groups of people)
- Binary (group 3 in the above list of groups of people)

               CVS             Source                 Binary
------------------------------------------------------------------------
autoconf      2.53 (*5)          -                      -
automake      1.6.3              -                      -
(g)awk        3.1.0 (*1)         -                      -
cvs           1.11.1p1           -                      -
doxygen (*2)  -                  -                      - 
gcc           2.96              2.96                    -
glibc (*4)    ?                  ?                      ?
Linux (*4)    2.2.0             2.2.0                  2.2.0
libtool       1.4.2             1.4.2                   -
mesa          3.4.2             3.4.2                  3.4.2 (*3)
python        2.2.1             2.2.1                  2.2.1 (*3)
sed           3.02  (*1)         -                      -
sh            2.05.1            2.05.1                  -

(*1) These tools are needed for checking correct versions of the basic
     tools such as autoconf and automake. These checks will be built in
     ./bootstrap
(*2) I'm not sure if every developer has to build API documentation from
     source. I think one or two persons should be apointed in performing
     this task.
(*3) These should be needed when a binary is built that can link against
     shared libraries.
(*4) I am just taking a guess at those 2. I'm running kernel 2.4.8, but
     I'm guessing that people just even older versions of the kernel. I
     just put some question marks for the glibc version. Is it important
     to know? pthreads?
(*5) That must be 2.54 if we need AC_FUNC_REALLOC. Otherwise it may be
     even older.

This is a first shot at the list of tools used by and needed to build
Blender. I've probably forgotten one or more tools/libraries. Just tell
me.

Also, the versions of those tools I have listed, are the ones currently
on my system, and with those I'm capable of building (and linking)
Blender. I've not yet taken the time to look at each tool individually.
Therefore it is possible that those version numbers may go down.

I will try to put this table and some descriptive text in a docbook-XML 
document. Hmm, another challenge for me :)

Okay, those were a lot of issues written down about the tools used by
Blender. What do you think? (If you have another (hopefully better) way
of writing down the list of tools and/or categories, just speak up...)

Michel