summaryrefslogtreecommitdiff
path: root/libs/sigc++2/sigc++/Makefile.am
blob: 6f9af23e0beecd0b20d8795b0b7aa17fce10c970 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Base (./)
base_m4 = template.macros.m4 signal.h.m4 slot.h.m4 method_slot.h.m4 \
	  object_slot.h.m4 class_slot.h.m4 hide.h.m4 retype.h.m4
base_built_cc =
base_built_h = signal.h slot.h method_slot.h \
	       object_slot.h class_slot.h hide.h retype.h

signal.cc : signal.h signal_base.h functors/slot.h functors/slot_base.h functors/mem_fun.h functors/functor_trait.h

# Functors (functors/)
functors_m4 = functor_trait.h.m4 slot.h.m4 ptr_fun.h.m4 mem_fun.h.m4
functors_built_cc = 
functors_built_h = functor_trait.h slot.h ptr_fun.h mem_fun.h

functors/slot.cc : functors/slot.h functors/slot_base.h functors/functor_trait.h

# Adaptors (adaptors/)
adaptors_m4 = deduce_result_type.h.m4 adaptor_trait.h.m4 bind.h.m4 bind_return.h.m4 \
	      retype_return.h.m4 hide.h.m4 retype.h.m4 compose.h.m4 exception_catch.h.m4
adaptors_built_cc =
adaptors_built_h = deduce_result_type.h adaptor_trait.h bind.h bind_return.h \
                   retype_return.h hide.h retype.h compose.h exception_catch.h

# Lambda (adaptors/lambda)
lambda_m4 = base.h.m4 select.h.m4 operator.h.m4 group.h.m4 lambda.cc.m4
lambda_built_cc = lambda.cc
lambda_built_h = base.h select.h operator.h group.h

adaptors/lambda/lambda.cc : adaptors/lambda/select.h adaptors/lambda/base.h \
                   adaptors/adaptor_trait.h adaptors/deduce_result_type.h \
                   functors/ptr_fun.h functors/mem_fun.h functors/functor_trait.h

# Subdirectories needed also in the build dir
build_subdirs = functors adaptors adaptors/lambda

# Combine all the above parts with right directories prefixed
sigc_m4 = $(base_m4:%=macros/%) \
	  $(functors_m4:%=functors/macros/%) \
          $(adaptors_m4:%=adaptors/macros/%) \
          $(lambda_m4:%=adaptors/lambda/macros/%)
sigc_built_cc = $(base_built_cc) \
	  $(functors_built_cc:%=functors/%) \
          $(adaptors_built_cc:%=adaptors/%) \
          $(lambda_built_cc:%=adaptors/lambda/%)
sigc_built_h = $(base_built_h) \
	  $(functors_built_h:%=functors/%) \
          $(adaptors_built_h:%=adaptors/%) \
          $(lambda_built_h:%=adaptors/lambda/%)

EXTRA_DIST = $(sigc_m4) $(sigc_built_h) $(sigc_built_cc)

# install the headers
library_includedir = $(includedir)/sigc++-2.0/sigc++
nobase_library_include_HEADERS = $(sigc_m4) $(sigc_built_h) \
  sigc++.h connection.h trackable.h reference_wrapper.h type_traits.h visit_each.h \
  object.h retype_return.h bind.h bind_return.h compatibility.h signal_base.h \
  functors/functors.h \
  functors/slot_base.h \
  adaptors/adaptors.h \
  adaptors/lambda/lambda.h

# build the library
#lib_LTLIBRARIES = libsigc-2.0.la
#libsigc_2_0_la_SOURCES = signal.cc signal_base.cc trackable.cc connection.cc \
                         functors/slot.cc functors/slot_base.cc \
			 adaptors/lambda/lambda.cc
#libsigc_2_0_la_LDFLAGS  = 

BUILT_SOURCES = $(sigc_built_h) $(sigc_built_cc)

CLEANFILES = build-subdirs-stamp

# Remove the generated sources during maintainer-clean:
MAINTAINERCLEANFILES = $(built_sources)

M4_DIR = $(top_srcdir)/sigc++/macros

# Rules to generate .h and .cc from .h.m4 and .cc.m4:
%.h: macros/%.h.m4 $(M4_DIR)/template.macros.m4
	        $(M4) $(M4_INCLUDES) $(DEFINES) -I $(M4_DIR) -I macros $<  > $@

%.cc: macros/%.cc.m4 $(M4_DIR)/template.macros.m4
	        $(M4) $(M4_INCLUDES) $(DEFINES) -I $(M4_DIR) -I macros $<  > $@

# This would be a necessary target for VPATH builds from a clean CVS checkout,
# but I'm not sure where to invoke it... [rotty]
build-subdirs-stamp:
	for dir in $(build_subdirs); do \
	  test -d $$dir || mkdir $$dir; \
	done
	touch build-subdirs-stamp

# Remove current directory from DEFAULT_INCLUDES because signal.h has
# the same name as a standard header:
DEFAULT_INCLUDES =
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)