/
Makefile
51 lines (38 loc) · 1.03 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
UNAME=$(shell uname -m)
# Must be 86 (for 32bit compiler) or 64 (for 64bit compiler)
ARCH=64
#ARCH=86
# Must be 32 or 64:
SZ=64
#SZ=32
STATIC=lib/x$(ARCH)/libintel_aes.a
DYNAMIC=lib/x$(ARCH)/libintel_aes.so
SRC= src/intel_aes.c \
asm/x$(ARCH)/iaesx$(ARCH).s \
asm/x$(ARCH)/do_rdtsc.s
OBJ= obj/x$(ARCH)/intel_aes.o \
obj/x$(ARCH)/iaesx$(ARCH).o \
obj/x$(ARCH)/do_rdtsc.o
# GCC=gcc -m32
GCC=gcc
YASM=yasm
YASMFLAGS= -D__linux__ -g dwarf2 -f elf$(SZ)
all: $(STATIC) $(DYNAMIC)
cp lib/x$(ARCH)/* ../../
$(STATIC): $(OBJ)
@mkdir -p lib/x$(ARCH)
ar -r $@ $(OBJ)
$(DYNAMIC): $(OBJ)
@mkdir -p lib/x$(ARCH)
$(GCC) -shared -dynamic -o $(DYNAMIC) $(OBJ)
obj/x$(ARCH)/do_rdtsc.o: asm/x$(ARCH)/do_rdtsc.s
@mkdir -p obj/x$(ARCH)
$(YASM) $(YASMFLAGS) $< -o $@
obj/x$(ARCH)/iaesx$(ARCH).o: asm/x$(ARCH)/iaesx$(ARCH).s
@mkdir -p obj/x$(ARCH)
$(YASM) $(YASMFLAGS) $< -o $@
obj/x$(ARCH)/intel_aes.o: src/intel_aes.c
@mkdir -p obj/x$(ARCH)
$(GCC) -fPIC -O3 -g -Iinclude/ -c $< -o $@
clean:
rm -f $(STATIC) $(DYNAMIC) $(OBJ)