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

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

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

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

OSNAME=$(shell uname)
ARCH=$(shell uname -m)

ifeq ($(OSNAME),Linux)
CC = gcc
CFLAGS = -O2 $(ADDS) -fomit-frame-pointer -Wall $(DEFS)
ifeq ($(ARCH),i386)
CFLAGS+= -malign-loops=2 -malign-jumps=2 -malign-functions=2
endif
ifeq ($(ARCH),i486)
CFLAGS+= -malign-loops=2 -malign-jumps=2 -malign-functions=2
endif
ifeq ($(ARCH),i586)
CFLAGS+= -malign-loops=2 -malign-jumps=2 -malign-functions=2
endif
ifeq ($(ARCH),i686)
CFLAGS+= -malign-loops=2 -malign-jumps=2 -malign-functions=2
endif
LDFLAGS = -s -O2 -static
INCLUDES = -I.
else
CC = cc
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 $@)

udpipgen.o:	udpipgen.c udpipgen.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 $<

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

default: dhcpcd

install: dhcpcd
	mv -f /sbin/dhcpcd /sbin/dhcpcd.old
	install -c -m 0500 dhcpcd /sbin
	mkdir -p /etc/dhcpc
	
clean:
	rm -f $(objects) core *~
