videohubctrl can be used to control Blackmagic Design Videohub SDI router device over the network.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. CC = cc
  2. STRIP = strip
  3. CROSS := $(TARGET)
  4. MKDEP = $(CROSS)$(CC) -MP -MM -o $*.d $<
  5. RM = rm -f
  6. MV = mv -f
  7. ifndef V
  8. Q = @
  9. endif
  10. CFLAGS ?= -O2 -ggdb -pipe -ffunction-sections -fdata-sections \
  11. -W -Wall -Wextra \
  12. -Wshadow -Wformat-security -Wstrict-prototypes -Wno-unused-parameter \
  13. -Wredundant-decls -Wold-style-definition
  14. uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
  15. LDFLAGS ?= -Wl,--gc-sections
  16. ifeq ($(uname_S),Darwin)
  17. LDFLAGS :=
  18. endif
  19. DEFS += -D_FILE_OFFSET_BITS=64
  20. PREFIX ?= /usr/local
  21. INSTALL_PRG = videohubctrl
  22. INSTALL_PRG_DIR = $(subst //,/,$(DESTDIR)/$(PREFIX)/bin)
  23. INSTALL_DOC = videohubctrl.1
  24. INSTALL_DOC_DIR = $(subst //,/,$(DESTDIR)/$(PREFIX)/share/man/man1)
  25. FUNCS_DIR = libfuncs
  26. FUNCS_LIB = $(FUNCS_DIR)/libfuncs.a
  27. videohubctrl_SRC = \
  28. cmd.c \
  29. net.c \
  30. util.c \
  31. display.c \
  32. videohubctrl.c
  33. videohubctrl_LIBS = -lpthread
  34. videohubctrl_OBJS = $(FUNCS_LIB) $(videohubctrl_SRC:.c=.o)
  35. CLEAN_OBJS = videohubctrl $(videohubctrl_SRC:.c=.o) $(videohubctrl_SRC:.c=.d)
  36. DISTCLEAN_OBJS = version.h
  37. .PHONY: distclean clean version install uninstall
  38. PROGS=videohubctrl
  39. version:
  40. $(shell ./version.sh >/dev/null)
  41. @$(MAKE) --no-print-directory videohubctrl
  42. videohubctrl: $(videohubctrl_OBJS)
  43. $(Q)echo " LINK videohubctrl"
  44. $(Q)$(CROSS)$(CC) $(CFLAGS) $(DEFS) $(videohubctrl_OBJS) $(videohubctrl_LIBS) $(LDFLAGS) -o videohubctrl
  45. all: version
  46. $(FUNCS_LIB): $(FUNCS_DIR)/libfuncs.h
  47. $(Q)echo " MAKE $(FUNCS_LIB)"
  48. $(Q)$(MAKE) -s -C $(FUNCS_DIR)
  49. %.o: %.c Makefile RELEASE
  50. @$(MKDEP)
  51. $(Q)echo " CC videohubctrl $<"
  52. $(Q)$(CROSS)$(CC) $(CFLAGS) $(DEFS) -c $<
  53. -include $(videohubctrl_SRC:.c=.d)
  54. strip:
  55. $(Q)echo " STRIP $(PROGS)"
  56. $(Q)$(CROSS)$(STRIP) $(PROGS)
  57. clean:
  58. $(Q)echo " RM $(CLEAN_OBJS)"
  59. $(Q)$(RM) $(CLEAN_OBJS)
  60. distclean: clean
  61. $(Q)echo " RM $(DISTCLEAN_OBJS)"
  62. $(Q)$(RM) $(DISTCLEAN_OBJS)
  63. $(Q)$(MAKE) -s -C $(FUNCS_DIR) clean
  64. install: all
  65. @install -d "$(INSTALL_PRG_DIR)"
  66. @install -d "$(INSTALL_DOC_DIR)"
  67. @echo "INSTALL $(INSTALL_PRG) -> $(INSTALL_PRG_DIR)"
  68. $(Q)-install $(INSTALL_PRG) "$(INSTALL_PRG_DIR)"
  69. @echo "INSTALL $(INSTALL_DOC) -> $(INSTALL_DOC_DIR)"
  70. $(Q)-install --mode 0644 $(INSTALL_DOC) "$(INSTALL_DOC_DIR)"
  71. uninstall:
  72. @-for FILE in $(INSTALL_PRG); do \
  73. echo "RM $(INSTALL_PRG_DIR)/$$FILE"; \
  74. rm "$(INSTALL_PRG_DIR)/$$FILE"; \
  75. done
  76. @-for FILE in $(INSTALL_DOC); do \
  77. echo "RM $(INSTALL_DOC_DIR)/$$FILE"; \
  78. rm "$(INSTALL_DOC_DIR)/$$FILE"; \
  79. done
  80. help:
  81. $(Q)echo -e "\
  82. videohubctrl build\n\n\
  83. Build targets:\n\
  84. all - Build videohubctrl\n\
  85. install - Install videohubctrl in PREFIX: $(PREFIX)\n\
  86. uninstall - Uninstall videohubctrl from PREFIX\n\
  87. \n\
  88. Cleaning targets:\n\
  89. clean - Remove videohubctrl generated files.\n\
  90. distclean - Remove all generated files.\n\
  91. \n\
  92. make V=1 Enable verbose build\n\
  93. make PREFIX=dir Set install prefix\n"