Makefile 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. SYS ?= $(shell gcc -dumpmachine)
  2. export SYS
  3. GLIBC_SRC = glibc-2.19
  4. SHIM_DIR = shim
  5. BUILD_DIR = build
  6. GLIBC_TARGET = $(addprefix $(BUILD_DIR)/,libc.so.6 ld-linux-x86-64.so.2 libpthread.so.0 libm.so.6 libdl.so.2 libutil.so.1 crt1.o crti.o crtn.o liblibos.so.1)
  7. all: $(GLIBC_TARGET)
  8. $(MAKE) -C $(SHIM_DIR) all
  9. debug: DEBUG=debug
  10. debug: $(GLIBC_TARGET)
  11. $(MAKE) -C $(SHIM_DIR) debug
  12. # nothing to install
  13. install:
  14. ifeq ($(SYS),x86_64-linux-gnu)
  15. $(GLIBC_TARGET): $(BUILD_DIR)/Makefile
  16. cd $(BUILD_DIR) && $(MAKE)
  17. $(BUILD_DIR)/Makefile: $(GLIBC_SRC)/configure
  18. ./buildglibc.py --quiet $(DEBUG)
  19. $(GLIBC_SRC)/configure:
  20. [ -f $(GLIBC_SRC).tar.gz ] || \
  21. wget http://ftp.gnu.org/gnu/glibc/$(GLIBC_SRC).tar.gz
  22. tar -xzf $(GLIBC_SRC).tar.gz
  23. cd $(GLIBC_SRC) && patch -p1 < ../$(GLIBC_SRC).patch
  24. .PHONY: pack
  25. pack: $(GLIBC_TARGET)
  26. @../Scripts/pack_binaries.sh glibc $^
  27. $(MAKE) -C $(SHIM_DIR) pack
  28. clean:
  29. $(MAKE) -C $(SHIM_DIR) clean
  30. rm -rf $(BUILD_DIR)
  31. else
  32. $(GLIBC_TARGET): .packed/glibc.tar.gz
  33. tar -xmozf $< $@
  34. clean:
  35. rm -rf $(BUILD_DIR)
  36. endif