# File   : Makefile
# Author : Karyl F. Stein <xenon@xenos.net>
# Purpose: This is the Linux Makefile for Spak.

########## User Definable Section ############################################

# Name of your C compiler
CC = gcc

# Options to pass to the C compiler.  If you are using a version of libc
# before 5.4.33, you may need to uncomment the following:
# COPT = -D__BSD_SOURCE
#
# For debugging, uncomment the following:
# COPT = -g
#
# If no special options are needed, use the following:
COPT = 

# Name of the programs to build.
PROGS = makeip maketcp makeudp makearp sendpacket makeeth sendeth

########## No changes needed below this line ##################################

all: $(PROGS)

makeip: makeip.o makeip_func.o spak_func.o datadisp.o
	$(CC) $(COPT) -o makeip makeip.o makeip_func.o spak_func.o datadisp.o
makeip.o: makeip.c makeip_func.h makeip_conf.h spak_func.h datadisp.h
	$(CC) $(COPT) -o makeip.o -c makeip.c
makeip_func.o: makeip_func.c makeip_func.h makeip_conf.h
	$(CC) $(COPT) -o makeip_func.o -c makeip_func.c

maketcp: maketcp.o maketcp_func.o spak_func.o datadisp.o
	$(CC) $(COPT) -o maketcp maketcp.o maketcp_func.o spak_func.o datadisp.o
maketcp.o: maketcp.c maketcp_func.h spak_func.h datadisp.h
	$(CC) $(COPT) -o maketcp.o -c maketcp.c
maketcp_func.o: maketcp_func.c maketcp_func.h
	$(CC) $(COPT) -o maketcp_func.o -c maketcp_func.c

makeudp: makeudp.o makeudp_func.o spak_func.o datadisp.o
	$(CC) $(COPT) -o makeudp makeudp.o makeudp_func.o spak_func.o datadisp.o
makeudp.o: makeudp.c config.h makeudp_sysconf.h makeudp_conf.h makeudp_func.h \
	spak_func.h datadisp.h
	$(CC) $(COPT) -o makeudp.o -c makeudp.c
makeudp_func.o: makeudp_func.c config.h makeudp_sysconf.h makeudp_func.h \
	makeudp_conf.h
	$(CC) $(COPT) -o makeudp_func.o -c makeudp_func.c

makearp: makearp.o makearp_func.o datadisp.o ether_func.o spak_func.o
	$(CC) $(COPT) -o makearp makearp.o makearp_func.o datadisp.o \
	ether_func.o spak_func.o
makearp.o: makearp.c makearp_conf.h makearp_func.h
	$(CC) -o makearp.o -c makearp.c
makearp_func.o: makearp_func.c makearp_func.h
	$(CC) -o makearp_func.o -c makearp_func.c

makeeth: makeeth.o datadisp.o spak_func.o
	$(CC) $(COPT) -o makeeth makeeth.o datadisp.o ether_func.o spak_func.o
makeeth.o: makeeth.c config.h ethernet.h datadisp.h spak_func.h
	$(CC) $(COPT) -c makeeth.c -o makeeth.o

spak_func.o: spak_func.c spak_func.h spak_func_conf.h
	$(CC) $(COPT) -c spak_func.c 
ether_func.o: ether_func.c
	$(CC) $(COPT) -c ether_func.c -o ether_func.o
datadisp.o: datadisp.c datadisp.h config.h ethernet.h
	$(CC) $(COPT) -c datadisp.c

sendpacket: sendpacket.o spak_func.o datadisp.o
	$(CC) $(COPT) -o sendpacket sendpacket.o spak_func.o datadisp.o
sendpacket.o: sendpacket.c spak_func.h
	$(CC) $(COPT) -o sendpacket.o -c sendpacket.c
sendeth: sendeth.o datadisp.o ether_func.o spak_func.o
	$(CC) $(COPT) -o sendeth sendeth.o datadisp.o ether_func.o spak_func.o
sendeth.o: sendeth.c config.h sendeth_conf.h datadisp.h spak_func.h
	$(CC) $(COPT) -c sendeth.c

clean:
	rm -f core *~ *.o $(PROGS)
