As of the more recent Subversion based versions of ROSE and Mac OS X 10.4 for Intel, ROSE runs out of the box on Mac. ROSE is however not supported on any non-x86 platform (this will change in the future). Required (or helpful) external software (as per our own OSX test configuration): boost_1_35_0.tar.gz: All installations of ROSE (any platform) require boost. doxygen-1.5.6.src.tar.gz: Doxegen is required to build the documentation which is both distributed with ROSE and make available via the ROSE web site. ghostscript-8.62.tar.gz: Not clear that this is really required by ROSE. latex2html-2002-2-1.tar.gz: Likely required by LaTeX (not required by ROSE as far as I know). texlive2007-live-20070212.iso.zip (LaTeX): Reqired to build the latex documentation (ROSE Manual and ROSE Tutorial). fontconfig-2.6.0.tar.gz: Not clear that this is really required by ROSE. graphviz-2.20.1.tar.gz: Required to generate graphs for the LaTex documentation in ROSE. libtool-2.2.4.tar.bz2: Required to build ROSE (used in ROSE configuration). Need to run: "/Users/dquinlan/local/libtool-install/bin/libtoolize --force --copy --ltdl --automake" the first time installed on OSX (ninjai specific detail). Crontab used for OSX tests: #MAILTO=willcock2@llnl.gov #24 21 * * 2-7 cd /Users/willcock2/ROSE/scripts && ./roseFreshTest ./roseFreshTestStub-Jeremiah-OSX-scidac.sh --with-C_DEBUG="-g -Wall -Wno-unknown-pragmas" --with-CXX_DEBUG="-g -Wall -Wno-unknown-pragmas" --enable-rosehpct #48 16 * * * cd /Users/willcock2/ROSE/scripts && ./roseFreshTest ./roseFreshTestStub-Jeremiah-OSX.sh --enable-edg_union_struct_debugging --with-C_DEBUG="-g -Wall -Wno-unknown-pragmas" --with-CXX_DEBUG="-g -Wall -Wno-unknown-pragmas" --enable-rosehpct #17 10 * * * cd /Users/willcock2/ROSE/scripts && ./roseFreshTest ./roseFreshTestStub-Jeremiah-OSX.sh --enable-edg_union_struct_debugging --with-C_DEBUG="-g -Wall -Wno-unknown-pragmas" --with-CXX_DEBUG="-g -Wall -Wno-unknown-pragmas" --enable-rosehpct --without-java #33 15 * * * cd /Users/willcock2/ROSE/scripts && ./roseFreshTest ./roseFreshTestStub-Jeremiah-OSX.sh --enable-edg_union_struct_debugging --with-C_DEBUG="-g -Wall -Wno-unknown-pragmas" --with-CXX_DEBUG="-g -Wall -Wno-unknown-pragmas" --enable-rosehpct --without-java ******************************************************************************** The following notes are old, and might give hints about running ROSE on PowerPC: ROSE is developed on Linux I86 architectures. We have not worked much on portablity to other platforms. I few users have been using ROSE on Apple's OS X and here are their notes. At some point (likely when we get access to OS X and start using it) we will make sure the ROSE builds their more easily. **************************************************************************************** BUILDING ROSE ON OTHER ARCHITECTURES **************************************************************************************** ************************ Notes contributed by Markus Schordan (4/25/2005) ************************* PORTABILITY: ROSE 0.7.9c MS: 09/17/04: Apple Powerbook G4 15" (Herbert Blaha) Tested on: Apple Powerbook G4 15" Debian Linux PPC (Kernelversion: 2.6.3) g++ (GCC) 3.3.4 (Debian 1:3.3.4-11) GNU Make 3.80 automake (GNU automake) 1.7.9 autoconf (GNU Autoconf) 2.59 ROSE Version 0.7.9c WORKAROUND: The following two changes are required to use the distribution version ROSE-0.9.7c.tar.gz on an Apple PowerPC 1.) in file: ROSE-0.7.9c/src/frontend/EDG/EDG_3.3/src/defines.h in line 76: #define HOST_ALIGNMENT_REQUIRED 4 FIX: replace '4' by '8' 2.) in file: ROSE-0.7.9c/src/frontend/EDG/EDG_3.3/src/float_pt.c in line 143: check_assertion_str(LDBL_MAX_EXP == 16384, /*lint !e506*/ "long_double_is_finite: unsupported exponent size"); FIX: change 16384 to 1024 (that's because LDBL_MAX_EXP on PPC is set to 1024) make check does not fully succeed because of a problem in one of the Makefiles: CFGTest -I../../../../ROSE-0.7.9c/tests/roseTests/programAnalysisTests ../../../../ROSE-0.7.9c/tests/roseTests/programA nalysisTests/testfile1.c CFGTest: error while loading shared libraries: librose.so: cannot open shared object file: No such file or directory gmake[5]: *** [FORCE_TEST_CODES_TO_RUN] Error 255 (all tests before this test succeed) However, we are using ROSE without problems on the PowerPC. ************************ Notes contributed by Boyana Norris (4/24/2005) ************************* Mac porting notes: Environment: setenv MACOS_DEPLOYMENT_TARGET 10.3 made symbolic link: ln -s /usr/bin/gnumake /usr/bin/gmake ============================================================================= Configured with: CXX=g++ CFLAGS='-fno-common -Wno-long-double -fPIC' CXXFLAGS='-fno-common -Wno-long-double -fPIC' GXX_MAJOR=3 GXX_MINOR=3 --prefix=/Users/norris/rose --with-cxx_shared_lib_update='g++ -dynamic -dynamiclib -multiply_defined warning -undefined define_a_way -weak_reference_mismatches weak -install_name $(shell pwd)/$@ -o ' OR --prefix=/Users/norris/rose --with-cxx_shared_lib_update='g++ -dynamic -dynamiclib -multiply_defined warning -undefined define_a_way -weak_reference_mismatches weak -install_name $(libdir)/$@ -o ' ============================================================================= Code changes: ----------------------------------------------------------------------------- "src/frontend/SageIII/Cxx_Grammar.C" line 10277 of 63799 --16%-- col 56 added cast to int to remove ambiguous call: returnString += string("p_structureTagProcessingList.size() = ") + StringUtility::numberToString((int)p_structureTagProcessingList.size()) + string("\n"); ----------------------------------------------------------------------------- in src/frontend/EDG/EDG_3.3/src/float_pt.c -- added a section for prototypes for Mac, before (and similar to) the sun settings (see version in patches/): #endif /* ifdef __MWERKS__ */ #else /* !EDG_WIN32 */ #ifdef __POWERPC__ EXTERN_C int isnan(double x); #define is_NaN(x) (isnan((double)(x))) EXTERN_C int finite(double x); #define is_finite(x) (finite(x)) #else #ifdef sun /* SunOS, Solaris, including Solaris on Intel X86. */ .... #endif /* ifdef sun */ #endif /* ifdef __POWERPC__ */ #endif /* EDG_WIN32 */ ----------------------------------------------------------------------------- _T is apparently a macro defined as some hex constant on a mac, so it can't be used as a variable name. Problem files: "DepInfoUpdate.h" line 11 of 87 --12%-- col 1 Changed UpdateDepInfo( Update _T) : T(_T) {} to UpdateDepInfo( Update _xTxT) : T(_xTxT) {} Also in: src/util/graphs/GraphUpdate.h src/midend/loopProcessing/depGraph/DepGraphTransform.C ---------------------------------------------------------------- In file included from ../../../../../../src/02-20-05/src/midend/loopProcessing/driver/TransformComputation.C:3: /usr/include/sys/timeb.h:72: error: 'time_t' is used as a type, but is not defined as a type. ../../../../../../src/02-20-05/src/midend/loopProcessing/driver/TransformComputation.C: In function `void ReportTime(int, const char*)': ../../../../../../src/02-20-05/src/midend/loopProcessing/driver/TransformComputation.C:50: error: ` ftime' undeclared (first use this function) BRN ----> time_t defined in /usr/include/sys/types.h ftime is deprecated and can be found in /usr/include/sys/timeb.h Commented out the ftime call since it's deprecated-- need to update in a portable way. ---------------------- In PDFLibrary -- added fink include path /sw/include to makefile, also deactivated all ifdef MAC segments since they don't work for OSX 10.3 (with fink) in file p_basic.c ======== Instead of making everything, make only librose and its prerequisites (in utils, 3rdPartyLibraries) src/Makefile.adic has some stuff removed, it's also easy to do make -k install. Final link line: g++ -dynamic -dynamiclib -undefined define_a_way -weak_reference_mismatches weak -install_name /Users/norris/rose/lib/librose.so -o librose.so ../src/util/support/*.o ../src/util/graphs/*.o ../src/util/stringSupport/*.o ../src/util/commandlineProcessing/*.o ../src/3rdPartyLibraries/MSTL/*.o ../src/frontend/SageIII/*.o ../src/midend/astUtil/astInterface/*.o ../src/midend/astUtil/astSupport/*.o ../src/midend/astUtil/symbolicVal/*.o ../src/midend/astUtil/annotation/*.o ../src/midend/astInlining/*.o ../src/midend/astQuery/*.o ../src/midend/astDiagnostics/*.o ../src/midend/astProcessing/*.o ../src/midend/astRewriteMechanism/*.o ../src/midend/programAnalysis/OAWrap/*.o ../src/midend/programAnalysis/CFG/*.o ../src/midend/programAnalysis/dataflowAnalysis/*.o ../src/midend/programAnalysis/valuePropagation/*.o ../src/backend/unparser/*.o ../src/roseSupport/*.o