Skip to content

Commit f3acee6

Browse files
committed
basic integration mfoc + cropto1_bs
Special thanks to @skgsergio for the help with automake stuff :)
1 parent 0723f53 commit f3acee6

19 files changed

+73386
-20
lines changed

configure.ac

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ AC_CONFIG_HEADERS([config.h])
66

77
AC_CONFIG_SRCDIR([src/mfoc.c])
88

9-
AM_INIT_AUTOMAKE(dist-bzip2 no-dist-gzip)
9+
AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip subdir-objects])
10+
CFLAGS="$CFLAGS -O3"
11+
AX_CFLAGS_WARN_ALL
1012

1113
AC_PROG_CC
1214

@@ -16,6 +18,11 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
1618
LIBNFC_REQUIRED_VERSION=1.7.0
1719
PKG_CHECK_MODULES([libnfc], [libnfc >= $LIBNFC_REQUIRED_VERSION], [], [AC_MSG_ERROR([libnfc >= $LIBNFC_REQUIRED_VERSION is mandatory.])])
1820

21+
PKG_CHECK_MODULES([liblzma], [liblzma], LIBS="$LIBS -llzma", [AC_MSG_ERROR([liblzma is mandatory.])])
22+
ACX_PTHREAD(LIBS="$LIBS $PTHREAD_CFLAGS", [AC_MSG_ERROR([pthread is mandatory.])])
23+
AC_CHECK_LIB(m, log, LIBS="$LIBS -lm", [AC_MSG_ERROR([math is mandatory.])])
24+
AX_LIB_READLINE
25+
1926
PKG_CONFIG_REQUIRES="libnfc"
2027
AC_SUBST([PKG_CONFIG_REQUIRES])
2128

@@ -35,7 +42,7 @@ AC_FUNC_REALLOC
3542
AC_CHECK_FUNCS([memset])
3643

3744
# C99
38-
CFLAGS="$CFLAGS -std=c99 -O3 -Wall"
45+
CFLAGS="$CFLAGS -std=c99"
3946

4047
AC_CONFIG_FILES([Makefile
4148
src/Makefile])

src/Makefile.am

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,50 @@ AM_CFLAGS = @libnfc_CFLAGS@
22

33
bin_PROGRAMS = mfoc
44

5-
noinst_HEADERS = crapto1.h mfoc.h mifare.h nfc-utils.h parity.h
5+
noinst_HEADERS = crapto1.h mfoc.h mifare.h nfc-utils.h parity.h hardnested/hardnested_bruteforce.h hardnested/tables.h cmdhfmfhard.h util.h util_posix.h ui.h
66

7-
mfoc_SOURCES = crapto1.c crypto1.c mfoc.c mifare.c nfc-utils.c parity.c
8-
mfoc_LDADD = @libnfc_LIBS@
7+
mfoc_SOURCES = crapto1.c crypto1.c mfoc.c mifare.c nfc-utils.c parity.c hardnested/hardnested_bruteforce.c hardnested/tables.c cmdhfmfhard.c util.c util_posix.c ui.c
8+
mfoc_LDADD = @libnfc_LIBS@ $(MULTIARCHOBJS)
99

1010
dist_man_MANS = mfoc.1
11+
12+
13+
#MULTIARCH = hardnested/hardnested_bf_core.c hardnested/hardnested_bitarray_core.c
14+
15+
MULTIARCHOBJS = hardnested/hardnested_bf_core_NOSIMD.o \
16+
hardnested/hardnested_bf_core_MMX.o \
17+
hardnested/hardnested_bf_core_SSE2.o \
18+
hardnested/hardnested_bf_core_AVX.o \
19+
hardnested/hardnested_bf_core_AVX2.o \
20+
hardnested/hardnested_bf_core_AVX512.o \
21+
hardnested/hardnested_bitarray_core_NOSIMD.o \
22+
hardnested/hardnested_bitarray_core_MMX.o \
23+
hardnested/hardnested_bitarray_core_SSE2.o \
24+
hardnested/hardnested_bitarray_core_AVX.o \
25+
hardnested/hardnested_bitarray_core_AVX2.o \
26+
hardnested/hardnested_bitarray_core_AVX512.o
27+
28+
HARD_SWITCH_NOSIMD = -mno-mmx -mno-sse2 -mno-avx -mno-avx2 -mno-avx512f
29+
HARD_SWITCH_MMX = -mmmx -mno-sse2 -mno-avx -mno-avx2 -mno-avx512f
30+
HARD_SWITCH_SSE2 = -mmmx -msse2 -mno-avx -mno-avx2 -mno-avx512f
31+
HARD_SWITCH_AVX = -mmmx -msse2 -mavx -mno-avx2 -mno-avx512f
32+
HARD_SWITCH_AVX2 = -mmmx -msse2 -mavx -mavx2 -mno-avx512f
33+
HARD_SWITCH_AVX512 = -mmmx -msse2 -mavx -mavx2 -mavx512f
34+
35+
hardnested/%_NOSIMD.o : hardnested/%.c
36+
$(CC) $(DEPFLAGS) $(CFLAGS) $(HARD_SWITCH_NOSIMD) -c -o $@ $<
37+
38+
hardnested/%_MMX.o : hardnested/%.c
39+
$(CC) $(DEPFLAGS) $(CFLAGS) $(HARD_SWITCH_MMX) -c -o $@ $<
40+
41+
hardnested/%_SSE2.o : hardnested/%.c
42+
$(CC) $(DEPFLAGS) $(CFLAGS) $(HARD_SWITCH_SSE2) -c -o $@ $<
43+
44+
hardnested/%_AVX.o : hardnested/%.c
45+
$(CC) $(DEPFLAGS) $(CFLAGS) $(HARD_SWITCH_AVX) -c -o $@ $<
46+
47+
hardnested/%_AVX2.o : hardnested/%.c
48+
$(CC) $(DEPFLAGS) $(CFLAGS) $(HARD_SWITCH_AVX2) -c -o $@ $<
49+
50+
hardnested/%_AVX512.o : hardnested/%.c
51+
$(CC) $(DEPFLAGS) $(CFLAGS) $(HARD_SWITCH_AVX512) -c -o $@ $<

0 commit comments

Comments
 (0)