###############################################################################
#									      #
# 				Dhcpcd Makefile				      #
#									      #
# 	       Copyright (C) Sergei A. Viznyuk, January, 1998                 #
#			      All rights reserved.			      #
#									      #
###############################################################################

###########################
# PARAMETERS TO PLAY WITH #
###########################

#ADDS= -m586
#DEFS+= -DDEBUG		# for heavy debugging
#DEFS+= -DARPCHECK

###########################
# NOTHING BELOW NEEDS YOU #
###########################

ifeq ($(origin OSNAME), undefined)
OSNAME=$(shell uname)
endif
ifeq ($(origin ARCH), undefined)
ARCH=$(shell uname -m)
endif

ifeq ($(OSNAME),Linux)
CFLAGS = -O2 $(ADDS) -fomit-frame-pointer -Wall $(DEFS)
ifeq ($(ARCH),i386)
CFLAGS+=
endif
ifeq ($(ARCH),i486)
CFLAGS+= -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2
endif
ifeq ($(ARCH),i586)
CFLAGS+=
endif
ifeq ($(ARCH),i686)
CFLAGS+=
endif
LDFLAGS = -s -O2 -static
INCLUDES = -I.
else
CFLAGS = -O2
LDFLAGS =
INCLUDES = -I.
endif

objects = peekfd.o udpipgen.o buildmsg.o signals.o arp.o client.o dhcpcd.o

dhcpcd:	$(objects)
	$(CC) $(LDFLAGS) -o $@ $^
	@(ls -l $@)

icmprequest:	icmprequest.o icmpipgen.o udpipgen.o peekfd.o
	$(CC) -s -O2 -o $@ $^
	@(ls -l $@)

udpipgen.o:	udpipgen.c udpipgen.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

icmpipgen.o:	icmpipgen.c icmpipgen.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

buildmsg.o:	buildmsg.c client.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

signals.o:	signals.c dhcpcd.h client.h pathnames.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

arp.o:	arp.c client.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

client.o:	client.c client.h buildmsg.h udpipgen.h pathnames.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

dhcpcd.o:	dhcpcd.c dhcpcd.h signals.h client.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

icmprequest.o:	icmprequest.c icmpipgen.c icmpipgen.h udpipgen.h
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

%.o:	%.c
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

default:	dhcpcd

install:	dhcpcd
	$(shell mv -f /sbin/dhcpcd /sbin/dhcpcd.old)
	install -c -m 0500 dhcpcd /sbin
	install -c -m 0444 dhcpcd.8 /usr/man/man8
	mkdir -p /etc/dhcpc
	rm -f /etc/dhcpc/*.cache

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

clobber: clean
	rm -f dhcpcd icmprequest

