home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1998 March / Simtel-MSDOS-Mar1998-CD2.iso / disc2 / djgpp / v2 / readme.1st < prev   
Text File  |  1997-10-16  |  13KB  |  389 lines

  1. This is the README.1ST file for DJGPP Version 2.01
  2.  
  3. DJGPP is a free environment for developing 32-bit protected mode
  4. software in C/C++ under MS-DOS.
  5.  
  6. Status and other information (online docs, FAQ, mail archives) are
  7. made available through the djgpp web pages at http://www.delorie.com/.
  8. Discussion of DJGPP and questions about its usage or features are
  9. through the djgpp news group (post to comp.os.msdos.djgpp) and djgpp
  10. mailing list (send your messages to <djgpp@delorie.com>, subscribe
  11. through <listserv@delorie.com>).  Look on the web page for information
  12. on the latest versions of various DJGPP packages.
  13.  
  14. Version information is in manifest/*.ver within each zip.  Contents
  15. are in manifest/*.mft in each zip.
  16.  
  17. A different, more complete (and longer) tutorial on how to get started
  18. with DJGPP was written by An <avly@remus.rutgers.edu> and is available
  19. by anonymous ftp from x2ftp.oulu.fi in the
  20. /pub/msdos/programming/djgpp2 directory, filename djtut-bm.zip.  You
  21. can also read it on-line by pointing your Web browser to this URL:
  22.  
  23.     http://remus.rutgers.edu/~avly/djgpp.html
  24.  
  25.  
  26.  
  27. THE DISTRIBUTION
  28. ****************
  29.  
  30. The 'b' zips include the binaries and on-line documentation.  At the
  31. time of writing this file, the various packages are:
  32.  
  33. FAQ      A short file which points you to other documents you should
  34.            read (including the full FAQ list).
  35.  
  36. v2/
  37. unzip386 A free program to unzip the archive (like PKUNZIP) 
  38. djdev201 DJGPP V2 Development Kit and Runtime
  39. djlsr201 DJGPP V2 Base Library Sources
  40. djtst201 DJGPP V2 Test Programs
  41. djcrx201 DJGPP V2 For Building a Cross-to-DOS Compiler
  42. faq210b  The full FAQ list in various formats (Info, ASCII, HTML...)
  43. faq210s  The Texinfo sources of the FAQ and tools to generate all the
  44.           different formats of the FAQ
  45. frfaq020 DJGPP FAQ en Francais
  46.  
  47. v2apps/
  48. rhide11b Integrated Development Environment for V2
  49. rhide11s Sources for RHIDE
  50.  
  51. v2gnu/
  52. bnu27b   GNU binutils 2.7 for DJGPP V2
  53. bnu27s   GNU binutils 2.7 sources
  54. bsh1147b GNU bash 1.14.7 for DJGPP V2
  55. bsh1147s GNU bash 1.14.7 sources
  56. bsn124b  GNU bison 1.24 for DJGPP V2
  57. bsn124s  GNU bison 1.24 sources
  58. dif271b  GNU diffutils 2.7.1 for DJGPP V2
  59. dif271s  GNU diffutils 2.7.1 sources
  60. em1934b  GNU emacs 19.34 Binaries for DJGPP V2
  61. em1934l? GNU emacs 19.34 Elisp sources (3 files)
  62. em1934r? GNU emacs 19.34 Runtime support (3 files)
  63. em1934s? GNU emacs 19.34 sources (3 files)
  64. fil313b  GNU fileutils 3.13 for DJGPP V2
  65. fil313s  GNU fileutils 3.13 sources
  66. find41b  GNU findutils 4.1 for DJGPP V2
  67. find41s  GNU findutils 4.1 sources
  68. flx252b  GNU Flex 2.5.2 for DJGPP V2
  69. flx252s  GNU Flex 2.5.2 sources
  70. g770519b GNU Fortran77 0.5.19 for DJGPP V2
  71. g770519s GNU Fortran77 0.5.19 sources
  72. gcc2721b GNU GCC 2.7.2.1 for DJGPP V2
  73. gcc2721s GNU GCC 2.7.2.1 sources
  74. gdb416b  GNU Debugger 4.16 for DJGPP V2
  75. gdb416s  GNU Debugger 4.16 sources
  76. gdbm173b GDBM 1.7.3 binaries for DJGPP V2
  77. gdbm173s GDBM 1.7.3 sources
  78. gpc20b   GNU Pascal 2.0 binaries for DJGPP V2
  79. gpc20s   GNU Pascal 2.0 sources
  80. gpp2721b GNU G++ 2.7.2.1 for DJGPP V2 (no libs)
  81. gpt112b  GNU Pascal with Turbo Pascal Extensions
  82. grep20b  GNU grep 2.0 for DJGPP V2
  83. grep20s  GNU grep 2.0 sources
  84. gwk302b  GNU awk 3.0.2 for DJGPP V2
  85. gwk302s  GNU awk 3.0.2 sources
  86. gzp124b  GNU gzip 1.2.4 for DJGPP V2
  87. gzp124s  GNU gzip 1.2.4 sources
  88. isp3120b GNU ispell 3.1.20 for DJGPP V2
  89. isp3120s GNU ispll 3.1.20 sources
  90. lgp271b  GNU libg++ 2.7.1 for DJGPP V2
  91. lgp271s  GNU libg++ 2.7.1 sources
  92. lss321b  GNU less 321 binaries for DJGPP V2
  93. lss321s  GNU less 321 sources
  94. mak375b  GNU Make 3.75 for DJGPP V2
  95. mak375s  GNU Make 3.75 sources
  96. obc2721b GNU ObjC 2.7.2.1 for DJGPP V2
  97. pat21b   GNU patch 2.1 for DJGPP V2
  98. pat21s   GNU patch 2.1 sources
  99. rcs5712b GNU rcs 5.7pl12 for DJGPP V2
  100. rcs5712s GNU rcs 5.7pl12 sources
  101. sed118b  GNU sed 1.18 for DJGPP V2
  102. sed118s  GNU sed 1.18 sources
  103. shl112b  GNU sh-utils 1.12 for DJGPP V2
  104. shl112s  GNU sh-utils 1.12 sources
  105. txi390b  GNU texinfo 3.9 for DJGPP V2
  106. txi390s  GNU texinfo 3.7 sources
  107. txt119b  GNU textutils 1.19 for DJGPP V2
  108. txt119s  GNU textutils 1.19 sources
  109.  
  110. v2tk/
  111. alleg21  Allegro 2.1 source - game library
  112. bcc2grx  Borland GUI to GRX interface for DJGPP V2
  113. bcserio  Bill Currie's Serial Comms Package
  114. djgpptsr Example of writing TSRs with DJGPP
  115. gccsjis  Patch to gcc to compile JIS src (beta)
  116. grx20    GRX 2.0 Graphics Library for DJGPP V2
  117. jkthpack JK's DOS Thread Package
  118. jptui37d JPTUI Text User Interface
  119. libkb100 Portable low-level keyboard library
  120. lmb051b  JIS Multibyte library (beta)
  121. lmb051s  JIS Multibyte library source (beta)
  122. lw03b    JIS Wide-char library (beta)
  123. lw03s    JIS Wide-char library source (beta)
  124. mkkbd3   Keyboard Handler Examples
  125. mttws121 Malcom Taylor's Windowing System
  126. pdc22    Public-domain Curses library
  127. rsxntdj1 RSX/NT for DJGPP
  128. sw21_dj1 SWORD Windowing system, Binaries for DJGPP V1
  129. sw21_dj2 SWORD Windowing system, Binaries for DJGPP V2
  130. sw21_doc SWORD Windowing system, documentations
  131. sw21_p1  SWORD Windowing system, Part 1
  132. sw21_p2  SWORD Windowing system, Part 2
  133. sw21_tc  SWORD Windowing system, Binaries for TurboC
  134. tvisionb TurboVision libraries and headers
  135. tvisions TurboVision Sources
  136.  
  137. v2misc/
  138. csdpmi3b CWSDPMI, Charles Sandmann's free DPMI server binaries and docs
  139. csdpmi3s CWSDPMI sources
  140. infng100 Convert INFO to Norton Guides
  141. mlp105b  ML's Executable File Packer Binaries
  142. mlp105s  ML's Executable File Packer Sources
  143. pmode11b PMODE stub for djgpp V2
  144. pmode11s PMODE stub for djgpp V2
  145. wmemu2b  WM's 387 emulator binaries for DJGPP V2
  146. wmemu2s  WM's 387 emulator sources for DJGPP V2
  147.  
  148.  
  149.  
  150. GETTING STARTED
  151. ***************
  152.  
  153. The info below is the minimum new users should know to get them up and
  154. running with DJGPP.  Please read the DJGPP documentation and the FAQ
  155. list for further details.  New users are encouraged to read the FAQ
  156. list in its entirety.
  157.  
  158.  
  159.  
  160. What to download
  161. ----------------
  162.  
  163. In general, download the binary distributions only; most of the people
  164. don't need the source distributions.
  165.  
  166. To build C programs, you'll need djdev201.zip, gcc2721b.zip, and
  167. bnu27b.zip.  For C++, also get gpp2721b.zip and lgp271b.zip.  To read
  168. the online manuals, get txi390b.zip and run "info".  If you don't have
  169. a DPMI server installed, you'll need csdpmi3b.zip.  (Windows, QDPMI,
  170. 386Max, NWDOS, OpenDOS, OS/2, Win/NT and Linux DOSEmu all provide DPMI
  171. services, so you don't need CWSDPMI in those environments.)  For more
  172. details, download faq210b.zip (the full FAQ list) and read Chapter 4
  173. there.
  174.  
  175.  
  176. Installation
  177. ------------
  178.  
  179. 1. Create a directory for DJGPP, say C:\DJGPP.  If you have version
  180.    1.x installed, it's best to delete the contents of its `bin/'
  181.    subdirectory or move it to another directory (not on your PATH),
  182.    and delete everything else from that installation.  (Some of the
  183.    problems reported by users of DJGPP v2 were caused by inadvertently
  184.    mixing it with old v1.x programs.)  The only program from v1.x that
  185.    you should keep is `go32.exe'.
  186.  
  187. 2. Unzip the zip files from that directory, preserving the directory
  188.    structure.  For example:
  189.  
  190.     pkunzip -d gcc2721b
  191.   or
  192.     unzip386 gcc2721b
  193.  
  194. 3. After unzipping all the zip files, set the DJGPP environment
  195.    variable to point to the file DJGPP.ENV in the main DJGPP
  196.    installation directory and add its BIN subdirectory to your PATH.
  197.    Assuming your DJGPP installation is rooted at C:\DJGPP, put these
  198.    two lines into your autoexec.bat file:
  199.  
  200.     set DJGPP=C:\DJGPP\DJGPP.ENV
  201.     set PATH=C:\DJGPP\BIN;%PATH%
  202.  
  203. 4. Run the go32-v2.exe program without arguments:
  204.  
  205.     go32-v2
  206.  
  207.    It should report how much DPMI memory and swap space can DJGPP use
  208.    on you system, like this:
  209.  
  210.     DPMI memory available: 8020 Kb
  211.     DPMI swap space available: 39413 Kb
  212.  
  213.    (The actual numbers will vary according to amount of RAM installed
  214.    on your system, the available disk space and the DPMI server.)  If
  215.    go32-v2 reports less than 4 MBytes of DPMI memory, read section 3.8
  216.    of the FAQ.  (If you have more than that, but want to get the
  217.    optimal performance from your system, read that section anyway.)
  218.  
  219.  
  220. Compilation
  221. -----------
  222.  
  223. GCC is a command-line compiler, which you invoke from DOS command
  224. line.  To compile and link a single-file C program, use a command like
  225. this:
  226.  
  227.     gcc myfile.c -o myfile.exe -lm
  228.  
  229. The -lm links in the lib/libm.a library (trig math) if needed.  (Link
  230. order is significant, so if you need libm.a, always put `-lm' at the
  231. end of the command line.)
  232.  
  233. To compile a C or C++ source file into an object file, use this
  234. command line:
  235.  
  236.     gcc -c -Wall myfile.c  (for C source)
  237.   or
  238.     gcc -c -Wall myfile.cc (for C++ source)
  239.  
  240. This produces the object file myfile.o.  The `-Wall' switch turns on
  241. many useful warning messages which are especially beneficial for new
  242. users of GCC.  (Other C++ extensions, like .cpp, are also supported,
  243. see section 8.4 of the FAQ for details.)
  244.  
  245. To link several C object files into an executable program, use a
  246. command line such as this:
  247.  
  248.     gcc -o myprog.exe mymain.o mysub1.o mysub2.o
  249.  
  250. This produces `myprog.exe' which can be run from the DOS prompt.
  251.  
  252. To link a C++ program, use gxx instead of gcc, like this:
  253.  
  254.     gxx -o myprog.exe mymain.o mysub1.o mysub2.o
  255.  
  256. This will automatically search the C++ libraries, so you won't need to
  257. mention them on the command line.
  258.  
  259. You can also combine the compilation and link steps, like this:
  260.  
  261.     gcc -Wall -o myprog.exe mymain.c mysub1.c mysub2.c
  262.  
  263. Further info about the plethora of GCC switches can be found in the
  264. GCC on-line documentation.  To begin reading it, install the Texinfo
  265. package (txi390b.zip, see the ``On-line docs'' section below) and type
  266. this:
  267.  
  268.     info gcc invoking
  269.  
  270.  
  271.  
  272. Development environment (aka IDE)
  273. ---------------------------------
  274.  
  275. Currently, DJGPP doesn't come with an integrated environment of its
  276. own.  You are free to choose any editor that can launch DOS programs
  277. and catch their output, to act as an IDE.  Many people who work with
  278. DJGPP use a DOS port of GNU Emacs (it's available from the same place
  279. you got DJGPP) which can be compiled with DJGPP.  Emacs is a very
  280. powerful editor (for example, it has a built-in Info reader, so you
  281. can read DJGPP documentation without leaving the editor), but many
  282. other free editors can serve as an IDE.  The only task that these
  283. editors (including Emacs) cannot do is to run a debugger in a
  284. full-screen session.
  285.  
  286. A DJGPP-specific IDE called RHIDE has recently been released and is
  287. now available to all DJGPP users.  It features a Turbo C-style
  288. interface, auto-indentation, color syntax highlighting, automatic
  289. invocation of the DJGPP compiler, automatic Makefile generation, and
  290. easy access to the DJGPP online documentation.  RHIDE also
  291. incorporates integrated and/or standalone debugging using the same
  292. functionality as the GNU Debugger (gdb).  Since RHIDE is brand new,
  293. there are still revisions and bugfixes being made; visit
  294. http://www.tu-chemnitz.de/~sho/rho/rhide.html for the latest
  295. information and updates.
  296.  
  297.  
  298.  
  299. Debugging
  300. ---------
  301.  
  302. To debug a program, you must first compile its source files with `-g'
  303. switch:
  304.  
  305.     gcc -c -Wall -g mymain.c
  306.     gcc -c -Wall -g mysub1.c
  307.     gcc -c -Wall -g mysub2.c
  308.  
  309. and then link with `-g' as well:
  310.  
  311.     gcc -g -o myprog.exe mymain.o mysub1.o mysub2.o
  312.  
  313. (Note that with v2.01 of DJGPP, it is no longer necessary to compile
  314. to a raw COFF output by omitting the `.exe' from the filename in order
  315. to debug programs.  The new v2.01 debuggers are capable of reading an
  316. executable as well as the raw COFF.  If you don't understand this,
  317. don't worry about it.)
  318.  
  319. Then run your program under the debugger:
  320.  
  321.     fsdb myprog.exe
  322. or
  323.     gdb myprog.exe
  324. or
  325.     edebug32 myprog.exe
  326.  
  327. (You will have to get gdb416b.zip if you want to debug with GDB.)
  328. FSDB has its help screen; press F1 to read it.  GDB comes with Info
  329. docs (see below) which can be read with info.exe.  Edebug32 is a
  330. seldom-used alternative debugger; type 'h' to get help.
  331.  
  332.  
  333.  
  334. On-line docs
  335. ------------
  336.  
  337. Most of the on-line documentation is organized in a special hypertext
  338. format used by the GNU project.  Each package brings its docs which
  339. are files with .iNN extension and are unzipped into the info/
  340. subdirectory of your main DJGPP installation directory.  To browse
  341. these docs, get and unzip the file txi390b.zip, then run info.exe.  If
  342. you don't know how to use Info, press `?'.
  343.  
  344.  
  345.  
  346. Compatibility with V2.00
  347. ------------------------
  348.  
  349. If you are upgrading from version 2.00 of DJGPP to version 2.01, you
  350. should completely reinstall all the packages you need to use.  Because
  351. of the different methods used by V2.01 to handle long command lines
  352. (and long filenames under Win95), mixing V2.00 and V2.01 programs can
  353. cause very subtle and difficult to debug problems.  See the FAQ section
  354. 16.6 for more information.
  355.  
  356.  
  357.  
  358. Compatibility with V1.x
  359. -----------------------
  360.  
  361. Existing binaries compiled under DJGPP V1.x can be used for
  362. applications for which there is no v2.0 version.  V1 programs cannot
  363. run V2 programs (but v2 programs *can* run v1 programs), so don't try,
  364. say, using v1.x Make to run v2.0 compiler.
  365.  
  366.  
  367.  
  368.  
  369. --- COPYRIGHT ---
  370.  
  371. DJGPP V2 is Copyright (C) 1995 by DJ Delorie.  Some parts of libc.a
  372. are Copyright (C) Regents of the University of California at Berkeley.
  373.  
  374. GNU software (gcc, make, libg++, etc) is Copyright by the Free
  375. Software Foundation.
  376.  
  377. DJGPP V2's copyright allows it to be used to produce commercial
  378. applications.  However, if you include code or libraries that are not
  379. part of djgpp (like gnu's libg++) then you must comply with their
  380. copyrights.  See Chapter 19 of the FAQ for more details.
  381.  
  382.  
  383. Enjoy!
  384.  
  385.  
  386. DJ Delorie
  387. dj@delorie.com
  388. http://www.delorie.com/
  389.