packages feed

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)