| include ../config-host.mak | |
| CFLAGS=-Wall -O2 -g | |
| LDFLAGS= | |
| ifeq ($(ARCH),i386) | |
| TESTS=linux-test testthread sha1-i386 test-i386 runcom | |
| endif | |
| TESTS+=sha1# test_path | |
| #TESTS+=test_path | |
| QEMU=../i386-user/qemu-i386 | |
| all: $(TESTS) | |
| hello-i386: hello-i386.c | |
| $(CC) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $< | |
| strip $@ | |
| testthread: testthread.c | |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread | |
| test_path: test_path.c | |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< | |
| ./$@ || { rm $@; exit 1; } | |
| # i386 emulation test (test various opcodes) */ | |
| test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S \ | |
| test-i386.h test-i386-shift.h test-i386-muldiv.h | |
| $(CC) $(CFLAGS) $(LDFLAGS) -static -o $@ test-i386.c \ | |
| test-i386-code16.S test-i386-vm86.S -lm | |
| ifeq ($(ARCH),i386) | |
| test: test-i386 | |
| ./test-i386 > test-i386.ref | |
| else | |
| test: | |
| endif | |
| $(QEMU) test-i386 > test-i386.out | |
| @if diff -u test-i386.ref test-i386.out ; then echo "Auto Test OK"; fi | |
| ifeq ($(ARCH),i386) | |
| $(QEMU) -no-code-copy test-i386 > test-i386.out | |
| @if diff -u test-i386.ref test-i386.out ; then echo "Auto Test OK (no code copy)"; fi | |
| endif | |
| # generic Linux and CPU test | |
| linux-test: linux-test.c | |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm | |
| # speed test | |
| sha1-i386: sha1.c | |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< | |
| sha1: sha1.c | |
| $(HOST_CC) $(CFLAGS) $(LDFLAGS) -o $@ $< | |
| speed: sha1 sha1-i386 | |
| time ./sha1 | |
| time $(QEMU) ./sha1-i386 | |
| # vm86 test | |
| runcom: runcom.c | |
| $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< | |
| # NOTE: -fomit-frame-pointer is currently needed : this is a bug in libqemu | |
| qruncom: qruncom.c ../i386-user/libqemu.a | |
| $(CC) $(CFLAGS) -fomit-frame-pointer $(LDFLAGS) -I../target-i386 -I.. -I../i386-user \ | |
| -o $@ $< -L../i386-user -lqemu -lm | |
| # arm test | |
| hello-arm: hello-arm.o | |
| arm-linux-ld -o $@ $< | |
| hello-arm.o: hello-arm.c | |
| arm-linux-gcc -Wall -g -O2 -c -o $@ $< | |
| # XXX: find a way to compile easily a test for each arch | |
| test2: | |
| @for arch in i386 arm sparc ppc; do \ | |
| ../$${arch}-user/qemu-$${arch} $${arch}/ls -l linux-test.c ; \ | |
| done | |
| clean: | |
| rm -f *~ *.o test-i386.out test-i386.ref qruncom $(TESTS) |