Initial version. AMD64 only, and only as far as 0x16.
[xchg-rax-rax] / Makefile
1 ### -*-makefile-*-
2
3 V = 0
4 vcond = $(call vcond_$V,$1,$2)
5 vcond_0 = $1
6 vcond_1 = $2
7 V_AT = $(call vcond,@)
8 vtag = \
9 $(call vcond,@printf " %-8s %s\n" "$1" "$(or $2,$@)";)
10
11 CC = gcc -m64
12 CFLAGS = -O2 -g -Wall -Werror
13
14 AS = gcc -m64
15 ASFLAGS = -O2 -g
16
17 LD = gcc -m64
18 LDFLAGS =
19
20 %.o: %.c
21 $(call vtag,CC)$(CC) -c -o $@ $(CFLAGS) $<
22
23 %.o: %.S
24 $(call vtag,AS)$(AS) -c -o $@ $(ASFLAGS) $<
25
26 all:: xchg
27 xchg: xchg.o main.o
28 $(call vtag,LD)$(LD) -o $@ $^
29
30 clean::; rm -f xchg *.o