Makefile 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. .SUFFIXES: .bin .o .o64 .aout .obj .obj64 .exe .asm .lst .pl
  2. NASMDEP = ../nasm
  3. NASM = ../nasm
  4. NASMOPT = -Ox -I../misc $(OPT)
  5. PERL = perl
  6. TESTS = $(wildcard *.asm)
  7. RM_F = rm -f
  8. RM_RF = rm -rf
  9. $(NASM):
  10. $(MAKE) -C ..
  11. %.bin: %.asm $(NASMDEP)
  12. $(NASM) $(NASMOPT) -f bin -o $@ -MD $@.dep -l $@.lst $<
  13. %.ith: %.asm $(NASMDEP)
  14. $(NASM) $(NASMOPT) -f ith -o $@ -MD $@.dep -l $@.lst $<
  15. %.srec: %.asm $(NASMDEP)
  16. $(NASM) $(NASMOPT) -f srec -o $@ -MD $@.dep -l $@.lst $<
  17. %.o: %.asm $(NASMDEP)
  18. $(NASM) $(NASMOPT) -f elf32 -o $@ -MD $@.dep -l $@.lst $<
  19. %.o64: %.asm $(NASMDEP)
  20. $(NASM) $(NASMOPT) -f elf64 -o $@ -MD $@.dep -l $@.lst $<
  21. %.aout: %.asm $(NASMDEP)
  22. $(NASM) $(NASMOPT) -f aout -o $@ -MD $@.dep -l $@.lst $<
  23. %.obj: %.asm $(NASMDEP)
  24. $(NASM) $(NASMOPT) -f obj -o $@ -MD $@.dep -l $@.lst $<
  25. %.rdf: %.asm $(NASMDEP)
  26. $(NASM) $(NASMOPT) -f rdf -o $@ -MD $@.dep -l $@.lst $<
  27. %.od: %.obj ../misc/omfdump
  28. ../misc/omfdump $< > $@
  29. %.coff: %.asm $(NASMDEP)
  30. $(NASM) $(NASMOPT) -f coff -o $@ -MD $@.dep -l $@.lst $<
  31. %.win32: %.asm $(NASMDEP)
  32. $(NASM) $(NASMOPT) -f win32 -o $@ -MD $@.dep -l $@.lst $<
  33. %.win64: %.asm $(NASMDEP)
  34. $(NASM) $(NASMOPT) -f win64 -o $@ -MD $@.dep -l $@.lst $<
  35. %.mo32: %.asm $(NASMDEP)
  36. $(NASM) $(NASMOPT) -f macho32 -o $@ -MD $@.dep -l $@.lst $<
  37. %.mo64: %.asm $(NASMDEP)
  38. $(NASM) $(NASMOPT) -f macho64 -o $@ -MD $@.dep -l $@.lst $<
  39. %.dbg: %.asm $(NASMDEP)
  40. $(NASM) $(NASMOPT) -f dbg -o $@ -MD $@.dep -l $@.lst $<
  41. %.asm: %.pl
  42. $(PERL) $< > $@
  43. %.i: %.asm $(NASMDEP)
  44. $(NASM) $(NASMOPT) -E -o $@ -MD $@.dep $<
  45. all:
  46. golden: performtest.pl $(TESTS)
  47. $(PERL) performtest.pl --golden --nasm='$(NASM)' $(TESTS)
  48. test: performtest.pl $(NASMDEP) $(TESTS)
  49. $(PERL) performtest.pl --nasm='$(NASM)' $(TESTS)
  50. diff: performtest.pl $(NASMDEP) $(TESTS)
  51. $(PERL) performtest.pl --diff --nasm='$(NASM)' $(TESTS)
  52. clean:
  53. $(RM_F) *.com *.o *.o64 *.aout *.obj *.win32 *.win64 *.exe *.lst *.bin
  54. $(RM_F) *.dbg *.coff *.ith *.srec *.mo32 *.mo64 *.i *.dep *.rdf
  55. $(RM_RF) testresults
  56. $(RM_F) elftest elftest64
  57. spotless: clean
  58. $(RM_RF) golden
  59. #
  60. # Test for ELF32 shared libraries; assumes an x86 Linux system
  61. #
  62. elfso.o: elfso.asm $(NASMDEP)
  63. $(NASM) $(NASMOPT) -f elf32 -F stabs -o $@ -MD $@.dep -l $@.lst $<
  64. elfso.so: elfso.o
  65. $(LD) -m elf_i386 -shared -o $@ -MD $@.dep $<
  66. elftest: elftest.c elfso.so
  67. $(CC) -g -m32 -o $@ -MD $@.dep $^
  68. -env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./elftest
  69. #
  70. # Test for ELF64 shared libraries; assumes an x86-64 Linux system
  71. #
  72. elf64so.o: elf64so.asm $(NASMDEP)
  73. $(NASM) $(NASMOPT) -f elf64 -F dwarf -o $@ -MD $@.dep -l $@.lst $<
  74. elf64so.so: elf64so.o
  75. $(LD) -shared -o $@ -MD $@.dep $<
  76. elftest64: elftest64.c elf64so.so
  77. $(CC) -g -o $@ -MD $@.dep $^
  78. -env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./elftest64