|
From: Eric S. <sun...@su...> - 2004-12-31 05:01:14
|
John Anderson wrote: > The build process of planeshift expects the $CRYSTAL and $CEL > directories to look like they do after a ./configure and jam. Crystal > and CEL both have the capability to jam install. The normal way for a client project to divorce itself from this type of low-level detail is to utilize the cs-config and cel-config scripts to determine the header and library directories, as well as compiler and linker flags. If the client project is Autoconf-based, then it can even further divorce itself from cs-config and cel-config by utilizing the supplied crystal.m4 and cel.m4 Autoconf macro files. (The macros themselves employ cs-config and cel-config, but only as underlying implementation machinery about which the client's configure.ac need have no knowledge.) This is a good solution for Auto-confiscated projects. Unless PlaneShift has requirements which are not addressed by these solutions, then the best approach would be to start utilizing the abstractions provided by these facilities. > In my opinion planeshift's sources should look for their headers and > libraries in the directory tree created by jam install, and not in the > directory tree that is created by simply building but not installing. > This is important for a number of reasons. The nice thing about employing the abstractions mentioned above (cs-config, cel-config, crystal.m4, cel.m4) is that this type of detail becomes much less of an issue. The cs-config and cel-config scripts magically handle the disparity between installed vs. not-installed versions of CS and CEL. It is sometimes convenient for developers to be able to work on the projects without having to install the various resources, or to prefer a development copy of CS or CEL over an installed one, so it would be unfortunate to limit clients to using only installed resources. The cs-config and cel-config scripts magically support both modes. > Finally, I would really like see the any user specific information, like > the file that populates the email field and password if saved, be moved > out of the planeshift base directory into $HOME/.planeshift/. Linux, by > nature, is a multi-user environment. If I were a planeshift gamer, and > my wife decided to play too, we should be both be able to save > independent user specific rescources in our respective home directories. CS provides a couple different mechanisms for storing per-user data. These mechanisms are portable, should work correctly across platforms, and are even "roaming" profile-friendly. Perhaps PlaneShift should consider employing these facilities. -- ES |