150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o#
250e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# This is a Makefile stub which handles the creation of Linux ELF shared
350e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# libraries.
450e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o#
550e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# In order to use this stub, the following makefile variables must be defined.
650e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# 
750e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# ELF_VERSION = 1.0
874becf3c0a065f8d64e07ce4d31f9fe53be91d62Theodore Ts'o# ELF_SO_VERSION = 1
950e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# ELF_IMAGE = libce
1050e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# ELF_MYDIR = et
1150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# ELF_INSTALL_DIR = $(SHLIBDIR)
1221c84b71e205b5ab13f14343da5645dcc985856dTheodore Ts'o# ELF_OTHER_LIBS = -lc
1350e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o
1402ef19621032044c1488931b3f970e11dca0afe0Theodore Ts'oall:: image
1550e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o
163f546fcc27e9bfca8d365c4d78c6e6c99ca32512Theodore Ts'oreal-subdirs:: Makefile
17c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	MKDIR elfshared"
18c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(Q) mkdir -p elfshared
1950e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o
2050e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'oELF_LIB = $(ELF_IMAGE).so.$(ELF_VERSION)
21297f47a13edce54d08517182e714083a0a7f196cTheodore Ts'oELF_SONAME = $(ELF_IMAGE).so.$(ELF_SO_VERSION)
2250e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o
2350e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'oimage:		$(ELF_LIB)
2450e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o
2550e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o$(ELF_LIB): $(OBJS)
26c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	GEN_ELF_SOLIB $(ELF_LIB)"
270eb9fb99da686ac87bbd58554ad88f9567552ae9Theodore Ts'o	$(Q) (cd elfshared; $(CC) -o $(ELF_LIB) \
280eb9fb99da686ac87bbd58554ad88f9567552ae9Theodore Ts'o		-L$(top_builddir)/../lib $(LDFLAGS_SHLIB) -fPIC -shared \
29d5aa6a82b37a0e78d8882601e6ad9da9d9dcb4daTheodore Ts'o		-Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
30c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(Q) $(MV) elfshared/$(ELF_LIB) .
31c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
325aa6c3f61c0559f03b68bdeef886f34ece106757Theodore Ts'o	$(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) \
335aa6c3f61c0559f03b68bdeef886f34ece106757Theodore Ts'o		`echo $(my_dir) | sed -e 's;lib/;;'`/$(ELF_LIB) $(ELF_LIB))
345aa6c3f61c0559f03b68bdeef886f34ece106757Theodore Ts'o	$(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) $(ELF_LIB) $(ELF_IMAGE).so)
355aa6c3f61c0559f03b68bdeef886f34ece106757Theodore Ts'o	$(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) $(ELF_LIB) $(ELF_SONAME))
3650e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o
371e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'oinstalldirs-elf-lib::
38c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	MKINSTALLDIRS $(ELF_INSTALL_DIR) $(libdir)"
39c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(Q) $(MKINSTALLDIRS) $(DESTDIR)$(ELF_INSTALL_DIR) \
4039b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o		$(DESTDIR)$(libdir)
4150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o
421e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'oinstalldirs:: installdirs-elf-lib
431e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o
44183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'oinstall-shlibs install:: $(ELF_LIB) installdirs-elf-lib $(DEP_INSTALL_SYMLINK)
45c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	INSTALL-ELF-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
46c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(Q) $(INSTALL_PROGRAM) $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
47c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	SYMLINK $(ELF_INSTALL_DIR)/$(ELF_SONAME)"
48183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'o	$(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_LIB) \
49183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'o		$(ELF_INSTALL_DIR)/$(ELF_SONAME) $(DESTDIR)
50c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	SYMLINK $(libdir)/$(ELF_IMAGE).so"
51183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'o	$(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_SONAME) \
52183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'o		$(libdir)/$(ELF_IMAGE).so $(DESTDIR)
53c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	LDCONFIG"
54c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(Q) -$(LDCONFIG)
55522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'o
56522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'oinstall-strip: install
57c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
58c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(Q) $(STRIP) --strip-unneeded --remove-section=.comment \
59522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'o		--remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
60522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'o
61522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'oinstall-shlibs-strip: install-shlibs
62c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(E) "	STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
63c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o	$(Q) $(STRIP) --strip-unneeded --remove-section=.comment \
64522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'o		--remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
6539b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o
6639b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'ouninstall-shlibs uninstall::
6739b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o	$(RM) -f $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) \
6839b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o		$(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) \
6939b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o		$(DESTDIR)$(libdir)/$(ELF_IMAGE).so
7020562a48a57c521a2853cf839abe8d754ba844e0Theodore Ts'o	-$(LDCONFIG)
7150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o
7250e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'oclean::
7350e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o	$(RM) -rf elfshared
7450e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o	$(RM) -f $(ELF_LIB)
7562c06f790c4920ec2721515e36d599751f6d4d2dTheodore Ts'o	$(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
76