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) --shared -o $(ELF_LIB) \ 28*6a54128fSAndroid Build Coastguard Worker -L$(top_builddir)/../lib $(LDFLAGS_SHLIB) \ 29*6a54128fSAndroid Build Coastguard Worker -Wl,-h,$(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 $(MKDIR_P) $(DESTDIR)$(ELF_INSTALL_DIR) \ 39*6a54128fSAndroid Build Coastguard Worker $(DESTDIR)$(libdir) 40*6a54128fSAndroid Build Coastguard Worker 41*6a54128fSAndroid Build Coastguard Workerinstalldirs:: installdirs-elf-lib 42*6a54128fSAndroid Build Coastguard Worker 43*6a54128fSAndroid Build Coastguard Workerinstall-shlibs install:: $(ELF_LIB) installdirs-elf-lib 44*6a54128fSAndroid Build Coastguard Worker $(INSTALL_PROGRAM) $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 45*6a54128fSAndroid Build Coastguard Worker $(LN_S) -f $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) 46*6a54128fSAndroid Build Coastguard Worker $(LN_S) -f $(ELF_INSTALL_DIR)/$(ELF_SONAME) \ 47*6a54128fSAndroid Build Coastguard Worker $(DESTDIR)$(libdir)/$(ELF_IMAGE).so 48*6a54128fSAndroid Build Coastguard Worker -$(LDCONFIG) 49*6a54128fSAndroid Build Coastguard Worker 50*6a54128fSAndroid Build Coastguard Workerinstall-strip: install 51*6a54128fSAndroid Build Coastguard Worker $(STRIP) -x $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 52*6a54128fSAndroid Build Coastguard Worker 53*6a54128fSAndroid Build Coastguard Workerinstall-shlibs-strip:: install-shlibs 54*6a54128fSAndroid Build Coastguard Worker $(STRIP) -x $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 55*6a54128fSAndroid Build Coastguard Worker 56*6a54128fSAndroid Build Coastguard Workeruninstall-shlibs uninstall:: 57*6a54128fSAndroid Build Coastguard Worker $(RM) -f $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) \ 58*6a54128fSAndroid Build Coastguard Worker $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) \ 59*6a54128fSAndroid Build Coastguard Worker $(DESTDIR)$(libdir)/$(ELF_IMAGE).so 60*6a54128fSAndroid Build Coastguard Worker -$(LDCONFIG) 61*6a54128fSAndroid Build Coastguard Worker 62*6a54128fSAndroid Build Coastguard Workerclean:: 63*6a54128fSAndroid Build Coastguard Worker $(RM) -rf elfshared 64*6a54128fSAndroid Build Coastguard Worker $(RM) -f $(ELF_LIB) 65*6a54128fSAndroid Build Coastguard Worker $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME) 66