1 2 3ifdef APPS 4 APPDIRS = $(foreach APP, $(APPS), ../apps/$(APP)) 5 -include $(foreach APP, $(APPS), ../apps/$(APP)/Makefile.$(APP)) 6 CFLAGS += $(addprefix -I../apps/,$(APPS)) 7endif 8 9ifndef CCDEP 10 CCDEP = $(CC) 11endif 12ifndef CCDEPCFLAGS 13 CCDEPCFLAGS = $(CFLAGS) 14endif 15ifndef OBJECTDIR 16 OBJECTDIR = obj 17endif 18 19ifeq (${wildcard $(OBJECTDIR)},) 20 DUMMY := ${shell mkdir $(OBJECTDIR)} 21endif 22 23 24vpath %.c . ../uip ../lib $(APPDIRS) 25 26$(OBJECTDIR)/%.o: %.c 27 $(CC) $(CFLAGS) -c $< -o $@ 28 29$(OBJECTDIR)/%.d: %.c 30 @set -e; rm -f $@; \ 31 $(CCDEP) -MM $(CCDEPCFLAGS) $< > $@.$$$$; \ 32 sed 's,\($*\)\.o[ :]*,$(OBJECTDIR)/\1.o $@ : ,g' < $@.$$$$ > $@; \ 33 rm -f $@.$$$$ 34 35UIP_SOURCES=uip.c uip_arp.c uiplib.c psock.c timer.c uip-neighbor.c 36 37 38ifneq ($(MAKECMDGOALS),clean) 39-include $(addprefix $(OBJECTDIR)/,$(UIP_SOURCES:.c=.d) \ 40 $(APP_SOURCES:.c=.d)) 41endif 42 43uip.a: ${addprefix $(OBJECTDIR)/, $(UIP_SOURCES:.c=.o)} 44 $(AR) rcf $@ $^ 45 46apps.a: ${addprefix $(OBJECTDIR)/, $(APP_SOURCES:.c=.o)} 47 $(AR) rcf $@ $^ 48