insns.h: change ITEMPLATE_END to not warn on some compilers
[nasm.git] / test / Makefile
blobfeaada4348d5e884c0522f4fccb6eb7154cef574
1 .SUFFIXES: .bin .o .o64 .obj .obj64 .exe .asm .lst .pl
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
10 $(NASM):
11 $(MAKE) -C ..
13 %.bin: %.asm $(NASM)
14 $(NASM) $(NASMOPT) -f bin -o $@ -l $*.lst $<
16 %.ith: %.asm $(NASM)
17 $(NASM) $(NASMOPT) -f ith -o $@ -l $*.lst $<
19 %.srec: %.asm $(NASM)
20 $(NASM) $(NASMOPT) -f srec -o $@ -l $*.lst $<
22 %.o: %.asm $(NASM)
23 $(NASM) $(NASMOPT) -f elf32 -o $@ -l $*.lst $<
25 %.o64: %.asm $(NASM)
26 $(NASM) $(NASMOPT) -f elf64 -o $@ -l $*.lst $<
28 %.obj: %.asm $(NASM)
29 $(NASM) $(NASMOPT) -f obj -o $@ -l $*.lst $<
31 %.od: %.obj ../misc/omfdump
32 ../misc/omfdump $< > $@
34 %.coff: %.asm $(NASM)
35 $(NASM) $(NASMOPT) -f coff -o $@ -l $*.lst $<
37 %.win32: %.asm $(NASM)
38 $(NASM) $(NASMOPT) -f win32 -o $@ -l $*.lst $<
40 %.win64: %.asm $(NASM)
41 $(NASM) $(NASMOPT) -f win64 -o $@ -l $*.lst $<
43 %.mo32: %.asm $(NASM)
44 $(NASM) $(NASMOPT) -f macho32 -o $@ -l $*.lst $<
46 %.mo64: %.asm $(NASM)
47 $(NASM) $(NASMOPT) -f macho64 -o $@ -l $*.lst $<
49 %.dbg: %.asm $(NASM)
50 $(NASM) $(NASMOPT) -f dbg -o $@ -l $*.lst $<
52 %.asm: %.pl
53 $(PERL) $< > $@
55 %.i: %.asm $(NASM)
56 $(NASM) $(NASMOPT) -E -o $@ $<
58 all:
60 golden: performtest.pl $(TESTS)
61 $(PERL) performtest.pl --golden --nasm='$(NASM)' $(TESTS)
63 test: performtest.pl $(NASM) $(TESTS)
64 $(PERL) performtest.pl --nasm='$(NASM)' $(TESTS)
66 diff: performtest.pl $(NASM) $(TESTS)
67 $(PERL) performtest.pl --diff --nasm='$(NASM)' $(TESTS)
69 clean:
70 $(RM_F) *.com *.o *.o64 *.obj *.win32 *.win64 *.exe *.lst *.bin
71 $(RM_F) *.dbg *.coff *.ith *.srec *.mo32 *.mo64 *.i
72 $(RM_RF) testresults
73 $(RM_F) elftest elftest64
75 spotless: clean
76 $(RM_RF) golden
79 # Test for ELF32 shared libraries; assumes an x86 Linux system
81 elfso.o: elfso.asm $(NASM)
82 $(NASM) $(NASMOPT) -f elf32 -F stabs -o $@ -l $*.lst $<
84 elfso.so: elfso.o
85 $(LD) -m elf_i386 -shared -o $@ $<
87 elftest: elftest.c elfso.so
88 $(CC) -g -m32 -o $@ $^
89 -env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./elftest
92 # Test for ELF64 shared libraries; assumes an x86-64 Linux system
94 elf64so.o: elf64so.asm $(NASM)
95 $(NASM) $(NASMOPT) -f elf64 -F dwarf -o $@ -l $*.lst $<
97 elf64so.so: elf64so.o
98 $(LD) -shared -o $@ $<
100 elftest64: elftest64.c elf64so.so
101 $(CC) -g -o $@ $^
102 -env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./elftest64