summaryrefslogtreecommitdiffstats
path: root/libebl/Makefile.am
diff options
context:
space:
mode:
authorRoland McGrath <[email protected]>2005-11-16 01:57:40 +0000
committerRoland McGrath <[email protected]>2005-11-16 01:57:40 +0000
commitcd60ea83050d9fb48c3204005f475df460f433b6 (patch)
treee083a367ff3c5598999f3fe23df1fba35681ef31 /libebl/Makefile.am
parent1b8b446a794ac4babfd687ca48de32e5f4aaa539 (diff)
Revamp libebl/common-reloc.c code to share source at compile time only and not extend the libebl.a behavior itself.
Diffstat (limited to 'libebl/Makefile.am')
-rw-r--r--libebl/Makefile.am113
1 files changed, 27 insertions, 86 deletions
diff --git a/libebl/Makefile.am b/libebl/Makefile.am
index 93271e52..51b97ff2 100644
--- a/libebl/Makefile.am
+++ b/libebl/Makefile.am
@@ -27,15 +27,15 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
LIBEBL_SUBDIR = @LIBEBL_SUBDIR@
lib_LIBRARIES = libebl.a
-modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64
-noinst_LIBRARIES = libebl_i386_pic.a libebl_sh_pic.a \
- libebl_x86_64_pic.a libebl_ia64_pic.a libebl_alpha_pic.a \
- libebl_arm_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \
- libebl_ppc64_pic.a
-noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so)
+modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390
+libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
+ libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
+ libebl_sparc_pic.a libebl_ppc_pic.a libebl_ppc64_pic.a \
+ libebl_s390_pic.a
+noinst_LIBRARIES = $(libebl_pic)
+noinst_DATA = $(libebl_pic:_pic.a=.so)
-euincludedir = $(includedir)/elfutils
-euinclude_HEADERS = libebl.h
+pkginclude_HEADERS = libebl.h
gen_SOURCES = eblopenbackend.c eblclosebackend.c eblstrtab.c \
eblreloctypename.c eblsegmenttypename.c \
@@ -53,7 +53,7 @@ gen_SOURCES = eblopenbackend.c eblclosebackend.c eblstrtab.c \
libebl_a_SOURCES = $(gen_SOURCES)
-i386_SRCS = i386_init.c i386_destr.c i386_symbol.c i386_corenote.c
+i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c
libebl_i386_pic_a_SOURCES = $(i386_SRCS)
am_libebl_i386_pic_a_OBJECTS = $(i386_SRCS:.c=.os)
@@ -67,108 +67,50 @@ endif
textrel_check = if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
-libebl_i386_so_SOURCES =
-libebl_i386.so: libebl_i386_pic.a libebl_i386.map
+libebl_%.so: libebl_%_pic.a libebl_%.map
$(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_i386.map \
+ -Wl,--version-script,$(word 2,$^) \
-Wl,-z,defs $(libelf) $(libmudflap)
$(textrel_check)
+libebl_%.map: Makefile
+ echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' > $@
-sh_SRCS = sh_init.c sh_destr.c sh_symbol.c
+sh_SRCS = sh_init.c sh_symbol.c
libebl_sh_pic_a_SOURCES = $(sh_SRCS)
am_libebl_sh_pic_a_OBJECTS = $(sh_SRCS:.c=.os)
-libebl_sh_so_SOURCES =
-libebl_sh.so: libebl_sh_pic.a libebl_sh.map
- $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_sh.map \
- -Wl,-z,defs $(libmudflap)
- $(textrel_check)
-
-
-x86_64_SRCS = x86_64_init.c x86_64_destr.c x86_64_symbol.c x86_64_corenote.c
+x86_64_SRCS = x86_64_init.c x86_64_symbol.c x86_64_corenote.c
libebl_x86_64_pic_a_SOURCES = $(x86_64_SRCS)
am_libebl_x86_64_pic_a_OBJECTS = $(x86_64_SRCS:.c=.os)
-libebl_x86_64_so_SOURCES =
-libebl_x86_64.so: libebl_x86_64_pic.a libebl_x86_64.map
- $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_x86_64.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
- $(textrel_check)
-
-
-ia64_SRCS = ia64_init.c ia64_destr.c ia64_symbol.c
+ia64_SRCS = ia64_init.c ia64_symbol.c
libebl_ia64_pic_a_SOURCES = $(ia64_SRCS)
am_libebl_ia64_pic_a_OBJECTS = $(ia64_SRCS:.c=.os)
-libebl_ia64_so_SOURCES =
-libebl_ia64.so: libebl_ia64_pic.a libebl_ia64.map
- $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ia64.map \
- -Wl,-z,defs $(libmudflap)
- $(textrel_check)
-
-
-alpha_SRCS = alpha_init.c alpha_destr.c alpha_symbol.c
+alpha_SRCS = alpha_init.c alpha_symbol.c
libebl_alpha_pic_a_SOURCES = $(alpha_SRCS)
am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
-libebl_alpha_so_SOURCES =
-libebl_alpha.so: libebl_alpha_pic.a libebl_alpha.map
- $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_alpha.map \
- -Wl,-z,defs $(libmudflap)
- $(textrel_check)
-
-
-arm_SRCS = arm_init.c arm_destr.c arm_symbol.c
+arm_SRCS = arm_init.c arm_symbol.c
libebl_arm_pic_a_SOURCES = $(arm_SRCS)
am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)
-libebl_arm_so_SOURCES =
-libebl_arm.so: libebl_arm_pic.a libebl_arm.map
- $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_arm.map \
- -Wl,-z,defs $(libmudflap)
- $(textrel_check)
-
-
-sparc_SRCS = sparc_init.c sparc_destr.c sparc_symbol.c
+sparc_SRCS = sparc_init.c sparc_symbol.c
libebl_sparc_pic_a_SOURCES = $(sparc_SRCS)
am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os)
-libebl_sparc_so_SOURCES =
-libebl_sparc.so: libebl_sparc_pic.a libebl_sparc.map
- $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_sparc.map \
- -Wl,-z,defs $(libmudflap)
- $(textrel_check)
-
-
-ppc_SRCS = ppc_init.c ppc_destr.c ppc_symbol.c
+ppc_SRCS = ppc_init.c ppc_symbol.c
libebl_ppc_pic_a_SOURCES = $(ppc_SRCS)
am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os)
-libebl_ppc_so_SOURCES =
-libebl_ppc.so: libebl_ppc_pic.a libebl_ppc.map
- $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ppc.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
- $(textrel_check)
-
-
-ppc64_SRCS = ppc64_init.c ppc64_destr.c ppc64_symbol.c
+ppc64_SRCS = ppc64_init.c ppc64_symbol.c
libebl_ppc64_pic_a_SOURCES = $(ppc64_SRCS)
am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os)
-libebl_ppc64_so_SOURCES =
-libebl_ppc64.so: libebl_ppc64_pic.a libebl_ppc64.map
- $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
- -Wl,--version-script,$(srcdir)/libebl_ppc64.map \
- -Wl,-z,defs $(libelf) $(libmudflap)
- $(textrel_check)
+s390_SRCS = s390_init.c s390_symbol.c
+libebl_s390_pic_a_SOURCES = $(s390_SRCS)
+am_libebl_s390_pic_a_OBJECTS = $(s390_SRCS:.c=.os)
%.os: %.c %.o
@@ -193,11 +135,10 @@ uninstall: uninstall-am
rm -f $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)/libebl_$${m}.so; \
done
rmdir --ignore-fail-on-non-empty $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils
+ rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgincludedir)
-noinst_HEADERS = libeblP.h $(noinst_LIBRARIES:%_pic.a=%.h)
-EXTRA_DIST = $(noinst_LIBRARIES:%_pic.a=%.map) \
- $(foreach m,$(modules),$($(m)_SRCS))
+noinst_HEADERS = libeblP.h ebl-hooks.h libebl_CPU.h common-reloc.c
+EXTRA_DIST = $(foreach m,$(modules),$($(m)_SRCS)) $(modules:=_reloc.def)
CLEANFILES = $(am_libebl_pic_a_OBJECTS) *.gcno *.gcda \
$(foreach m,$(modules),$(am_libebl_$(m)_pic_a_OBJECTS))