home *** CD-ROM | disk | FTP | other *** search
/ Serving the Web / ServingTheWeb1995.disc1of1.iso / linux / slacksrce / d / libc / libc-4.6 / libc-4 / libc-linux / elf / Makefile next >
Encoding:
Makefile  |  1994-11-16  |  4.3 KB  |  148 lines

  1. #
  2. # For ELF
  3. #
  4. TOPDIR=..
  5.  
  6. include $(TOPDIR)/Makeconfig
  7.  
  8. ELF_LDFLAGS=-shared # using GNU ld
  9. #ELF_LDFLAGS=-G # with SVr4 ld
  10.  
  11. # Use the same version numbering as the jumptable a.out libraries.
  12. ELFLIBS=libc libm libtermcap libcurses libgdbm libdb
  13.  
  14. CRTBEGIN=$(ELF_SHARED_DIR)/crtbeginS.o
  15. CRTEND=$(ELF_SHARED_DIR)/crtendS.o
  16.  
  17. ifeq ($(ELF),true)
  18. lib::
  19.       ($(MAKE) -C d-link lib);
  20.  
  21. lib::
  22.       ($(MAKE) -C crt crt);
  23.  
  24. lib::
  25.     for l in $(ELFLIBS); do \
  26.       JUMP_PARAMS=$$l/jump.params; \
  27.       SHLIB_VERSION=`awk -F= ' { if ($$1 == "Version")  print $$2 }' $$JUMP_PARAMS`; \
  28.       MAJOR_VERSION=`echo $$SHLIB_VERSION | sed 's/\.[0-9]*\.[0-9]*//'`; \
  29.       if [ "1" = "1" ]; then \
  30.         $(CC) $(ELF_LDFLAGS) -B$(ELF_SHARED_DIR)/ \
  31.         -o $(ELF_SHARED_DIR)/$$l.so.$$SHLIB_VERSION \
  32.         -Wl,-soname,$$l.so.$$MAJOR_VERSION \
  33.         $(ELF_SHARED_DIR)/$$l/*.o; \
  34.       else \
  35.         $(LD) $(ELF_LDFLAGS) -o $(ELF_SHARED_DIR)/$$l.so.$$SHLIB_VERSION \
  36.         -soname $$l.so.$$MAJOR_VERSION $(CRTBIGIN) \
  37.         $(ELF_SHARED_DIR)/$$l/*.o $(CRTEND); \
  38.       fi \
  39.     done
  40.  
  41. # Used for testing purposes - not of any actual value as far as I can tell.
  42. libc_pic.so:
  43.     $(MKDIR) libalias ; cd libalias ;\
  44.     $(AR) x ../../libalias.a ; cd .. ;\
  45.     $(LD) -Bshareable -Bsymbolic -assert nosymbolic
  46.         -o $@.1.1 libc/*.o libalias/*.o
  47.  
  48. else
  49.  
  50. lib::
  51.     @true
  52. endif
  53.  
  54. include $(TOPDIR)/Maketargets
  55.  
  56. ifeq ($(TARGET_ELF_SO_DIR),/lib/elf)
  57.  
  58. install:
  59.     if [ ! -d $(TARGET_ELF_LIB_DIR) ]; then \
  60.       $(MKDIR) $(TARGET_ELF_LIB_DIR); \
  61.     else true; fi
  62.     if [ ! -d $(TARGET_ELF_SO_DIR) ]; then \
  63.       $(MKDIR) $(TARGET_ELF_SO_DIR); \
  64.     else true; fi
  65.     cp $(ELF_SHARED_DIR)/*.o $(TARGET_ELF_LIB_DIR)
  66.     for l in $(ELFLIBS) libdl; do \
  67.       JUMP_PARAMS=$$l/jump.params; \
  68.       SHLIB_VERSION=`awk -F= ' { if ($$1 == "Version")  print $$2 }' $$JUMP_PARAMS`; \
  69.       MAJOR_VERSION=`echo $$SHLIB_VERSION | sed 's/\.[0-9]*\.[0-9]*//'`; \
  70.       lib=$$l.so; \
  71.       mlib=$$lib.$$MAJOR_VERSION; \
  72.       flib=$$lib.$$SHLIB_VERSION; \
  73.       if [ $$l = "libdl" ]; then \
  74.         mdlinker=ld-linux.so.$$MAJOR_VERSION; \
  75.         fdlinker=ld-linux.so.$$SHLIB_VERSION; \
  76.         if [ -f $(TARGET_ELF_SO_DIR)/$$fdlinker ]; then \
  77.           (cd $(TARGET_ELF_SO_DIR); \
  78.            cp $$fdlinker /tmp; \
  79.            if [ $$? -eq 0 ]; then \
  80.            ln -sf /tmp/$$fdlinker $$mdlinker; \
  81.            else exit 1; fi; \
  82.            if [ ! -d backup ]; then \
  83.              $(MKDIR) backup; \
  84.            else true; fi; \
  85.            mv $$fdlinker backup/$$fdlinker.$$$$); \
  86.         else true; fi; \
  87.         cp $(ELF_SHARED_DIR)/$$fdlinker $(TARGET_ELF_SO_DIR); \
  88.         (cd $(TARGET_ELF_SO_DIR); ln -sf $$fdlinker $$mdlinker); \
  89.       fi; \
  90.       if [ -f $(TARGET_ELF_SO_DIR)/$$flib ]; then \
  91.         (cd $(TARGET_ELF_SO_DIR); \
  92.          cp $$flib /tmp; \
  93.          if [ $$? -eq 0 ]; then \
  94.            ln -sf /tmp/$$flib $$mlib; \
  95.          else exit 1; fi; \
  96.          if [ ! -d backup ]; then \
  97.            $(MKDIR) backup; \
  98.          else true; fi; \
  99.          mv $$flib backup/$$flib.$$$$); \
  100.       else true; fi; \
  101.       cp $(ELF_SHARED_DIR)/$$flib $(TARGET_ELF_SO_DIR); \
  102.       (cd $(TARGET_ELF_SO_DIR); ln -sf $$flib $$mlib; \
  103.        ln -sf $$mlib $$lib); \
  104.       ln -sf $(TARGET_ELF_SO_DIR)/$$lib \
  105.         $(TARGET_ELF_LIB_DIR)/$$lib; \
  106.     done
  107.     (cd $(TARGET_ELF_LIB_DIR); rm -f libdbm.so; \
  108.      ln -s libgdbm.so libdbm.so)
  109.     $(LDCONFIG) -v -n $(TARGET_ELF_SO_DIR)
  110.  
  111. else
  112.  
  113. install:
  114.     if [ ! -d $(TARGET_ELF_LIB_DIR) ]; then \
  115.       $(MKDIR) $(TARGET_ELF_LIB_DIR); \
  116.     else true; fi
  117.     if [ ! -d $(TARGET_ELF_SO_DIR) ]; then \
  118.       $(MKDIR) $(TARGET_ELF_SO_DIR); \
  119.     else true; fi
  120.     cp $(ELF_SHARED_DIR)/*.o $(TARGET_ELF_LIB_DIR)
  121.     for l in $(ELFLIBS) libdl; do \
  122.       JUMP_PARAMS=$$l/jump.params; \
  123.       SHLIB_VERSION=`awk -F= ' { if ($$1 == "Version")  print $$2 }' $$JUMP_PARAMS`; \
  124.       MAJOR_VERSION=`echo $$SHLIB_VERSION | sed 's/\.[0-9]*\.[0-9]*//'`; \
  125.       lib=$$l.so; \
  126.       mlib=$$lib.$$MAJOR_VERSION; \
  127.       flib=$$lib.$$SHLIB_VERSION; \
  128.       if [ $$l = "libdl" ]; then \
  129.         mdlinker=ld-linux.so.$$MAJOR_VERSION; \
  130.         fdlinker=ld-linux.so.$$SHLIB_VERSION; \
  131.         cp $(ELF_SHARED_DIR)/$$fdlinker $(TARGET_ELF_SO_DIR); \
  132.         (cd $(TARGET_ELF_SO_DIR); ln -sf $$fdlinker $$mdlinker); \
  133.       fi; \
  134.       cp $(ELF_SHARED_DIR)/$$flib $(TARGET_ELF_SO_DIR); \
  135.       (cd $(TARGET_ELF_SO_DIR); $(RM) -f $$lib; \
  136.        ln -sf $$mlib $$lib; ln -sf $$flib $$mlib); \
  137.       (cd $(TARGET_ELF_LIB_DIR); $(RM) -f $$lib; \
  138.        ln -sf /lib/elf/$$lib $$lib); \
  139.     done
  140.     (cd $(TARGET_ELF_LIB_DIR); rm -f libdbm.so; \
  141.      ln -s libgdbm.so libdbm.so)
  142.  
  143. endif
  144.  
  145. ifeq (.depend,$(wildcard .depend))
  146. include .depend
  147. endif
  148.