home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
ade-misc-src.tgz
/
ade-misc-src.tar
/
docs
/
README
< prev
next >
Wrap
Text File
|
1996-09-28
|
13KB
|
302 lines
A M I G A D E V E L O P E R S E N V I R O N M E N T
P R O J E C T I N F O R M A T I O N
(Updated 28-Aug-96)
[Note: This is a preliminary draft which will change greatly as it is conver-
ted to texinfo format (from which we can automatically generate AmigaGuide
files, GNU info files, dvi files, and PostScript files.]
=============
What Is This?
=============
Because of the hard work from a number of members of the Amiga community, we
now have a large body of development tools that have been ported to the
Amiga and are available in both source and binary form. We will refer to
this software set as the "Amiga Developers Environment" or "ADE" for short.
The name reflects the fact that not only is this environment intended to
meet the needs of Amiga Developers for tools, examples, documentation, and
other useful material, but that it is also supported by the developer
community itself and not any single entity, commercial or otherwise. This
ensures that it will always be available and supportable by this community.
One of the goals of the ADE is to have a completely self hosting
environment. I.E. that everything within it be compilable by the provided
compilers. It should be possible for the recipient of these utilities to
make whatever changes or bug fixes they want in any piece of code, and then
rebuild and use that fixed version (and hopefully send those changes back
for integration into future releases).
Although the ADE started out as ports of tools covered by the GNU General
Public License, the GNU Library General Public License, or some code covered
by the "Berkeley License", it certainly isn't limited to those. Any package
which is available in source is eligible to be part of the ADE.
There are several mailing lists available for people that are interested
in getting ongoing ADE information or participating in discussions about the
ADE. For information about what lists are available and how to subscribe,
send email to "majordomo@ninemoons.com" with just "help" as the body of the
message.
============
ORGANIZATION
============
The ADE is can be divided into several distinct files trees, as follows:
ADE-bin Binary tree where executables, runtime libraries,
user documentation, etc live in "ready-to-run"
form. Uses "ADE:" as an alias (Amiga assign).
The files in this area are built from source in
ADE-src or copied from files in ADE-src.
ADE-src Source tree which contains all the sources for
components of the ADE. Given the ADE-src tree, and
a copy of the ADE-bin tree, it should be possible
to completely recreate the ADE-bin and ADE-dist
trees.
ADE-dist Tree which contains material from ADE-bin and
ADE-src, archived in a form suitable for BBS or ftp
access. Also contains baseline source archives
for packages which have been modified and diff
files for the Amiga sources relative to this
baseline.
The ADE-dist tree normally contains several files for each program.
As an example, here are the names of the files for the GNU C compiler.
Each file also has an associated product info file which has the same
name but an additional suffix of ".pi":
gcc-X.X.X-base.tgz Baseline source before incorporation into the ADE.
In some cases base files have been reorganized to
match the same file tree structure as used for the
Amiga source in the ADE, so that diff files can be
mechanically generated.
gcc-X.X.X-bin.lha The binary package for GNU C, C++, and Objective C.
gcc-X.X.X-src.tgz The Amiga source from which the supplied binaries
were compiled.
gcc-X.X.X-diffs.gz The diffs from the baseline to the Amiga source.
The baseline source, amiga source, and diff file
form a complete source distribution. In theory,
only any two of these are needed, since the third
can be regenerated from either of the other two.
Note that ".tgz" is short for ".tar.gz", which is a gzip compressed tar
archive. To extract the contents, you would do something like:
tar -xvpzf gcc-X.X.X-base.tgz
If this causes you any problems, you can use pipes to do the decompression
and tar extraction as two separate processes, without creating a temporary
file:
zcat gcc-X.X.X-base.tgz | tar -xvpf -
Without using pipes, you can create a temporary file to extract from,
as follows:
zcat gcc-X.X.X-base.tgz >gcc-X.X.X-base.tar
tar -xvpf gcc-X.X.X.tar
============
INSTALLATION
============
Currently the only supported method of installing components of the ADE is
to create a directory which will be the root of the ADE binary tree, assign
ADE: to this directory, cd to ADE:, and use lha to extract the contents of
the packages you wish to install (everything is archived relative to ADE:).
For example, the following illustrates populating the ADE binary tree with
the minimum set of packages that we would recommend for doing serious C or
C++ development. Replace -X.X- with the appropriate version numbers for
the current release:
makedir dh0:ADE
assign ADE: dh0:ADE
cd ADE:
lha -mraxe x ADE-misc-bin.lha
lha -mraxe x binutils-X.X-bin.lha
lha -mraxe x bison-X.X-bin.lha
lha -mraxe x diffutils-X.X-bin.lha
lha -mraxe x fd2inline-X.X-bin.lha
lha -mraxe x fifolib-X.X-bin.lha
lha -mraxe x fileutils-X.X-bin.lha
lha -mraxe x findutils-X.X-bin.lha
lha -mraxe x flex-X.X-bin.lha
lha -mraxe x gcc-X.X-bin.lha
lha -mraxe x grep-X.X-bin.lha
lha -mraxe x gzip-X.X-bin.lha
lha -mraxe x ixemul-X.X-bin.lha
lha -mraxe x ixemul-X.X-env-bin.lha
lha -mraxe x ixemul-X.X-inc-bin.lha
lha -mraxe x libamiga-bin.lha
lha -mraxe x libg++-X.X-bin.lha
lha -mraxe x libm-X.X-bin.lha
lha -mraxe x libnix-X.X-bin.lha
lha -mraxe x make-X.X-bin.lha
lha -mraxe x patch-X.X-bin.lha
lha -mraxe x pdksh-X.X-bin.lha
lha -mraxe x sed-X.X-bin.lha
lha -mraxe x sh-utils-X.X-bin.lha
lha -mraxe x tar-X.X-bin.lha
lha -mraxe x termcap-X.X-bin.lha
lha -mraxe x textutils-X.X-bin.lha
The following should be optional, unless you want to remake a "configure"
file, want EMACS, or currently need a curses library.
lha -mraxe x autoconf-X.X-bin.lha
lha -mraxe x emacs-X.X-bin.lha
lha -mraxe x ncurses-X.X-bin.lha
You may want to examine the ixemul.library flavors in ADE:Sys/Libs and
select one more appropriate for your specific machine. For example,
A4000 users might want to remove the default ixemul.library (68000)
and copy ixemul040fpu.library to ixemul.library.
If you want to just do libnix development and not ixemul development, note
that you still need the include files from ixemul-X.X-inc-bin.lha.
You should also ensure that you have an environment variable called
HOME, which should point to a local directory that can be used to
contain "reconfiguration scripts" that many tools look for. As an
example, the following is a useful definition for $HOME/.inputrc:
# My ~/.inputrc file is in -*- text -*- for easy editing with Emacs.
#
# Notice the various bindings which are conditionalized depending
# on which program is running, or what terminal is active.
#
# In all programs, all terminals, make sure this is bound.
"\C-x\C-r": re-read-init-file
# Amiga console specials
"": delete-char
"A": previous-history
"B": next-history
"C": forward-char
"D": backward-char
There are some files that we cannot yet distribute with the ADE for legal
reasons, such as the AT/VISCorp AmigaOS include files (required for AmigaOS
specific programming), or the AT/VISCorp AmigaOS fd files (used by fd2inline
to generate the inline files). Sometimes these files contain errors or other
problems that need to be fixed before they can be used with the ADE. These
patches are contained in the "non-ADE-patches-src.tgz" file. You should get
this file and extract it in a temporary location with:
gzip -d non-ADE-patches-src.tgz
tar -xvf non-ADE-patches.tar
This will create a directory called non-ADE-patches, which will have
individual patch files that can be applied with the "patch" program or by
hand editing (not recommended) the affected files. See each patch file for
specific directions and an explanation of the patch.
Once you are done, arrange to assign ADE: in your startup, arrange to
execute ADE:Sys/S/ADE-Startup at boot time, and reboot.
===
CVS
===
All of the source in the ADE is kept in a centralized repository and managed
by CVS (Concurrent Versions System). This allows many developers to work
simultaneously on the source for a particular program without having to
"freeze" the source and thus impede progress by other developers that want
to work on the same sources.
Using remote CVS, a distributed team of cooperating developers can check out
a copy of the source from the repository machine located anywhere on the
internet, make local changes to that source, test those changes, then check
those changes back into the repository. All other developers that have a
copy of that source checked out will have those changes inserted into their
copy automatically the next time they do a CVS "update", and in the rare
case where their changes conflict with the latest repository changes, they
will be notified of the conflict and thus be able to resolve it before
checking in their own changes.
CVS will also arrange to log changes to particular modules (groups of files
which may be one or more programs) in the repository and send notifications
via email to interested developers that want to know about changes to the
modules they are working on. For example, if one of the developers working
on gcc makes a change, all of the other developers which have signed up to
receive notices of gcc changes will receive a notice via email that
typically consists of a copy of the ChangeLog entries for the files that are
affected by the change.
This system also allows "lurking developers", I.E. those that want access to
the latest source simply to build new binaries. Even though they are not
making any changes themselves, they can maintain a complete and up-to-date
source base with a minimal amount of effort, by simply doing a CVS update
every few days. These people are not parasites; they provide a very useful
function by working with the latest source base on a wide variety of
machines with a wide variety of configurations, and can quickly provide
feedback when ill advised changes to the source base cause trouble that the
developers did not catch during their own testing.
To find out more about CVS, obtain a current copy of the source or binary
distribution which contains the documentation in postscript form, and then
print and read the documents "CVS II: Parallelizing Software Development",
"Version Management with CVS", and "CVS Client/Server".
===============
ChangeLog Files
===============
All changes made to the source base in the repository must be accompanied by
appropriate entries to a ChangeLog file. A ChangeLog files documents what
changes were made to particular files and who made them. A sample (from the
gdb ChangeLog file) is:
Wed Aug 9 18:59:05 1995 Fred Fish <fnf@cygnus.com>
* defs.h (strchr, strrchr, strstr, strtok, strerror): Enclose in
#ifndefs to protect against previous definitions as macros.
Wed Aug 9 14:51:36 1995 Kung Hsu <kung@mexican.cygnus.com>
* xcoffread.c (xcoff_symfile_offset): Revert an unwanted change
that got in accidentally with Aug 1 change.
Sat Aug 5 09:07:28 1995 steve chamberlain <sac@slash.cygnus.com>
* remote-hms.c (hms_cmds): Get reg term right.
* monitor.c (monitor_fetch_register): If we see
a non-hex digit, just stop reading.
* remote.c (remote_wait): Change way $O is handled.
Most programs come with ChangeLog files, but those that don't will have one
created at the time they are imported into the repository. ChangeLog
entries can be easily created by using the EMACS command "C-x 4 A".
============
Mirror Sites
============
We are actively looking for mirrors for this material. If you have trouble
accessing the main ADE site (ftp.ninemoons.com:pub/ade) from your location
because of network delays, and regularly use a closer site for other ftp
needs, you may want to ask that site to mirror the ADE tree.
The ADE ftp tree can be found at the following locations:
Site Name IP Address Directory Comments
--------- ---------- --------- --------
ftp.ninemoons.com 165.247.33.6 pub/ade (master site)
ftp.grolier.fr 194.158.97.67 pub/amiga/ade (full mirror)
bilbo.di.unipi.it 131.114.4.62 pub/ade (latest + updates)
plukwa.lodz.pdi.net 194.92.208.7 amiga/dev/ADE (partial mirror)
ftp.uni-erlangen.de 131.188.3.2 pub/amiga/ade (partial mirror)