#
# Generate socket calls based on SOCKETCALLS.def
#

# Include automatically generated Makefile fragment.
# It contains definition of socketcall-objs specifying name of all .o files
ifeq ($(clean),)
-include $(obj)/socketcalls.mk
endif

# Listing of all .o files
always := socketcalls.list

#####
# Generate socket calls stubs
# Based on input from SOCKETCALLS.def generate socket call stubs
targets     := socketcalls.list
targets     += socketcalls.mk
targets     += $(socketcall-objs)
clean-files += *.S *.c *.o *.list

EXTRA_KLIBCCFLAGS := -I$(srctree)/$(src)

quiet_cmd_makelist = LIST    $@
      cmd_makelist = echo '$(filter-out FORCE,$^)' > $@

# Create list of all files
$(obj)/socketcalls.list: $(call objectify,$(socketcall-objs)) FORCE
	$(call if_changed,makelist)

quiet_cmd_socketcalls = GEN     $@
      cmd_socketcalls = $(PERL) $(KLIBCSRC)/socketcalls.pl          \
                                $(KLIBCSRC)/SOCKETCALLS.def         \
                                $(KLIBCARCH) $(obj) > $@ || rm -f $@

# Generate socketcall stubs
$(obj)/socketcalls.mk: $(KLIBCSRC)/socketcalls.pl                   \
                       $(KLIBCSRC)/SOCKETCALLS.def                  \
                       $(src)/socketcommon.h
	$(call cmd,socketcalls)
