1top_srcdir = ../.. 2 3WITH_LWIP_BRANCH=STABLE-2_0_3_RELEASE 4WITH_LWIP_CONTRIB_BRANCH=STABLE-2_0_1_RELEASE 5 6# Need to determine which library clock_gettime() resides in (as found by ./autogen.sh) 7LDLIBS := $(shell if [ ../../config.log ] ; then grep ac_cv_search_clock_gettime=- ../../config.log|cut -d= -f2 ; fi) 8 9all: server 10 11lwip: 12 git clone --depth 1 git://git.savannah.nongnu.org/lwip.git -b $(WITH_LWIP_BRANCH) 13 (cd lwip ; git checkout $(WITH_LWIP_BRANCH)) 14 $(MAKE) 15 16lwip-contrib: 17 git clone --depth 1 git://git.savannah.nongnu.org/lwip/lwip-contrib.git -b $(WITH_LWIP_CONTRIB_BRANCH) 18 (cd lwip-contrib ; git checkout $(WITH_LWIP_CONTRIB_BRANCH)) 19 $(MAKE) 20 21# lwip and coap opts (include early to shadow the lwip-contrib/ports/unix/proj/minimal/ file and any ../../config.h) 22CFLAGS += -DWITH_LWIP -iquote. 23 24# lwip library 25 26LWIPOBJS = def.o init.o tapif.o etharp.o netif.o timeouts.o stats.o mem.o memp.o udp.o tcp.o pbuf.o ip4_addr.o ip4.o inet_chksum.o tcp_in.o tcp_out.o icmp.o raw.o ip4_frag.o sys_arch.o ethernet.o ip.o 27vpath %.c lwip/src/core/ lwip-contrib/ports/unix/proj/minimal/ lwip/src/netif/ lwip/src/core/ipv4/ lwip-contrib/ports/unix/port/ lwip-contrib/ports/unix/port/netif/ 28# CFLAGS += -DLWIP_UNIX_LINUX 29 30# if ipv6 is used 31vpath %.c lwip/src/core/ipv6/ 32LWIPOBJS += mld6.o ip6.o icmp6.o ethip6.o nd6.o ip6_addr.o ip6_frag.o 33 34# coap library 35 36CFLAGS += -std=gnu99 37 38CFLAGS += -I$(top_srcdir)/include/coap2 39 40vpath %.c $(top_srcdir)/src 41 42COAPOBJS = net.o coap_debug.o option.o resource.o pdu.o encode.o subscribe.o coap_io_lwip.o block.o uri.o str.o coap_session.o coap_notls.o coap_hashkey.o address.o 43 44CFLAGS += -g3 -Wall -Wextra -pedantic -O0 -fpack-struct 45# not sorted out yet 46CFLAGS += -Wno-unused-parameter 47 48CFLAGS += -Ilwip/src/include/ -Ilwip/src/include/ipv4/ -Ilwip-contrib/ports/unix/port/include/ -Ilwip-contrib/ports/unix/proj/minimal/ 49 50# making an executable out of all of it 51 52OBJS = server.o server-coap.o ${LWIPOBJS} ${COAPOBJS} 53 54../../include/coap2/coap.h: 55 @echo "Error: coap.h not present. Run the autotools chain (\`./autogen.sh && ./configure\`) in the project root directory to build the required coap.h file." 56 @exit 1 57 58${OBJS}: lwip lwip-contrib ../../include/coap2/coap.h 59 60server: ${OBJS} 61# $(CC) ${OBJS} -o server -lrt 62 63clean: 64 rm -f ${OBJS} 65 66.PHONY: clean 67