Rod: I need to check on the style/submissions question. I know we do most of our documentation "the old fashioned way" (PDF) but I have used the wiki to document items like the UEFI Driver Wizard.
I say we start from ASCII and work our way up to slightly more modern formats. Thanks ... br --- Brian Richardson -- brian.richard...@intel.com -- Twitter: intel_brian -----Original Message----- From: Rod Smith [mailto:rodsm...@rodsbooks.com] Sent: Thursday, January 31, 2013 1:35 PM To: edk2-devel@lists.sourceforge.net Subject: Re: [edk2] UEFI Compilation dorectory On 01/30/2013 07:55 PM, Andrew Fish wrote: > > On Jan 30, 2013, at 2:43 PM, Rod Smith <rodsm...@rodsbooks.com> > wrote: > >> Personally, I'm most familiar with Unix-style development with make. >> Also, I wanted rEFInd to be compilable in a way that would facilitate >> inclusion in Linux distributions, and that definitely means building >> it outside of the TianoCore directory tree. > > Is the issue the size of the edk2 packages and build tools, plus the > dependency on Python? Or that you need to duplicate the edk2 packages > and build tools for every module you want to build? Neither. It's about the locations of files and permissions to write to the TianoCore tree. If you look at the requirements for creating an RPM source file, for instance, the assumption is that the package tools (such as the rpmbuild utility) will be able to uncompress the project's (rEFInd's, in my case) source files in an arbitrary location and build them. Dependencies on other packages are perfectly acceptable, but it's awkward at best, and perhaps impossible, to specify that the project's source files be uncompressed in a particular directory (such as within the TianoCore directory). I suppose in theory you could have a pre-compilation script set up symbolic links to meet that requirement, but that wouldn't work if the user who builds the binary package doesn't have permission to create a link within the TianoCore tree. Permissions also become an issue when creating the object files and binaries, since in the TianoCore model, those get scattered about within the TianoCore tree, and an ordinary user might lack write permission to those locations. The only alternative I can think of would be to include TianoCore within the rEFInd source archive (or as a patch to it), which is ridiculous. This isn't just an RPM requirement, either; you'd have similar problems with Debian packages, Gentoo ebuilds, etc. I'm less familiar with FreeBSD, but I think there might be similar issues with its ports system. Building out of tree solves these problems. The RPM (or whatever) source package can uncompress rEFInd's source files wherever it likes and built the program using read-only access to the TianoCore directory tree. I chose to use make to do it with rEFInd, but that wouldn't be necessary from a Linux packaging point of view; TianoCore-specific build scripts that supported out-of-tree compilation would work as well. I could write more about this, but I don't want to hijack Rafael's topic. Since he wants to distribute code via git or svn, he's likely to have similar concerns, although perhaps not as extreme -- he could probably instruct users to do a "git clone" within the TianoCore tree, or create symbolic links, and not complicate matters too much. >> That said, I agree that if you're used to the TianoCore style (which >> I ASSUME comes from a Microsoft/Windows model), > > I never really though of it as the Microsoft Windows model, well I > guess text files with [Sections] was probably inspired by Windows INF > files? I think it was more inspired by modern GUI based development > model. If I write an iPhone App with Xcode I don't manually edit > makefiles, and the same goes for Visual Studio. So the concept of > having simple config files stems more from that. I wasn't referring to the configuration file vs. Makefile issue, but to the layout of files within the package and the relationship of a project's (rEFInd's) source files as being within the library's (TianoCore's) directory tree. That said, I've done very little Windows development, so I may be off base on that. I don't really know that other big libraries encourage building applications within their directory trees. I do recall that this sort of thing was common for other DOS and Windows programs like word processors back in the 1980s and early 1990s. >> Would documentation on a make-style approach be a welcome addition to >> the project? If so, I could probably write something up that would >> help people get started on that way of building with TianoCore. >> > > Contributions are always welcome. I think as long a we recommend that > folks use the in-tree way if possible adding GNU makefile instructions > don't hurt anything. Is there a style/submissions document to provide hints on how to do this? What format should I use? (HTML? ASCII?) -- Rod Smith rodsm...@rodsbooks.com http://www.rodsbooks.com ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_jan _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_jan _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel