home *** CD-ROM | disk | FTP | other *** search
- This is the README.1ST file for DJGPP Version 2.01
-
- DJGPP is a free environment for developing 32-bit protected mode
- software in C/C++ under MS-DOS.
-
- Status and other information (online docs, FAQ, mail archives) are
- made available through the djgpp web pages at http://www.delorie.com/.
- Discussion of DJGPP and questions about its usage or features are
- through the djgpp news group (post to comp.os.msdos.djgpp) and djgpp
- mailing list (send your messages to <djgpp@delorie.com>, subscribe
- through <listserv@delorie.com>). Look on the web page for information
- on the latest versions of various DJGPP packages.
-
- Version information is in manifest/*.ver within each zip. Contents
- are in manifest/*.mft in each zip.
-
- A different, more complete (and longer) tutorial on how to get started
- with DJGPP was written by An <avly@remus.rutgers.edu> and is available
- by anonymous ftp from x2ftp.oulu.fi in the
- /pub/msdos/programming/djgpp2 directory, filename djtut-bm.zip. You
- can also read it on-line by pointing your Web browser to this URL:
-
- http://remus.rutgers.edu/~avly/djgpp.html
-
-
-
- THE DISTRIBUTION
- ****************
-
- The 'b' zips include the binaries and on-line documentation. At the
- time of writing this file, the various packages are:
-
- FAQ A short file which points you to other documents you should
- read (including the full FAQ list).
-
- v2/
- unzip386 A free program to unzip the archive (like PKUNZIP)
- djdev201 DJGPP V2 Development Kit and Runtime
- djlsr201 DJGPP V2 Base Library Sources
- djtst201 DJGPP V2 Test Programs
- djcrx201 DJGPP V2 For Building a Cross-to-DOS Compiler
- faq210b The full FAQ list in various formats (Info, ASCII, HTML...)
- faq210s The Texinfo sources of the FAQ and tools to generate all the
- different formats of the FAQ
- frfaq020 DJGPP FAQ en Francais
-
- v2apps/
- rhide11b Integrated Development Environment for V2
- rhide11s Sources for RHIDE
-
- v2gnu/
- bnu27b GNU binutils 2.7 for DJGPP V2
- bnu27s GNU binutils 2.7 sources
- bsh1147b GNU bash 1.14.7 for DJGPP V2
- bsh1147s GNU bash 1.14.7 sources
- bsn124b GNU bison 1.24 for DJGPP V2
- bsn124s GNU bison 1.24 sources
- dif271b GNU diffutils 2.7.1 for DJGPP V2
- dif271s GNU diffutils 2.7.1 sources
- em1934b GNU emacs 19.34 Binaries for DJGPP V2
- em1934l? GNU emacs 19.34 Elisp sources (3 files)
- em1934r? GNU emacs 19.34 Runtime support (3 files)
- em1934s? GNU emacs 19.34 sources (3 files)
- fil313b GNU fileutils 3.13 for DJGPP V2
- fil313s GNU fileutils 3.13 sources
- find41b GNU findutils 4.1 for DJGPP V2
- find41s GNU findutils 4.1 sources
- flx252b GNU Flex 2.5.2 for DJGPP V2
- flx252s GNU Flex 2.5.2 sources
- g770519b GNU Fortran77 0.5.19 for DJGPP V2
- g770519s GNU Fortran77 0.5.19 sources
- gcc2721b GNU GCC 2.7.2.1 for DJGPP V2
- gcc2721s GNU GCC 2.7.2.1 sources
- gdb416b GNU Debugger 4.16 for DJGPP V2
- gdb416s GNU Debugger 4.16 sources
- gdbm173b GDBM 1.7.3 binaries for DJGPP V2
- gdbm173s GDBM 1.7.3 sources
- gpc20b GNU Pascal 2.0 binaries for DJGPP V2
- gpc20s GNU Pascal 2.0 sources
- gpp2721b GNU G++ 2.7.2.1 for DJGPP V2 (no libs)
- gpt112b GNU Pascal with Turbo Pascal Extensions
- grep20b GNU grep 2.0 for DJGPP V2
- grep20s GNU grep 2.0 sources
- gwk302b GNU awk 3.0.2 for DJGPP V2
- gwk302s GNU awk 3.0.2 sources
- gzp124b GNU gzip 1.2.4 for DJGPP V2
- gzp124s GNU gzip 1.2.4 sources
- isp3120b GNU ispell 3.1.20 for DJGPP V2
- isp3120s GNU ispll 3.1.20 sources
- lgp271b GNU libg++ 2.7.1 for DJGPP V2
- lgp271s GNU libg++ 2.7.1 sources
- lss321b GNU less 321 binaries for DJGPP V2
- lss321s GNU less 321 sources
- mak375b GNU Make 3.75 for DJGPP V2
- mak375s GNU Make 3.75 sources
- obc2721b GNU ObjC 2.7.2.1 for DJGPP V2
- pat21b GNU patch 2.1 for DJGPP V2
- pat21s GNU patch 2.1 sources
- rcs5712b GNU rcs 5.7pl12 for DJGPP V2
- rcs5712s GNU rcs 5.7pl12 sources
- sed118b GNU sed 1.18 for DJGPP V2
- sed118s GNU sed 1.18 sources
- shl112b GNU sh-utils 1.12 for DJGPP V2
- shl112s GNU sh-utils 1.12 sources
- txi390b GNU texinfo 3.9 for DJGPP V2
- txi390s GNU texinfo 3.7 sources
- txt119b GNU textutils 1.19 for DJGPP V2
- txt119s GNU textutils 1.19 sources
-
- v2tk/
- alleg21 Allegro 2.1 source - game library
- bcc2grx Borland GUI to GRX interface for DJGPP V2
- bcserio Bill Currie's Serial Comms Package
- djgpptsr Example of writing TSRs with DJGPP
- gccsjis Patch to gcc to compile JIS src (beta)
- grx20 GRX 2.0 Graphics Library for DJGPP V2
- jkthpack JK's DOS Thread Package
- jptui37d JPTUI Text User Interface
- libkb100 Portable low-level keyboard library
- lmb051b JIS Multibyte library (beta)
- lmb051s JIS Multibyte library source (beta)
- lw03b JIS Wide-char library (beta)
- lw03s JIS Wide-char library source (beta)
- mkkbd3 Keyboard Handler Examples
- mttws121 Malcom Taylor's Windowing System
- pdc22 Public-domain Curses library
- rsxntdj1 RSX/NT for DJGPP
- sw21_dj1 SWORD Windowing system, Binaries for DJGPP V1
- sw21_dj2 SWORD Windowing system, Binaries for DJGPP V2
- sw21_doc SWORD Windowing system, documentations
- sw21_p1 SWORD Windowing system, Part 1
- sw21_p2 SWORD Windowing system, Part 2
- sw21_tc SWORD Windowing system, Binaries for TurboC
- tvisionb TurboVision libraries and headers
- tvisions TurboVision Sources
-
- v2misc/
- csdpmi3b CWSDPMI, Charles Sandmann's free DPMI server binaries and docs
- csdpmi3s CWSDPMI sources
- infng100 Convert INFO to Norton Guides
- mlp105b ML's Executable File Packer Binaries
- mlp105s ML's Executable File Packer Sources
- pmode11b PMODE stub for djgpp V2
- pmode11s PMODE stub for djgpp V2
- wmemu2b WM's 387 emulator binaries for DJGPP V2
- wmemu2s WM's 387 emulator sources for DJGPP V2
-
-
-
- GETTING STARTED
- ***************
-
- The info below is the minimum new users should know to get them up and
- running with DJGPP. Please read the DJGPP documentation and the FAQ
- list for further details. New users are encouraged to read the FAQ
- list in its entirety.
-
-
-
- What to download
- ----------------
-
- In general, download the binary distributions only; most of the people
- don't need the source distributions.
-
- To build C programs, you'll need djdev201.zip, gcc2721b.zip, and
- bnu27b.zip. For C++, also get gpp2721b.zip and lgp271b.zip. To read
- the online manuals, get txi390b.zip and run "info". If you don't have
- a DPMI server installed, you'll need csdpmi3b.zip. (Windows, QDPMI,
- 386Max, NWDOS, OpenDOS, OS/2, Win/NT and Linux DOSEmu all provide DPMI
- services, so you don't need CWSDPMI in those environments.) For more
- details, download faq210b.zip (the full FAQ list) and read Chapter 4
- there.
-
-
- Installation
- ------------
-
- 1. Create a directory for DJGPP, say C:\DJGPP. If you have version
- 1.x installed, it's best to delete the contents of its `bin/'
- subdirectory or move it to another directory (not on your PATH),
- and delete everything else from that installation. (Some of the
- problems reported by users of DJGPP v2 were caused by inadvertently
- mixing it with old v1.x programs.) The only program from v1.x that
- you should keep is `go32.exe'.
-
- 2. Unzip the zip files from that directory, preserving the directory
- structure. For example:
-
- pkunzip -d gcc2721b
- or
- unzip386 gcc2721b
-
- 3. After unzipping all the zip files, set the DJGPP environment
- variable to point to the file DJGPP.ENV in the main DJGPP
- installation directory and add its BIN subdirectory to your PATH.
- Assuming your DJGPP installation is rooted at C:\DJGPP, put these
- two lines into your autoexec.bat file:
-
- set DJGPP=C:\DJGPP\DJGPP.ENV
- set PATH=C:\DJGPP\BIN;%PATH%
-
- 4. Run the go32-v2.exe program without arguments:
-
- go32-v2
-
- It should report how much DPMI memory and swap space can DJGPP use
- on you system, like this:
-
- DPMI memory available: 8020 Kb
- DPMI swap space available: 39413 Kb
-
- (The actual numbers will vary according to amount of RAM installed
- on your system, the available disk space and the DPMI server.) If
- go32-v2 reports less than 4 MBytes of DPMI memory, read section 3.8
- of the FAQ. (If you have more than that, but want to get the
- optimal performance from your system, read that section anyway.)
-
-
- Compilation
- -----------
-
- GCC is a command-line compiler, which you invoke from DOS command
- line. To compile and link a single-file C program, use a command like
- this:
-
- gcc myfile.c -o myfile.exe -lm
-
- The -lm links in the lib/libm.a library (trig math) if needed. (Link
- order is significant, so if you need libm.a, always put `-lm' at the
- end of the command line.)
-
- To compile a C or C++ source file into an object file, use this
- command line:
-
- gcc -c -Wall myfile.c (for C source)
- or
- gcc -c -Wall myfile.cc (for C++ source)
-
- This produces the object file myfile.o. The `-Wall' switch turns on
- many useful warning messages which are especially beneficial for new
- users of GCC. (Other C++ extensions, like .cpp, are also supported,
- see section 8.4 of the FAQ for details.)
-
- To link several C object files into an executable program, use a
- command line such as this:
-
- gcc -o myprog.exe mymain.o mysub1.o mysub2.o
-
- This produces `myprog.exe' which can be run from the DOS prompt.
-
- To link a C++ program, use gxx instead of gcc, like this:
-
- gxx -o myprog.exe mymain.o mysub1.o mysub2.o
-
- This will automatically search the C++ libraries, so you won't need to
- mention them on the command line.
-
- You can also combine the compilation and link steps, like this:
-
- gcc -Wall -o myprog.exe mymain.c mysub1.c mysub2.c
-
- Further info about the plethora of GCC switches can be found in the
- GCC on-line documentation. To begin reading it, install the Texinfo
- package (txi390b.zip, see the ``On-line docs'' section below) and type
- this:
-
- info gcc invoking
-
-
-
- Development environment (aka IDE)
- ---------------------------------
-
- Currently, DJGPP doesn't come with an integrated environment of its
- own. You are free to choose any editor that can launch DOS programs
- and catch their output, to act as an IDE. Many people who work with
- DJGPP use a DOS port of GNU Emacs (it's available from the same place
- you got DJGPP) which can be compiled with DJGPP. Emacs is a very
- powerful editor (for example, it has a built-in Info reader, so you
- can read DJGPP documentation without leaving the editor), but many
- other free editors can serve as an IDE. The only task that these
- editors (including Emacs) cannot do is to run a debugger in a
- full-screen session.
-
- A DJGPP-specific IDE called RHIDE has recently been released and is
- now available to all DJGPP users. It features a Turbo C-style
- interface, auto-indentation, color syntax highlighting, automatic
- invocation of the DJGPP compiler, automatic Makefile generation,
- and easy access to the DJGPP online documentation. RHIDE also
- incorporates integrated and/or standalone debugging using the same
- functionality as the GNU Debugger (gdb). Since RHIDE is brand
- new, there are still revisions and bugfixes being made; visit
- http://www.tu-chemnitz.de/~rho/rhide.html for the latest information
- and updates.
-
-
-
- Debugging
- ---------
-
- To debug a program, you must first compile its source files with `-g'
- switch:
-
- gcc -c -Wall -g mymain.c
- gcc -c -Wall -g mysub1.c
- gcc -c -Wall -g mysub2.c
-
- and then link with `-g' as well:
-
- gcc -g -o myprog.exe mymain.o mysub1.o mysub2.o
-
- (Note that with v2.01 of DJGPP, it is no longer necessary to compile
- to a raw COFF output by omitting the `.exe' from the filename in order
- to debug programs. The new v2.01 debuggers are capable of reading an
- executable as well as the raw COFF. If you don't understand this,
- don't worry about it.)
-
- Then run your program under the debugger:
-
- fsdb myprog.exe
- or
- gdb myprog.exe
- or
- edebug32 myprog.exe
-
- (You will have to get gdb416b.zip if you want to debug with GDB.)
- FSDB has its help screen; press F1 to read it. GDB comes with Info
- docs (see below) which can be read with info.exe. Edebug32 is a
- seldom-used alternative debugger; type 'h' to get help.
-
-
-
- On-line docs
- ------------
-
- Most of the on-line documentation is organized in a special hypertext
- format used by the GNU project. Each package brings its docs which
- are files with .iNN extension and are unzipped into the info/
- subdirectory of your main DJGPP installation directory. To browse
- these docs, get and unzip the file txi390b.zip, then run info.exe. If
- you don't know how to use Info, press `?'.
-
-
-
- Compatibility with V2.00
- ------------------------
-
- If you are upgrading from version 2.00 of DJGPP to version 2.01, you
- should completely reinstall all the packages you need to use. Because
- of the different methods used by V2.01 to handle long command lines
- (and long filenames under Win95), mixing V2.00 and V2.01 programs can
- cause very subtle and difficult to debug problems. See the FAQ section
- 16.6 for more information.
-
-
-
- Compatibility with V1.x
- -----------------------
-
- Existing binaries compiled under DJGPP V1.x can be used for
- applications for which there is no v2.0 version. V1 programs cannot
- run V2 programs (but v2 programs *can* run v1 programs), so don't try,
- say, using v1.x Make to run v2.0 compiler.
-
-
-
-
- --- COPYRIGHT ---
-
- DJGPP V2 is Copyright (C) 1995 by DJ Delorie. Some parts of libc.a
- are Copyright (C) Regents of the University of California at Berkeley.
-
- GNU software (gcc, make, libg++, etc) is Copyright by the Free
- Software Foundation.
-
- DJGPP V2's copyright allows it to be used to produce commercial
- applications. However, if you include code or libraries that are not
- part of djgpp (like gnu's libg++) then you must comply with their
- copyrights. See Chapter 19 of the FAQ for more details.
-
-
- Enjoy!
-
-
- DJ Delorie
- dj@delorie.com
- http://www.delorie.com/
-