Makefile 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. BINS=\
  2. alloc \
  3. atof \
  4. atoi \
  5. brk \
  6. args \
  7. chdir \
  8. create \
  9. ctype \
  10. dup \
  11. error \
  12. fchdir \
  13. fcntl \
  14. fsync \
  15. ftruncate \
  16. getid \
  17. link \
  18. math \
  19. mem \
  20. pipe \
  21. printf \
  22. rmdir \
  23. setid \
  24. sleep \
  25. stdlib/strtol \
  26. unlink \
  27. write
  28. all: $(BINS)
  29. clean:
  30. rm -f $(BINS) *.out
  31. run: $(BINS)
  32. for bin in $(BINS); \
  33. do \
  34. echo "# $${bin} #"; \
  35. "./$${bin}" test args; \
  36. done
  37. expected: $(BINS)
  38. rm -rf expected
  39. mkdir -p expected
  40. for bin in $(BINS); \
  41. do \
  42. echo "# $${bin} #"; \
  43. mkdir -p expected/`dirname $${bin}`; \
  44. "./$${bin}" test args > "expected/$${bin}.stdout" 2> "expected/$${bin}.stderr"; \
  45. done
  46. verify: $(BINS)
  47. rm -rf gen
  48. mkdir -p gen
  49. for bin in $(BINS); \
  50. do \
  51. echo "# $${bin} #"; \
  52. mkdir -p gen/`dirname $${bin}`; \
  53. "./$${bin}" test args > "gen/$${bin}.stdout" 2> "gen/$${bin}.stderr"; \
  54. diff -u "gen/$${bin}.stdout" "expected/$${bin}.stdout"; \
  55. diff -u "gen/$${bin}.stderr" "expected/$${bin}.stderr"; \
  56. done
  57. GCCHEAD=\
  58. -nostdinc \
  59. -nostdlib \
  60. -I ../include \
  61. -I ../target/include \
  62. -I ../openlibm/include \
  63. -I ../openlibm/src \
  64. ../target/debug/libcrt0.a
  65. GCCTAIL=\
  66. ../target/debug/libc.a \
  67. ../openlibm/libopenlibm.a
  68. %: %.c
  69. gcc -fno-stack-protector -Wall $(GCCHEAD) "$<" $(GCCTAIL) -o "$@"