nexmon – Rev 1

Subversion Repositories:
Rev:
AC_ROOT         = ../..
SRC_DIR         = $(AC_ROOT)/src
include $(AC_ROOT)/common.mak
CFLAGS          += -I$(SRC_DIR) -I$(SRC_DIR)/include $(COMMON_CFLAGS)

ifeq ($(subst TRUE,true,$(filter TRUE true,$(simdcore) $(SIMDCORE))),true)
        SSEO_INT        = $(AC_ROOT)/src/simd-intrinsics.o $(AC_ROOT)/src/memory.o $(AC_ROOT)/src/wpapsk.o
else
ifeq ($(subst TRUE,true,$(filter TRUE true,$(newsse) $(NEWSSE))),true)
        SSEO_INT        = $(AC_ROOT)/src/sse-intrinsics.o $(AC_ROOT)/src/memory.o $(AC_ROOT)/src/wpapsk.o
endif
endif

ifeq ($(subst TRUE,true,$(filter TRUE true,$(gcrypt) $(GCRYPT))),true)
        LIBSSL          =  -lgcrypt $(LDFLAGS)
        CFLAGS          += -DUSE_GCRYPT
else
        LIBSSL          = -lssl -lcrypto $(LDFLAGS)
endif

all:    check

SRC_CRYPTO        = $(AC_ROOT)/src/crypto.c $(AC_ROOT)/src/sha1-git.c $(SSEO_INT) $(AC_ROOT)/src/cpuid.o $(AC_ROOT)/src/common.o

TESTFILES        = test-encrypt-wep$(EXE) test-calc-pmk$(EXE) test-calc-mic$(EXE) test-calc-ptk$(EXE) test-encrypt-ccmp$(EXE) test-decrypt-ccmp$(EXE) test-calc-4pmk$(EXE)

OBJS_TEST_EWEP  = test-encrypt-wep.c $(SRC_CRYPTO)
OBJS_TEST_CPMK  = test-calc-pmk.c $(SRC_CRYPTO)
OBJS_TEST_4PMK  = test-calc-4pmk.c $(SRC_CRYPTO)
OBJS_TEST_CMIC  = test-calc-mic.c $(SRC_CRYPTO)
OBJS_TEST_CPTK  = test-calc-ptk.c $(SRC_CRYPTO)
OBJS_TEST_DCMP  = test-decrypt-ccmp.c $(SRC_CRYPTO)
OBJS_TEST_ECMP  = test-encrypt-ccmp.c $(SRC_CRYPTO)

test-encrypt-wep$(EXE): $(OBJS_TEST_EWEP)
        $(CC) $(CFLAGS) $(OBJS_TEST_EWEP) -o $(@) $(LIBSSL)

test-calc-pmk$(EXE): $(OBJS_TEST_CPMK)
        $(CC) $(CFLAGS) $(OBJS_TEST_CPMK) -o $(@) $(LIBSSL)

test-calc-4pmk$(EXE): $(OBJS_TEST_4PMK)
        $(CC) $(CFLAGS) $(OBJS_TEST_4PMK) $(AC_ROOT)/src/sha1-sse2.S -o $(@) $(LIBSSL)

test-calc-mic$(EXE): $(OBJS_TEST_CMIC)
        $(CC) $(CFLAGS) $(OBJS_TEST_CMIC) -o $(@) $(LIBSSL)

test-calc-ptk$(EXE): $(OBJS_TEST_CPTK)
        $(CC) $(CFLAGS) $(OBJS_TEST_CPTK) -o $(@) $(LIBSSL)

test-encrypt-ccmp$(EXE): $(OBJS_TEST_ECMP)
        $(CC) $(CFLAGS) $(OBJS_TEST_ECMP) -o $(@) $(LIBSSL)

test-decrypt-ccmp$(EXE): $(OBJS_TEST_DCMP)
        $(CC) $(CFLAGS) $(OBJS_TEST_DCMP) -o $(@) $(LIBSSL)


default: check


check: $(TESTFILES)
        $(foreach TEST,$(TESTFILES), \
                ./$(TEST) || exit 1; \
        )

valgrind: $(TESTFILES)
        $(foreach TEST,$(TESTFILES), \
                echo "Testing $$test for memory leaks with valgrind ..." ; \
                valgrind -q --error-exitcode=1 --leak-check=yes ./$(TEST) || exit 1; \
        )


clean:
        rm -f $(TESTFILES)
        rm -f vgcore*