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
# ClamAV utilizes functions from <netdb.h>. However, since _XOPEN_SOURCE=700 is
# defined globally on AIX, it prevents us from having access to some of the
# functions that are required within ClamAV. Thus, _XOPEN_SOURCE=600 is defined
# explicitly for AIX to resolve this issue.
ifeq ($(TARGET_OS),AIX)
   CPPFLAGS += -DC_AIX -D_XOPEN_SOURCE=600
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 "
