Thanks, Eric. I'll implement these changes. I appreciate you clearing it up for me.
~Scott Eric Sunshine wrote: > Scott Johnson wrote: > >> I'm a little bit confused about how to determine whether Linux is >> installed for CS::Platform::GetPhysicalMemorySize(). >> Since Linux/UNIX aren't distinguished at configuration time, I am >> probably going to need to tweak the configure.ac file to make sure it >> does a test for the memory checking functions, and apply the appropriate >> functionality. I was thinking about doing a check for the function >> sysinfo() using AC_CHECK_LIB, but I'm not 100% sure how I would go about >> doing this (I've never written a configure script before). I'm >> wondering if there's a way to have $host_os specify whether true unix >> (e.g. openbsd) or linux (e.g. redhat-linux, ubuntu, etc...) is being >> used. I guess my question is what AC_CANONICAL_HOST actually returns >> inside of $host_os. >> > > There is no need to make a distinction either about the platform type > (Unix, Windows, etc.) nor about the particular flavor of Unix (Linux, > BSD, etc.). Instead, just test for sysinfo() and any other functions the > implementation may need. The test will either succeed or fail. If it > succeeds, then the implementation can utilize the function, else the > implementation should fall back to some other scheme. The csutil/unix > implementation shouldn't care if the platform is Linux (RedHat, Ubuntu, > etc.), BSD, or whatnot. Instead, it merely utilizes whichever > capabilities the configure script determines are present. Consequently, > there is no need to mess with AC_CANONICAL_HOST(), $host_os, etc. > > AC_CHECK_LIB() is suitable for checking presence of a function in a > particular library, so it could be used for the sysinfo() check. On the > other hand, CS_CHECK_BUILD() is useful for checking if short code > fragments compile cleanly, and is therefore also suitable for sysinfo(). > The configure.ac check for sysinfo() might look like this: > > CS_CHECK_BUILD( > [for sysinfo()], > [cs_cv_sysinfo], > [AC_LANG_PROGRAM( > [[#include <sys/sysinfo.h>]], > [struct sysinfo x; sysinfo(&x);])], > [],[], > [CS_HEADER_PROPERTY([CS_HAVE_SYSINFO])]) > > This check will #define CS_HAVE_SYSINFO in csconfig.h, if the check > succeeds, which your implementation can then check with #ifdef. It is > safe for this configure test to run on non-Linux platforms, such as > Windows, Mac OS X, etc., so there is no need to conditionalize it. > Simply employ the result in your implementation. > > Note also that you don't need to distinguish Linux versus other Unix > implementations for your run-time code attempting to retrieve memory > size. For instance, the fallback tests which attempt to query > /proc/meminfo, /dev/kmem, etc. can be made regardless of precise > platform. Just attempt each in turn until one succeeds or they all fail, > in which case you return 0 as an error indicator. > > -- ES > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Crystal-main mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/crystal-main > Unsubscribe: mailto:[EMAIL PROTECTED] > -- ______________ |Scott Johnson \____________________________ |_______________/---------------------------| | | | PhD Student, Graphics and Visualization | | Digital Technology Center | | University of Minnesota | | | | Office: Walter 460 | | Office Phone: 612-625-1257 | | Web: http://www.cs.umn.edu/~scottj | | Email: [EMAIL PROTECTED] | | | |___________________________________________| ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ Crystal-main mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/crystal-main Unsubscribe: mailto:[EMAIL PROTECTED]
