-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)
#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)
#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")
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")
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)
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
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:
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