intel-aes-0.2.0.0: cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/Makefile
UNAME=$(shell uname -m)
OS:=$(shell uname -s)
# Must be 86 (for 32bit compiler) or 64 (for 64bit compiler)
ARCH=64
#ARCH=86
# Must be 32 or 64:
SZ=64
#SZ=32
LIBDIR=lib/x$(ARCH)
STATIC=libintel_aes.a
ifeq (Darwin,$(OS))
DYNAMIC=libintel_aes.dylib
else
DYNAMIC=libintel_aes.so
endif
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
ifeq (Darwin,$(OS))
YASMFLAGS= -D__linux__ -g null -f macho$(SZ) --prefix=_
L=libtool
LFLAGS=-dynamic -install_name @rpath/$(DYNAMIC) -macosx_version_min 10.5 -lSystem
else
YASMFLAGS= -D__linux__ -g dwarf2 -f elf$(SZ)
L=gcc
LFLAGS=-shared -dynamic
endif
all: $(LIBDIR)/$(STATIC) $(LIBDIR)/$(DYNAMIC)
cp $(LIBDIR)/* ../../
$(LIBDIR)/$(STATIC): $(OBJ)
@mkdir -p $(LIBDIR)
ar -r $@ $(OBJ)
$(LIBDIR)/$(DYNAMIC): $(OBJ)
@mkdir -p $(LIBDIR)
$(L) $(LFLAGS) -o $(DYNAMIC) $(OBJ)
mv $(DYNAMIC) $(LIBDIR)
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) $(LIBDIR)/$(STATIC) $(LIBDIR)/$(DYNAMIC) $(OBJ)