include_directories(. .. ../../include)

if (${ARCH} STREQUAL "x86_64")
	set(
		MODES_ARCH_SOURCES

		aesni-gcm-x86_64.${ASM_EXT}
		ghash-x86_64.${ASM_EXT}
	)
endif()

if (${ARCH} STREQUAL "x86")
	set(
		MODES_ARCH_SOURCES

		ghash-x86.${ASM_EXT}
	)
endif()

if (${ARCH} STREQUAL "arm")
	set(
		MODES_ARCH_SOURCES

		ghash-armv4.${ASM_EXT}
	)
endif()

add_library(
	modes

	OBJECT

	cbc.c
	ctr.c
	ofb.c
	cfb.c
	gcm.c

	${MODES_ARCH_SOURCES}
)

perlasm(aesni-gcm-x86_64.${ASM_EXT} asm/aesni-gcm-x86_64.pl)
perlasm(ghash-x86_64.${ASM_EXT} asm/ghash-x86_64.pl)
perlasm(ghash-x86.${ASM_EXT} asm/ghash-x86.pl)
perlasm(ghash-armv4.${ASM_EXT} asm/ghash-armv4.pl)

add_executable(
	gcm_test

	gcm_test.c
)

target_link_libraries(gcm_test crypto)
