Makefile 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. TOPDIR=../
  2. include $(TOPDIR)Rules.make
  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
  10. YCFLAGS = -Wall -Os -fomit-frame-pointer
  11. YLDFLAGS = -s --static
  12. # Allow alternative stripping tools to be used...
  13. ifndef $(STRIPTOOL)
  14. STRIPTOOL = strip
  15. endif
  16. STRIP = $(STRIPTOOL) --remove-section=.note --remove-section=.comment $@
  17. TARGETS=hello_source hello_glibc hello
  18. TARGETS+=testmalloc_source testmalloc_glibc testmalloc
  19. TARGETS+=teststrtol_source teststrtol_glibc teststrtol teststrtol_diff
  20. all: $(TARGETS)
  21. hello_source:
  22. -@ rm -f $(TARGETS)
  23. -@ echo "-------"
  24. -@ echo "hello.c source: "
  25. -@ echo " "
  26. -@ cat hello.c
  27. -@ echo " "
  28. hello: hello.c Makefile $(TOPDIR)libc.a
  29. -@ echo "-------"
  30. -@ echo " "
  31. -@ echo "Compiling vs uC-Libc: "
  32. -@ echo " "
  33. $(CC) $(XCFLAGS) -c $< -o $@.o
  34. $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS)
  35. $(STRIP)
  36. -ldd $@
  37. ls $(LSFLAGS) $@
  38. -./$@
  39. -@ echo " "
  40. hello_glibc: hello.c Makefile $(TOPDIR)libc.a
  41. -@ echo "-------"
  42. -@ echo " "
  43. -@ echo "Compiling vs GNU libc: "
  44. -@ echo " "
  45. $(CC) $(YCFLAGS) -c $< -o $@.o
  46. $(CC) $(YLDFLAGS) --static $@.o -o $@
  47. $(STRIP)
  48. -ldd $@
  49. ls $(LSFLAGS) $@
  50. -./$@
  51. -@ echo " "
  52. testmalloc_source:
  53. -@ echo "-------"
  54. -@ echo "testmalloc.c source: "
  55. -@ echo " "
  56. -@ cat testmalloc.c
  57. -@ echo " "
  58. testmalloc: testmalloc.c Makefile $(TOPDIR)libc.a
  59. -@ echo "-------"
  60. -@ echo " "
  61. -@ echo "Compiling vs uC-Libc: "
  62. -@ echo " "
  63. $(CC) $(XCFLAGS) -c $< -o $@.o
  64. $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS)
  65. $(STRIP)
  66. -ldd $@
  67. ls $(LSFLAGS) $@
  68. -./$@
  69. -@ echo " "
  70. testmalloc_glibc: testmalloc.c Makefile $(TOPDIR)libc.a
  71. -@ echo "-------"
  72. -@ echo " "
  73. -@ echo "Compiling vs GNU libc: "
  74. -@ echo " "
  75. $(CC) $(YCFLAGS) -c $< -o $@.o
  76. $(CC) $(YLDFLAGS) --static $@.o -o $@
  77. $(STRIP)
  78. -ldd $@
  79. ls $(LSFLAGS) $@
  80. -./$@
  81. -@ echo " "
  82. teststrtol_source:
  83. -@ echo "-------"
  84. -@ echo "teststrtol.c source: "
  85. -@ echo " "
  86. -@ cat teststrtol.c
  87. -@ echo " "
  88. teststrtol: teststrtol.c Makefile $(TOPDIR)libc.a
  89. -@ echo "-------"
  90. -@ echo " "
  91. -@ echo "Compiling vs uC-Libc: "
  92. -@ echo " "
  93. $(CC) $(XCFLAGS) -c $< -o $@.o
  94. $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS)
  95. $(STRIP)
  96. ldd $@
  97. ls -sh $@
  98. -./$@ | tee $@.out
  99. -@ echo " "
  100. teststrtol_glibc: teststrtol.c Makefile $(TOPDIR)libc.a
  101. -@ echo "-------"
  102. -@ echo " "
  103. -@ echo "Compiling vs GNU libc: "
  104. -@ echo " "
  105. $(CC) $(YCFLAGS) -c $< -o $@.o
  106. $(CC) $(YLDFLAGS) --static $@.o -o $@
  107. $(STRIP)
  108. ldd $@
  109. ls -sh $@
  110. -./$@ | tee $@.out
  111. -@ echo " "
  112. teststrtol_diff: teststrtol_glibc teststrtol
  113. -@ echo "-------"
  114. -@ echo " "
  115. -@ echo "Diffing output: "
  116. -@ echo " "
  117. -diff -u teststrtol_glibc.out teststrtol.out
  118. -@ echo " "
  119. clean:
  120. rm -f *.[oa] *~ core $(TARGETS)