##### this makefile for the application hotplug2
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld
AR := $(CROSS_COMPILE)ar

SUBDIRS := parser rules workers

HOTPLUG2_LOBJS := action.o hotplug2.o netlink.o seqnum.o settings.o uevent.o xmemutils.o

HOTPLUG2_LIBS := $(foreach c,$(SUBDIRS),$(HOTPLUG2_APPS_BLDDIR)/lib$(c).a)

COLDPLUG2_LOBJS := coldplug2.o

HOTPLUG2_BOBJS := $(addprefix ${HOTPLUG2_APPS_BLDDIR}/,${HOTPLUG2_LOBJS})
COLDPLUG2_BOBJS := $(addprefix ${HOTPLUG2_APPS_BLDDIR}/,${COLDPLUG2_LOBJS})
HOTPLUG2_APPL := $(HOTPLUG2_APPS_BLDDIR)/hotplug2
COLDPLUG2_APPL := $(HOTPLUG2_APPS_BLDDIR)/coldplug2

CFLAGS := -fpic -g -Os -Wall -I$(TOOLCHAIN_USRINCDIR) 
CFLAGS += -I. -DSTATIC_WORKER=1 
CFLAGS += $(HOTPLUG2_APPS_CFLAGS)
APPL_LDFLAGS := -ldl -Wl,-rpath-link

#all: all-subdirs $(HOTPLUG2_APPL) $(COLDPLUG2_APPL)
all: all-subdirs $(HOTPLUG2_APPL)

all-subdirs:
	@for i in $(SUBDIRS); \
	do $(MAKE) -C $$i || exit -1; done
	
$(HOTPLUG2_APPL): $(HOTPLUG2_BOBJS)
	$(CC) -o $@ $^ $(HOTPLUG2_LIBS) $(APPL_LDFLAGS)
	
$(COLDPLUG2_APPL): $(COLDPLUG2_BOBJS)
	$(CC) -o $@ $^ $(APPL_LDFLAGS)

clean: clean-subdirs
	@rm -f $(HOTPLUG2_BOBJS:.o=.d)
	@rm -f $(HOTPLUG2_BOBJS)
	@rm -f $(COLDPLUG2_BOBJS:.o=.d)
	@rm -f $(COLDPLUG2_BOBJS)
	@rm -f $(APPL_HOTPLUG) $(APPL_COLDPLUG)
	
clean-subdirs:
	@for i in $(SUBDIRS); \
	do $(MAKE) -C $$i clean; done
	
$(HOTPLUG2_APPS_BLDDIR)/%.o: %.c
	@echo "Compiling $<"
	@$(CC) $(CFLAGS) -c $< -o $@

ifeq (,$(filter $(MAKECMDGOALS),clean distclean))
-include $(addprefix ${HOTPLUG2_APPS_BLDDIR}/,$(addsuffix .d,$(basename $(HOTPLUG2_LOBJS))))

-include $(addprefix ${HOTPLUG2_APPS_BLDDIR}/,$(addsuffix .d,$(basename $(COLDPLUG2_LOBJS))))

$(HOTPLUG2_APPS_BLDDIR)/%.d: %.c
	-@if [ ! -d $(@D)  ]; then mkdir -p $(@D); fi
	@echo "Generating dependency file for $<"; \
	$(CC) -M $(CFLAGS) $< >$@.tmp; \
	echo "$@ \\" > $@; \
	sed 's,\($*\)\.o[ :]*,$$(HOTPLUG2_APPS_BLDDIR)\/\1.o: ,g' < $@.tmp >> $@; \
	rm -f $@.tmp
endif


.PHONY: all clean
