blob: b387172efa9c6ebfd6e916a114d5d0fb74d13827 [file] [log] [blame]
LEVEL = ../../../
#RUN_OPTIONS =
Source = $(addprefix libclamav_, \
aspack.c autoit.c binhex.c blob.c cab.c chmunpack.c cvd.c dconf.c dsig.c\
elf.c entconv.c filetypes.c fsg.c hashtab.c htmlnorm.c\
is_tar.c jscript.c line.c lockdb.c matcher-ac.c matcher-bm.c\
matcher.c mbox.c md5.c message.c mew.c msexpand.c mspack.c ole2_extract.c\
others.c packlibs.c pdf.c pe.c petite.c phishcheck.c phish_domaincheck_db.c phish_whitelist.c\
pst.c readdb.c rebuildpe.c regex_list.c rtf.c scanners.c sis.c snprintf.c special.c spin.c str.c suecrypt.c\
table.c text.c tnef.c unarj.c unsp.c untar.c unzip.c upack.c upx.c uuencode.c vba_extract.c wwunpack.c yc.c)\
$(addprefix clamscan_, \
clamscan.c manager.c others.c treewalk.c)\
$(addprefix shared_, \
cdiff.c cfgparser.c getopt.c misc.c network.c options.c output.c sha256.c)\
$(addprefix libclamav_regex_, \
regerror.c, regfree.c, \
regcomp.c, regexec.c, strlcpy.c)\
$(addprefix libclamav_nsis_, \
nulsft.c, bzlib.c, infblock.c, LZMADecode.c ) \
$(addprefix zlib_, \
adler32.c \
compress.c \
crc32.c \
deflate.c \
gzclose.c \
gzlib.c \
gzread.c \
gzwrite.c \
infback.c \
inffast.c \
inflate.c \
inftrees.c \
trees.c \
uncompr.c \
zutil.c)
# SVN version has these:
# inflate64.c lzma_iface.c
# $(addprefix libclamav_lzma_, \
# LzmaStateDecode.c) \
INPUT = $(PROJ_SRC_DIR)/inputs/clam.cab \
$(PROJ_SRC_DIR)/inputs/clamdoc.tar.gz \
$(PROJ_SRC_DIR)/inputs/clam.exe \
$(PROJ_SRC_DIR)/inputs/clam.exe.bz2 \
$(PROJ_SRC_DIR)/inputs/clam-v2.rar \
$(PROJ_SRC_DIR)/inputs/clam-v3.rar \
$(PROJ_SRC_DIR)/inputs/clam.zip \
$(PROJ_SRC_DIR)/inputs/README \
$(PROJ_SRC_DIR)/inputs/rtf-test/Doc11.rtf \
$(PROJ_SRC_DIR)/inputs/rtf-test/Doc1.rtf \
$(PROJ_SRC_DIR)/inputs/rtf-test/Doc22.rtf \
$(PROJ_SRC_DIR)/inputs/rtf-test/Doc2.rtf \
$(PROJ_SRC_DIR)/inputs/rtf-test/doc3.rtf \
$(PROJ_SRC_DIR)/inputs/rtf-test/docCLAMexe.rtf \
$(PROJ_SRC_DIR)/inputs/rtf-test/rtf1.rtf \
$(PROJ_SRC_DIR)/inputs/rtf-test/rtf-novirus.rtf
PROG = clamscan
CPPFLAGS += -DHAVE_CONFIG_H -I$(PROJ_SRC_DIR) -I$(PROJ_SRC_DIR)/zlib -DDONT_LOCK_DBDIRS
RUN_OPTIONS = --debug --exclude-dir .svn --verbose -d$(PROJ_SRC_DIR)/dbdir -r $(INPUT)
include $(LEVEL)/Makefile.config
# for ClamAV these are in clamav-config.h, but since we can't run configure, we have to define them here
# -- OS macros --
# It is especially important to get this correctly defined for windows.
ifeq ($(TARGET_OS),Darwin)
CPPFLAGS += -DC_DARWIN
endif
ifeq ($(TARGET_OS),AIX)
CPPFLAGS += -DC_AIX
endif
ifeq ($(TARGET_OS), IRIX)
CPPFLAGS += -DC_IRIX
endif
ifeq ($(TARGET_OS), Cygwin)
CPPFLAGS += -DC_CYGWIN
endif
ifeq ($(TARGET_OS), FreeBSD)
CPPFLAGS += -DC_BSD
endif
ifeq ($(TARGET_OS), OpenBSD)
CPPFLAGS += -DC_BSD
endif
ifeq ($(TARGET_OS), NetBSD)
CPPFLAGS += -DC_BSD
endif
ifeq ($(TARGET_OS), HP-UX)
CPPFLAGS += -DC_HPUX
endif
ifeq ($(TARGET_OS), Interix)
CPPFLAGS += -DC_INTERIX -DC_WINDOWS
endif
ifeq ($(TARGET_OS), Win32)
CPPFLAGS += -DC_WINDOWS
endif
ifeq ($(TARGET_OS), mingw)
CPPFLAGS += -DC_WINDOWS
endif
ifeq ($(TARGET_OS), Linux)
CPPFLAGS += -DC_LINUX
endif
# -- except ARM all arches have WORDS_BIGENDIAN same as ENDIAN.
# for ARM we'd need a runtime autoconf check to detect.
# Only affects autoit.c, not defining this macro will partially disable it.
ifneq ($(ARCH),ARM)
ifeq ($(ENDIAN),little)
CPPFLAGS += -DFPU_WORDS_BIGENDIAN=0
endif
ifeq ($(ENDIAN),big)
CPPFLAGS += -DFPU_WORDS_BIGENDIAN=1
endif
endif
# -- endianness detection --
# It is important to get this correctly, especially for Sparc.
# If arch is little endian the code possibly does unaligned accesses, that would
# cause a SIGBUS on Sparc.
ifeq ($(ENDIAN),little)
CPPFLAGS += -DWORDS_BIGENDIAN=0
endif
ifeq ($(ENDIAN),big)
CPPFLAGS += -DWORDS_BIGENDIAN=1
endif
include ../../Makefile.multisrc
#compare debug output
DIFFPROG := $(PROGDIR)/DiffOutput.sh "diff "