Makefile 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. EXTRA_LIBS=$(TOPDIR)libc.a -lgcc
  10. YCFLAGS = -Wall -Os -fomit-frame-pointer
  11. YLDFLAGS = -s --static
  12. TARGETS=string string_glibc
  13. TARGETS+=testcopy testcopy_glibc
  14. all: $(TARGETS)
  15. string: string.c Makefile $(TOPDIR)libc.a
  16. -@ echo "-------"
  17. -@ echo " "
  18. -@ echo "Compiling vs uClibc: "
  19. -@ echo " "
  20. $(CC) $(XCFLAGS) -c $< -o $@.o
  21. $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS)
  22. $(STRIPTOOL) -x -R .note -R .comment $@
  23. -./$@
  24. -@ echo " "
  25. string_glibc: string.c Makefile $(TOPDIR)libc.a
  26. -@ echo "-------"
  27. -@ echo " "
  28. -@ echo "Compiling vs GNU libc: "
  29. -@ echo " "
  30. $(CC) $(YCFLAGS) -c $< -o $@.o
  31. $(CC) $(YLDFLAGS) --static $@.o -o $@
  32. $(STRIPTOOL) -x -R .note -R .comment $@
  33. -./$@
  34. -@ echo " "
  35. testcopy: testcopy.c Makefile $(TOPDIR)libc.a
  36. -@ echo "-------"
  37. -@ echo " "
  38. -@ echo "Compiling vs uClibc: "
  39. -@ echo " "
  40. $(CC) $(XCFLAGS) -c $< -o $@.o
  41. $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS)
  42. $(STRIPTOOL) -x -R .note -R .comment $@
  43. -./$@ > testcopy.out
  44. -@ echo " "
  45. testcopy_glibc: testcopy.c Makefile $(TOPDIR)libc.a
  46. -@ echo "-------"
  47. -@ echo " "
  48. -@ echo "Compiling vs GNU libc: "
  49. -@ echo " "
  50. $(CC) $(YCFLAGS) -c $< -o $@.o
  51. $(CC) $(YLDFLAGS) --static $@.o -o $@
  52. $(STRIPTOOL) -x -R .note -R .comment $@
  53. -./$@ > testcopy.gnu.out
  54. -@ echo " "
  55. testcopy_diff: testcopy testcopy_glibc
  56. -@ echo "-------"
  57. -@ echo " "
  58. -@ echo "Diffing output: "
  59. -@ echo " "
  60. -diff -u testcopy.gnu.out testcopy.out
  61. -@ echo " "
  62. clean:
  63. rm -f *.[oa] *~ core $(TARGETS) testcopy.gnu.out testcopy.out