home *** CD-ROM | disk | FTP | other *** search
/ Serving the Web / ServingTheWeb1995.disc1of1.iso / linux / slacksrce / d / libc / libc-4.6 / libc-4 / libc-linux / jump / libdb / Makefile < prev    next >
Encoding:
Makefile  |  1994-10-19  |  2.8 KB  |  100 lines

  1. #
  2.  
  3. TOPDIR=../..
  4.  
  5. include $(TOPDIR)/Makeconfig
  6.  
  7. ifeq ($(NYS),true)
  8. NYS_DIR_SUFFIX=-nys
  9. endif
  10.  
  11. JUMP_DIR:=$(TOPDIR)/jump/libdb
  12.  
  13. JUMP_PARAMS=$(JUMP_DIR)/jump.params
  14. SHLIB_NAME:= $(shell awk -F= ' { if ($$1 == "Name")  print $$2 }' $(JUMP_PARAMS))
  15. SHLIB_TEXT:= $(shell awk -F= ' { if ($$1 == "Text")  print $$2 }' $(JUMP_PARAMS))
  16. SHLIB_DATA:= $(shell awk -F= ' { if ($$1 == "Data")  print $$2 }' $(JUMP_PARAMS))
  17. SHLIB_JUMP:= $(shell awk -F= ' { if ($$1 == "Jump")  print $$2 }' $(JUMP_PARAMS))
  18. SHLIB_GOT:= $(shell awk -F= ' { if ($$1 == "GOT")  print $$2 }' $(JUMP_PARAMS))
  19. SHLIB_VERSION:= $(shell awk -F= ' { if ($$1 == "Version")  print $$2 }' $(JUMP_PARAMS))
  20.  
  21. SHLIB_VERSION_MAJOR:=$(shell awk -F= ' { \
  22.   if ($$1 == "Version") { \
  23.     for (i = 1; i <= length ($$2); i++) { \
  24.       if (substr ($$2, i, 1) == ".") { \
  25.     print substr ($$2, 1, i - 1); break; \
  26.       } } } } ' $(JUMP_PARAMS))
  27.  
  28. SHLIB_FILE:=$(basename $(SHLIB_NAME)).so.$(SHLIB_VERSION)
  29.  
  30. SHLIB_FILE_MAJOR:=$(basename $(SHLIB_NAME)).so.$(SHLIB_VERSION_MAJOR)
  31.  
  32. SYSLIBS:= $(SHARED_DIR)/libgcc/libgcc3.a ../libc$(NYS_DIR_SUFFIX)/libc.sa
  33.  
  34. STUBNAMES=libdb
  35. STUBLIBS:= $(foreach lib, $(STUBNAMES), $(lib).sa)
  36. SHLIBS:= $(foreach lib, $(STUBNAMES), $(lib).a)
  37.  
  38. all lib:
  39.     (cd $(TOPDIR); for l in *.a; do \
  40.      $(AR) -d $$l __.SYMDEF; \
  41.      $(REALRANLIB) $$l; done)
  42.     (cd $(SHARED_DIR); for l in *.a; do \
  43.      $(AR) -d $$l __.SYMDEF; \
  44.      $(REALRANLIB) $$l; done)
  45.     $(MKIMAGE) -l $(SHLIB_NAME) -v $(SHLIB_VERSION) -a $(SHLIB_TEXT) \
  46.         -j $(SHLIB_JUMP)  -g $(SHLIB_GOT) \
  47.         -- $(SHLIBS:%=$(SHARED_DIR)/%) $(SYSLIBS)
  48.     $(MKSTUBS) -l $(SHLIB_NAME) -v $(SHLIB_VERSION) -a $(SHLIB_TEXT) \
  49.         -j $(SHLIB_JUMP)  -g $(SHLIB_GOT) \
  50.         -- $(STUBNAMES)
  51.     $(VERIFY) -l $(SHLIB_FILE) $(STUBLIBS)
  52.     mv $(SHLIB_FILE) lib.so # do this trick for stupid fs
  53.     $(STRIP) lib.so
  54.     mv lib.so $(SHLIB_FILE)
  55.     for l in *.sa; do \
  56.       $(AR) -d $$l __.SYMDEF; \
  57.       $(REALRANLIB) $$l; \
  58.     done
  59.  
  60. realclean clean:
  61.     $(RM) -f core *.o *.s *.sa *.so.* *.a verify.out *.log
  62.  
  63. #ifeq ($(TARGET_SO_DIR),/lib)
  64. ifeq ($(TARGET_LIB_DIR),/usr/lib)
  65.  
  66. install:
  67.     if [ ! -d $(TARGET_LIB_DIR) ]; then \
  68.       $(MKDIR) $(TARGET_LIB_DIR); \
  69.     else true; fi
  70.     cp $(STUBLIBS) $(TARGET_LIB_DIR)
  71.     if [ -f $(TARGET_LIB_DIR)/$(SHLIB_FILE) ]; then \
  72.       (cd $(TARGET_LIB_DIR); \
  73.        cp $(SHLIB_FILE) /tmp; \
  74.        if [ $$? -eq 0 ]; then \
  75.          ln -sf /tmp/$(SHLIB_FILE) $(SHLIB_FILE_MAJOR); \
  76.        else exit 1; fi; \
  77.        if [ ! -d backup ]; then \
  78.          $(MKDIR) backup; \
  79.        else true; fi; \
  80.        mv $(SHLIB_FILE) backup/$(SHLIB_FILE).$$$$); \
  81.     else true; fi
  82.     cp $(SHLIB_FILE) $(TARGET_LIB_DIR)
  83.     (cd $(TARGET_LIB_DIR); \
  84.        ln -sf $(SHLIB_FILE) $(SHLIB_FILE_MAJOR))
  85.     $(LDCONFIG) -v
  86.  
  87. else
  88.  
  89. install:
  90.     if [ ! -d $(TARGET_LIB_DIR) ]; then \
  91.       $(MKDIR) $(TARGET_LIB_DIR); \
  92.     else true; fi
  93.     cp $(STUBLIBS) $(TARGET_LIB_DIR)
  94.     if [ ! -d $(TARGET_LIB_DIR) ]; then \
  95.       $(MKDIR) $(TARGET_LIB_DIR); \
  96.     else true; fi
  97.     cp $(SHLIB_FILE) $(TARGET_LIB_DIR)
  98.  
  99. endif
  100.