From: <jt...@us...> - 2007-06-20 00:27:50
|
Revision: 277 http://ro-oslib.svn.sourceforge.net/ro-oslib/?rev=277&view=rev Author: jtytgat Date: 2007-06-19 17:27:48 -0700 (Tue, 19 Jun 2007) Log Message: ----------- Documentation update Modified Paths: -------------- branches/simplified-build/!OsLib/!Readme branches/simplified-build/!OsLib/docs/ChangeLog branches/simplified-build/!OsLib/docs/OSLib_readme Added Paths: ----------- branches/simplified-build/!OsLib/docs/COPYING Removed Paths: ------------- branches/simplified-build/!OsLib/Make,fd7 branches/simplified-build/!OsLib/docs/Copying Property Changed: ---------------- branches/simplified-build/!OsLib/ Property changes on: branches/simplified-build/!OsLib ___________________________________________________________________ Name: svn:ignore - Bin release zips tree,ffd + Bin Release Modified: branches/simplified-build/!OsLib/!Readme =================================================================== --- branches/simplified-build/!OsLib/!Readme 2007-06-20 00:13:15 UTC (rev 276) +++ branches/simplified-build/!OsLib/!Readme 2007-06-20 00:27:48 UTC (rev 277) @@ -1,127 +1,127 @@ -!OSLib.!Readme 20051231 +OSLib +===== -****************************************************************************** - Introduction ------------ - This is the OSLib source release. It contains everything you need to build -(and modify) OSLib, its build tools, and OSLibSupport. It is available by CVS +This is the OSLib source release. It contains everything you need to build +and modify OSLib, its build tools, and OSLibSupport. It is available by SVN from http://ro-oslib.sourceforge.net. +Building +-------- -***************************************************************************** +Currently from OSLib 7 onwards, the only supported build method is via +cross-compilation using GCCSDK http://gccsdk.riscos.info/. Also from +OSLib 7 onwards we can build an AOF (APCS-32) OSLib version using +GCCSDK 3.4.6 and an ELF (APCS-32) OSLib version using GCCSDK 4. - Directory structure - ------------------- +The deliverables for each of the AOF and ELF builds are: - NOTE: It is essential that the work directory can handle long file names; -unpack the archive or checkout the repository into an appropriate RaFS, -LongFiles, or XFiles directory, as appropriate, if you do not have RISC OS 4. +- OSLib-unix.zip: zip archive containing the OSLib32 library and the C & + assembler headers in Unix filename format (i.e. header.h seen on Unix, or, + header/h seen on RISC OS). + This should be used by the OSLib users cross-compiling on a non-RISC OS + host. Users who build OSLib themselves via cross-compiling, it is easier + to install this library and its headers directly in the GCCSDK environment + using the 'install' Makefile target instead of unzipping the contents of + this zip file. - The top level directory is called !OSLib (Under CVS the work directory is -called OSLib, which contains !OSLib). Double-clicking on this causes a number -of environment variables (all names are prefixed with 'OSLib$'), which are -used during the build process. Any environment variables pointing to an -installed OSLib are overwritten, so that !OSLib becomes the reference, and -any builds use the development library contained herein. +- OSLib-wide.zip: zip archive containing the OSLib library and the C & + assembler headers in RISC OS filename format (i.e. h.header on RISC OS). + This should be used by the OSLib users compiling on RISC OS. - Within !OSLib, there are a number of subdirectories:OSLibSupport contains -the sources to the OSLib Support library; Source contains the source to OSLib -itself, together with some test applications; and Tools contains the sources -to a number of tools required to build OSLib. +- OSLibSupport-unix.zip: zip archive containing the OSLibSupport32 library + and its header files for cross-compile usage. - Below these, OSLibSupport contains a subdirectory for each of the major -components of the library, plus a 'h' directory containing the public headers -(under UNIX, these are .h files); Source contains subdirectories for each of -the four component areas of OSLib (to avoid more than 77 files per -directory); it also contains a Test directory in which reside a number of -test files which are executed during the build process. Tools contains -further subdirectories for each of the specialised tools used to build OSLib. -Of these, DefMod (now at version 2) is the most important, translating the -SWI definitions into assembler sources. Bison is required to interpret the -DefMod language definition file, and is used to build DefMod. ReduceAOF -removes redundant chunk headers form the AOF files before placing them in the -library, thus minimising the size of the latter. IndexHelp and BindHelp are -used to process the Help output from DefMod to create the StrongHelp manuals. -Rm is a small file deletion utility, with the ability to process multiple -arguments, and StripDepends is used to clean a Make file of all the -(installation-specific) dynamic dependency information. Since some of these -tools are themselves dependant upon OSLib, the build order is critical. +- OSLibSupport.zip: zip archive containing the OSLibSupport32 library + and its header files for use under RISC OS. - Additional subdirectories are created during the build process. +- OSLibStrongHelp.zip: zip archive containing StrongHelp file of this + OSLib release. -***************************************************************************** +- OSLibExamples.zip: zip archive containg the PRM example files - Building OSLib under RISC OS - ---------------------------- +- OSLib-src.zip: all SVN sources used to make this release happen. - You'll need: +[ Note: pre-OSLib 7 releases also had a 'deep' OSLib deliverable for RISC OS + users who were using OSLib on a filing system supporting only a limited + number of files per directory like some of the old FileCore disc formats. + As this is of a very limited interest today, this is no longer supported. ] - 1. An (image) filing system capable of handling long file names. Many of -the source files have names longer than 10 characters, and problems will -arise if these are not preserved. +Build prerequisites +------------------- - 2. A Make utility. OSLib is currently built using Acorn's AMU, which is -part of the Castle's C/C++ 6.0 package. It is essential that at least that -version is used, as the makefile structure uses the latest extensions. A -current WIP is to produce a set of make files to build OSLib using the GCCSDK -package under RISC OS; it is quite possible to do this, but currently you're -on your own. +At least GCCSDK 3.4.6 R2 (http://gccsdk.riscos.info/) for AOF builds, +and GCCSDK 4 for ELF builds. You need also to have setup the environment +variables GCCSDK_INSTALL_CROSSBIN and GCCSDK_INSTAL_ENV. Cfr. the GCCSDK +installation notes. - 3. An Assembler. Currently, DefMod, in its RISC OS incarnation, is -hard-wired to call Acorn's ObjAsm, again part of Acorn's C/C++ package. I am -not aware of any other assembler being successfully used; indeed this is -unlikely without changes to DefMod. +[ Note: the GCCSDK 3.4.6 AOF compiler is $GCCSDK_INSTALL_CROSSBIN/gcc + while the GCCSDK 4 ELF compiler is + $GCCSDK_INSTALL_CROSSBIN/arm-unknown-riscos-gcc. It is therefore + possible to have both GCCSDK 3.4 and GCCSDK 4 installed using the + same $GCCSDK_INSTALL_CROSSBIN value. Mind that you can not share + the same $GCCSDK_INSTALL_ENV value as this would result in overwriting + AOF or ELF header and libraries files during cross-compilation. ] - 4. A C compiler. Currently the tools and OSLibSupport are built using -Norcroft C, but I know of no reason why GNU C should not be used. +Supported Makefile targets +-------------------------- - The entire build process is divided into a number of sub-projects, each -with its own make file, named AMUmakefile, to distinguish it from any other -make system. +For the GCCSDK cross-compiler user: - To build OSLib "out of the box", under RISC OS, all that is necessary is to -double-click on the 'Make' TaskObey, which will look after the entire build -process and place a distributable OSLib in the 'release' sub-directory. There -are 2 versions provided: "wide", which uses a wide directory structure -suitable for RISC OS 4, or any file system capable of containing more than 77 -files per directory; and "deep", which contains a file structure suitable for -RISC OS 3. Directory "OSLibHelp" contains the StrongHelp manual, and -directory "OSLibSupport" contains the optional support library. On my -StrongArm Risc PC the entire process takes just over two hours to complete; -somewhat longer over a network connection. + - install-aof/install-elf: builds & installs the AOF respectively + the ELF OSLib version in the GCCSDK environment. + - install: defaults to install-elf target. - For more experienced users, there are more targets in the AMUmakefile, -which may be invoked by typing "make <target>" at the command line, with the -default directory set appropriately. Of these, "Make distclean" is perhaps -one of the more useful; it restores the directories to their condition at -chaeckout. "Make dist" creates a set of zip files for distribution; for this -you require a copy of infozip in the run path (I used to use SparkFS, but -this has problems compressing such a large archive). +For the OSLib developer using the GCCSDK cross-compiler: - No doubt I've got some of it wrong, and will be grateful for any comments -and amendments. + - all: builds the ELF OSLib version and the StrongHelp OSLib file. + The build results are written in Source/Build subdirectory. + - oslib-elf: builds the ELF OSLib version + - oslib-aof: builds the AOF OSLib version + - cstrong: builds the StrongHelp OSLib file. + - tools: builds the host OSLib tools which are going to be used during + the main OSLib building. -***************************************************************************** +For the OSLib release manager: - Building OSLib under UNIX/Linux - ------------------------------- + - release: builds both the AOF and ELF OSLib libraries and StrongHelp + OSLib file, does some sanity testing and finally zips the end result + in the Release/CROSSGCC_AOF and Release/CROSSGCC_ELF subdirectories. - Building under Linux is possible with the support of the GCCSDK, which can -be found at <http://gccsdk.riscos.info/>. You'll need at least GCCSDK -3.4.5 Release 1. +For all: - Otherwise, building under LINUX is very similar to building under RISC OS. -In a terminal, in the appropriate directory, type "make all", and watch it -all happen by magic. It all happens in 10 minutes on my 1.1 GHz Linux box; a -vast improvement over the 2 hours or more under RISC OS. Again "make dist" -and "make distclean" work very much as expected. Dig around inside the -GNUmakefiles for other less-useful targets. + - clean: to remove all build generated files. - Thanks are due to Druck, for supplying the initial "portable OSLib", upon -which, with enhancements, the tools are built. +Tools +----- -***************************************************************************** +The Tools directory contains further subdirectories for each of the +specialised tools used to build OSLib. Of these, DefMod (now at version 2) is +the most important, translating the SWI definitions into assembler sources. +Bison is required to interpret the DefMod language definition file, and is +used to build DefMod. - Tony van der Hoff. mailto: <osl...@co...> +ReduceAOF (not used for ELF builds) removes redundant chunk headers form the +AOF files before placing them in the library, thus minimising the size of the +latter. + +IndexHelp and BindHelp are used to process the Help output from DefMod to +create the StrongHelp manuals. + +Rm is a small file deletion utility, with the ability to process multiple +arguments, and StripDepends is used to clean a Make file of all the +(installation-specific) dynamic dependency information. Rm and StripDepends +are currently not used (nor needed) in the cross-compilation build of OSLib. + +Since some of these tools are themselves dependant upon OSLib, the build +order is critical. + +Credits +------- + +Thanks are due to Druck, for supplying the initial "portable OSLib", upon +which, with enhancements, the tools are built via cross-compilation. + +-EOF- Deleted: branches/simplified-build/!OsLib/Make,fd7 =================================================================== --- branches/simplified-build/!OsLib/Make,fd7 2007-06-20 00:13:15 UTC (rev 276) +++ branches/simplified-build/!OsLib/Make,fd7 2007-06-20 00:27:48 UTC (rev 277) @@ -1,7 +0,0 @@ -| !OSLib.Make 20040304 -Echo <sys$time> !OSLib.Make %0 -SetEval OSLib$Slot 4*1024 -do wimpslot -min <OSLib$Slot>K -if "<C$MODE>" = "32" then Do AMU -f <Obey$Dir>.AMUmakefile -desktop %0 APCS=32 -if "<C$MODE>" <>"32" then Do AMU -f <Obey$Dir>.AMUmakefile -desktop %0 APCS=26 -Echo <sys$time> Done Copied: branches/simplified-build/!OsLib/docs/COPYING (from rev 273, branches/simplified-build/!OsLib/docs/Copying) =================================================================== --- branches/simplified-build/!OsLib/docs/COPYING (rev 0) +++ branches/simplified-build/!OsLib/docs/COPYING 2007-06-20 00:27:48 UTC (rev 277) @@ -0,0 +1,248 @@ + GNU GENERAL PUBLIC LICENCE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, U S A + Everyone is permitted to copy and distribute verbatim copies + of this licence document, but changing it is not allowed. + + Preamble + + The licence agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +Licence is intended to guarantee your freedom to share and change free +software---to make sure the software is free for all its users. The +General Public Licence applies to the Free Software Foundation's +software and to any other programme whose authors commit to using it. +You can use it for your programmes, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public Licence is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programmes; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a programme, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this licence which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENCE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This Licence Agreement applies to any programme or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public Licence. The +"Programme", below, refers to any such programme or work, and a "work based +on the Programme" means either the Programme or any work containing the +Programme or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Programme's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public Licence and to the absence of any warranty; and give any +other recipients of the Programme a copy of this General Public Licence +along with the Programme. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Programme or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Programme or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public Licence (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified programme normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the programme under these + conditions, and telling the user how to view a copy of this General + Public Licence. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Programme (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Programme (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the programme in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Programme except as expressly provided under this General Public Licence. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Programme is void, and will automatically terminate your rights to use +the Programme under this Licence. However, parties who have received +copies, or rights to use copies, from you under this General Public +Licence will not have their licences terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Programme (or any work based +on the Programme) you indicate your acceptance of this licence to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Programme (or any work based on the +Programme), the recipient automatically receives a licence from the original +licensor to copy, distribute or modify the Programme subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public Licence from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Programme +specifies a version number of the licence which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Programme does not specify a version number of +the licence, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Programme into other free +programmes whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAMME IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAMME, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAMME "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAMME IS WITH YOU. SHOULD THE +PROGRAMME PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAMME AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAMME (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMME TO OPERATE WITH ANY OTHER +PROGRAMMES), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programmes + + If you develop a new programme, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the programme. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the programme's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This programme is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public Licence as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This programme is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public Licence for more details. + + You should have received a copy of the GNU General Public Licence + along with this programme; if not, write to the Free Software + Foundation, Inc, 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the programme is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public Licence. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +programme. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the programme, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + programme `Gnomovision' (a programme to direct compilers to make passes + at assemblers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! Modified: branches/simplified-build/!OsLib/docs/ChangeLog =================================================================== --- branches/simplified-build/!OsLib/docs/ChangeLog 2007-06-20 00:13:15 UTC (rev 276) +++ branches/simplified-build/!OsLib/docs/ChangeLog 2007-06-20 00:27:48 UTC (rev 277) @@ -5,19 +5,22 @@ OSLib 7.00 - In development ---------- +* Enhancements: + - Added support for GCCSDK 4 ELF output (also APCS-32 only). + (xxx, John Tytgat / John-Mark Bell) * Bug Fixes: - Macro.h/Macro.Hdr: the macro Bool didn't write its result to first parameter but modified the 2nd one. (20070505-1, John Tytgat) -* Build Environment +* Build Environment: - OSLib sources are now on sourceforge.net SVN managed i.s.o. CVS. (20070414-1, John Tytgat) OSLib 6.90 - Tony van der Hoff 02/01/2007 ---------- -* Enhancemnts +* Enhancements: - Added 7 Reporter SWIs (20060125-2, Phil Ludlam) -* Bug Fixes +* Bug Fixes: - PCI.swi: Amended PCI_HardwareAddress to return Address in R4 (20060718-1, Christian Ludlam) - OS.swi: As documented in http://www.iyonix.com/32bit/32bit.shtml @@ -36,7 +39,7 @@ for consistency. (20070102-1, Christian Ludlam) -* Build Environment +* Build Environment: - GNUmakefile: install target didn't properly copy all generated header files (20060125-1, John Tytgat) - DefMod2: gcc in GCCSDK 3.4.6 Release 1 onwards will pass the APCS flavour @@ -49,7 +52,7 @@ OSLib 6.80 - Tony van der Hoff 31/12/2005 ---------- -* Enhancemnts +* Enhancements: - Added constants for FPSR bits to FPEmulator (20041020-1, Tom Hughes) - Added extra Iconbar flags definitions (20050102-1, John Tytgat) - Added BufferModifyFlags2, which returns old and new flags values @@ -63,7 +66,7 @@ - Added definitions for LineEditor, ZapFontMenu, and ZapRedraw modules (20050506-2, Christian Ludlam) -* Bug Fixes +* Bug Fixes: - Toolbox_RegisterObjectModule and Toolbox_RegisterPostFilter had SWI numbers swapped. (See OSLib 6.21 fixes) Corrected back again. (20040816-1, Christian Ludlam) @@ -71,7 +74,7 @@ under UNIX (20040922-1, Stefan Bellon) - OSLibSupport library was missing Event* functions. (20041121-1 David Ruck) -* Build Environment +* Build Environment: - OSLibSupport is no longer built with 26 bit linkage, because GCC no longer supports it. - OSLibSupport is now additionaly available with a Unix file structure @@ -162,7 +165,7 @@ - Added INCLUDE definition to bison makefile and corrected typo in bison readme (20031229-2 J.Tytgat) -* Bug fixes +* Bug fixes: - Corrected character case for NEEDS Wimp in Alarm.swi (20031227-1, Tony van der Hoff). - Corrected PCI_EnumerateFunctions using reserved keyword 'class' for @@ -244,7 +247,7 @@ - Added OS_ReadLine32, OS_HeapSort32 and OS_SubstituteArgs32 for 32 bit support in RISC O S 5. (Tom Hughes) -* Build Environment +* Build Environment: - OSLib may now be built under either a 26-bit or a 32-bit environment. This is autodetected, and the build tools are linked accordingly. To this end YACC, which had been coded in pre-ANSI C, has been replaced by a modern port of @@ -312,7 +315,6 @@ OSLib Version 6.30 - Tony van der Hoff - 01/11/2001 ------------------ Enhancements: - * DefMod: - The new portable DefMod2 is now part of the Tools distribution (Stewart Brodie) this allows DefMod to be built and/or executed under UNIX as well as RISC OS. @@ -346,7 +348,6 @@ OSLib Version 6.22 - Tony van der Hoff - not released ------------------ Enhancements: - * OSLib: - ToolAction gadget is defined (TV) - New constant Draggable_DragEndedToolboxIds (TV) Deleted: branches/simplified-build/!OsLib/docs/Copying =================================================================== --- branches/simplified-build/!OsLib/docs/Copying 2007-06-20 00:13:15 UTC (rev 276) +++ branches/simplified-build/!OsLib/docs/Copying 2007-06-20 00:27:48 UTC (rev 277) @@ -1,248 +0,0 @@ - GNU GENERAL PUBLIC LICENCE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, U S A - Everyone is permitted to copy and distribute verbatim copies - of this licence document, but changing it is not allowed. - - Preamble - - The licence agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -Licence is intended to guarantee your freedom to share and change free -software---to make sure the software is free for all its users. The -General Public Licence applies to the Free Software Foundation's -software and to any other programme whose authors commit to using it. -You can use it for your programmes, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public Licence is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programmes; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a programme, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this licence which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENCE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This Licence Agreement applies to any programme or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public Licence. The -"Programme", below, refers to any such programme or work, and a "work based -on the Programme" means either the Programme or any work containing the -Programme or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Programme's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public Licence and to the absence of any warranty; and give any -other recipients of the Programme a copy of this General Public Licence -along with the Programme. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Programme or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Programme or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public Licence (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified programme normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the programme under these - conditions, and telling the user how to view a copy of this General - Public Licence. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Programme (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Programme (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the programme in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Programme except as expressly provided under this General Public Licence. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Programme is void, and will automatically terminate your rights to use -the Programme under this Licence. However, parties who have received -copies, or rights to use copies, from you under this General Public -Licence will not have their licences terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Programme (or any work based -on the Programme) you indicate your acceptance of this licence to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Programme (or any work based on the -Programme), the recipient automatically receives a licence from the original -licensor to copy, distribute or modify the Programme subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public Licence from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Programme -specifies a version number of the licence which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Programme does not specify a version number of -the licence, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Programme into other free -programmes whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAMME IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAMME, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAMME "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAMME IS WITH YOU. SHOULD THE -PROGRAMME PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAMME AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAMME (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMME TO OPERATE WITH ANY OTHER -PROGRAMMES), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programmes - - If you develop a new programme, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the programme. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - <one line to give the programme's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - This programme is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public Licence as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This programme is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public Licence for more details. - - You should have received a copy of the GNU General Public Licence - along with this programme; if not, write to the Free Software - Foundation, Inc, 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the programme is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public Licence. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -programme. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the programme, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - programme `Gnomovision' (a programme to direct compilers to make passes - at assemblers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! Modified: branches/simplified-build/!OsLib/docs/OSLib_readme =================================================================== --- branches/simplified-build/!OsLib/docs/OSLib_readme 2007-06-20 00:13:15 UTC (rev 276) +++ branches/simplified-build/!OsLib/docs/OSLib_readme 2007-06-20 00:27:48 UTC (rev 277) @@ -1,10 +1,8 @@ -!OSLib.docs.OSLib_readme 20020410 - Introduction ------------ OSLib is a set of functions and C headers to provide complete coverage of -the RISC O\xA0S application programmer's interface in C. It provides access from -C code to all RISC O\xA0S system calls ("SWI's") which is +the RISC OS application programmer's interface in C. It provides access from +C code to all RISC OS system calls ("SWI's") which is efficient: often, memory access is completely avoided; @@ -17,26 +15,26 @@ register-safe: hides (often idiosyncratic) register allocation; language-independent: although the headers are specific to C, the - library is not - any A\xA0P\xA0C\xA0S-conformant language can call it. + library is not - any APCS-32 conformant language can call it. It also provides names for all the data structures and reason codes used by -the A\xA0P\xA0I. Code that uses it is superior to similar code using _kernel_swi() +the API. Code that uses it is superior to similar code using _kernel_swi() or _swix(), both in terms of the compile-time checking that is available, and the size and speed of the code generated. - OSLib provides a very convenient interface to the RISC O\xA0S programmer, + OSLib provides a very convenient interface to the RISC OS programmer, since all the facilities of the C compiler are available to catch errors and generate good code. It is conceptually very small, in that it is completely documented by this file. As a bonus, code written using it is smaller and faster than code written using other means. - OSLib is copyright \xA9 1994-2002 Jonathan Coxhead and OSLib maintainers. It + OSLib is copyright (c) 1994-2002 Jonathan Coxhead and OSLib maintainers. It is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. OSLib is released under the GNU public licence - for details see the file -"copying" included with this release. The copyright holders have granted a +"COPYING" included with this release. The copyright holders have granted a relaxation of the conditions of this licence to allow its use in constructing proprietary software. This means that it is free software itself, but applications linked to it need not be. It follows that any changes to OSLib @@ -65,22 +63,23 @@ Installation ------------ Having downloaded the appropriate archive for your system - the one named -'OSLib' is suitable for directory structures with less than 77 files per -directory, whereas 'OSLibRO4' fequires a file system which can handle more -than 77 files per directory - you will see a number of -files, and one directory. +"OSLib-wide.zip" is to be used on RISC OS on a filing system supporting +a large number of objects per directory (read: not the old FileCore format +with its 77 objects per directory limitation) The file "OSLib-unix.zip" +is to be used on UNIX-alike systems for cross-compilation of RISC OS +programs. -The file you are presently reading is OSLib-readme, and contains the basic +The file you are presently reading is "OSLib-readme", and contains the basic introduction to OSLib, and how to install it. -Make sure you read the "Copying" text so that you know what you may and may +Make sure you read the "COPYING" text so that you know what you may and may not legally do. The "ChangeLog" text contains details on how OSLib has evolved over the -years, and will be useful if you're upgrading, and and you find it's +years, and will be useful if you're upgrading, and and you find its behaviour to be subtly different. -The "API_readme" file describes the relationships between OSLib names, and +The "OSLib_API" file describes the relationships between OSLib names, and the associated PRM descriptions. Finally, the OSLib directory is what it's all about; you should copy this to @@ -93,7 +92,7 @@ Using OSLib ----------- At the top level in the OSLib directory you will find an Obey file named -SetVars. When this is run, the OSLib: path is set up. If you want to change +"SetVars". When this is run, the OSLib: path is set up. If you want to change it, that's fine, but the default is really all you need. Make sure SetVars is executed before you attempt to build anything using the library. @@ -101,7 +100,7 @@ --------- In any source file from which you want to call an OSLib veneer, you will have to specify where it is to be found with a line of the type -#include\xA0"oslib/wimp.h". In this example, the "oslib/" prefix ensures that +#include�"oslib/wimp.h". In this example, the "oslib/" prefix ensures that "wimp.h" is loaded from oslib, as opposed to any other library. When compiling, you need to ensure that the compiler can locate OSLib, by specifying "-IOSLib:" on the command line. @@ -114,26 +113,35 @@ For GCC the equivalent command would be (note that there are better ways of using GCC to compile and link): - gcc -c -IOSLibSupport:,OSLib: -o foo.o foo.c + gcc -c -IOSLibSupport: -IOSLib: -o foo.o foo.c +For assembling with GCC (AOF): + + gcc -c -IOSLib: -xassembler-with-cpp -mapcs-32 -Wa,-objasm,-apcs32 -o foo.o foo.s + +For assembling with GCC (ELF): + + gcc -c -IOSLib: -xassembler-with-cpp -o foo.o foo.s + Please refer to your compiler manual for details on the use of the command line. - The above gives the preferred way of using OSLib. However, much existing -code will not contain the "oslib/" prefix in the #include line. If you don't -want to change things, and are not worried about name collisions, then you -may specify "-IOSLibInclude:" on the command line, which will allow the -compiler to locate files without the prefix. In new code, always use the -prefixed form for safety. - Linking ------- The only OSLib-specific precaution required for the linking stage is to include OSLib (and OSLibSupport, if required) on the command line. -A typical Link command would be: +A typical Norcroft Link command would be: link foo1.o foo2.o ... OSLibSupport:OSLibSupport.o OSLib:OSLib.o C:stubs.o +For GCC (AOF) this is: + + gcc -o final foo1.o foo2.o ... OSLibSupport:OSLibSupport.o OSLib:OSLib.o + +For GCC (ELF) this is: + + gcc -o final foo1.o foo2.o ... -LOSLibSupport: -lOSLibSupport -LOSLib: -lOSLib + Again, this is inherent in the tool usage, there is nothing special about its use with OSLib. @@ -147,5 +155,4 @@ The OSLib web-site is at http://ro-oslib.sourceforge.net. -------------------- -Tony van der Hoff. -20030227 +OSLib Developers. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |