home *** CD-ROM | disk | FTP | other *** search
-
- 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 (full mirror)
- ftp.uni-erlangen.de 131.188.3.2 pub/amiga/ade (partial mirror)
-