include ../nasl.tmpl

DEBUG=-g #-DDEBUG_NASL
OPTIMIZE=-O6

CFLAGS= -I../include $(OPTIMIZE) `$(NESSUSCONFIG) --cflags` -Wall -DNESSUS_EXTENSIONS
LIBS = `$(NESSUSCONFIG) --libs`


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
	
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
	
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

COMPILE = $(LIBTOOL) $(CC) $(CFLAGS) $(DEFS) $(include)	
all : libnasl.la


nasl : $(OBJS)
	$(CC) $(CFLAGS)  -L/usr/local/lib $(DEFS) $(include) -o nasl nasl.c $(OBJS) $(LIBS)

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

install : libnasl.la
	test -d ${libdir} || $(INSTALL_DIR) -m 755 ${libdir}
	$(LIBTOOL) --mode install $(INSTALL) libnasl.la ${libdir}/libnasl.la
	$(LIBTOOL) --finish ${libdir}

nessus_extensions.o : nessus_extensions.c
	$(COMPILE) -c nessus_extensions.c 

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


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

init.o : init.c init.h
	$(COMPILE) -c init.c

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

nasl_memory.o : nasl_memory.c
	$(COMPILE) -c nasl_memory.c
			
distclean : clean

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