# udhcp makefile

#-----------------------------------------------------
TOPDIR  :=  $(shell /bin/pwd)
TOPDIR  :=  $(TOPDIR)/..

include $(TOPDIR)/prerules.mk
#-----------------------------------------------------

prefix=/usr
SBINDIR=/sbin
USRSBINDIR=${prefix}/sbin
USRBINDIR=${prefix}/bin
USRSHAREDIR=${prefix}/share

TARGET-EXE1 := $(T_USBIN)
TARGET-EXE2 := $(T_SBIN)
TARGET-ETC  := $(T_ETC)

# Uncomment this to get a shared binary. Call as udhcpd for the server,
# and udhcpc for the client
#COMBINED_BINARY=1

# Uncomment this for extra output and to compile with debugging symbols
#DEBUG=1

# Uncomment this to output messages to syslog, otherwise, messages go to stdout
CFLAGS += -DSYSLOG -I $(COMM_INC_PATH)

#CROSS_COMPILE=arm-uclibc-
INSTALL = install

VER := 0.9.8


OBJS_SHARED = options.o socket.o packet.o pidfile.o
DHCPD_OBJS = dhcpd.o arpping.o files.o leases.o serverpacket.o
DHCPC_OBJS = dhcpc.o clientpacket.o script.o arpping.o 

EXEC1 = udhcpd
OBJS1 = $(DHCPD_OBJS) $(OBJS_SHARED)

EXEC2 = udhcpc
OBJS2 = $(DHCPC_OBJS) $(OBJS_SHARED)

EXEC3 = dumpleases
OBJS3 = dumpleases.o

BOOT_PROGRAMS = udhcpc
DAEMONS = udhcpd
COMMANDS = dumpleases

ifdef SYSLOG
CFLAGS += -DSYSLOG
endif

CFLAGS += -W -Wall -Wstrict-prototypes -DVERSION='"$(VER)"'
CFLAGS += -DAUTO_IP

ifdef DEBUG
CFLAGS += -g -DDEBUG
else
CFLAGS += -Os -fomit-frame-pointer
$(STRIP)=-s
endif

all: $(EXEC1) $(EXEC2) $(EXEC3)

$(OBJS1) $(OBJS2) $(OBJS3): *.h Makefile
$(EXEC1) $(EXEC2) $(EXEC3): Makefile

.c.o:
	$(CC) -c $(CFLAGS) $<
	
$(EXEC1): $(OBJS1)
	$(CC) $(LDFLAGS) $(OBJS1) -o $(EXEC1)
	$(STRIP) $(EXEC1)
	
$(EXEC2): $(OBJS2)
	$(CC) $(LDFLAGS) $(OBJS2) -o $(EXEC2) -L $(COMM_LIB_PATH) -lprofile -lutility
	$(STRIP) $(EXEC2)
	
$(EXEC3): $(OBJS3)
	$(CC) $(LDFLAGS) $(OBJS3) -o $(EXEC3)
	$(STRIP) $(EXEC3)

install:
	mkdir -p $(TARGET-EXE1)
	mkdir -p $(TARGET-EXE2)
	cp -pdR $(EXEC1) $(TARGET-EXE1)
	cp -pdR $(EXEC2) $(TARGET-EXE2)
	cp -pdR $(EXEC3) $(TARGET-EXE1)
#	chown root.root samples/udhcpd.conf
#	chmod 644 samples/udhcpd.conf	
#	cp -pdR samples/udhcpd.conf $(TARGET-ETC)
	
clean:
	-rm -f $(EXEC1) $(EXEC2) $(EXEC3) *.[od] core

