Makefile 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. TOPDIR = ../../
  2. include $(TOPDIR)Rules.mak
  3. UCLIBC_DIR = $(shell (cd ../.. ; /bin/pwd))
  4. GCC_BIN = $(CC)
  5. GCC_LIB = $(shell $(CC) -print-libgcc-file-name )
  6. #GCCINCDIR inherited from Rules.mak
  7. NATIVE_ARCH = $(shell uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/' -e 's/arm.*/arm/g')
  8. GCC_UCLIBC = gcc-uClibc-cross
  9. ifeq ($(TARGET_ARCH), $(NATIVE_ARCH))
  10. GCC_UCLIBC = gcc-uClibc-native
  11. endif
  12. all: $(GCC_UCLIBC)
  13. clean:
  14. rm -f gcc-uClibc.h gcc-uClibc-*
  15. gcc-uClibc.h: clean
  16. echo "/* this file is created by make */" > gcc-uClibc.h
  17. echo "#define UCLIBC_DIR " \"$(UCLIBC_DIR)/\" >> gcc-uClibc.h
  18. echo "#define GCC_BIN " \"$(GCC_BIN)\" >> gcc-uClibc.h
  19. echo "#define GCC_LIB " \"$(GCC_LIB)\" >> gcc-uClibc.h
  20. echo "#define GCC_INCDIR " \"-I$(GCCINCDIR)/\" >> gcc-uClibc.h
  21. echo "#define TARGET_ARCH " \"$(TARGET_ARCH)\" >> gcc-uClibc.h
  22. gcc-uClibc-native: gcc-uClibc.h gcc-uClibc.c
  23. # uClibc built for native environment, so why not use it ;-)
  24. $(CC) $(CFLAGS) -nostdinc -I$(UCLIBC_DIR)/include -I$(GCC_INC) \
  25. -Wl,-static gcc-uClibc.c \
  26. $(UCLIBC_DIR)/sysdeps/linux/$(TARGET_ARCH)/_start.o \
  27. -nostdlib $(GCC_LIB) $(UCLIBC_DIR)/libc.a \
  28. -s -o gcc-uClibc-$(TARGET_ARCH) #-DDEBUG
  29. gcc-uClibc-cross: gcc-uClibc.h gcc-uClibc.c
  30. # don't use CFLAGS since may not be appropriate
  31. gcc -s gcc-uClibc.c -o gcc-uClibc-$(TARGET_ARCH)