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 / libm / Makefile < prev    next >
Encoding:
Makefile  |  1994-10-13  |  3.2 KB  |  108 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/libm
  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 \
  33.     ../libc$(NYS_DIR_SUFFIX)/libc.sa $(TOPDIR)/libmalias.a
  34.  
  35. STUBNAMES=libm
  36. STUBLIBS:= $(foreach lib, $(STUBNAMES), $(lib).sa)
  37. SHLIBS:= $(foreach lib, $(STUBNAMES), $(lib).a)
  38.  
  39. all lib:
  40.     (cd $(TOPDIR); for l in *.a; do \
  41.      $(AR) -d $$l __.SYMDEF; \
  42.      $(REALRANLIB) $$l; done)
  43.     (cd $(SHARED_DIR); for l in *.a; do \
  44.      $(AR) -d $$l __.SYMDEF; \
  45.      $(REALRANLIB) $$l; done)
  46.     $(MKIMAGE) -l $(SHLIB_NAME) -v $(SHLIB_VERSION) -a $(SHLIB_TEXT) \
  47.         -d $(SHLIB_DATA) -j $(SHLIB_JUMP)  -g $(SHLIB_GOT) \
  48.         -- $(SHLIBS:%=$(SHARED_DIR)/%) $(SYSLIBS)
  49.     $(MKSTUBS) -l $(SHLIB_NAME) -v $(SHLIB_VERSION) -a $(SHLIB_TEXT) \
  50.         -d $(SHLIB_DATA) -j $(SHLIB_JUMP)  -g $(SHLIB_GOT) \
  51.         -- $(STUBNAMES)
  52.     $(VERIFY) -l $(SHLIB_FILE) $(STUBLIBS)
  53.     mv $(SHLIB_FILE) lib.so # do this trick for stupid fs
  54.     $(STRIP) lib.so
  55.     mv lib.so $(SHLIB_FILE)
  56.     if [ -d tmpcopy ]; then $(RM) -f ./tmpcopy/*; \
  57.     else mkdir tmpcopy; fi; \
  58.     (cd ./tmpcopy ;\
  59.        $(AR) -x ../../../libmalias.a ; $(AR) $(AR_FLAGS) ../libm.sa *.o ;\
  60.      cd ..; $(RM) -rf ./tmpcopy;)
  61.     for l in *.sa; do \
  62.       $(AR) -d $$l __.SYMDEF; \
  63.       $(REALRANLIB) $$l; \
  64.     done
  65.  
  66. realclean clean:
  67.     $(RM) -f core *.o *.s *.sa *.so.* *.a verify.out *.log
  68.  
  69. ifeq ($(TARGET_LIBM_SO_DIR),/lib)
  70.  
  71. install:
  72.     if [ ! -d $(TARGET_LIB_DIR) ]; then \
  73.       $(MKDIR) $(TARGET_LIB_DIR); \
  74.     else true; fi
  75.     cp $(STUBLIBS) $(TARGET_LIB_DIR)
  76.     if [ ! -d $(TARGET_LIBM_SO_DIR) ]; then \
  77.       $(MKDIR) $(TARGET_LIBM_SO_DIR); \
  78.     else true; fi
  79.     if [ -f $(TARGET_LIBM_SO_DIR)/$(SHLIB_FILE) ]; then \
  80.       (cd $(TARGET_LIBM_SO_DIR); \
  81.        cp $(SHLIB_FILE) /tmp; \
  82.        if [ $$? -eq 0 ]; then \
  83.          ln -sf /tmp/$(SHLIB_FILE) $(SHLIB_FILE_MAJOR); \
  84.        else exit 1; fi; \
  85.        if [ ! -d backup ]; then \
  86.          $(MKDIR) backup; \
  87.        else true; fi; \
  88.        mv $(SHLIB_FILE) backup/$(SHLIB_FILE).$$$$); \
  89.     else true; fi
  90.     cp $(SHLIB_FILE) $(TARGET_LIBM_SO_DIR)
  91.     (cd $(TARGET_LIBM_SO_DIR); \
  92.        ln -sf $(SHLIB_FILE) $(SHLIB_FILE_MAJOR))
  93.     $(LDCONFIG) -v
  94.  
  95. else
  96.  
  97. install:
  98.     if [ ! -d $(TARGET_LIB_DIR) ]; then \
  99.       $(MKDIR) $(TARGET_LIB_DIR); \
  100.     else true; fi
  101.     cp $(STUBLIBS) $(TARGET_LIB_DIR)
  102.     if [ ! -d $(TARGET_LIBM_SO_DIR) ]; then \
  103.       $(MKDIR) $(TARGET_LIBM_SO_DIR); \
  104.     else true; fi
  105.     cp $(SHLIB_FILE) $(TARGET_LIBM_SO_DIR)
  106.  
  107. endif
  108.