diff -crN oommf12a3/config/cache/linux-x86_64.tcl oommf12a3-patched/config/cache/linux-x86_64.tcl *** oommf12a3/config/cache/linux-x86_64.tcl Wed Dec 31 19:00:00 1969 --- oommf12a3-patched/config/cache/linux-x86_64.tcl Wed May 11 17:23:11 2011 *************** *** 0 **** --- 1,179 ---- + # FILE: linux-x86_64.tcl + # + # Configuration feature definitions for the configuration 'linux-x86_64' + # + # Editing instructions begin at "START EDIT HERE" below. + + set config [Oc_Config RunPlatform] + + if {![string match [string tolower [file rootname [file tail [info script]]]] \ + [$config GetValue platform_name]]} { + error "Configuration cache file '[info script]' + sourced by '[$config GetValue platform_name]'" + } + + ######################################################################## + # START EDIT HERE + # In order to properly build, install, and run on your computing + # platform, the OOMMF software must know certain features of your + # computing environment. In this file are lines which set the value of + # certain features of your computing environment. Each line looks like: + # + # $config SetValue {} + # + # where each is the name of some feature of interest, + # and is the value which is assigned to that feature in a + # description of your computing environment. Your task is to edit + # the values as necessary to properly describe your computing + # environment. + # + # The character '#' at the beginning of a line is a comment character. + # It causes the contents of that line to be ignored. To select + # among lines providing alternative values for a feature, uncomment the + # line containing the proper value. + # + # The features in this file are divided into three sections. The first + # section (REQUIRED CONFIGURATION) includes features which require you + # to provide a value. The second section (OPTIONAL CONFIGURATION) + # includes features which have usable default values, but which you + # may wish to customize. The third section (ADVANCED CONFIGURATION) + # contains features which you probably do not need or want to change + # without a good reason. + ######################################################################## + # REQUIRED CONFIGURATION + + # Set the feature 'program_compiler_c++' to the program to run on this + # platform to compile source code files written in the language C++ into + # object files. Select from the choices below. If the compiler is not + # in your path, be sure to use the whole pathname. Also include any + # options required to instruct your compiler to only compile, not link. + # + # If your compiler is not listed below, additional features will + # have to be added in the ADVANCED CONFIGURATION section below to + # describe to the OOMMF software how to operate your compiler. Send + # e-mail to the OOMMF developers for assistance. + # + # The GNU C++ compiler 'g++' + # + # + $config SetValue program_compiler_c++ {g++ -c} + + ######################################################################## + # OPTIONAL CONFIGURATION + + # Set the feature 'path_directory_temporary' to the name of an existing + # directory on your computer in which OOMMF software should write + # temporary files. All OOMMF users must have write access to this + # directory. + # + # $config SetValue path_directory_temporary {/tmp} + + ######################################################################## + # ADVANCED CONFIGURATION + + # Compiler option processing... + set ccbasename [file tail [lindex [$config GetValue program_compiler_c++] 0]] + if {[string match g++ $ccbasename]} { + # ...for GNU g++ C++ compiler + # $config SetValue program_compiler_c++_option_opt {format "\"-O%s\""} + # $config SetValue program_compiler_c++_option_opt {format "-O0 -ffloat-store"} + $config SetValue program_compiler_c++_option_opt {format "-O3 -ffast-math -fomit-frame-pointer"} + # The following alternative optimization option comes from + # Hin-Tak Leung . It reportedly provides better + # optimized code on Pentium systems, but may be incompatible with + # i486/i386 systems, and may complicate debugging. Uncomment the + # following line to enable the Pentium-specific optimizations. + # $config SetValue program_compiler_c++_option_opt {format "-O3 -malign-double -fomit-frame-pointer"} + # Or try this for PentiumPro systems. Try it both with and without + # -malign-double. + # $config SetValue program_compiler_c++_option_opt {format "-O4 -ffast-math -fomit-frame-pointer -march=pentiumpro -malign-double"} + # NOTE: If you want good performance, be sure to edit ../options.tcl + # or ../local/options.tcl to include the line + # Oc_Option Add * Platform cflags {-def NDEBUG} + # so that the NDEBUG symbol is defined during compile. + $config SetValue program_compiler_c++_option_out {format "-o \"%s\""} + $config SetValue program_compiler_c++_option_src {format \"%s\"} + $config SetValue program_compiler_c++_option_inc {format "\"-I%s\""} + + # Compiler warnings: + # Omitted: -Wredundant-decls -Wshadow -Wcast-align + # I would also like to use -Wcast-qual, but casting away const is + # needed on some occasions to provide "conceptual const" functions in + # place of "bitwise const"; cf. p76-78 of Meyer's book, "Effective C++." + # + # NOTE: -Wno-uninitialized is required after -Wall by gcc 2.8+ because + # of an apparent bug. -Winline is out because of failures in the STL. + # Depending on the gcc version, the following options may also be + # available: -Wbad-function-cast -Wstrict-prototypes + # -Wmissing-declarations -Wnested-externs + $config SetValue program_compiler_c++_option_warn {format "-Wall \ + -W -Wpointer-arith -Wwrite-strings -Wmissing-prototypes \ + -Woverloaded-virtual -Wsynth -Werror"} + $config SetValue program_compiler_c++_option_debug {format "-g"} + $config SetValue program_compiler_c++_option_def {format "\"-D%s\""} + + # Widest natively support floating point type. + # NOTE: On the Linux/x86+gcc platform, "long double" provides somewhat + # better precision than "double", but at a cost of increased memory + # usage and likely some decrease in speed. (At this writing, + # long double takes 12 bytes of storage as opposed to 8 for double, + # but provides the x86 native floating point format having approx. + # 19 decimal digits precision as opposed to 16 for double.) + $config SetValue program_compiler_c++_typedef_realwide "long double" + + # Other compiler properties + $config SetValue \ + program_compiler_c++_property_optimization_breaks_varargs 0 + } + unset ccbasename + + # The program to run on this platform to link together object files and + # library files to create an executable binary. + # + # Use the selected compiler to control the linking. + $config SetValue program_linker [lindex \ + [$config GetValue program_compiler_c++] 0] + + # Linker option processing... + set lbasename [file tail [lindex [$config GetValue program_linker] 0]] + if {[string match g++ $lbasename]} { + # ...for GNU g++ as linker + $config SetValue program_linker_option_obj {format \"%s\"} + $config SetValue program_linker_option_out {format "-o \"%s\""} + $config SetValue program_linker_option_lib {format \"%s\"} + $config SetValue program_linker_uses_-L-l {1} + } + unset lbasename + + # The program to run on this platform to create a single library file out + # of many object files. + $config SetValue program_libmaker {ar cr} + + if {[string match ar [file tail [lindex \ + [$config GetValue program_libmaker] 0]]]} { + # Option processing for ar + $config SetValue program_libmaker_option_obj {format \"%s\"} + $config SetValue program_libmaker_option_out {format \"%s\"} + } + + # The absolute, native filename of the null device + $config SetValue path_device_null {/dev/null} + + # A partial Tcl command (or script) which when completed by lappending + # a file name stem and evaluated returns the corresponding file name for + # an executable on this platform + $config SetValue script_filename_executable {format %s} + + # A partial Tcl command (or script) which when completed by lappending + # a file name stem and evaluated returns the corresponding file name for + # an object file on this platform + $config SetValue script_filename_object {format %s.o} + + # A partial Tcl command (or script) which when completed by lappending + # a file name stem and evaluated returns the corresponding file name for + # a static library on this platform + $config SetValue script_filename_static_library {format lib%s.a} + + ######################################################################## + unset config + diff -crN oommf12a3/config/names/linux-x86_64.tcl oommf12a3-patched/config/names/linux-x86_64.tcl *** oommf12a3/config/names/linux-x86_64.tcl Wed Dec 31 19:00:00 1969 --- oommf12a3-patched/config/names/linux-x86_64.tcl Wed May 11 17:21:46 2011 *************** *** 0 **** --- 1,15 ---- + # linux-x86_64.tcl + # + # Defines the Oc_Config name 'linux-x86_64' to indicate the Linux + # operating system running on the x86_64 architecture. + + Oc_Config New _ [string tolower [file rootname [file tail [info script]]]] { + global tcl_platform env + if {![regexp -nocase -- linux $tcl_platform(os)]} { + return 0 + } + if {![string match x86_64 $tcl_platform(machine)]} { + return 0 + } + return 1 + }