tsdecrypt reads and decrypts CSA encrypted incoming mpeg transport stream over UDP/RTP using code words obtained from OSCAM or similar CAM server. tsdecrypt communicates with CAM server using cs378x (camd35 over tcp) protocol or newcamd protocol. https://georgi.unixsol.org/programs/tsdecrypt/
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.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. CC = $(CROSS)$(TARGET)gcc
  2. STRIP = $(CROSS)$(TARGET)strip
  3. MKDEP = $(CROSS)$(TARGET)gcc -M -o $*.d $<
  4. BUILD_ID = $(shell date +%F_%R)
  5. VERSION = $(shell cat RELEASE)
  6. GIT_VER = $(shell git describe --tags --dirty --always 2>/dev/null)
  7. ifeq "$(GIT_VER)" ""
  8. GIT_VER = "release"
  9. endif
  10. CFLAGS = -O2 -ggdb
  11. CFLAGS += -Wall -Wextra -Wshadow -Wformat-security
  12. CFLAGS += -DBUILD_ID=\"$(BUILD_ID)\" -DVERSION=\"$(VERSION)\" -DGIT_VER=\"$(GIT_VER)\"
  13. RM = /bin/rm -f
  14. Q = @
  15. PREFIX ?= /usr/local
  16. INSTALL_PRG = tsdecrypt
  17. INSTALL_PRG_DIR = $(subst //,/,$(DESTDIR)/$(PREFIX)/bin)
  18. INSTALL_DOC = tsdecrypt.1
  19. INSTALL_DOC_DIR = $(subst //,/,$(DESTDIR)/$(PREFIX)/man/man1)
  20. FUNCS_DIR = libfuncs
  21. FUNCS_LIB = $(FUNCS_DIR)/libfuncs.a
  22. TS_DIR = libtsfuncs
  23. TS_LIB = $(TS_DIR)/libtsfuncs.a
  24. tsdecrypt_SRC = data.c udp.c util.c camd.c process.c tables.c tsdecrypt.c
  25. tsdecrypt_LIBS = -lcrypto -ldvbcsa -lpthread
  26. tsdecrypt_OBJS = $(tsdecrypt_SRC:.c=.o) $(FUNCS_LIB) $(TS_LIB)
  27. CLEAN_OBJS = tsdecrypt $(tsdecrypt_SRC:.c=.{o,d})
  28. PROGS = tsdecrypt
  29. .PHONY: distclean clean install uninstall
  30. all: $(PROGS)
  31. $(FUNCS_LIB):
  32. $(Q)echo " MAKE $(FUNCS_LIB)"
  33. $(Q)$(MAKE) -s -C $(FUNCS_DIR)
  34. $(TS_LIB):
  35. $(Q)echo " MAKE $(TS_LIB)"
  36. $(Q)$(MAKE) -s -C $(TS_DIR)
  37. tsdecrypt: $(tsdecrypt_OBJS)
  38. $(Q)echo " LINK tsdecrypt"
  39. $(Q)$(CC) $(CFLAGS) $(tsdecrypt_OBJS) $(tsdecrypt_LIBS) -o tsdecrypt
  40. %.o: %.c RELEASE
  41. @$(MKDEP)
  42. $(Q)echo " CC tsdecrypt $<"
  43. $(Q)$(CC) $(CFLAGS) -c $<
  44. -include $(tsdecrypt_SRC:.c=.d)
  45. strip:
  46. $(Q)echo " STRIP $(PROGS)"
  47. $(Q)$(STRIP) $(PROGS)
  48. clean:
  49. $(Q)echo " RM $(CLEAN_OBJS)"
  50. $(Q)$(RM) $(CLEAN_OBJS)
  51. distclean: clean
  52. $(Q)$(MAKE) -s -C $(TS_DIR) clean
  53. $(Q)$(MAKE) -s -C $(FUNCS_DIR) clean
  54. install: all strip
  55. @install -d "$(INSTALL_PRG_DIR)"
  56. @install -d "$(INSTALL_DOC_DIR)"
  57. @echo "INSTALL $(INSTALL_PRG) -> $(INSTALL_PRG_DIR)"
  58. $(Q)-install $(INSTALL_PRG) "$(INSTALL_PRG_DIR)"
  59. @echo "INSTALL $(INSTALL_DOC) -> $(INSTALL_DOC_DIR)"
  60. $(Q)-install --mode 0644 $(INSTALL_DOC) "$(INSTALL_DOC_DIR)"
  61. uninstall:
  62. @-for FILE in $(INSTALL_PRG); do \
  63. echo "RM $(INSTALL_PRG_DIR)/$$FILE"; \
  64. rm "$(INSTALL_PRG_DIR)/$$FILE"; \
  65. done
  66. @-for FILE in $(INSTALL_DOC); do \
  67. echo "RM $(INSTALL_DOC_DIR)/$$FILE"; \
  68. rm "$(INSTALL_DOC_DIR)/$$FILE"; \
  69. done