include ./Rules.make

TARGET=wan_daemon

SIG=-DSIG_JMP

TOP ?= $(shell pwd)
#"WD_DIR" change folder to the place on different platform.
WD_DIR = ../Wand_API
WD_INC = $(WD_DIR)
WD_LIB_LINK = -lWD
#WD_LIB_LINK = -lWD_rd

CFLAGS=-Wall 
CFLAGS+=-O2
#CFLAGS+=-Os
CFLAGS+=-D_2000Q
#CFLAGS+=-DEPL
#CFLAGS+=-DTPL
#CFLAGS+=-DWPL
CFLAGS+=-Wno-strict-aliasing
CFLAGS+=$(SIG)
CFLAGS+=-I./bonjour
CFLAGS+=-I./dhcpcd
CFLAGS+=-I$(WD_INC)

LIBS = -lcrypt -lpthread
LIBS+= -L./bonjour -lBonjour 
LIBS+= -L$(WD_DIR) $(WD_LIB_LINK)

#OBJECTS=$(patsubst %.c,%.o,$(shell echo *.c))
OBJECTS=main.o
OBJECTS+=config_read.o
OBJECTS+=threadlib.o
OBJECTS+=ez-ipupdate.o
OBJECTS+=ping.o

DHCP_CD_OBJECTS+=./dhcpcd/dhcpcd.o
DHCP_CD_OBJECTS+=./dhcpcd/udpipgen.o
DHCP_CD_OBJECTS+=./dhcpcd/buildmsg.o
DHCP_CD_OBJECTS+=./dhcpcd/arp.o
DHCP_CD_OBJECTS+=./dhcpcd/dhcpconfig.o

PPPD_OBJECTS+=./pppd/main.o 
PPPD_OBJECTS+=./pppd/magic.o 
PPPD_OBJECTS+=./pppd/fsm.o 
PPPD_OBJECTS+=./pppd/lcp.o 
PPPD_OBJECTS+=./pppd/ipcp.o 
PPPD_OBJECTS+=./pppd/upap.o 
PPPD_OBJECTS+=./pppd/chap-new.o 
PPPD_OBJECTS+=./pppd/md5.o 
PPPD_OBJECTS+=./pppd/ccp.o 
PPPD_OBJECTS+=./pppd/ecp.o 
PPPD_OBJECTS+=./pppd/auth.o 
PPPD_OBJECTS+=./pppd/options.o 
PPPD_OBJECTS+=./pppd/demand.o 
PPPD_OBJECTS+=./pppd/utils.o 
PPPD_OBJECTS+=./pppd/sys-linux.o 
PPPD_OBJECTS+=./pppd/ipxcp.o 
#PPPD_OBJECTS+=./pppd/tty.o 
PPPD_OBJECTS+=./pppd/eap.o 
PPPD_OBJECTS+=./pppd/chap-md5.o 
PPPD_OBJECTS+=./pppd/md4.o 
PPPD_OBJECTS+=./pppd/chap_ms.o 
PPPD_OBJECTS+=./pppd/sha1.o 
PPPD_OBJECTS+=./pppd/pppcrypt.o
PPPD_OBJECTS+=./pppd/plugins/rp-pppoe/discovery.o
PPPD_OBJECTS+=./pppd/plugins/rp-pppoe/if.o
PPPD_OBJECTS+=./pppd/plugins/rp-pppoe/common.o
PPPD_OBJECTS+=./pppd/plugins/rp-pppoe/debug.o
PPPD_OBJECTS+=./pppd/plugins/rp-pppoe/plugin.o

all: $(OBJECTS)
	make SIG=$(SIG) -C dhcpcd
	make -C pppd
	make -C bonjour
	$(CC) $(CFLAGS) -o $(TARGET) $(OBJECTS) $(DHCP_CD_OBJECTS) $(PPPD_OBJECTS) $(LIBS)
	$(STRIP) $(TARGET)

install: all
	install $(TARGET) /root/test/.
	
%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

clean:
	- make -C dhcpcd clean
	- make -C pppd clean
	- make -C bonjour clean
	- rm $(TARGET) $(shell echo *.o)
