Makefile 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. TOPDIR=../../
  2. include $(TOPDIR)Rules.mak
  3. # Check if 'ls -sh' works or not
  4. LSFLAGS = $(shell if ls -sh >/dev/null 2>&1; \
  5. then echo "-sh"; else echo "-s" ; fi)
  6. #XCFLAGS = -Wall -Os -fomit-frame-pointer -fno-builtin -nostdinc \
  7. # -I$(TOPDIR)include -I/usr/include/linux
  8. #XLDFLAGS = -nostdlib -s -gc-sections
  9. XCFLAGS = -Wall -g -fno-builtin -nostdinc \
  10. -I$(TOPDIR)include -I/usr/include/linux
  11. XLDFLAGS = -nostdlib -gc-sections
  12. EXTRA_LIBS=$(TOPDIR)libc.a -lgcc
  13. YCFLAGS = -Wall -Os -fomit-frame-pointer
  14. YLDFLAGS = -s --static
  15. TARGETS=string string_glibc
  16. TARGETS+=testcopy testcopy_glibc
  17. all: $(TARGETS)
  18. string: string.c Makefile $(TOPDIR)libc.a
  19. -@ echo "-------"
  20. -@ echo " "
  21. -@ echo "Compiling vs uClibc: "
  22. -@ echo " "
  23. $(CC) $(XCFLAGS) -c $< -o $@.o
  24. $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS)
  25. $(STRIPTOOL) -x -R .note -R .comment $@
  26. -./$@
  27. -@ echo " "
  28. string_glibc: string.c Makefile $(TOPDIR)libc.a
  29. -@ echo "-------"
  30. -@ echo " "
  31. -@ echo "Compiling vs GNU libc: "
  32. -@ echo " "
  33. $(CC) $(YCFLAGS) -c $< -o $@.o
  34. $(CC) $(YLDFLAGS) --static $@.o -o $@
  35. $(STRIPTOOL) -x -R .note -R .comment $@
  36. -./$@
  37. -@ echo " "
  38. testcopy: testcopy.c Makefile $(TOPDIR)libc.a
  39. -@ echo "-------"
  40. -@ echo " "
  41. -@ echo "Compiling vs uClibc: "
  42. -@ echo " "
  43. $(CC) $(XCFLAGS) -c $< -o $@.o
  44. $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS)
  45. $(STRIPTOOL) -x -R .note -R .comment $@
  46. -./$@ > testcopy.out
  47. -@ echo " "
  48. testcopy_glibc: testcopy.c Makefile $(TOPDIR)libc.a
  49. -@ echo "-------"
  50. -@ echo " "
  51. -@ echo "Compiling vs GNU libc: "
  52. -@ echo " "
  53. $(CC) $(YCFLAGS) -c $< -o $@.o
  54. $(CC) $(YLDFLAGS) --static $@.o -o $@
  55. $(STRIPTOOL) -x -R .note -R .comment $@
  56. -./$@ > testcopy.gnu.out
  57. -@ echo " "
  58. testcopy_diff: testcopy testcopy_glibc
  59. -@ echo "-------"
  60. -@ echo " "
  61. -@ echo "Diffing output: "
  62. -@ echo " "
  63. -diff -u testcopy.gnu.out testcopy.out
  64. -@ echo " "
  65. clean:
  66. rm -f *.[oa] *~ core $(TARGETS)