At Fri, 27 Mar 2015 16:42:03 -0700 (PDT), John Carmack wrote: > I want to be able to build simple (windows) utilities for other team > members that don't have Racket installed. The archive-with-dlls > option is better than nothing, but it would be a whole lot better to > have a single statically linked exe. In this case, it is a 13 MB > executable, and only 5 MB of dlls. > > Are there fundamental challenges to doing that?
5MB of DLLs sounds like a minimal set: libracket3m, libiconv, and liblongdouble. Assuming that you don't need text-encoding conversions or 80-bit floating-point operations, then the run-time system can do without the latter two DLLs. Linking the content of the remaining libracket3m DLL and the main "Racket.exe" executable is not difficult --- except that the build process for Windows is convoluted. Here are v6.1.1 builds of "Racket.exe" that incorporate the libracket3m DLL's content, so they need only system DLLs: http://www.cs.utah.edu/~mflatt/tmp/win-v6.1.1/ You should be able to drop the 64-bit one (I assume) in place your installation's "Racket.exe" (which, again, I assume is v6.1.1). Then Racket-generated executables will start with the replacement "Racket.exe", so they won't depend on "libracket3mXXXX.dll"; you can discard the "lib" directory that's generated next to the executable. In case anyone is interested, I've enclosed the patch that I used to build those executables. > What goes in the plt directory of the archive, anyway? It is an empty > directory tree for this particular executable. Extra files that are referenced by forms like `define-runtime-path` and would go in the "plt" subdirectory. Unless I'm forgetting something, though, there's no reason for the directory to exist if it's going to be empty, and I'll fix that. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
single-exe.patch
Description: Binary data