diff options
Diffstat (limited to 'test/Makefile')
-rw-r--r-- | test/Makefile | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/test/Makefile b/test/Makefile index cc11f0e4..0b81fc79 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,12 +1,19 @@ .SUFFIXES: .bin .o .o64 .obj .obj64 .exe .asm .lst .pl -NASM = ../nasm +NASM = ../nasm NASMOPT = -Ox -I../misc -PERL = perl +PERL = perl +TESTS = $(wildcard *.asm) %.bin: %.asm $(NASM) $(NASM) $(NASMOPT) -f bin -o $@ -l $*.lst $< +%.ith: %.asm $(NASM) + $(NASM) $(NASMOPT) -f ith -o $@ -l $*.lst $< + +%.srec: %.asm $(NASM) + $(NASM) $(NASMOPT) -f srec -o $@ -l $*.lst $< + %.o: %.asm $(NASM) $(NASM) $(NASMOPT) -f elf32 -o $@ -l $*.lst $< @@ -19,10 +26,53 @@ PERL = perl %.obj64: %.asm $(NASM) $(NASM) $(NASMOPT) -f win64 -o $@ -l $*.lst $< +%.dbg: %.asm $(NASM) + $(NASM) $(NASMOPT) -f dbg -o $@ -l $*.lst $< + %.asm: %.pl $(PERL) $< > $@ all: +golden: performtest.pl $(TESTS) + $(PERL) performtest.pl --golden --nasm='$(NASM)' $(TESTS) + +test: performtest.pl $(NASM) $(TESTS) + $(PERL) performtest.pl --nasm='$(NASM)' $(TESTS) + +diff: performtest.pl $(NASM) $(TESTS) + $(PERL) performtest.pl --diff --nasm='$(NASM)' $(TESTS) + clean: rm -f *.com *.o *.o64 *.obj *.obj64 *.exe *.lst *.bin + rm -rf testresults + rm -f elftest elftest64 + +spotless: clean + rm -rf golden + +# +# Test for ELF32 shared libraries; assumes an x86 Linux system +# +elfso.o: elfso.asm $(NASM) + $(NASM) $(NASMOPT) -f elf32 -F stabs -o $@ -l $*.lst $< + +elfso.so: elfso.o + $(LD) -m elf_i386 -shared -o $@ $< + +elftest: elftest.c elfso.so + $(CC) -g -m32 -o $@ $^ + -env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./elftest + +# +# Test for ELF64 shared libraries; assumes an x86-64 Linux system +# +elf64so.o: elf64so.asm $(NASM) + $(NASM) $(NASMOPT) -f elf64 -F dwarf -o $@ -l $*.lst $< + +elf64so.so: elf64so.o + $(LD) -shared -o $@ $< + +elftest64: elftest64.c elf64so.so + $(CC) -g -o $@ $^ + -env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./elftest64 |