mirror of
https://github.com/VirusTotal/yara.git
synced 2026-10-12 02:10:00 +00:00
This reverts commit 8ce0c6c4eb. See comments in https://github.com/VirusTotal/yara/pull/1957 for more context.
424 lines
10 KiB
Makefile
424 lines
10 KiB
Makefile
# ABI_VERSION is passed to libtool as --version-number $(ABI_VERSION). This is
|
|
# not related to YARA's release version, this is used for tracking changes in
|
|
# the ABI, not in the project as a whole.
|
|
#
|
|
# The three number mean [current]:[revision]:[age], and they should updated as
|
|
# follow:
|
|
#
|
|
# 1. With every release increment "revision".
|
|
#
|
|
# 2. If any interfaces have been added, removed, or changed since the last
|
|
# update, increment "current" and set "revision" to 0.
|
|
#
|
|
# 3. If the changes in the interface were backward compatible (i.e: only adding
|
|
# new APIs) increment "age", or set it to 0 if otherwise.
|
|
#
|
|
# See https://autotools.io/libtool/version.html for more details.
|
|
#
|
|
ABI_VERSION = 10:0:0
|
|
|
|
AM_CFLAGS=-Wall -D_GNU_SOURCE -I$(srcdir)/libyara/include
|
|
|
|
#
|
|
# When bison is used in POSIX yacc emulation mode (-y/--yacc option) it
|
|
# produces warnings if we use Bison-specific features that are not supported
|
|
# by yacc. With -Wno-yacc we turn off those warnings. Ideally we should call
|
|
# bison without the -y/--yacc option, but autoconf insists on using bison in
|
|
# yacc compatibility mode because of AC_PROG_YACC, and AC_PROG_BISON doesn't
|
|
# exist.
|
|
#
|
|
AM_YFLAGS=-d -Wno-yacc
|
|
|
|
if GCOV
|
|
|
|
check:
|
|
@tests/gcov-summary
|
|
|
|
MOSTLYCLEANFILES = {cli,tests,libyara,libyara/proc,libyara/modules/*}/*.gc{no,da,ov}
|
|
AM_CFLAGS+=-O0 -g -ftest-coverage -fprofile-arcs
|
|
|
|
else
|
|
|
|
if DEBUG
|
|
AM_CFLAGS+=-g -fno-omit-frame-pointer
|
|
endif
|
|
|
|
if OPTIMIZATION
|
|
AM_CFLAGS+=-O3
|
|
else
|
|
AM_CFLAGS+=-O0
|
|
endif
|
|
|
|
endif
|
|
|
|
if ADDRESS_SANITIZER
|
|
AM_CFLAGS+=-fsanitize=address
|
|
endif
|
|
|
|
if UB_SANITIZER
|
|
AM_CFLAGS+=-fsanitize=undefined -fno-sanitize-recover=undefined
|
|
endif
|
|
|
|
if GCC
|
|
AM_CFLAGS+=-fvisibility=hidden
|
|
endif
|
|
|
|
ACLOCAL_AMFLAGS=-I m4
|
|
|
|
# Rules for generating YARA modules from .proto files. For each .proto file
|
|
# three files are generated: .c, .pb-c.c, and .pb-c.h. The .c file is generated
|
|
# by protoc-gen-yara and the other two by protoc-gen-c. This is done only if
|
|
# protoc is found, if not, files already in the repository are used instead
|
|
# of generating fresh ones from the .proto file.
|
|
#
|
|
if PROTOC
|
|
# SUFFIXES = .proto .pb-c.c .pb-c.h .c
|
|
.proto.pb-c.c:
|
|
$(PROTOC) --c_out=$(builddir) $^ -Ilibyara/pb/ -I=$(srcdir)
|
|
|
|
.proto.pb-c.h:
|
|
$(PROTOC) --c_out=$(builddir) $^ -Ilibyara/pb/ -I=$(srcdir)
|
|
|
|
.proto.c:
|
|
$(PROTOC) --c_out=$(builddir) $^ -Ilibyara/pb/ -I=$(srcdir)
|
|
endif
|
|
|
|
MODULES = libyara/modules/tests/tests.c
|
|
|
|
MODULES += libyara/modules/elf/elf.c
|
|
|
|
MODULES += libyara/modules/math/math.c
|
|
|
|
MODULES += libyara/modules/time/time.c
|
|
|
|
MODULES += libyara/modules/pe/pe.c
|
|
MODULES += libyara/modules/pe/pe_utils.c
|
|
|
|
MODULES += libyara/modules/console/console.c
|
|
|
|
MODULES += libyara/modules/string/string.c
|
|
|
|
if CUCKOO_MODULE
|
|
MODULES += libyara/modules/cuckoo/cuckoo.c
|
|
endif
|
|
|
|
if MAGIC_MODULE
|
|
MODULES += libyara/modules/magic/magic.c
|
|
endif
|
|
|
|
if HASH_MODULE
|
|
MODULES += libyara/modules/hash/hash.c
|
|
endif
|
|
|
|
if DOTNET_MODULE
|
|
MODULES += libyara/modules/dotnet/dotnet.c
|
|
endif
|
|
|
|
if MACHO_MODULE
|
|
MODULES += libyara/modules/macho/macho.c
|
|
endif
|
|
|
|
if DEX_MODULE
|
|
MODULES += libyara/modules/dex/dex.c
|
|
endif
|
|
|
|
if PB_TESTS_MODULE
|
|
MODULES += libyara/modules/pb_tests/pb_tests.c
|
|
MODULES += libyara/modules/pb_tests/pb_tests.pb-c.c
|
|
endif
|
|
|
|
if AUTHENTICODE_MODULE
|
|
MODULES += libyara/modules/pe/authenticode-parser/authenticode.c
|
|
MODULES += libyara/modules/pe/authenticode-parser/certificate.c
|
|
MODULES += libyara/modules/pe/authenticode-parser/helper.c
|
|
MODULES += libyara/modules/pe/authenticode-parser/countersignature.c
|
|
MODULES += libyara/modules/pe/authenticode-parser/structs.c
|
|
endif
|
|
|
|
#
|
|
# Add your modules here:
|
|
#
|
|
# MODULES += libyara/modules/yourmodule.c
|
|
#
|
|
|
|
include_HEADERS = libyara/include/yara.h
|
|
|
|
yaraincludedir = $(includedir)/yara
|
|
yarainclude_HEADERS = \
|
|
libyara/include/yara/ahocorasick.h \
|
|
libyara/include/yara/arena.h \
|
|
libyara/include/yara/atoms.h \
|
|
libyara/include/yara/base64.h \
|
|
libyara/include/yara/bitmask.h \
|
|
libyara/include/yara/compiler.h \
|
|
libyara/include/yara/error.h \
|
|
libyara/include/yara/exec.h \
|
|
libyara/include/yara/exefiles.h \
|
|
libyara/include/yara/filemap.h \
|
|
libyara/include/yara/hash.h \
|
|
libyara/include/yara/integers.h \
|
|
libyara/include/yara/libyara.h \
|
|
libyara/include/yara/limits.h \
|
|
libyara/include/yara/mem.h \
|
|
libyara/include/yara/modules.h \
|
|
libyara/include/yara/notebook.h \
|
|
libyara/include/yara/object.h \
|
|
libyara/include/yara/parser.h \
|
|
libyara/include/yara/proc.h \
|
|
libyara/include/yara/re.h \
|
|
libyara/include/yara/rules.h \
|
|
libyara/include/yara/scan.h \
|
|
libyara/include/yara/scanner.h \
|
|
libyara/include/yara/simple_str.h \
|
|
libyara/include/yara/sizedstr.h \
|
|
libyara/include/yara/stack.h \
|
|
libyara/include/yara/stopwatch.h \
|
|
libyara/include/yara/stream.h \
|
|
libyara/include/yara/strutils.h \
|
|
libyara/include/yara/threading.h \
|
|
libyara/include/yara/types.h \
|
|
libyara/include/yara/unaligned.h \
|
|
libyara/include/yara/utils.h
|
|
|
|
noinst_HEADERS = \
|
|
libyara/crypto.h \
|
|
libyara/exception.h \
|
|
libyara/include/yara/dotnet.h \
|
|
libyara/include/yara/elf.h \
|
|
libyara/include/yara/endian.h \
|
|
libyara/include/yara/globals.h \
|
|
libyara/include/yara/hex_lexer.h \
|
|
libyara/include/yara/lexer.h \
|
|
libyara/include/yara/pe.h \
|
|
libyara/include/yara/pe_utils.h \
|
|
libyara/include/yara/re_lexer.h \
|
|
libyara/modules/module_list
|
|
|
|
dist_noinst_DATA = libyara/pb/yara.proto
|
|
|
|
lib_LTLIBRARIES = libyara.la
|
|
|
|
libyara_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/libyara
|
|
libyara_la_LDFLAGS = -version-number $(ABI_VERSION)
|
|
|
|
BUILT_SOURCES = \
|
|
libyara/lexer.c \
|
|
libyara/hex_lexer.c \
|
|
libyara/re_lexer.c \
|
|
libyara/grammar.c libyara/grammar.h \
|
|
libyara/hex_grammar.c libyara/hex_grammar.h \
|
|
libyara/re_grammar.c libyara/re_grammar.h
|
|
|
|
libyara_la_SOURCES = \
|
|
$(MODULES) \
|
|
libyara/grammar.y \
|
|
libyara/ahocorasick.c \
|
|
libyara/arena.c \
|
|
libyara/atoms.c \
|
|
libyara/base64.c \
|
|
libyara/bitmask.c \
|
|
libyara/compiler.c \
|
|
libyara/endian.c \
|
|
libyara/exec.c \
|
|
libyara/exefiles.c \
|
|
libyara/filemap.c \
|
|
libyara/hash.c \
|
|
libyara/hex_grammar.y \
|
|
libyara/hex_lexer.l \
|
|
libyara/lexer.l \
|
|
libyara/libyara.c \
|
|
libyara/mem.c \
|
|
libyara/modules.c \
|
|
libyara/notebook.c \
|
|
libyara/object.c \
|
|
libyara/parser.c \
|
|
libyara/proc.c \
|
|
libyara/re.c \
|
|
libyara/re_grammar.y \
|
|
libyara/re_lexer.l \
|
|
libyara/rules.c \
|
|
libyara/scan.c \
|
|
libyara/scanner.c \
|
|
libyara/simple_str.c \
|
|
libyara/sizedstr.c \
|
|
libyara/stack.c \
|
|
libyara/stopwatch.c \
|
|
libyara/strutils.c \
|
|
libyara/stream.c \
|
|
libyara/tlshc/tlsh.c \
|
|
libyara/tlshc/tlsh_impl.c \
|
|
libyara/tlshc/tlsh_util.c \
|
|
libyara/threading.c
|
|
|
|
|
|
if USE_WINDOWS_PROC
|
|
libyara_la_SOURCES += libyara/proc/windows.c
|
|
endif
|
|
|
|
if USE_LINUX_PROC
|
|
libyara_la_SOURCES += libyara/proc/linux.c
|
|
endif
|
|
|
|
if USE_FREEBSD_PROC
|
|
libyara_la_SOURCES += libyara/proc/freebsd.c
|
|
endif
|
|
|
|
if USE_OPENBSD_PROC
|
|
libyara_la_SOURCES += libyara/proc/openbsd.c
|
|
endif
|
|
|
|
if USE_MACH_PROC
|
|
libyara_la_SOURCES += libyara/proc/mach.c
|
|
endif
|
|
|
|
if USE_NO_PROC
|
|
libyara_la_SOURCES += libyara/proc/none.c
|
|
endif
|
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
nodist_pkgconfig_DATA = yara.pc
|
|
|
|
bin_PROGRAMS = yara yarac
|
|
|
|
yara_SOURCES = \
|
|
cli/args.c \
|
|
cli/args.h \
|
|
cli/common.c \
|
|
cli/common.h \
|
|
cli/threading.c \
|
|
cli/threading.h \
|
|
cli/yara.c
|
|
|
|
yara_LDADD = libyara.la
|
|
|
|
yarac_SOURCES = \
|
|
cli/args.c \
|
|
cli/args.h \
|
|
cli/common.c \
|
|
cli/common.h \
|
|
cli/yarac.c
|
|
|
|
yarac_LDADD = libyara.la
|
|
|
|
tests_mapper_SOURCES = tests/mapper.c
|
|
tests_mapper_CFLAGS = -O0
|
|
|
|
test_alignment_SOURCES = tests/test-alignment.c tests/util.c
|
|
test_alignment_LDADD = libyara.la
|
|
test_alignment_LDFLAGS = -static
|
|
test_arena_SOURCES = tests/test-arena.c tests/util.c
|
|
test_arena_LDADD = libyara.la
|
|
test_arena_LDFLAGS = -static
|
|
test_atoms_SOURCES = tests/test-atoms.c tests/util.c
|
|
test_atoms_LDADD = libyara.la
|
|
test_atoms_LDFLAGS = -static
|
|
test_rules_SOURCES = tests/test-rules.c tests/util.c
|
|
test_rules_LDADD = libyara.la
|
|
test_rules_LDFLAGS = -static
|
|
if POSIX
|
|
EXTRA_test_rules_DEPENDENCIES = tests/mapper$(EXEEXT)
|
|
endif
|
|
test_pe_SOURCES = tests/test-pe.c tests/util.c
|
|
test_pe_LDADD = libyara.la
|
|
test_pe_LDFLAGS = -static
|
|
test_elf_SOURCES = tests/test-elf.c tests/util.c
|
|
test_elf_LDADD = libyara.la
|
|
test_elf_LDFLAGS = -static
|
|
test_version_SOURCES = tests/test-version.c tests/util.c
|
|
test_version_LDADD = libyara.la
|
|
test_version_LDFLAGS = -static
|
|
test_api_SOURCES = tests/test-api.c tests/util.c
|
|
test_api_LDADD = libyara.la
|
|
test_api_LDFLAGS = -static
|
|
test_bitmask_SOURCES = tests/test-bitmask.c tests/util.c
|
|
test_bitmask_LDADD = libyara.la
|
|
test_bitmask_LDFLAGS = -static
|
|
test_math_SOURCES = tests/test-math.c tests/util.c
|
|
test_math_LDADD = libyara.la
|
|
test_math_LDFLAGS = -static
|
|
test_string_SOURCES = tests/test-string.c tests/util.c
|
|
test_string_LDADD = libyara.la
|
|
test_string_LDFLAGS = -static
|
|
test_stack_SOURCES = tests/test-stack.c tests/util.c
|
|
test_stack_LDADD = libyara.la
|
|
test_stack_LDFLAGS = -static
|
|
test_re_split_SOURCES = tests/test-re-split.c tests/util.c
|
|
test_re_split_LDADD = libyara.la
|
|
test_re_split_LDFLAGS = -static
|
|
test_async_SOURCES = tests/test-async.c tests/util.c
|
|
test_async_LDADD = libyara.la
|
|
test_async_LDFLAGS = -static
|
|
|
|
TESTS = $(check_PROGRAMS)
|
|
TESTS_ENVIRONMENT = TOP_SRCDIR=$(top_srcdir) TOP_BUILDDIR=$(top_builddir)
|
|
|
|
check_PROGRAMS = \
|
|
test-arena \
|
|
test-alignment \
|
|
test-atoms \
|
|
test-api \
|
|
test-rules \
|
|
test-pe \
|
|
test-elf \
|
|
test-version \
|
|
test-bitmask \
|
|
test-math \
|
|
test-stack \
|
|
test-re-split \
|
|
test-async \
|
|
test-string
|
|
|
|
EXTRA_PROGRAMS = tests/mapper
|
|
CLEANFILES = tests/mapper$(EXEEXT)
|
|
|
|
if POSIX
|
|
# The -fsanitize=address option makes test-exception fail. Include the test
|
|
# only if the option is not enabled.
|
|
if !ADDRESS_SANITIZER
|
|
check_PROGRAMS+=test-exception
|
|
test_exception_SOURCES = tests/test-exception.c tests/util.c
|
|
test_exception_LDADD = libyara.la
|
|
test_exception_LDFLAGS = -static
|
|
endif
|
|
endif
|
|
|
|
if MACHO_MODULE
|
|
check_PROGRAMS+=test-macho
|
|
test_macho_SOURCES = tests/test-macho.c tests/util.c
|
|
test_macho_LDADD = libyara.la
|
|
test_macho_LDFLAGS = -static
|
|
endif
|
|
|
|
if DEX_MODULE
|
|
check_PROGRAMS+=test-dex
|
|
test_dex_SOURCES = tests/test-dex.c tests/util.c
|
|
test_dex_LDADD = libyara.la
|
|
test_dex_LDFLAGS = -static
|
|
endif
|
|
|
|
if DOTNET_MODULE
|
|
check_PROGRAMS+=test-dotnet
|
|
test_dotnet_SOURCES = tests/test-dotnet.c tests/util.c
|
|
test_dotnet_LDADD = libyara.la
|
|
test_dotnet_LDFLAGS = -static
|
|
endif
|
|
|
|
if MAGIC_MODULE
|
|
check_PROGRAMS+=test-magic
|
|
test_magic_SOURCES = tests/test-magic.c tests/util.c
|
|
test_magic_LDADD = libyara.la
|
|
test_magic_LDFLAGS = -static
|
|
endif
|
|
|
|
if PB_TESTS_MODULE
|
|
check_PROGRAMS+=test-pb
|
|
test_pb_SOURCES = tests/test-pb.c tests/util.c
|
|
test_pb_LDADD = libyara.la
|
|
test_pb_LDFLAGS = -static
|
|
endif
|
|
|
|
# man pages
|
|
man1_MANS = yara.man yarac.man
|
|
|
|
EXTRA_DIST = $(man1_MANS) README.md bootstrap.sh
|