xref: /aosp_15_r20/external/e2fsprogs/lib/Makefile.elf-lib (revision 6a54128f25917bfc36a8a6e9d722c04a0b4641b6)
1*6a54128fSAndroid Build Coastguard Worker#
2*6a54128fSAndroid Build Coastguard Worker# This is a Makefile stub which handles the creation of Linux ELF shared
3*6a54128fSAndroid Build Coastguard Worker# libraries.
4*6a54128fSAndroid Build Coastguard Worker#
5*6a54128fSAndroid Build Coastguard Worker# In order to use this stub, the following makefile variables must be defined.
6*6a54128fSAndroid Build Coastguard Worker#
7*6a54128fSAndroid Build Coastguard Worker# ELF_VERSION = 1.0
8*6a54128fSAndroid Build Coastguard Worker# ELF_SO_VERSION = 1
9*6a54128fSAndroid Build Coastguard Worker# ELF_IMAGE = libce
10*6a54128fSAndroid Build Coastguard Worker# ELF_MYDIR = et
11*6a54128fSAndroid Build Coastguard Worker# ELF_INSTALL_DIR = $(SHLIBDIR)
12*6a54128fSAndroid Build Coastguard Worker# ELF_OTHER_LIBS = -lc
13*6a54128fSAndroid Build Coastguard Worker
14*6a54128fSAndroid Build Coastguard Workerall:: image
15*6a54128fSAndroid Build Coastguard Worker
16*6a54128fSAndroid Build Coastguard Workerreal-subdirs:: Makefile
17*6a54128fSAndroid Build Coastguard Worker	$(E) "	MKDIR elfshared"
18*6a54128fSAndroid Build Coastguard Worker	$(Q) mkdir -p elfshared
19*6a54128fSAndroid Build Coastguard Worker
20*6a54128fSAndroid Build Coastguard WorkerELF_LIB = $(ELF_IMAGE).so.$(ELF_VERSION)
21*6a54128fSAndroid Build Coastguard WorkerELF_SONAME = $(ELF_IMAGE).so.$(ELF_SO_VERSION)
22*6a54128fSAndroid Build Coastguard Worker
23*6a54128fSAndroid Build Coastguard Workerimage:		$(ELF_LIB)
24*6a54128fSAndroid Build Coastguard Worker
25*6a54128fSAndroid Build Coastguard Worker$(ELF_LIB): $(OBJS)
26*6a54128fSAndroid Build Coastguard Worker	$(E) "	GEN_ELF_SOLIB $(ELF_LIB)"
27*6a54128fSAndroid Build Coastguard Worker	$(Q) (cd elfshared; $(CC) -o $(ELF_LIB) \
28*6a54128fSAndroid Build Coastguard Worker		-L$(top_builddir)/../lib $(LDFLAGS_SHLIB) -fPIC -shared \
29*6a54128fSAndroid Build Coastguard Worker		-Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
30*6a54128fSAndroid Build Coastguard Worker	$(Q) $(MV) elfshared/$(ELF_LIB) .
31*6a54128fSAndroid Build Coastguard Worker	$(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
32*6a54128fSAndroid Build Coastguard Worker	$(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) \
33*6a54128fSAndroid Build Coastguard Worker		`echo $(my_dir) | sed -e 's;lib/;;'`/$(ELF_LIB) $(ELF_LIB))
34*6a54128fSAndroid Build Coastguard Worker	$(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) $(ELF_LIB) $(ELF_IMAGE).so)
35*6a54128fSAndroid Build Coastguard Worker	$(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) $(ELF_LIB) $(ELF_SONAME))
36*6a54128fSAndroid Build Coastguard Worker
37*6a54128fSAndroid Build Coastguard Workerinstalldirs-elf-lib::
38*6a54128fSAndroid Build Coastguard Worker	$(E) "	MKDIR_P $(ELF_INSTALL_DIR) $(libdir)"
39*6a54128fSAndroid Build Coastguard Worker	$(Q) $(MKDIR_P) $(DESTDIR)$(ELF_INSTALL_DIR) \
40*6a54128fSAndroid Build Coastguard Worker		$(DESTDIR)$(libdir)
41*6a54128fSAndroid Build Coastguard Worker
42*6a54128fSAndroid Build Coastguard Workerinstalldirs:: installdirs-elf-lib
43*6a54128fSAndroid Build Coastguard Worker
44*6a54128fSAndroid Build Coastguard Workerinstall-shlibs install:: $(ELF_LIB) installdirs-elf-lib $(DEP_INSTALL_SYMLINK)
45*6a54128fSAndroid Build Coastguard Worker	$(E) "	INSTALL-ELF-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
46*6a54128fSAndroid Build Coastguard Worker	$(Q) $(INSTALL_PROGRAM) $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
47*6a54128fSAndroid Build Coastguard Worker	$(E) "	SYMLINK $(ELF_INSTALL_DIR)/$(ELF_SONAME)"
48*6a54128fSAndroid Build Coastguard Worker	$(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_LIB) \
49*6a54128fSAndroid Build Coastguard Worker		$(ELF_INSTALL_DIR)/$(ELF_SONAME) $(DESTDIR)
50*6a54128fSAndroid Build Coastguard Worker	$(E) "	SYMLINK $(libdir)/$(ELF_IMAGE).so"
51*6a54128fSAndroid Build Coastguard Worker	$(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_SONAME) \
52*6a54128fSAndroid Build Coastguard Worker		$(libdir)/$(ELF_IMAGE).so $(DESTDIR)
53*6a54128fSAndroid Build Coastguard Worker	$(E) "	LDCONFIG"
54*6a54128fSAndroid Build Coastguard Worker	$(Q) -$(LDCONFIG)
55*6a54128fSAndroid Build Coastguard Worker
56*6a54128fSAndroid Build Coastguard Workerinstall-strip: install
57*6a54128fSAndroid Build Coastguard Worker	$(E) "	STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
58*6a54128fSAndroid Build Coastguard Worker	$(Q) $(STRIP) --strip-unneeded --remove-section=.comment \
59*6a54128fSAndroid Build Coastguard Worker		--remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
60*6a54128fSAndroid Build Coastguard Worker
61*6a54128fSAndroid Build Coastguard Workerinstall-shlibs-strip:: install-shlibs
62*6a54128fSAndroid Build Coastguard Worker	$(E) "	STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
63*6a54128fSAndroid Build Coastguard Worker	$(Q) $(STRIP) --strip-unneeded --remove-section=.comment \
64*6a54128fSAndroid Build Coastguard Worker		--remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
65*6a54128fSAndroid Build Coastguard Worker
66*6a54128fSAndroid Build Coastguard Workeruninstall-shlibs uninstall::
67*6a54128fSAndroid Build Coastguard Worker	$(RM) -f $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) \
68*6a54128fSAndroid Build Coastguard Worker		$(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) \
69*6a54128fSAndroid Build Coastguard Worker		$(DESTDIR)$(libdir)/$(ELF_IMAGE).so
70*6a54128fSAndroid Build Coastguard Worker	-$(LDCONFIG)
71*6a54128fSAndroid Build Coastguard Worker
72*6a54128fSAndroid Build Coastguard Workerclean::
73*6a54128fSAndroid Build Coastguard Worker	$(RM) -rf elfshared
74*6a54128fSAndroid Build Coastguard Worker	$(RM) -f $(ELF_LIB)
75*6a54128fSAndroid Build Coastguard Worker	$(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
76