2010-02-24 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
authorivmai <ivmai>
Wed, 24 Feb 2010 10:31:32 +0000 (10:31 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:53 +0000 (21:06 +0400)
* CMakeLists.txt: Adjust INCLUDE_DIRECTORIES and SRC (to make it
usable on Mac OS X).
* doc/README.cmake: Update.

CMakeLists.txt
ChangeLog
doc/README.cmake

index 47560ea..f277c8b 100644 (file)
@@ -17,6 +17,10 @@ ADD_DEFINITIONS("-D_CRT_SECURE_NO_DEPRECATE
                  -DGC_BUILD
 ")
 
+IF(APPLE)
+    SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;x86_64" CACHE STRING "Build architectures for Mac OS X" FORCE)
+ENDIF(APPLE)
+
 #LIBATOMIC #TODO
 #ADD_LIBRARY(atomic_ops STATIC )
 #SET_TARGET_PROPERTIES(atomic_ops PROPERTIES COMPILE_FLAGS -DNO_DEBUGGING)
@@ -25,8 +29,13 @@ ADD_DEFINITIONS("-D_CRT_SECURE_NO_DEPRECATE
 #LIBGC
 
 INCLUDE_DIRECTORIES(include)
-INCLUDE_DIRECTORIES(libatomic_ops\src)
+INCLUDE_DIRECTORIES(libatomic_ops/src)
 
+SET(SRC alloc.c reclaim.c allchblk.c misc.c mach_dep.c os_dep.c
+        mark_rts.c headers.c mark.c obj_map.c blacklst.c finalize.c
+        new_hblk.c dbg_mlc.c malloc.c stubborn.c dyn_load.c
+        typd_mlc.c ptr_chck.c gc_cpp.cc mallocx.c checksums.c
+        thread_local_alloc.c)
 SET(LIBS)
 OPTION(enable_threads "TODO" NO)
 IF(enable_threads)
@@ -57,6 +66,7 @@ MESSAGE("HOST = ${HOST}")
 #Thread Detection. Relying on cmake for lib an includes.
 #TODO check cmake detection
 IF(CMAKE_USE_PTHREADS_INIT)
+        SET(SRC ${SRC} pthread_support.c pthread_stop_world.c)
         IF( "HOST" MATCHES x86-.*-linux.*|ia64-.*-linux.*|i586-.*-linux.*|i686-.*-linux.*|x86_64-.*-linux.*|alpha-.*-linux.*|sparc.*-.*-linux.*)
                 ADD_DEFINITIONS("-DGC_LINUX_THREADS")
                 ADD_DEFINITIONS("-D_REENTRANT")
@@ -143,6 +153,7 @@ IF(CMAKE_USE_PTHREADS_INIT)
                 ADD_DEFINITIONS("-DGC_DARWIN_THREADS")
                 ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
                 MESSAGE("Explicit GC_INIT() calls may be required.")
+                SET(SRC ${SRC} darwin_stop_world.c)
                 # Parallel-mark is currently unreliable on Darwin; ignore request
                 #IF (${enable_parallel_mark})
                 #       ADD_DEFINITIONS("-DPARALLEL_MARK")
@@ -174,6 +185,7 @@ IF(CMAKE_USE_WIN32_THREADS_INIT)
                 ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
         ENDIF()
         ADD_DEFINITIONS("-DEMPTY_GETENV_RESULTS") #TODO test
+        SET(SRC ${SRC} win32_threads.c)
 ENDIF(CMAKE_USE_WIN32_THREADS_INIT)
 
 OPTION(enable_gcj_support "Support for gcj" NO)
@@ -182,11 +194,6 @@ IF(enable_gcj_support)
         ADD_DEFINITIONS("-DGC_GCJ_SUPPORT")
 ENDIF(enable_gcj_support)
 
-SET(SRC alloc.c reclaim.c allchblk.c misc.c mach_dep.c os_dep.c
-        mark_rts.c headers.c mark.c obj_map.c blacklst.c finalize.c
-        new_hblk.c dbg_mlc.c malloc.c stubborn.c dyn_load.c
-        typd_mlc.c ptr_chck.c gc_cpp.cc mallocx.c checksums.c
-        win32_threads.c)
 
 ADD_LIBRARY(          gc-lib   STATIC      ${SRC})
 SET_TARGET_PROPERTIES(gc-lib   PROPERTIES
index 1039478..c0725b6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-02-24  Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
+
+       * CMakeLists.txt: Adjust INCLUDE_DIRECTORIES and SRC (to make it
+       usable on Mac OS X).
+       * doc/README.cmake: Update.
+
 2010-02-24  Ivan Maidanski <ivmai@mail.ru> (really Jack Andrews)
 
        * CMakeLists.txt: New file (adding CMake support).
index de6f6b7..4f78b61 100644 (file)
@@ -5,6 +5,8 @@ CMAKE
 Win32 binaries (both 32- and 64-bit) can be built using CMake.  CMake is an
 open-source tool like automake - it generates makefiles.
 
+Some preliminary work has been done to make this work on other platforms, but
+the support is not yet complete.
 
 CMake will generate:
 
@@ -33,6 +35,12 @@ BUILD PROCESS
    eg.
       > cmake -G "Visual Studio 8 2005"
    use the gc.sln file genereated by cmake to build gc
+ . you can also run cmake from a build directory to build outside of
+   the source tree. Just specify the path to the source tree:
+   eg.
+      > mkdir build
+      > cd build
+      > cmake .. -G "Visual Studio 8 2005"
 
 
 INPUT