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