Makefile.am revision ad7f1470e3ada2f6f5b2c7dc913b3cd3df4aa2c7
1SOVERSION=1:0:0		# See comments at end of file.
2SETJMP_SO_VERSION=0:0:0
3
4if REMOTE_ONLY
5# Nothing special.
6else
7
8libunwind_la_SOURCES_cdep =						     \
9	_UPT_internal.h							     \
10									     \
11	_UPT_accessors.c _UPT_access_fpreg.c _UPT_access_mem.c		     \
12	_UPT_access_reg.c _UPT_create.c _UPT_destroy.c _UPT_find_proc_info.c \
13	_UPT_get_dyn_info_list_addr.c _UPT_put_unwind_info.c		     \
14	_UPT_reg_offset.c
15
16lib_LTLIBRARIES_cdep		= libunwind-setjmp.la
17libunwind_setjmp_la_SOURCES_common = longjmp.c siglongjmp.c
18libunwind_setjmp_la_LDFLAGS	= -version-info $(SETJMP_SO_VERSION)
19libunwind_setjmp_la_LIBADD	= libunwind-$(arch).la
20
21libunwind_setjmp_la_SOURCES_ia64 = ia64/setjmp-ia64.S ia64/sigsetjmp-ia64.S \
22				   ia64/siglongjmp-ia64.S
23libunwind_setjmp_la_SOURCES_hppa = setjmp.c sigsetjmp.c hppa/siglongjmp-hppa.S
24libunwind_setjmp_la_SOURCES_x86	 = setjmp.c sigsetjmp.c x86/siglongjmp-x86.S
25#
26# This is not ideal, but I know of no other way to install an
27# alias for a library.
28#
29install-exec-hook:
30	$(LN_S) -f libunwind-$(arch).a  $(DESTDIR)$(libdir)/libunwind.a
31	$(LN_S) -f libunwind-$(arch).so $(DESTDIR)$(libdir)/libunwind.so
32
33endif
34
35if OS_LINUX
36 libunwind_la_SOURCES_os = os-linux.h os-linux.c
37endif
38
39libunwind_la_SOURCES_common = $(libunwind_la_SOURCES_cdep)	\
40	$(libunwind_la_SOURCES_os)				\
41	backtrace.c get_proc_name.c				\
42	dyn-cancel.c dyn-extract.c dyn-register.c		\
43	dyn-remote.c						\
44	mi-init.c						\
45	mempool.c						\
46	Gfind_dynamic_proc_info.c Gput_dynamic_unwind_info.c	\
47	Lfind_dynamic_proc_info.c Lput_dynamic_unwind_info.c
48
49#
50# Note: As of automake-1.6, there is a stupid limitation which requires
51#	that each filename is unique.  This prevents us from having, e.g.,
52#	ia64/tables.c and x86/tables.c.  The fix for now is to uglify the
53#	filenames by appending the arch-name (e.g., tables-ia64.c).  Oh, well.
54#
55
56libunwind_la_SOURCES_ia64 = $(libunwind_la_SOURCES_common)		      \
57	ia64/init.h ia64/offsets.h ia64/regs.h ia64/rse.h		      \
58	ia64/ucontext_i.h ia64/unwind_decoder.h ia64/unwind_i.h		      \
59									      \
60	elf64.c								      \
61	ia64/_Uia64_install_context.S ia64/global-ia64.c ia64/rbs-ia64.c      \
62	ia64/tables-ia64.c ia64/get_accessors-ia64.c			      \
63	ia64/flush_cache-ia64.c ia64/set_caching_policy-ia64.c		      \
64	ia64/regname-ia64.c						      \
65									      \
66	ia64/Ginit-ia64.c ia64/Gparser-ia64.c ia64/Gregs-ia64.c		      \
67	ia64/Gscript-ia64.c ia64/Gcreate_addr_space-ia64.c		      \
68	ia64/Gdestroy_addr_space-ia64.c					      \
69	ia64/Gget_proc_info-ia64.c ia64/Gget_proc_name-ia64.c		      \
70	ia64/Gget_reg-ia64.c ia64/Gget_fpreg-ia64.c ia64/Gget_save_loc-ia64.c \
71	ia64/Gis_signal_frame-ia64.c					      \
72	ia64/Gresume-ia64.c ia64/Gset_reg-ia64.c ia64/Gset_fpreg-ia64.c	      \
73	ia64/Ginit_local-ia64.c ia64/Ginit_remote-ia64.c ia64/Gstep-ia64.c    \
74									      \
75	ia64/Linit-ia64.c ia64/Lparser-ia64.c ia64/Lregs-ia64.c		      \
76	ia64/Lscript-ia64.c ia64/Lcreate_addr_space-ia64.c		      \
77	ia64/Ldestroy_addr_space-ia64.c					      \
78	ia64/Lget_proc_info-ia64.c ia64/Lget_proc_name-ia64.c		      \
79	ia64/Lget_reg-ia64.c ia64/Lget_fpreg-ia64.c ia64/Lget_save_loc-ia64.c \
80	ia64/Lis_signal_frame-ia64.c					      \
81	ia64/Lresume-ia64.c ia64/Lset_reg-ia64.c ia64/Lset_fpreg-ia64.c	      \
82	ia64/Linit_local-ia64.c ia64/Linit_remote-ia64.c ia64/Lstep-ia64.c
83
84libunwind_la_SOURCES_hppa = $(libunwind_la_SOURCES_common)		\
85	hppa/flush_cache-hppa.c hppa/get_accessors-hppa.c		\
86	hppa/global-hppa.c hppa/tables-hppa.c				\
87	hppa/init.h hppa/unwind_i.h					\
88									\
89	hppa/Gget_reg-hppa.c hppa/Gget_proc_name-hppa.c			\
90	hppa/Ginit-hppa.c hppa/Ginit_local-hppa.c			\
91	hppa/Gget_proc_info-hppa.c hppa/Gregs-hppa.c hppa/Gstep-hppa.c	\
92									\
93	hppa/Lget_reg-hppa.c hppa/Lget_proc_name-hppa.c			\
94	hppa/Linit-hppa.c hppa/Linit_local-hppa.c			\
95	hppa/Lget_proc_info-hppa.c hppa/Lregs-hppa.c hppa/Lstep-hppa.c
96
97libunwind_la_SOURCES_x86 = $(libunwind_la_SOURCES_common)		\
98	x86/flush_cache-x86.c x86/get_accessors-x86.c x86/global-x86.c	\
99	x86/tables-x86.c						\
100	x86/init.h x86/unwind_i.h					\
101									\
102	x86/Gget_reg-x86.c x86/Gget_proc_name-x86.c x86/Ginit-x86.c	\
103	x86/Ginit_local-x86.c x86/Gget_proc_info-x86.c x86/Gregs-x86.c	\
104	x86/Gstep-x86.c							\
105									\
106	x86/Lget_reg-x86.c x86/Lget_proc_name-x86.c x86/Linit-x86.c	\
107	x86/Linit_local-x86.c x86/Lget_proc_info-x86.c x86/Lregs-x86.c	\
108	x86/Lstep-x86.c
109
110if ARCH_IA64
111 mk_cursor_i_ia64_SOURCES = ia64/mk_cursor_i-ia64.c
112 noinst_PROGRAMS = mk_cursor_i-ia64
113 BUILT_SOURCES = cursor_i.h
114cursor_i.h: mk_cursor_i-ia64
115	mk_cursor_i-ia64 > $@
116 lib_LTLIBRARIES_arch = libunwind-ia64.la
117 libunwind_ia64_la_SOURCES = $(libunwind_la_SOURCES_ia64)
118 libunwind_ia64_la_LDFLAGS = -version-info $(SOVERSION)
119 libunwind_setjmp_la_SOURCES	= $(libunwind_setjmp_la_SOURCES_common) \
120				  $(libunwind_setjmp_la_SOURCES_ia64)
121else
122if ARCH_HPPA
123 lib_LTLIBRARIES_arch = libunwind-hppa.la
124 libunwind_hppa_la_SOURCES = $(libunwind_la_SOURCES_hppa)
125 libunwind_hppa_la_LDFLAGS = -version-info $(SOVERSION)
126 libunwind_setjmp_la_SOURCES	= $(libunwind_setjmp_la_SOURCES_common) \
127				  $(libunwind_setjmp_la_SOURCES_hppa)
128else
129if ARCH_X86
130 lib_LTLIBRARIES_arch = libunwind-x86.la
131 libunwind_x86_la_SOURCES = $(libunwind_la_SOURCES_x86)
132 libunwind_x86_la_LDFLAGS = -version-info $(SOVERSION)
133 libunwind_setjmp_la_SOURCES	= $(libunwind_setjmp_la_SOURCES_common) \
134				  $(libunwind_setjmp_la_SOURCES_x86)
135endif # ARCH_X86
136endif # ARCH_HPPA
137endif # ARCH_IA64
138
139lib_LTLIBRARIES = $(lib_LTLIBRARIES_cdep) $(lib_LTLIBRARIES_arch)
140
141# XXX Need to create symlinks from libunwind-ia64.so to libunwind.so
142# XXX end libunwind-ia64.a to libunwind.a
143
144AM_CPPFLAGS = -I$(top_srcdir)/include -I.
145AM_CCASFLAGS = $(AM_CPPFLAGS)
146
147# The -version-info flag accepts an argument of the form
148# `current[:revision[:age]]'. So, passing `-version-info 3:12:1' sets
149# current to 3, revision to 12, and age to 1.
150
151# If either revision or age are omitted, they default to 0. Also note
152# that age must be less than or equal to the current interface number.
153
154# Here are a set of rules to help you update your library version
155# information:
156
157#    1. Start with version information of `0:0:0' for each libtool
158#       library.
159
160#    2. Update the version information only immediately before a public
161#       release of your software. More frequent updates are unnecessary,
162#       and only guarantee that the current interface number gets larger
163#       faster.
164
165#    3. If the library source code has changed at all since the last
166#       update, then increment revision (`c:r:a' becomes `c:r+1:a').
167
168#    4. If any interfaces have been added, removed, or changed since the
169#       last update, increment current, and set revision to 0.
170
171#    5. If any interfaces have been added since the last public release,
172#       then increment age.
173
174#    6. If any interfaces have been removed since the last public
175#       release, then set age to 0.
176