PageRenderTime 37ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/jEdit/tags/jedit-4-5-pre1/README.SRC.txt

#
Plain Text | 189 lines | 134 code | 55 blank | 0 comment | 0 complexity | 3fafcc3fd4a4c6d65c503f28120655b6 MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. SOURCE CODE NOTES
  2. This file only contains information about compiling from source.
  3. General jEdit documentation can be found in the 'doc' directory.
  4. * Requirements
  5. For all tasks:
  6. - Apache Ant. Get it from <http://ant.apache.org>.
  7. 1.8 or newer has to be used.
  8. 1.8.1 cannot be used due to a classloading bug in the <xslt> task.
  9. - The Ant Optional package. This is included in the download from ants website,
  10. as well as the AntPlugin from the Plugin Manager,
  11. but not in some default installs on various *nix systems.
  12. There you should get the ant-optional package through your
  13. package management system.
  14. For building jEdit, the API documentation or any of the
  15. distribution files except of the source package:
  16. - A Java compiler of at least version 1.6, such as Sun's javac
  17. which is included in the JDK. Get it from <http://www.java.com/download> or
  18. from your package manager - e. g. sun-java6-jdk.
  19. For building the API documentation:
  20. - Sun's javadoc tool, which is included in the JDK.
  21. Get it from <http://www.java.com/download> or from your package
  22. manager - e. g. sun-java6-jdk.
  23. For building the windows installer (for the final step):
  24. - Unicode Inno Setup. Get it from <http://www.jrsoftware.org/isdl.php>
  25. - A box running windows or wine, e. g. on *nix. If Inno Setup should be
  26. run via wine, a wine version of at least 1.3.10 is required because
  27. of a bug in earlier wine versions.
  28. For building the EXE launcher on Mac OS X:
  29. - Rosetta. Get it from your installation DVD at "Optional Installs".
  30. For building the Mac OS X disk image (DMG) for easy distribution
  31. (for the final step):
  32. - A box running Mac OS X
  33. * Tasks
  34. If all necessary tools are installed and set up, you can use ant with a couple of targets.
  35. The default target if you just run "ant" is "build", like running "ant build".
  36. - retrieve retrieve the dependencies
  37. retrieves almost all dependencies needed for building jEdit, only InnoSetup for the
  38. windows installer and wine, if InnoSetup should be run on *nix or Mac OS X, have to
  39. be installed and configured in build.properties manually.
  40. - build build the jEdit JAR-file with full debug-information
  41. builds jEdit in the build-folder, configured in build.properties,
  42. with full debug information included.
  43. - build-exe-launcher build the EXE launcher
  44. builds the EXE launcher in the build-folder, configured in build.properties.
  45. - run run jEdit
  46. runs the jEdit-version in the build-folder, configured in build.properties.
  47. If there isn't any, it builds it in front of execution.
  48. - run-debug run jEdit with debug listening enabled
  49. runs the jEdit-version in the build-folder, configured in build.properties.
  50. If there isn't any, it builds it in front of execution.
  51. The debug listening for this JVM is enabled.
  52. - docs-html generate HTML docs
  53. builds the online help in HTML-format in the build-folder, configured in build.properties.
  54. - docs-javadoc generate JavaDoc API docs
  55. builds the API documentation in the build-folder, configured in build.properties.
  56. - docs-pdf-USletter generate PDF users-guide with US letter paper size
  57. builds the User's Guide in PDF-format with US letter page size
  58. in the build-folder, configured in build.properties.
  59. - docs-pdf-a4 generate PDF users-guide with A4 paper size
  60. builds the User's Guide in PDF-format with A4 page size
  61. in the build-folder, configured in build.properties.
  62. - dist build all distribution files
  63. builds all distribution files or prepares the final step for some of them (Win and Mac)
  64. in the dist-folder, configured in build.properties.
  65. - dist-deb build the DEB Package
  66. builds the DEB Debian package in the dist-folder, configured in build.properties.
  67. - dist-sign-deb-Release sign the DEB Release file
  68. signs the Debian repository metadata
  69. - dist-java build the Java-installer
  70. builds the Java installer in the dist-folder, configured in build.properties.
  71. - dist-mac build the Mac OS X disk image (DMG-file)
  72. builds the Mac OS X internet-enabled disk image (DMG-file) if building on a box
  73. running Mac OS X. If building on a box running something else, there will be a file
  74. called jedit<version_here>-dist-mac-finish.tar.bz2 in the dist-folder,
  75. configured in build.properties. Give that to someone running Mac OS X and ask him
  76. to extract the archive and to execute "ant dist-mac-finish".
  77. The only thing that needs to be installed for this final step is Apache Ant.
  78. - dist-mac-finish finish building the Mac OS X disk image (DMG-file) on Mac OS X
  79. builds the Mac OS X internet-enabled disk image (DMG-file) in the dist-folder,
  80. configured in build.properties if building on a box running Mac OS X.
  81. This target is normally only run directly, if someone just has to do
  82. the final step that was prepared by "dist-mac" or "dist".
  83. - dist-manuals build the PDF-manuals
  84. builds the User's Guide in PDF-format with both, USletter and A4 page size
  85. in the dist-folder, configured in build.properties.
  86. - dist-slackware build the Slackware Package
  87. builds the Slackware TGZ package in the dist-folder, configured in build.properties.
  88. - dist-src build the src-archive
  89. builds the source package in the dist-folder, configured in build.properties.
  90. - dist-win build the Windows installer (EXE-file)
  91. builds the windows installer in the dist-folder, configured in build.properties,
  92. on a box running Windows. If building on a box running something else, there will be
  93. a file called jedit<version_here>-dist-win-finish.tar.bz2 in the dist-folder,
  94. configured in build.properties. Give that to someone running Windows and ask him
  95. to extract the archive and to execute "ant dist-win-finish".
  96. The only things that need to be installed for this final step is Apache Ant
  97. and Inno Setup. Prior to running "ant dist-win-finish", the helper has to set
  98. up the build.properties file with the path to his Inno Setup installation.
  99. - dist-win-finish finish building the Windows installer (EXE-file) on Windows or via wine
  100. build the windows installer in the dist-folder, configured in build.properties if
  101. building on a box running Windows or via wine. This target is normally only run directly, if
  102. someone just has to do the final step that was prepared by "dist-win" or "dist".
  103. - clean clean up intermediate files
  104. cleans up the temporary files from the build- and dist-folder, configured in build.properties.
  105. Leaves the runnable jEdit, and the distribution files in place.
  106. - clean-all clean up lib.dir, build.dir and dist.dir completely
  107. cleans up all files from the lib-, build- and dist-folder, configured in build.properties,
  108. and the folders itself too.
  109. * Interesting algorithms and tricks
  110. - org.gjt.sp.jedit.browser.VFSDirectoryEntryTable: a tree table control.
  111. - org.gjt.sp.jedit.buffer.LineManager: the "gap" optimization allows
  112. update operations to be performed in O(1) time in certain
  113. circumstances.
  114. - org.gjt.sp.jedit.buffer.KillRing: uses a hash to speed up comparisons
  115. with sets of strings.
  116. - org.gjt.sp.jedit.search.BoyerMooreSearchMatcher: fast text search.
  117. - org.gjt.sp.jedit.syntax.TokenMarker: generic tokenizer driven by rules
  118. defined in an XML file.
  119. - org.gjt.sp.jedit.textarea.DisplayManager: the fold visibility map
  120. looks like an RLE-compressed bit set but does lookups in O(log n).
  121. - org.gjt.sp.util.WorkThreadPool: a pool of threads executing requests
  122. from a queue, enforcing various concurrency requirements.
  123. * Tips for Eclipse/NetBeans/IDE users:
  124. Some of the source directories are only needed for building packages on
  125. certain platforms. If you add jEdit source to an IDE like Eclipse that tries
  126. to build everything, you'll get some errors from these directories unless
  127. you have the right libraries. However, if you tell Eclipse to exclude these
  128. directories, you can still build and run/debug jEdit from source.
  129. Follow these steps:
  130. - Project properties - Java build path
  131. - Source - Excluded dirs - Edit - Add multiple
  132. - Add these subdirs: net, de, build
  133. The "eclipse-formatting.xml" file can be used to set the
  134. code format style to be the same as what is currently used here.