1*3f705dfdSAndy Lutomirski.PHONY: all all_32 all_64 check_build32 clean run_tests 2*3f705dfdSAndy Lutomirski 3*3f705dfdSAndy LutomirskiTARGETS_C_BOTHBITS := sigreturn 4*3f705dfdSAndy Lutomirski 5*3f705dfdSAndy LutomirskiBINARIES_32 := $(TARGETS_C_BOTHBITS:%=%_32) 6*3f705dfdSAndy LutomirskiBINARIES_64 := $(TARGETS_C_BOTHBITS:%=%_64) 7*3f705dfdSAndy Lutomirski 8*3f705dfdSAndy LutomirskiCFLAGS := -O2 -g -std=gnu99 -pthread -Wall 9*3f705dfdSAndy Lutomirski 10*3f705dfdSAndy LutomirskiUNAME_P := $(shell uname -p) 11*3f705dfdSAndy Lutomirski 12*3f705dfdSAndy Lutomirski# Always build 32-bit tests 13*3f705dfdSAndy Lutomirskiall: all_32 14*3f705dfdSAndy Lutomirski 15*3f705dfdSAndy Lutomirski# If we're on a 64-bit host, build 64-bit tests as well 16*3f705dfdSAndy Lutomirskiifeq ($(shell uname -p),x86_64) 17*3f705dfdSAndy Lutomirskiall: all_64 18*3f705dfdSAndy Lutomirskiendif 19*3f705dfdSAndy Lutomirski 20*3f705dfdSAndy Lutomirskiall_32: check_build32 $(BINARIES_32) 21*3f705dfdSAndy Lutomirski 22*3f705dfdSAndy Lutomirskiall_64: $(BINARIES_64) 23*3f705dfdSAndy Lutomirski 24*3f705dfdSAndy Lutomirskiclean: 25*3f705dfdSAndy Lutomirski $(RM) $(BINARIES_32) $(BINARIES_64) 26*3f705dfdSAndy Lutomirski 27*3f705dfdSAndy Lutomirskirun_tests: 28*3f705dfdSAndy Lutomirski ./run_x86_tests.sh 29*3f705dfdSAndy Lutomirski 30*3f705dfdSAndy Lutomirski$(TARGETS_C_BOTHBITS:%=%_32): %_32: %.c 31*3f705dfdSAndy Lutomirski $(CC) -m32 -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $^ -lrt -ldl 32*3f705dfdSAndy Lutomirski 33*3f705dfdSAndy Lutomirski$(TARGETS_C_BOTHBITS:%=%_64): %_64: %.c 34*3f705dfdSAndy Lutomirski $(CC) -m64 -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $^ -lrt -ldl 35*3f705dfdSAndy Lutomirski 36*3f705dfdSAndy Lutomirskicheck_build32: 37*3f705dfdSAndy Lutomirski @if ! $(CC) -m32 -o /dev/null trivial_32bit_program.c; then \ 38*3f705dfdSAndy Lutomirski echo "Warning: you seem to have a broken 32-bit build" 2>&1; \ 39*3f705dfdSAndy Lutomirski echo "environment. If you are using a Debian-like"; \ 40*3f705dfdSAndy Lutomirski echo " distribution, try:"; \ 41*3f705dfdSAndy Lutomirski echo ""; \ 42*3f705dfdSAndy Lutomirski echo " apt-get install gcc-multilib libc6-i386 libc6-dev-i386"; \ 43*3f705dfdSAndy Lutomirski echo ""; \ 44*3f705dfdSAndy Lutomirski echo "If you are using a Fedora-like distribution, try:"; \ 45*3f705dfdSAndy Lutomirski echo ""; \ 46*3f705dfdSAndy Lutomirski echo " yum install glibc-devel.*i686"; \ 47*3f705dfdSAndy Lutomirski exit 1; \ 48*3f705dfdSAndy Lutomirski fi 49