1AUTOMAKE_OPTIONS = subdir-objects
2
3# Base (./)
4base_m4 = template.macros.m4 signal.h.m4 slot.h.m4 method_slot.h.m4 \
5	  object_slot.h.m4 class_slot.h.m4 hide.h.m4 retype.h.m4 \
6	  limit_reference.h.m4
7base_built_cc =
8base_built_h = signal.h slot.h method_slot.h \
9	       object_slot.h class_slot.h hide.h retype.h limit_reference.h
10
11signal.cc : signal.h signal_base.h functors/slot.h functors/slot_base.h functors/mem_fun.h functors/functor_trait.h
12
13# Functors (functors/)
14functors_m4 = functor_trait.h.m4 slot.h.m4 ptr_fun.h.m4 mem_fun.h.m4
15functors_built_cc =
16functors_built_h = functor_trait.h slot.h ptr_fun.h mem_fun.h
17
18functors/slot.cc : functors/slot.h functors/slot_base.h functors/functor_trait.h
19
20# Adaptors (adaptors/)
21adaptors_m4 = deduce_result_type.h.m4 adaptor_trait.h.m4 bind.h.m4 bind_return.h.m4 \
22	      retype_return.h.m4 hide.h.m4 retype.h.m4 compose.h.m4 exception_catch.h.m4
23adaptors_built_cc =
24adaptors_built_h = deduce_result_type.h adaptor_trait.h bind.h bind_return.h \
25                   retype_return.h hide.h retype.h compose.h exception_catch.h
26
27# Lambda (adaptors/lambda)
28lambda_m4 = base.h.m4 select.h.m4 operator.h.m4 group.h.m4 lambda.cc.m4
29lambda_built_cc = lambda.cc
30lambda_built_h = base.h select.h operator.h group.h
31
32adaptors/lambda/lambda.cc : adaptors/lambda/select.h adaptors/lambda/base.h \
33                   adaptors/adaptor_trait.h adaptors/deduce_result_type.h \
34                   functors/ptr_fun.h functors/mem_fun.h functors/functor_trait.h
35
36# Subdirectories needed also in the build dir
37build_subdirs = functors adaptors adaptors/lambda
38
39# Combine all the above parts with right directories prefixed
40sigc_m4 = $(base_m4:%=macros/%) \
41	  $(functors_m4:%=functors/macros/%) \
42          $(adaptors_m4:%=adaptors/macros/%) \
43          $(lambda_m4:%=adaptors/lambda/macros/%)
44sigc_built_cc = $(base_built_cc) \
45	  $(functors_built_cc:%=functors/%) \
46          $(adaptors_built_cc:%=adaptors/%) \
47          $(lambda_built_cc:%=adaptors/lambda/%)
48sigc_built_h = $(base_built_h) \
49	  $(functors_built_h:%=functors/%) \
50          $(adaptors_built_h:%=adaptors/%) \
51          $(lambda_built_h:%=adaptors/lambda/%)
52
53EXTRA_DIST = $(sigc_m4) $(sigc_built_h) $(sigc_built_cc) \
54  sigc++.h connection.h trackable.h reference_wrapper.h type_traits.h visit_each.h \
55  object.h retype_return.h bind.h bind_return.h compatibility.h signal_base.h \
56  functors/functors.h \
57  functors/slot_base.h \
58  adaptors/adaptors.h \
59 adaptors/bound_argument.h \
60  adaptors/lambda/lambda.h
61
62
63# build the library
64noinst_LIBRARIES = libsigc.a
65libsigc_a_SOURCES = signal.cc signal_base.cc trackable.cc connection.cc \
66                         functors/slot.cc functors/slot_base.cc \
67			 adaptors/lambda/lambda.cc
68# comment BUILT_SOURCES to disable maintainer-clean target
69# BUILT_SOURCES = $(sigc_built_h) $(sigc_built_cc)
70
71CLEANFILES = build-subdirs-stamp
72
73# Remove the generated sources during maintainer-clean:
74# StarDict project is not configured for recreating these files
75# MAINTAINERCLEANFILES = $(built_sources)
76
77M4_DIR = $(top_srcdir)/src/sigc++/macros
78
79# Comment these rules to prevent accidental recreation of *.h and *.cc files,
80# File recreation does not work anyway, invalid files are produced.
81# Rules to generate .h and .cc from .h.m4 and .cc.m4:
82# %.h: macros/%.h.m4 $(M4_DIR)/template.macros.m4
83# 	        $(M4) $(M4_INCLUDES) $(DEFINES) -I $(M4_DIR) -I macros $<  > $@
84#
85# %.cc: macros/%.cc.m4 $(M4_DIR)/template.macros.m4
86# 	        $(M4) $(M4_INCLUDES) $(DEFINES) -I $(M4_DIR) -I macros $<  > $@
87
88# This would be a necessary target for VPATH builds from a clean CVS checkout,
89# but I'm not sure where to invoke it... [rotty]
90build-subdirs-stamp:
91	for dir in $(build_subdirs); do \
92	  test -d $$dir || mkdir $$dir; \
93	done
94	touch build-subdirs-stamp
95
96# Remove current directory from DEFAULT_INCLUDES because signal.h has
97# the same name as a standard header:
98DEFAULT_INCLUDES =
99AM_CPPFLAGS = -I$(top_builddir) -I$(top_builddir)/src -I$(top_builddir)/src/sigc++config \
100	-I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/sigc++config $(STARDICT_CFLAGS)
101
102