mirror of
https://github.com/gnustep/tools-make.git
synced 2025-05-31 01:10:56 +00:00
Version 1.2.1
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@12024 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
44ae0dc07b
commit
cfeb1a4622
11 changed files with 192 additions and 157 deletions
207
FAQ
207
FAQ
|
@ -1,7 +1,7 @@
|
|||
GNUstep Frequently Asked Questions with Answers
|
||||
***********************************************
|
||||
|
||||
Last updated 10 December 2001 Please send corrections to
|
||||
Last updated 1 January 2002 Please send corrections to
|
||||
<gnustep-maintainer@gnu.org>.
|
||||
|
||||
GNUstep General Information
|
||||
|
@ -59,17 +59,11 @@ site <http://www.gnustep.org> or it's mirror sites.
|
|||
What platforms does GNUstep run on?
|
||||
-----------------------------------
|
||||
|
||||
Well tested current builds:
|
||||
Ix86/GNU-Linux
|
||||
PPC/GNU-Linux
|
||||
Recent builds -
|
||||
Ix86 Unixware-2.? Ix86 FreeBSD-3.0 (ELF) Ix86 OpenBSD-2.4 (static
|
||||
libraries) Sparc SUNOS-4.1.3 PowerPC GNU/Linux
|
||||
|
||||
Probably a few days porting to any other Unix system where current
|
||||
gcc/egcs compilers and gdb debugger work. See the GNUstep-HOWTO file or
|
||||
<http://www.gnustep.org/information/machines_toc.html> for more
|
||||
machines.
|
||||
See the list of supported platforms at
|
||||
<http://www.gnustep.org/information/machines_toc.html> for information
|
||||
on what machines GNUstep builds on and what the status of the ports is.
|
||||
Probably a few days porting to any other Unix system where current
|
||||
gcc/egcs compilers and gdb debugger work.
|
||||
|
||||
Does GNUstep run on Windows?
|
||||
----------------------------
|
||||
|
@ -228,30 +222,32 @@ window manager) as your window manager.
|
|||
Is there a web site?
|
||||
--------------------
|
||||
|
||||
See http://www.gnustep.org/ - the main web site.
|
||||
See <http://www.gnustep.org/>.
|
||||
|
||||
When is GNUstep intended to be available?
|
||||
-----------------------------------------
|
||||
|
||||
It's usable now (for an experienced developer). Releases are made
|
||||
about every six months. However, if you are a serious developer, it's
|
||||
probably best to use the latest snapshots. See the GNUstep web site
|
||||
for a release schedule.
|
||||
It's usable now. Releases are made about every six months. However,
|
||||
if you are a serious developer, it's probably best to use the latest
|
||||
snapshots. See the GNUstep web site for a release schedule.
|
||||
|
||||
What is usable?
|
||||
---------------
|
||||
|
||||
gstep-make does pretty much what the makefiles in NeXTstep do.
|
||||
gstep-base (Foundation) stuff should work fine for almost all projects.
|
||||
gstep-db is only EOF-1.0 compatible but should work ok. gstep-gui
|
||||
(AppKit) is usable with the xgps backend, and you would probably have
|
||||
to fix some things in the gui library. Cut-and-paste works, services
|
||||
work, drag-and-drop works, the NSText classes partially work.
|
||||
gstep-xgps basic functionality is quite usable. gstep-xdps is mostly
|
||||
usable. DGS (Display Ghostscript) is usable but slow.
|
||||
* gstep-make does pretty much what the makefiles in NeXTstep do.
|
||||
|
||||
Compiling and Developing
|
||||
========================
|
||||
* gstep-base (Foundation) stuff should work fine for almost all
|
||||
projects.
|
||||
|
||||
* gstep-db is only EOF-1.0 compatible but should work ok.
|
||||
|
||||
* gstep-gui (AppKit) has a lot working but there is still stuff
|
||||
missing.
|
||||
|
||||
* DGS (Display Ghostscript) is usable but slow.
|
||||
|
||||
Compatibility with OPENSTEP/Cocoa/MacOSX
|
||||
========================================
|
||||
|
||||
Can I run NeXT OPENSTEP or Apple Rhapsody programs on GNUstep?
|
||||
--------------------------------------------------------------
|
||||
|
@ -264,20 +260,46 @@ complete GNUstep is at the time.
|
|||
Is it easy to port OPENSTEP and Rhapsody programs to GNUstep?
|
||||
-------------------------------------------------------------
|
||||
|
||||
It is probably easy for simple programs. You'll have to use nfmake
|
||||
<http://karl.nfox.com> to translate the PB.prject file to GNUstep
|
||||
Makefiles, or rewrite the Makefiles yourself. You will also have to
|
||||
translate the NIB files (if there are any) to GNUstep model files using
|
||||
the nib2gmodel program (from
|
||||
<ftp://ftp.gnustep.org/pub/gnustep/dev-apps>).
|
||||
It is probably easy for simple programs. There are some portability
|
||||
tools to make this easier
|
||||
(<http://www.gnustep.org/resources/source_port.html>), or rewrite the
|
||||
Makefiles yourself. You will also have to translate the NIB files (if
|
||||
there are any) to GNUstep model files using the nib2gmodel program
|
||||
(from <ftp://ftp.gnustep.org/pub/gnustep/dev-apps>).
|
||||
|
||||
Can I transfer archived data from GNUstep to Cocoa?
|
||||
---------------------------------------------------
|
||||
|
||||
Apple's archiving format is proprietary and not documented, so this
|
||||
poses a problem for anyone wanting to implement compatibility with it.
|
||||
However, even if we reverse engineered the format, there are enough
|
||||
differences between the class and ivar layouts to make this sort of
|
||||
compatibility difficult. Not to mention the fact that we would
|
||||
constantly have to keep up with the changes Apple made. Also Apple's
|
||||
archiving format, as far as we know, would not be compatible between
|
||||
different machines because of endiness issues, although GNUstep doesn't
|
||||
have this problem.
|
||||
|
||||
Your best bet is to implement your own archiving format that would
|
||||
work both with GNUstep and Cocoa. Fortuneatly, you don't have to start
|
||||
from scratch, since this has been essentially done for you in the
|
||||
nib2gmodel tool, which has an archiver that works both on GNUstep and
|
||||
Cocoa. It might be nice to split this off into a separate project to
|
||||
make it easier for other people to do the same thing.
|
||||
|
||||
Does distributed objects work between GNUstep and Cocoa?
|
||||
--------------------------------------------------------
|
||||
|
||||
See the answer to the previous question (on archive compatibility)
|
||||
for why this won't work either.
|
||||
|
||||
Is there an Interface Builder for GNUstep?
|
||||
------------------------------------------
|
||||
|
||||
There is an Interface Builder for GNUstep called Gorm, but it is in
|
||||
alpha release, so it may not work perfectly. You can get it from the
|
||||
GNUstep CVS repository (cvs -z3 checkout Gorm). The Project Manager
|
||||
ProjectCenter is also new.
|
||||
alpha release, so it may not work perfectly. You can download it from
|
||||
the ftp site or via http. The Project Manager ProjectCenter is also
|
||||
available.
|
||||
|
||||
Can I use my original NIB files?
|
||||
--------------------------------
|
||||
|
@ -286,8 +308,8 @@ Can I use my original NIB files?
|
|||
supports both the 'gmodel' format (which stores information as text
|
||||
(property-lists) and can therefore be edited 'by hand') and binary
|
||||
archive format (which can be edited by Gorm). There IS a conversion
|
||||
tool that can be compiled under OPENSTEP to convert OPENSTEP nib files
|
||||
to GNUstep gmodel files.
|
||||
tool called nib2gmodel that can be compiled under OPENSTEP to convert
|
||||
OPENSTEP nib files to GNUstep gmodel files.
|
||||
|
||||
Will code without NIB files work?
|
||||
---------------------------------
|
||||
|
@ -307,7 +329,7 @@ application that compiles cleanly under both GNUstep and Yellow Box.
|
|||
Do we have to have the NeXTstep look and feel?
|
||||
----------------------------------------------
|
||||
|
||||
Gnustep is aiming for something like the NeXTstep-3.3 look and feel
|
||||
Gnustep is aiming for something like the NeXTstep-3.3 look and feel.
|
||||
This is mostly determined by the gui backend library. In the case of
|
||||
the two existing backends (xdps and xgps), both are designed to look
|
||||
like NeXTstep/OPENSTEP. If someone wants to write a backend with a
|
||||
|
@ -318,7 +340,7 @@ Can one use the hybrid "Objective-C++"
|
|||
|
||||
that one could on the NeXT?
|
||||
|
||||
No - at present the GNU compiler (gcc or egcs) does not support
|
||||
No - at present the GNU compiler (gcc) does not support
|
||||
"Objective-C++" There are no specific plans to make it do so, but any
|
||||
volunteers to do it would be welcome.
|
||||
|
||||
|
@ -327,7 +349,7 @@ Is there a plan to support the Java/YellowBox Bindings?
|
|||
|
||||
Yes. The GNustep Java library/bridge called JIGS is available now.
|
||||
JIGS is a free (LGPL) Java Interface for GNUstep; it can automatically
|
||||
wrap Objective-C libraries based on GNUstep making them accessible
|
||||
wrap Objective-C libraries based on GNUstep, making them accessible
|
||||
directly to the Java programmer as if they were Java libraries. As a
|
||||
side effect, it is also possible to use the whole engine in the reverse
|
||||
way: JIGS provides a high level API to allow Objective-C programmers to
|
||||
|
@ -343,15 +365,21 @@ interface to that is not the same as the interface to the
|
|||
OPENSTEP/MacOS-X windows server. While someone could write a backend
|
||||
library to provide the interface, nobody has bothered to date.
|
||||
|
||||
Also - there is no known recent port to OPENSTEP of the base library.
|
||||
Also, the GNUstep base library is still being ported to Darwin.
|
||||
|
||||
Compiling and Developing
|
||||
========================
|
||||
|
||||
How can I help with GNUstep?
|
||||
----------------------------
|
||||
|
||||
1. Write/debug library code 2. Write documentation 3. Update the
|
||||
TODO list and library headers 4. Write applications
|
||||
1. Write/debug library code
|
||||
|
||||
Some general advice -
|
||||
2. Write documentation
|
||||
|
||||
3. Update the TODO list and library headers
|
||||
|
||||
4. Write applications
|
||||
|
||||
Let people know what you are doing. Break your project up into the
|
||||
smallest units you can. Feed back frequent updates to the maintainers.
|
||||
|
@ -381,8 +409,8 @@ How do I start writing code?
|
|||
backend libraries that volunteers can work on - just browse through the
|
||||
code and see if it conforms to the documentation.
|
||||
|
||||
Specific tasks are noted in the developers section on the
|
||||
www.gnustep.org website.
|
||||
Specific tasks are noted in the developers section on the GNUstep
|
||||
website.
|
||||
|
||||
Once you have coded something, you could always write a testcase and
|
||||
documentation for it :-)
|
||||
|
@ -390,10 +418,9 @@ documentation for it :-)
|
|||
How do I start writing documentation?
|
||||
-------------------------------------
|
||||
|
||||
Our documentation format is called gsdoc, which is an SGML format
|
||||
for Objective-C documentation in the same vein as XML. We are also
|
||||
trying to use Autodoc to self document source code. The gsdoc
|
||||
translator is included with the base library.
|
||||
All class documentation is written directly in the source code itself
|
||||
and translated using the autogsdoc program. See the source code and
|
||||
documentation for autogsdoc for information on documenting the classes.
|
||||
|
||||
Newcomers could write documentation for individual classes by
|
||||
comparing the OpenStep specification, the MacOS-X documentation, and
|
||||
|
@ -423,11 +450,7 @@ OpenStep specification or the MacOS-X documentation not being present
|
|||
in the GNustep libraries, it is also helpful to add the method
|
||||
prototypes to the library header files.
|
||||
|
||||
At the moment, send changes to Adam Fedor <fedor@gnu.org> or Richard
|
||||
Frith-Macdonald <richard@brainstorm.co.uk>
|
||||
|
||||
We are hoping to have a system where people can update the list
|
||||
directly.
|
||||
Send any changes or additions to <bug-gnustep@gnu.org>.
|
||||
|
||||
A beginner can look through the MacOS-X documentation, the OpenStep
|
||||
specification and the GNUstep source and contribute TODO items.
|
||||
|
@ -455,15 +478,12 @@ How do I start writing tests?
|
|||
either fix the problem, or add it to the task list.
|
||||
|
||||
To write testcases, you need to use anonymous CVS to install the
|
||||
latest gstep-core snapshot you can find. Then checkout the 'tests'
|
||||
module from CVS. In the 'tests' directory, you will find a regression
|
||||
testing framework for gstep-base. In order to use this you will also
|
||||
need a recent (v 1.3.2 or later) copy of Guile (you can get this from a
|
||||
GNU ftp site) and will need to hacke checked out, built, and installed
|
||||
the 'guile' package from the GNUstep CVS repository.
|
||||
|
||||
At present, there is no such framework for the gui library - If you
|
||||
are interested in working on one, contact <richard@brainstorm.co.uk>
|
||||
latest GNUstep snapshots you can find. Then checkout the 'tests' module
|
||||
from CVS. In the 'tests' directory, you will find a regression testing
|
||||
framework. In order to use this you will also need a recent (v 1.3.2
|
||||
or later) copy of Guile (you can get this from a GNU ftp site) and will
|
||||
need to hacke checked out, built, and installed the 'guile' package
|
||||
from the GNUstep CVS repository.
|
||||
|
||||
How do I start writing applications?
|
||||
------------------------------------
|
||||
|
@ -472,14 +492,6 @@ How do I start writing applications?
|
|||
applications that have been started, and email their owners to
|
||||
volunteer to help, or you can start your own project.
|
||||
|
||||
If you are starting your own project, you need to - 1. Get the
|
||||
latest snapshot of GNUstep and build it to use the 'xgps' or 'xdps'
|
||||
backend library. 2. Look at the example applications (particularly
|
||||
Ink.app) in the gstep-examples package directory as a basis for your
|
||||
work. 3. Be prepared to a) ask for help on the gnustep-discuss
|
||||
mailing list b) fix bugs and implement missing functionality in the
|
||||
gui and xgps libraries.
|
||||
|
||||
How can I help with the GNUstep website?
|
||||
----------------------------------------
|
||||
|
||||
|
@ -494,11 +506,10 @@ the latest snapshot of the GNUstep core you can find, update it from
|
|||
the CVS repository, and work with the contents of the appropriate
|
||||
documentation directory.
|
||||
|
||||
If you want to work on other parts of the website - capture the
|
||||
pages you want to edit in your web browser (at http://www.gnustep.org).
|
||||
If you can't do that, you can grab a copy of the website via anonymous
|
||||
CVS. See <http://savannah.gnu.org/cvs/?group_id=99> for instructions on
|
||||
how to do that.
|
||||
If you want to work on other parts of the website, you can grab a
|
||||
copy of the website via anonymous CVS. See
|
||||
<http://savannah.gnu.org/cvs/?group_id=99> for instructions on how to
|
||||
do that.
|
||||
|
||||
The main task with the website is to figure out which bits are
|
||||
out-of-date (or wrong) and update/mark-as-outdated as required.
|
||||
|
@ -507,16 +518,15 @@ How do I compile GNUstep on my machine?
|
|||
---------------------------------------
|
||||
|
||||
Read the file `GNUstep-HOWTO', which comes with the GNUstep
|
||||
distribution, and also is available separately on the GNUstep ftp
|
||||
sites. A PDF version also exists on the web site called
|
||||
`GnustepInstall.pdf'.
|
||||
distribution, and also is available separately on the GNUstep web site.
|
||||
|
||||
Are there any precompiled packages available?
|
||||
---------------------------------------------
|
||||
|
||||
Check <http://www.gnustep.org/resources/sources.html> for links to
|
||||
sites with RPMS, and perhaps in the future, Debian packages. In some
|
||||
cases. You can check the debian site for preconfigured GNUstep packages.
|
||||
cases. You can check the debian site for preconfigured GNUstep
|
||||
packages. Also check the BSD sites for GNUstep ports.
|
||||
|
||||
What are these type and size warnings?
|
||||
--------------------------------------
|
||||
|
@ -525,7 +535,7 @@ What are these type and size warnings?
|
|||
/usr/bin/ld: warning: type and size of dynamic symbol
|
||||
`__objc_class_name_NSConstantString' are not defined
|
||||
|
||||
are a common occurence and are do to a mismatch between gcc and ld.
|
||||
are a common occurence and are due to a mismatch between gcc and ld.
|
||||
They don't do any harm so they can be safely ignored. Apparently no one
|
||||
has bothered to fix them yet.
|
||||
|
||||
|
@ -574,10 +584,6 @@ initialization of static instances (such as @""-style string objects).
|
|||
corresponding NeXT functions; the GNU names conform to the GNU
|
||||
coding standards.
|
||||
|
||||
* GNU's runtime library has a new class heirarchy manipulating
|
||||
method called `-transmuteClassTo:'. It can change the class of an
|
||||
instance to a cousin class of the same instance-size.
|
||||
|
||||
* NeXT's compiler, `cc', is based on an old version of `gcc'. GNU's
|
||||
compiler is, of course, the latest version of `gcc', and therefore
|
||||
contains all the latest enhancements.
|
||||
|
@ -587,12 +593,12 @@ Does it allow a mixture of Objective C and C++?
|
|||
-----------------------------------------------
|
||||
|
||||
No. Unlike NeXT's `cc', GNU GCC does not support source files
|
||||
containing both Objective C and C++. People at Cygnus have mentioned
|
||||
that they would be willing to do the work--if they were paid for it, of
|
||||
course. Several people are interested in seeing this happen. Send
|
||||
email to `discuss-gnustep@gnu.org' if you are interesting in pushing
|
||||
this issue, so that the efforts of all those people interested can be
|
||||
coordinated.
|
||||
containing both Objective C and C++. Apple seems to be willing to
|
||||
merge their code back into the main GCC project, but this may take some
|
||||
convincing of the GCC maintainers due to the large number of changes
|
||||
necessary. Send email to `discuss-gnustep@gnu.org' if you are
|
||||
interesting in pushing this issue, so that the efforts of all those
|
||||
people interested can be coordinated.
|
||||
|
||||
Also, unlike NeXT's `cc', GNU GCC does not support the `extern
|
||||
"Objective-C"' construct.
|
||||
|
@ -622,12 +628,11 @@ portion of the OpenStep standard (the Foundation library).
|
|||
What is its current state of development?
|
||||
-----------------------------------------
|
||||
|
||||
It is about 98 percent of the way to having all the OpenStep classes
|
||||
(and the later OPENSTEP/Rhaspody classes) fully implemented. Normal
|
||||
work can already be done using the library since the missing 2 percent
|
||||
are the least-often-used features or are simply not up to date with the
|
||||
latest MacOS-X spec. Over 60,000 lines of code have already been
|
||||
written.
|
||||
GNUstep base is currently stable and implements probably 99% of the
|
||||
functionality of the OpenStep classes and most all of the new Carbon
|
||||
classes. Normal work can already be done using the library since the
|
||||
missing 1 percent are the least-often-used features or are simply not
|
||||
up to date with the latest Carbon spec.
|
||||
|
||||
What are the features of GNU Distributed Objects?
|
||||
-------------------------------------------------
|
||||
|
@ -722,9 +727,7 @@ that they were contracted for. (Because the work took longer than
|
|||
specified and was not completed, Aladdin agreed to waive approximately
|
||||
$10,000 in promised fees for the work that was actually done and
|
||||
delivered.) DGS works fairly well with a single context. Alpha
|
||||
channel and compositing currently doesn't work, but should before the
|
||||
end of 2000 (It's already been fixed in GNU Ghostscript 6.0, just not
|
||||
released).
|
||||
channel and compositing currently doesn't work.
|
||||
|
||||
What is the relationship between the Display Ghostscript Server and X Windows?
|
||||
------------------------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue