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.