/vendor/gc/Makefile.am

http://github.com/feyeleanor/RubyGoLightly · Makefile · 206 lines · 84 code · 39 blank · 83 comment · 9 complexity · 833d5d70a6aaf1334e22cf075102f2ac MD5 · raw file

  1. # Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved.
  2. #
  3. # THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  4. # OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
  5. #
  6. # Permission is hereby granted to use or copy this program
  7. # for any purpose, provided the above notices are retained on all copies.
  8. # Permission to modify the code and to distribute modified code is granted,
  9. # provided the above notices are retained, and a notice that the code was
  10. # modified is included with the above copyright notice.
  11. #
  12. # Original author: Tom Tromey
  13. # Severely truncated by Hans-J. Boehm
  14. # Modified by: Grzegorz Jakacki <jakacki at acm dot org>
  15. # Modified by: Petter Urkedal <petter.urkedal@nordita.dk> (2005-04)
  16. ## Process this file with automake to produce Makefile.in.
  17. ## FIXME: `make distcheck' in this directory will not currently work.
  18. ## This is most likely to the explicit flags passed to submakes.
  19. # We currently use the source files directly from libatomic_ops, if we
  20. # use the internal version. This is done since libatomic_ops doesn't
  21. # use libtool, since it has no real use for it. But that seems to make
  22. # it hard to use either the resulting object files or libraries.
  23. # Thus there seems too be no real reason to recusively build in the
  24. # libatomic_ops directory.
  25. # if USE_INTERNAL_LIBATOMICS_OPS
  26. # SUBDIRS = @maybe_libatomic_ops@
  27. # else
  28. # SUBDIRS =
  29. # endif
  30. SUBDIRS =
  31. # Initialize variables so that we can declare files locally.
  32. EXTRA_DIST =
  33. lib_LTLIBRARIES =
  34. include_HEADERS =
  35. pkginclude_HEADERS =
  36. dist_noinst_HEADERS =
  37. check_PROGRAMS =
  38. TESTS =
  39. pkgconfigdir = $(libdir)/pkgconfig
  40. dist_pkgconfig_DATA = bdw-gc.pc
  41. # C Library
  42. # ---------
  43. lib_LTLIBRARIES += libgc.la
  44. libgc_la_SOURCES = \
  45. allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
  46. dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c \
  47. malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
  48. obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
  49. specific.c stubborn.c typd_mlc.c \
  50. backgraph.c thread_local_alloc.c
  51. # C Library: Architecture Dependent
  52. # ---------------------------------
  53. if PTHREADS
  54. libgc_la_SOURCES += pthread_support.c pthread_stop_world.c
  55. endif
  56. if DARWIN_THREADS
  57. libgc_la_SOURCES += darwin_stop_world.c
  58. endif
  59. if WIN32_THREADS
  60. libgc_la_SOURCES += win32_threads.c
  61. endif
  62. if USE_INTERNAL_LIBATOMIC_OPS
  63. nodist_libgc_la_SOURCES = ./atomic_ops.c
  64. endif
  65. if NEED_ATOMIC_OPS_ASM
  66. nodist_libgc_la_SOURCES = ./atomic_ops_sysdeps.S
  67. endif
  68. # Include THREADDLLIBS here to ensure that the correct versions of
  69. # linuxthread semaphore functions get linked:
  70. libgc_la_LIBADD = @addobjs@ $(THREADDLLIBS) $(UNWINDLIBS)
  71. libgc_la_DEPENDENCIES = @addobjs@
  72. libgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:3:0 -no-undefined
  73. EXTRA_libgc_la_SOURCES = alpha_mach_dep.S \
  74. mips_sgi_mach_dep.s mips_ultrix_mach_dep.s \
  75. rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
  76. sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
  77. # C++ Interface
  78. # -------------
  79. if CPLUSPLUS
  80. lib_LTLIBRARIES += libgccpp.la
  81. pkginclude_HEADERS += include/gc_cpp.h include/gc_allocator.h
  82. libgccpp_la_SOURCES = gc_cpp.cc
  83. libgccpp_la_LIBADD = ./libgc.la
  84. libgccpp_la_LDFLAGS = -version-info 1:3:0 -no-undefined
  85. endif
  86. # FIXME: If Visual C++ users use Makefile.am, this should go into
  87. # pkginclude_HEADERS with proper AM_CONDITIONALization. Otherwise
  88. # delete this comment.
  89. EXTRA_DIST += gc_cpp.cpp
  90. # Misc
  91. # ----
  92. AM_CXXFLAGS = @GC_CFLAGS@
  93. AM_CFLAGS = @GC_CFLAGS@
  94. ## FIXME: relies on internal code generated by automake.
  95. ## FIXME: ./configure --enable-dependency-tracking should be used
  96. #all_objs = @addobjs@ $(libgc_la_OBJECTS)
  97. #$(all_objs) : include/private/gcconfig.h include/private/gc_priv.h \
  98. #include/private/gc_hdrs.h include/gc.h include/gc_gcj.h \
  99. #include/gc_pthread_redirects.h include/gc_config_macros.h \
  100. #include/private/thread_local_alloc.h include/private_support.h \
  101. #include/private/pthread_stop_world.h \
  102. #include/gc_mark.h @addincludes@
  103. ## FIXME: we shouldn't have to do this, but automake forces us to.
  104. ## We use -Wp,-P to strip #line directives. Irix `as' chokes on
  105. ## these.
  106. if COMPILER_XLC
  107. ## XLC neither requires nor tolerates the unnecessary assembler goop
  108. ASM_CPP_OPTIONS =
  109. else
  110. ## We use -Wp,-P to strip #line directives. Irix `as' chokes on
  111. ## these.
  112. ASM_CPP_OPTIONS = -Wp,-P -x assembler-with-cpp
  113. endif
  114. .s.lo:
  115. $(LTCOMPILE) $(ASM_CPP_OPTIONS) -c $<
  116. .S.lo:
  117. $(LTCOMPILE) $(ASM_CPP_OPTIONS) -c $<
  118. ## We need to add DEFS to assembler flags
  119. ## :FIXME: what if assembler does not accept -D... ?
  120. ## (use Autoconf to prepare ASDEFS ???)
  121. CCASFLAGS += $(DEFS)
  122. dist_noinst_SCRIPTS = callprocs configure.host
  123. ## callprocs --- used by Makefile.{dj,direct}
  124. ## configure.host --- used by Makefile.{am,dj,direct}
  125. # headers which are not installed
  126. # (see include/include.am for more)
  127. #
  128. # documentation which is not installed
  129. #
  130. EXTRA_DIST += README.QUICK
  131. # other makefiles
  132. # :GOTCHA: deliberately we do not include 'Makefile'
  133. EXTRA_DIST += BCC_MAKEFILE NT_MAKEFILE NT_THREADS_MAKEFILE \
  134. OS2_MAKEFILE PCR-Makefile digimars.mak EMX_MAKEFILE \
  135. Makefile.direct Makefile.dj Makefile.DLLs SMakefile.amiga \
  136. WCC_MAKEFILE configure_atomic_ops.sh \
  137. NT_STATIC_THREADS_MAKEFILE NT_X64_STATIC_THREADS_MAKEFILE \
  138. NT_X64_THREADS_MAKEFILE
  139. # files used by makefiles other than Makefile.am
  140. #
  141. EXTRA_DIST += add_gc_prefix.c gcname.c if_mach.c if_not_there.c \
  142. hpux_test_and_clear.s gc.mak MacOS.c \
  143. MacProjects.sit.hqx mach_dep.c setjmp_t.c \
  144. threadlibs.c AmigaOS.c \
  145. Mac_files/datastart.c Mac_files/dataend.c \
  146. Mac_files/MacOS_config.h Mac_files/MacOS_Test_config.h \
  147. include/private/msvc_dbg.h msvc_dbg.c
  148. # The libatomic_ops library. This is not ideal, since we pick up junk from
  149. # there. The hard-coded version number should also go.
  150. EXTRA_DIST += libatomic_ops-1.2
  151. # this is an auxiliary shell file used by Makefile and Makefile.direct
  152. #
  153. CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
  154. # :FIXME: why do we distribute this one???
  155. #
  156. EXTRA_DIST += libtool.m4
  157. #
  158. # :GOTCHA: GNU make rule for making .s out of .S is flawed,
  159. # it will not remove dest if building fails
  160. .S.s:
  161. if $(CPP) $< >$@ ; then :; else rm -f $@; fi
  162. include include/include.am
  163. include cord/cord.am
  164. include tests/tests.am
  165. include doc/doc.am
  166. # Putting these at the top causes cord to be built first, and not find libgc.a
  167. # on HP/UX. There may be a better fix.