# Makefile
# $Id: Makefile,v 1.3 2007/11/05 12:16:22 sendan Exp $
# masashi shimakura
#
RM = rm
AR = ar
AR_OPT = rcus
CC = gcc
SNMP_FLAG = -I/usr/local/include

#####  for gcc-4.*  ##### 
#CFLAGS = -Wall -Wextra -Wformat=2 -O2 -ftrapv -fmudflap -g ${SNMP_FLAG}
#CFLAGS = -Wall -Wextra -Wformat=2 -Wstrict-aliasing=2 -O2 -g ${SNMP_FLAG}
###### for FedraCore7 ######
CFLAGS = -Wall -Wextra -Wformat=2 -Wstrict-aliasing=2 -O2 -D_FORTIFY_SOURCE=2 -g ${SNMP_FLAG}
###### for Turbo Linux10 ######
#CFLAGS = -Wall -Wformat=2 -O2 -D_FORTIFY_SOURCE=2 -g ${SNMP_FLAG}
#####  for FreeBSD  #####  
#CFLAGS = -Wall -O2 -g ${SNMP_FLAG}

CPPFLAGS = -pthread -D_THREAD_SAFE
CTL_CPPFLAGS = 


TARGET = sitar resolv
CTL_TARGET = sitarctl 
ALMEMSYS = almemsys.h almemsys.a
FILECOMP = file_comp.h libfile_comp.a

ARCV = sitar_scan.a almemsys.a libfile_comp.a sitar_com.a libnetsnmp.a

OBJS = sitar.o tcp.o confset.o opt.o mallocset.o scan_port.o scan_snmp.o times.o \
	filestat.o snmp_test.o ${ARCV}
INOBJS = p_exec.o p_open.o 
INCLUDE = almemsys.h jpreturn.h prototype.h sitar.h sitar_com.h sitar_scan.h

SCAN = scan_tcpport.o scan_urlport.o scan_smtpport.o scan_udpport.o scan_icmp.o scan_dhwport.o scan_sntp.o scan_host.o

all: ${ALMEMSYS} ${FILECOMP} ${TARGET} ${CTL_TARGET}


almemsys.h: ../almemsys/almemsys.h

	ln -s ../almemsys/almemsys.h ./

almemsys.a: ../almemsys/almemsys.a

	ln -s ../almemsys/almemsys.a ./

file_comp.h: ../file_comp/file_comp.h

	ln -s ../file_comp/file_comp.h

libfile_comp.a: ../file_comp/libfile_comp.a

	ln -s ../file_comp/libfile_comp.a



${CTL_TARGET}: sitarctl.o initdaemon.o ${INCLUDE}

	${CC} ${CFLAGS} ${CTL_CPPFLAGS} -o sitarctl sitarctl.o initdaemon.o

resolv: resolv.c

	${CC} ${CFLAGS} -o resolv resolv.c ${CTL_CPPFLAGS}

sitar: ${OBJS} ${INOBJS} ${INCLUDE}

	${CC} ${CFLAGS} ${CPPFLAGS}  -o sitar ${OBJS}

confset.o: confset.c ${INCLUDE}

	${CC} ${CFLAGS}  -c confset.c

sitarctl.o: sitarctl.c ${INCLUDE}

	${CC} ${CFLAGS}  -c sitarctl.c

tcp.o: tcp.c ${INCLUDE}

	${CC} ${CFLAGS}  -c tcp.c

sitar.o: sitar.c ${INCLUDE}
 
	${CC} ${CFLAGS}  -c sitar.c

opt.o: opt.c ${INCLUDE}
 
	${CC} ${CFLAGS}  -c opt.c

initdaemon.o: initdaemon.c ${INCLUDE}
 
	${CC} ${CFLAGS}  -c initdaemon.c

times.o: times.c ${INCLUDE}
 
	${CC} ${CFLAGS}  -c times.c

mallocset.o: mallocset.c ${INCLUDE}
 
	${CC} ${CFLAGS}  -c mallocset.c

p_exec.o: p_exec.c ${INCLUDE}
 
	${CC} ${CFLAGS}  -c p_exec.c 

p_open.o: p_open.c almemsys.h
 
	${CC} ${CFLAGS}  -c p_open.c

sitar_com.a: p_exec.o p_open.o

	${AR} ${AR_OPT} sitar_com.a p_exec.o p_open.o

scan_port.o: scan_port.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_port.c

scan_icmp.o: scan_icmp.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_icmp.c

scan_tcpport.o: scan_tcpport.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_tcpport.c

scan_dhwport.o: scan_dhwport.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_dhwport.c

scan_udpport.o: scan_udpport.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_udpport.c

scan_urlport.o: scan_urlport.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_urlport.c

scan_sntp.o: scan_sntp.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_sntp.c

scan_host.o: scan_host.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_host.c

scan_smtpport.o: scan_smtpport.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_smtpport.c

filestat.o: filestat.c ${INCLUDE}

	${CC} ${CFLAGS}  -c filestat.c

sitar_scan.a: ${SCAN} ${INCLUDE}

	${AR} ${AR_OPT} sitar_scan.a ${SCAN} 

scan_snmp.o: scan_snmp.c ${INCLUDE}

	${CC} ${CFLAGS}  -c scan_snmp.c

snmp_test.o: snmp_test.c libnetsnmp.a ${INCLUDE}

	${CC} ${CFLAGS}  -c snmp_test.c

clean:
	${RM} -f ${TARGET} ${CTL_TARGET} sitar_com.a sitar_scan.a *.o *.core core.* ${ALMEMSYS} ${FILECOMP}



