summaryrefslogtreecommitdiff
path: root/test/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'test/Makefile')
-rw-r--r--test/Makefile54
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