include ../nasl.tmpl
NESSUS_CFLAGS= -I../include $(OPTIMIZE) `$(NESSUSCONFIG) --cflags` -DNESSUS_EXTENSIONS -O2 -g
NESSUS_LIBS = $(LIBS) `$(NESSUSCONFIG) --libs`

NESSUS_INCLUDE=`sh ./cflags`


OBJS = init.o parser.o function_call.o \
	sanitize.o send_packet.o pkt_utils.o \
	prompt.o udp.o tcp.o ip.o pcap.o \
	instruction.o pcap_next.o boolean.o \
	strutils.o inet.o execute.o nessus_extensions.o \
	igmp.o icmp.o nasl_rpc.o nasl_memory.o regex.o w32.o
LO_OBJS = init.lo parser.lo function_call.lo \
	sanitize.lo send_packet.lo pkt_utils.lo \
	prompt.lo udp.lo tcp.lo ip.lo pcap.lo \
	instruction.lo pcap_next.lo boolean.lo \
	strutils.lo inet.lo execute.lo nessus_extensions.lo \
	igmp.lo icmp.lo nasl_rpc.lo nasl_memory.lo regex.lo w32.lo
CSRCS = pkt_forge.c init.c parser.c function_call.c \
	sanitize.c send_packet.c pkt_utils.c \
	prompt.c udp.c tcp.c ip.c pcap.c \
	instruction.c pcap_next.c boolean.c \
	strutils.c inet.c execute.c nessus_extensions.c \
	igmp.c icmp.c nasl_rpc.c nasl_memory.c regex.c w32.c

COMPILE = $(LIBTOOL) $(CC) $(CFLAGS) $(NESSUS_INCLUDE)
all : cflags libnasl.la nasl


cflags : 
	@echo "echo \"$(NESSUS_CFLAGS) $(include) $(DEFS) \"" > cflags
	@chmod +x cflags

nasl : cflags $(OBJS) nasl.c
	$(CC) $(CFLAGS)  $(NESSUS_INCLUDE) $(include) -o nasl -DVERSION=\"$(VERSION)\" nasl.c $(OBJS) $(NESSUS_LIBS) 

libnasl.la : cflags $(OBJS)
	$(COMPILE) $(NESSUS_LIBS) -o libnasl.la $(LO_OBJS) -rpath ${libdir} \
	-version-info ${PACKAGE_VERSION}

install : libnasl.la nasl
	test -d ${libdir} || $(INSTALL_DIR) -m 755 ${libdir}
	$(LIBTOOL) --mode install $(INSTALL) libnasl.la ${libdir}/libnasl.la
	$(LIBTOOL) --finish ${libdir}
	$(INSTALL) nasl ${bindir}/
nessus_extensions.o : cflags nessus_extensions.c
	$(COMPILE) -c nessus_extensions.c 

forge_ip_packet.o : cflags forge_ip_packet.c forge_ip_packet.h
	$(COMPILE) -c forge_ip_packet.c


forge_udp_packet.o : cflags forge_udp_packet.c forge_udp_packet.h
	$(COMPILE) -c forge_udp_packet.c

init.o : cflags init.c init.h
	$(COMPILE) -c -DVERSION=\"$(VERSION)\" init.c

parser.o : cflags parser.c parser.h
	$(COMPILE) -c parser.c

function_call.o : cflags function_call.c function_call.h
	$(COMPILE) -c function_call.c

sanitize.o : cflags sanitize.c
	$(COMPILE) -c sanitize.c

pkt_utils.o : cflags pkt_utils.c
	$(COMPILE) -c pkt_utils.c 

send_packet.o : cflags send_packet.c
	$(COMPILE) -c send_packet.c 

prompt.o : cflags prompt.c
	$(COMPILE) -c prompt.c

pcap.o : cflags pcap.c 
	$(COMPILE) -c pcap.c	

instruction.o : cflags instruction.c
	$(COMPILE) -c instruction.c

pcap_next.o : cflags pcap_next.c
	$(COMPILE) -c pcap_next.c

boolean.o : cflags boolean.c
	$(COMPILE) -c boolean.c

strutils.o : cflags strutils.c
	$(COMPILE) -c strutils.c

tcp.o : cflags tcp.c 
	$(COMPILE) -c tcp.c

udp.o : cflags udp.c
	$(COMPILE) -c udp.c

ip.o  : cflags ip.c
	$(COMPILE) -c ip.c

inet.o : cflags inet.c
	$(COMPILE) -c inet.c

execute.o : cflags execute.c
	$(COMPILE) -c execute.c 

igmp.o : cflags igmp.c
	$(COMPILE) -c igmp.c 

icmp.o : cflags icmp.c
	$(COMPILE) -c icmp.c

nasl_rpc.o : cflags nasl_rpc.c
	$(COMPILE) -c nasl_rpc.c

nasl_memory.o : cflags nasl_memory.c
	$(COMPILE) -c nasl_memory.c
			
regex.o : cflags regex.c
	$(COMPILE) -c regex.c


w32.o : cflags w32.c
	$(COMPILE) -c w32.c
				
distclean : clean
	@rm -f strutils.h

clean :
	@rm -f OBJ/*.*
	@rm -f *~
	@rm -f *.o *.lo *.la
	@rm -rf .libs
	@rm -f nasl *core cflags
