1 changed files with 0 additions and 795 deletions
@ -1,795 +0,0 @@ |
|||||
SHELL = /bin/sh |
|
||||
|
|
||||
.SUFFIXES: |
|
||||
.SUFFIXES: .o .c |
|
||||
.PHONY: all tests help README.build README.config simple default debug config menuconfig allyesconfig allnoconfig defconfig clean distclean |
|
||||
|
|
||||
VER := $(shell ./config.sh --oscam-version) |
|
||||
SVN_REV := $(shell ./config.sh --oscam-revision) |
|
||||
|
|
||||
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') |
|
||||
|
|
||||
# This let's us use uname_S tests to detect cygwin
|
|
||||
ifneq (,$(findstring CYGWIN,$(uname_S))) |
|
||||
uname_S := Cygwin |
|
||||
endif |
|
||||
|
|
||||
LINKER_VER_OPT:=-Wl,--version |
|
||||
|
|
||||
# Find OSX SDK
|
|
||||
ifeq ($(uname_S),Darwin) |
|
||||
# Setting OSX_VER allows you to choose prefered version if you have |
|
||||
# two SDKs installed. For example if you have 10.6 and 10.5 installed |
|
||||
# you can choose 10.5 by using 'make USE_PCSC=1 OSX_VER=10.5' |
|
||||
# './config.sh --detect-osx-sdk-version' returns the newest SDK if |
|
||||
# SDK_VER is not set. |
|
||||
OSX_SDK := $(shell ./config.sh --detect-osx-sdk-version $(OSX_VER)) |
|
||||
LINKER_VER_OPT:=-Wl,-v |
|
||||
endif |
|
||||
|
|
||||
ifeq "$(shell ./config.sh --enabled WITH_SSL)" "Y" |
|
||||
override USE_SSL=1 |
|
||||
override USE_LIBCRYPTO=1 |
|
||||
endif |
|
||||
ifdef USE_SSL |
|
||||
override USE_LIBCRYPTO=1 |
|
||||
endif |
|
||||
|
|
||||
CONF_DIR = /usr/local/etc |
|
||||
|
|
||||
LIB_PTHREAD = -lpthread |
|
||||
LIB_DL = -ldl |
|
||||
|
|
||||
LIB_RT := |
|
||||
ifeq ($(uname_S),Linux) |
|
||||
ifeq "$(shell ./config.sh --enabled CLOCKFIX)" "Y" |
|
||||
LIB_RT := -lrt |
|
||||
endif |
|
||||
endif |
|
||||
ifeq ($(uname_S),FreeBSD) |
|
||||
LIB_DL := |
|
||||
endif |
|
||||
|
|
||||
override STD_LIBS := -lm $(LIB_PTHREAD) $(LIB_DL) $(LIB_RT) |
|
||||
override STD_DEFS := -D'CS_SVN_VERSION="$(SVN_REV)"' |
|
||||
override STD_DEFS += -D'CS_CONFDIR="$(CONF_DIR)"' |
|
||||
|
|
||||
# Compiler warnings
|
|
||||
CC_WARN = -W -Wall -Wshadow -Wredundant-decls -Wstrict-prototypes -Wold-style-definition |
|
||||
|
|
||||
# Compiler optimizations
|
|
||||
CC_OPTS = -O2 -ggdb -pipe -ffunction-sections -fdata-sections |
|
||||
|
|
||||
CC = $(CROSS_DIR)$(CROSS)gcc |
|
||||
STRIP = $(CROSS_DIR)$(CROSS)strip |
|
||||
|
|
||||
LDFLAGS = -Wl,--gc-sections |
|
||||
|
|
||||
# The linker for powerpc have bug that prevents --gc-sections from working
|
|
||||
# Check for the linker version and if it matches disable --gc-sections
|
|
||||
# For more information about the bug see:
|
|
||||
# http://cygwin.com/ml/binutils/2005-01/msg00103.html
|
|
||||
# The LD output is saved into variable and then processed, because if
|
|
||||
# the output is piped directly into another command LD creates 4 files
|
|
||||
# in your /tmp directory and doesn't delete them.
|
|
||||
LINKER_VER := $(shell set -e; VER="`$(CC) $(LINKER_VER_OPT) 2>&1`"; echo $$VER | head -1 | cut -d' ' -f5) |
|
||||
|
|
||||
# dm500 toolchain
|
|
||||
ifeq "$(LINKER_VER)" "20040727" |
|
||||
LDFLAGS := |
|
||||
endif |
|
||||
# dm600/7000/7020 toolchain
|
|
||||
ifeq "$(LINKER_VER)" "20041121" |
|
||||
LDFLAGS := |
|
||||
endif |
|
||||
# The OS X linker do not support --gc-sections
|
|
||||
ifeq ($(uname_S),Darwin) |
|
||||
LDFLAGS := |
|
||||
endif |
|
||||
|
|
||||
# The compiler knows for what target it compiles, so use this information
|
|
||||
TARGET := $(shell $(CC) -dumpmachine 2>/dev/null) |
|
||||
|
|
||||
# Process USE_ variables
|
|
||||
DEFAULT_STAPI_LIB = -L./stapi -loscam_stapi |
|
||||
DEFAULT_STAPI5_LIB = -L./stapi -loscam_stapi5 |
|
||||
DEFAULT_COOLAPI_LIB = -lnxp -lrt |
|
||||
DEFAULT_COOLAPI2_LIB = -llnxUKAL -llnxcssUsr -llnxscsUsr -llnxnotifyqUsr -llnxplatUsr -lrt |
|
||||
DEFAULT_SU980_LIB = -lentropic -lrt |
|
||||
DEFAULT_AZBOX_LIB = -Lextapi/openxcas -lOpenXCASAPI |
|
||||
DEFAULT_LIBCRYPTO_LIB = -lcrypto |
|
||||
DEFAULT_SSL_LIB = -lssl |
|
||||
ifeq ($(uname_S),Linux) |
|
||||
DEFAULT_LIBUSB_LIB = -lusb-1.0 -lrt |
|
||||
else |
|
||||
DEFAULT_LIBUSB_LIB = -lusb-1.0 |
|
||||
endif |
|
||||
# Since FreeBSD 8 (released in 2010) they are using their own
|
|
||||
# libusb that is API compatible to libusb but with different soname
|
|
||||
ifeq ($(uname_S),FreeBSD) |
|
||||
DEFAULT_LIBUSB_LIB = -lusb |
|
||||
endif |
|
||||
ifeq ($(uname_S),Darwin) |
|
||||
DEFAULT_LIBUSB_FLAGS = -I/opt/local/include |
|
||||
DEFAULT_LIBUSB_LIB = -L/opt/local/lib -lusb-1.0 |
|
||||
DEFAULT_PCSC_FLAGS = -isysroot $(OSX_SDK) |
|
||||
DEFAULT_PCSC_LIB = -isysroot $(OSX_SDK) -framework IOKit -framework CoreFoundation -framework PCSC |
|
||||
else |
|
||||
# Get the compiler's last include PATHs. Basicaly it is /usr/include |
|
||||
# but in case of cross compilation it might be something else. |
|
||||
# |
|
||||
# Since using -Iinc_path instructs the compiler to use inc_path |
|
||||
# (without add the toolchain system root) we need to have this hack |
|
||||
# to get the "real" last include path. Why we needs this? |
|
||||
# Well, the PCSC headers are broken and rely on having the directory |
|
||||
# that they are installed it to be in the include PATH. |
|
||||
# |
|
||||
# We can't just use -I/usr/include/PCSC because it won't work in |
|
||||
# case of cross compilation. |
|
||||
TOOLCHAIN_INC_DIR := $(strip $(shell echo | $(CC) -Wp,-v -xc - -fsyntax-only 2>&1 | grep include$ | tail -n 1)) |
|
||||
DEFAULT_PCSC_FLAGS = -I$(TOOLCHAIN_INC_DIR)/PCSC -I$(TOOLCHAIN_INC_DIR)/../local/include/PCSC |
|
||||
DEFAULT_PCSC_LIB = -lpcsclite |
|
||||
endif |
|
||||
|
|
||||
ifeq ($(uname_S),Cygwin) |
|
||||
DEFAULT_PCSC_LIB += -lwinscard |
|
||||
endif |
|
||||
|
|
||||
DEFAULT_UTF8_FLAGS = -DWITH_UTF8 |
|
||||
|
|
||||
# Function to initialize USE related variables
|
|
||||
# Usage: $(eval $(call prepare_use_flags,FLAG_NAME,PLUS_TARGET_TEXT))
|
|
||||
define prepare_use_flags |
|
||||
override DEFAULT_$(1)_FLAGS:=$$(strip -DWITH_$(1)=1 $$(DEFAULT_$(1)_FLAGS)) |
|
||||
ifdef USE_$(1) |
|
||||
$(1)_FLAGS:=$$(DEFAULT_$(1)_FLAGS) |
|
||||
$(1)_CFLAGS:=$$($(1)_FLAGS) |
|
||||
$(1)_LDFLAGS:=$$($(1)_FLAGS) |
|
||||
$(1)_LIB:=$$(DEFAULT_$(1)_LIB) |
|
||||
ifneq "$(2)" "" |
|
||||
override PLUS_TARGET:=$$(PLUS_TARGET)-$(2) |
|
||||
endif |
|
||||
override USE_CFLAGS+=$$($(1)_CFLAGS) |
|
||||
override USE_LDFLAGS+=$$($(1)_LDFLAGS) |
|
||||
override USE_LIBS+=$$($(1)_LIB) |
|
||||
override USE_FLAGS+=$$(if $$(USE_$(1)),USE_$(1)) |
|
||||
endif |
|
||||
endef |
|
||||
|
|
||||
# Initialize USE variables
|
|
||||
$(eval $(call prepare_use_flags,STAPI,stapi)) |
|
||||
$(eval $(call prepare_use_flags,STAPI5,stapi5)) |
|
||||
$(eval $(call prepare_use_flags,COOLAPI,coolapi)) |
|
||||
$(eval $(call prepare_use_flags,COOLAPI2,coolapi2)) |
|
||||
$(eval $(call prepare_use_flags,SU980,su980)) |
|
||||
$(eval $(call prepare_use_flags,AZBOX,azbox)) |
|
||||
$(eval $(call prepare_use_flags,MCA,mca)) |
|
||||
$(eval $(call prepare_use_flags,SSL,ssl)) |
|
||||
$(eval $(call prepare_use_flags,LIBCRYPTO,)) |
|
||||
$(eval $(call prepare_use_flags,LIBUSB,libusb)) |
|
||||
$(eval $(call prepare_use_flags,PCSC,pcsc)) |
|
||||
$(eval $(call prepare_use_flags,UTF8)) |
|
||||
|
|
||||
# Add PLUS_TARGET and EXTRA_TARGET to TARGET
|
|
||||
ifdef NO_PLUS_TARGET |
|
||||
override TARGET := $(TARGET)$(EXTRA_TARGET) |
|
||||
else |
|
||||
override TARGET := $(TARGET)$(PLUS_TARGET)$(EXTRA_TARGET) |
|
||||
endif |
|
||||
|
|
||||
EXTRA_CFLAGS = $(EXTRA_FLAGS) |
|
||||
EXTRA_LDFLAGS = $(EXTRA_FLAGS) |
|
||||
|
|
||||
# Add USE_xxx, EXTRA_xxx and STD_xxx vars
|
|
||||
override CC_WARN += $(EXTRA_CC_WARN) |
|
||||
override CC_OPTS += $(EXTRA_CC_OPTS) |
|
||||
override CFLAGS += $(USE_CFLAGS) $(EXTRA_CFLAGS) |
|
||||
override LDFLAGS += $(USE_LDFLAGS) $(EXTRA_LDFLAGS) |
|
||||
override LIBS += $(USE_LIBS) $(EXTRA_LIBS) $(STD_LIBS) |
|
||||
|
|
||||
override STD_DEFS += -D'CS_TARGET="$(TARGET)"' |
|
||||
|
|
||||
# Setup quiet build
|
|
||||
Q = |
|
||||
SAY = @true |
|
||||
ifndef V |
|
||||
Q = @ |
|
||||
NP = --no-print-directory |
|
||||
SAY = @echo |
|
||||
endif |
|
||||
|
|
||||
BINDIR := Distribution |
|
||||
override BUILD_DIR := build |
|
||||
OBJDIR := $(BUILD_DIR)/$(TARGET) |
|
||||
|
|
||||
# Include config.mak which contains variables for all enabled modules
|
|
||||
# These variables will be used to select only needed files for compilation
|
|
||||
-include $(OBJDIR)/config.mak |
|
||||
|
|
||||
OSCAM_BIN := $(BINDIR)/oscam-$(VER)$(SVN_REV)-$(subst cygwin,cygwin.exe,$(TARGET)) |
|
||||
TESTS_BIN := tests.bin |
|
||||
LIST_SMARGO_BIN := $(BINDIR)/list_smargo-$(VER)$(SVN_REV)-$(subst cygwin,cygwin.exe,$(TARGET)) |
|
||||
|
|
||||
# Build list_smargo-.... only when WITH_LIBUSB build is requested.
|
|
||||
ifndef USE_LIBUSB |
|
||||
override LIST_SMARGO_BIN = |
|
||||
endif |
|
||||
|
|
||||
SRC-$(CONFIG_LIB_AES) += cscrypt/aes.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_add.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_asm.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_ctx.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_div.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_exp.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_lib.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_mul.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_print.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_shift.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_sqr.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/bn_word.c |
|
||||
SRC-$(CONFIG_LIB_BIGNUM) += cscrypt/mem.c |
|
||||
SRC-$(CONFIG_LIB_DES) += cscrypt/des.c |
|
||||
SRC-$(CONFIG_LIB_IDEA) += cscrypt/i_cbc.c |
|
||||
SRC-$(CONFIG_LIB_IDEA) += cscrypt/i_ecb.c |
|
||||
SRC-$(CONFIG_LIB_IDEA) += cscrypt/i_skey.c |
|
||||
SRC-y += cscrypt/md5.c |
|
||||
SRC-$(CONFIG_LIB_RC6) += cscrypt/rc6.c |
|
||||
SRC-$(CONFIG_LIB_SHA1) += cscrypt/sha1.c |
|
||||
SRC-$(CONFIG_LIB_MDC2) += cscrypt/mdc2.c |
|
||||
SRC-$(CONFIG_LIB_FAST_AES) += cscrypt/fast_aes.c |
|
||||
SRC-$(CONFIG_LIB_SHA256) += cscrypt/sha256.c |
|
||||
|
|
||||
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/atr.c |
|
||||
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/icc_async.c |
|
||||
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/io_serial.c |
|
||||
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/protocol_t0.c |
|
||||
SRC-$(CONFIG_WITH_CARDREADER) += csctapi/protocol_t1.c |
|
||||
SRC-$(CONFIG_CARDREADER_INTERNAL_AZBOX) += csctapi/ifd_azbox.c |
|
||||
SRC-$(CONFIG_CARDREADER_INTERNAL_COOLAPI) += csctapi/ifd_cool.c |
|
||||
SRC-$(CONFIG_CARDREADER_INTERNAL_COOLAPI2) += csctapi/ifd_cool.c |
|
||||
SRC-$(CONFIG_CARDREADER_DB2COM) += csctapi/ifd_db2com.c |
|
||||
SRC-$(CONFIG_CARDREADER_MP35) += csctapi/ifd_mp35.c |
|
||||
SRC-$(CONFIG_CARDREADER_PCSC) += csctapi/ifd_pcsc.c |
|
||||
SRC-$(CONFIG_CARDREADER_PHOENIX) += csctapi/ifd_phoenix.c |
|
||||
SRC-$(CONFIG_CARDREADER_DRECAS) += csctapi/ifd_drecas.c |
|
||||
SRC-$(CONFIG_CARDREADER_SC8IN1) += csctapi/ifd_sc8in1.c |
|
||||
SRC-$(CONFIG_CARDREADER_INTERNAL_SCI) += csctapi/ifd_sci.c |
|
||||
SRC-$(CONFIG_CARDREADER_SMARGO) += csctapi/ifd_smargo.c |
|
||||
SRC-$(CONFIG_CARDREADER_SMART) += csctapi/ifd_smartreader.c |
|
||||
SRC-$(CONFIG_CARDREADER_STINGER) += csctapi/ifd_stinger.c |
|
||||
SRC-$(CONFIG_CARDREADER_STAPI) += csctapi/ifd_stapi.c |
|
||||
SRC-$(CONFIG_CARDREADER_STAPI5) += csctapi/ifd_stapi.c |
|
||||
|
|
||||
SRC-$(CONFIG_LIB_MINILZO) += minilzo/minilzo.c |
|
||||
|
|
||||
SRC-$(CONFIG_CS_ANTICASC) += module-anticasc.c |
|
||||
SRC-$(CONFIG_CS_CACHEEX) += module-cacheex.c |
|
||||
SRC-$(CONFIG_MODULE_CAMD33) += module-camd33.c |
|
||||
SRC-$(CONFIG_CS_CACHEEX) += module-camd35-cacheex.c |
|
||||
SRC-$(sort $(CONFIG_MODULE_CAMD35) $(CONFIG_MODULE_CAMD35_TCP)) += module-camd35.c |
|
||||
SRC-$(CONFIG_CS_CACHEEX) += module-cccam-cacheex.c |
|
||||
SRC-$(CONFIG_MODULE_CCCAM) += module-cccam.c |
|
||||
SRC-$(CONFIG_MODULE_CCCSHARE) += module-cccshare.c |
|
||||
SRC-$(CONFIG_MODULE_CONSTCW) += module-constcw.c |
|
||||
SRC-$(CONFIG_CS_CACHEEX) += module-csp.c |
|
||||
SRC-$(CONFIG_CW_CYCLE_CHECK) += module-cw-cycle-check.c |
|
||||
SRC-$(CONFIG_WITH_AZBOX) += module-dvbapi-azbox.c |
|
||||
SRC-$(CONFIG_WITH_MCA) += module-dvbapi-mca.c |
|
||||
### SRC-$(CONFIG_WITH_COOLAPI) += module-dvbapi-coolapi.c
|
|
||||
### experimental reversed API
|
|
||||
SRC-$(CONFIG_WITH_COOLAPI) += module-dvbapi-coolapi-legacy.c |
|
||||
SRC-$(CONFIG_WITH_COOLAPI2) += module-dvbapi-coolapi.c |
|
||||
SRC-$(CONFIG_WITH_SU980) += module-dvbapi-coolapi.c |
|
||||
SRC-$(CONFIG_WITH_STAPI) += module-dvbapi-stapi.c |
|
||||
SRC-$(CONFIG_WITH_STAPI5) += module-dvbapi-stapi5.c |
|
||||
SRC-$(CONFIG_HAVE_DVBAPI) += module-dvbapi-chancache.c |
|
||||
SRC-$(CONFIG_HAVE_DVBAPI) += module-dvbapi.c |
|
||||
SRC-$(CONFIG_MODULE_GBOX) += module-gbox-helper.c |
|
||||
SRC-$(CONFIG_MODULE_GBOX) += module-gbox-sms.c |
|
||||
SRC-$(CONFIG_MODULE_GBOX) += module-gbox-remm.c |
|
||||
SRC-$(CONFIG_MODULE_GBOX) += module-gbox-cards.c |
|
||||
SRC-$(CONFIG_MODULE_GBOX) += module-gbox.c |
|
||||
SRC-$(CONFIG_IRDETO_GUESSING) += module-ird-guess.c |
|
||||
SRC-$(CONFIG_LCDSUPPORT) += module-lcd.c |
|
||||
SRC-$(CONFIG_LEDSUPPORT) += module-led.c |
|
||||
SRC-$(CONFIG_MODULE_MONITOR) += module-monitor.c |
|
||||
SRC-$(CONFIG_MODULE_NEWCAMD) += module-newcamd.c |
|
||||
SRC-$(CONFIG_MODULE_NEWCAMD) += module-newcamd-des.c |
|
||||
SRC-$(CONFIG_MODULE_PANDORA) += module-pandora.c |
|
||||
SRC-$(CONFIG_MODULE_GHTTP) += module-ghttp.c |
|
||||
SRC-$(CONFIG_MODULE_RADEGAST) += module-radegast.c |
|
||||
SRC-$(CONFIG_MODULE_SCAM) += module-scam.c |
|
||||
SRC-$(CONFIG_MODULE_SERIAL) += module-serial.c |
|
||||
SRC-$(CONFIG_WITH_LB) += module-stat.c |
|
||||
SRC-$(CONFIG_WEBIF) += module-webif-lib.c |
|
||||
SRC-$(CONFIG_WEBIF) += module-webif-tpl.c |
|
||||
SRC-$(CONFIG_WEBIF) += module-webif.c |
|
||||
SRC-$(CONFIG_WEBIF) += webif/pages.c |
|
||||
SRC-$(CONFIG_WITH_CARDREADER) += reader-common.c |
|
||||
SRC-$(CONFIG_READER_BULCRYPT) += reader-bulcrypt.c |
|
||||
SRC-$(CONFIG_READER_CONAX) += reader-conax.c |
|
||||
SRC-$(CONFIG_READER_CRYPTOWORKS) += reader-cryptoworks.c |
|
||||
SRC-$(CONFIG_READER_DGCRYPT) += reader-dgcrypt.c |
|
||||
SRC-$(CONFIG_READER_DRE) += reader-dre.c |
|
||||
SRC-$(CONFIG_READER_DRE) += reader-dre-cas.c |
|
||||
SRC-$(CONFIG_READER_DRE) += reader-dre-common.c |
|
||||
SRC-$(CONFIG_READER_DRE) += reader-dre-st20.c |
|
||||
SRC-$(CONFIG_READER_GRIFFIN) += reader-griffin.c |
|
||||
SRC-$(CONFIG_READER_IRDETO) += reader-irdeto.c |
|
||||
SRC-$(CONFIG_READER_NAGRA_COMMON) += reader-nagra-common.c |
|
||||
SRC-$(CONFIG_READER_NAGRA) += reader-nagra.c |
|
||||
SRC-$(CONFIG_READER_NAGRA_MERLIN) += reader-nagracak7.c |
|
||||
SRC-$(CONFIG_READER_SECA) += reader-seca.c |
|
||||
SRC-$(CONFIG_READER_TONGFANG) += reader-tongfang.c |
|
||||
SRC-$(CONFIG_READER_VIACCESS) += reader-viaccess.c |
|
||||
SRC-$(CONFIG_READER_VIDEOGUARD) += reader-videoguard-common.c |
|
||||
SRC-$(CONFIG_READER_VIDEOGUARD) += reader-videoguard1.c |
|
||||
SRC-$(CONFIG_READER_VIDEOGUARD) += reader-videoguard12.c |
|
||||
SRC-$(CONFIG_READER_VIDEOGUARD) += reader-videoguard2.c |
|
||||
SRC-y += oscam-aes.c |
|
||||
SRC-y += oscam-array.c |
|
||||
SRC-y += oscam-hashtable.c |
|
||||
SRC-y += oscam-cache.c |
|
||||
SRC-y += oscam-chk.c |
|
||||
SRC-y += oscam-client.c |
|
||||
SRC-y += oscam-conf.c |
|
||||
SRC-y += oscam-conf-chk.c |
|
||||
SRC-y += oscam-conf-mk.c |
|
||||
SRC-y += oscam-config-account.c |
|
||||
SRC-y += oscam-config-global.c |
|
||||
SRC-y += oscam-config-reader.c |
|
||||
SRC-y += oscam-config.c |
|
||||
SRC-y += oscam-ecm.c |
|
||||
SRC-y += oscam-emm.c |
|
||||
SRC-y += oscam-emm-cache.c |
|
||||
SRC-y += oscam-failban.c |
|
||||
SRC-y += oscam-files.c |
|
||||
SRC-y += oscam-garbage.c |
|
||||
SRC-y += oscam-lock.c |
|
||||
SRC-y += oscam-log.c |
|
||||
SRC-y += oscam-log-reader.c |
|
||||
SRC-y += oscam-net.c |
|
||||
SRC-y += oscam-llist.c |
|
||||
SRC-y += oscam-reader.c |
|
||||
SRC-y += oscam-simples.c |
|
||||
SRC-y += oscam-string.c |
|
||||
SRC-y += oscam-time.c |
|
||||
SRC-y += oscam-work.c |
|
||||
SRC-y += oscam.c |
|
||||
# config.c is automatically generated by config.sh in OBJDIR
|
|
||||
SRC-y += config.c |
|
||||
ifdef BUILD_TESTS |
|
||||
SRC-y += tests.c |
|
||||
override STD_DEFS += -DBUILD_TESTS=1 |
|
||||
endif |
|
||||
|
|
||||
SRC := $(SRC-y) |
|
||||
OBJ := $(addprefix $(OBJDIR)/,$(subst .c,.o,$(SRC))) |
|
||||
SRC := $(subst config.c,$(OBJDIR)/config.c,$(SRC)) |
|
||||
|
|
||||
# The default build target rebuilds the config.mak if needed and then
|
|
||||
# starts the compilation.
|
|
||||
all: |
|
||||
@./config.sh --use-flags "$(USE_FLAGS)" --objdir "$(OBJDIR)" --make-config.mak |
|
||||
@-mkdir -p $(OBJDIR)/cscrypt $(OBJDIR)/csctapi $(OBJDIR)/minilzo $(OBJDIR)/webif |
|
||||
@-printf "\
|
|
||||
+-------------------------------------------------------------------------------\n\ |
|
||||
| OSCam ver: $(VER) rev: $(SVN_REV) target: $(TARGET)\n\ |
|
||||
| Tools:\n\ |
|
||||
| CROSS = $(CROSS_DIR)$(CROSS)\n\
|
|
||||
| CC = $(CC)\n\
|
|
||||
| Settings:\n\ |
|
||||
| CONF_DIR = $(CONF_DIR)\n\
|
|
||||
| CC_OPTS = $(strip $(CC_OPTS))\n\
|
|
||||
| CC_WARN = $(strip $(CC_WARN))\n\
|
|
||||
| CFLAGS = $(strip $(CFLAGS))\n\
|
|
||||
| LDFLAGS = $(strip $(LDFLAGS))\n\
|
|
||||
| LIBS = $(strip $(LIBS))\n\
|
|
||||
| UseFlags = $(addsuffix =1,$(USE_FLAGS))\n\
|
|
||||
| Config:\n\ |
|
||||
| Addons : $(shell ./config.sh --use-flags "$(USE_FLAGS)" --show-enabled addons)\n\ |
|
||||
| Protocols: $(shell ./config.sh --use-flags "$(USE_FLAGS)" --show-enabled protocols | sed -e 's|MODULE_||g')\n\ |
|
||||
| Readers : $(shell ./config.sh --use-flags "$(USE_FLAGS)" --show-enabled readers | sed -e 's|READER_||g')\n\ |
|
||||
| CardRdrs : $(shell ./config.sh --use-flags "$(USE_FLAGS)" --show-enabled card_readers | sed -e 's|CARDREADER_||g')\n\ |
|
||||
| Compiler : $(shell $(CC) --version 2>/dev/null | head -n 1)\n\ |
|
||||
| Config : $(OBJDIR)/config.mak\n\ |
|
||||
| Binary : $(OSCAM_BIN)\n\ |
|
||||
+-------------------------------------------------------------------------------\n" |
|
||||
ifeq "$(shell ./config.sh --enabled WEBIF)" "Y" |
|
||||
@$(MAKE) --no-print-directory --quiet -C webif |
|
||||
endif |
|
||||
@$(MAKE) --no-print-directory $(OSCAM_BIN) $(LIST_SMARGO_BIN) |
|
||||
|
|
||||
$(OSCAM_BIN).debug: $(OBJ) |
|
||||
$(SAY) "LINK $@" |
|
||||
$(Q)$(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o $@ |
|
||||
|
|
||||
$(OSCAM_BIN): $(OSCAM_BIN).debug |
|
||||
$(SAY) "STRIP $@" |
|
||||
$(Q)cp $(OSCAM_BIN).debug $(OSCAM_BIN) |
|
||||
$(Q)$(STRIP) $(OSCAM_BIN) |
|
||||
|
|
||||
$(LIST_SMARGO_BIN): utils/list_smargo.c |
|
||||
$(SAY) "BUILD $@" |
|
||||
$(Q)$(CC) $(STD_DEFS) $(CC_OPTS) $(CC_WARN) $(CFLAGS) $(LDFLAGS) utils/list_smargo.c $(LIBS) -o $@ |
|
||||
|
|
||||
$(OBJDIR)/config.o: $(OBJDIR)/config.c |
|
||||
$(SAY) "CONF $<" |
|
||||
$(Q)$(CC) $(STD_DEFS) $(CC_OPTS) $(CC_WARN) $(CFLAGS) -c $< -o $@ |
|
||||
|
|
||||
$(OBJDIR)/%.o: %.c Makefile |
|
||||
@$(CC) -MP -MM -MT $@ -o $(subst .o,.d,$@) $< |
|
||||
$(SAY) "CC $<" |
|
||||
$(Q)$(CC) $(STD_DEFS) $(CC_OPTS) $(CC_WARN) $(CFLAGS) -c $< -o $@ |
|
||||
|
|
||||
-include $(subst .o,.d,$(OBJ)) |
|
||||
|
|
||||
tests: |
|
||||
@-$(MAKE) --no-print-directory BUILD_TESTS=1 OSCAM_BIN=$(TESTS_BIN) |
|
||||
@-touch oscam.c |
|
||||
# The above is really hideous hack :-) If we don't force oscam.c recompilation
|
|
||||
# after we've build the tests binary, the next "normal" compilation would fail
|
|
||||
# because there would be no run_tests() function. So the touch is there to
|
|
||||
# ensure oscam.c would be recompiled.
|
|
||||
|
|
||||
config: |
|
||||
$(SHELL) ./config.sh --gui |
|
||||
|
|
||||
menuconfig: config |
|
||||
|
|
||||
allyesconfig: |
|
||||
@echo "Enabling all config options." |
|
||||
@-$(SHELL) ./config.sh --enable all |
|
||||
|
|
||||
allnoconfig: |
|
||||
@echo "Disabling all config options." |
|
||||
@-$(SHELL) ./config.sh --disable all |
|
||||
|
|
||||
defconfig: |
|
||||
@echo "Restoring default config." |
|
||||
@-$(SHELL) ./config.sh --restore |
|
||||
|
|
||||
clean: |
|
||||
@-for FILE in $(BUILD_DIR)/* $(TESTS_BIN) $(TESTS_BIN).debug; do \
|
|
||||
echo "RM $$FILE"; \
|
|
||||
rm -rf $$FILE; \
|
|
||||
done |
|
||||
@-rm -rf $(BUILD_DIR) lib |
|
||||
|
|
||||
distclean: clean |
|
||||
@-for FILE in $(BINDIR)/list_smargo-* $(BINDIR)/oscam-$(VER)*; do \
|
|
||||
echo "RM $$FILE"; \
|
|
||||
rm -rf $$FILE; \
|
|
||||
done |
|
||||
@-$(MAKE) --no-print-directory --quiet -C webif clean |
|
||||
|
|
||||
README.build: |
|
||||
@echo "Extracting 'make help' into $@ file." |
|
||||
@-printf "\
|
|
||||
** This file is generated from 'make help' output, do not edit it. **\n\ |
|
||||
\n\ |
|
||||
" > $@ |
|
||||
@-$(MAKE) --no-print-directory help >> $@ |
|
||||
@echo "Done." |
|
||||
|
|
||||
README.config: |
|
||||
@echo "Extracting 'config.sh --help' into $@ file." |
|
||||
@-printf "\
|
|
||||
** This file is generated from 'config.sh --help' output, do not edit it. **\n\ |
|
||||
\n\ |
|
||||
" > $@ |
|
||||
@-./config.sh --help >> $@ |
|
||||
@echo "Done." |
|
||||
|
|
||||
help: |
|
||||
@-printf "\
|
|
||||
OSCam build system documentation\n\ |
|
||||
================================\n\ |
|
||||
\n\ |
|
||||
Build variables:\n\
|
|
||||
The build variables are set on the make command line and control the build\n\
|
|
||||
process. Setting the variables lets you enable additional features, request\n\
|
|
||||
extra libraries and more. Currently recognized build variables are:\n\
|
|
||||
\n\ |
|
||||
CROSS=prefix - Set tools prefix. This variable is used when OScam is being\n\
|
|
||||
cross compiled. For example if you want to cross compile\n\
|
|
||||
for SH4 architecture you can run: 'make CROSS=sh4-linux-'\n\
|
|
||||
If you don't have the directory where cross compilers are\n\
|
|
||||
in your PATH you can run:\n\
|
|
||||
'make CROSS=/opt/STM/STLinux-2.3/devkit/sh4/bin/sh4-linux-'\n\
|
|
||||
\n\ |
|
||||
CROSS_DIR=dir - Set tools directory. This variable is added in front of\n\
|
|
||||
CROSS variable. CROSS_DIR is useful if you want to use\n\
|
|
||||
predefined targets that are setting CROSS, but you don't have\n\
|
|
||||
the cross compilers in your PATH. For example:\n\
|
|
||||
'make sh4 CROSS_DIR=/opt/STM/STLinux-2.3/devkit/sh4/bin/'\n\
|
|
||||
'make dm500 CROSS_DIR=/opt/cross/dm500/cdk/bin/'\n\
|
|
||||
\n\ |
|
||||
CONF_DIR=/dir - Set OSCam config directory. For example to change config\n\
|
|
||||
directory to /etc run: 'make CONF_DIR=/etc'\n\
|
|
||||
The default config directory is: '$(CONF_DIR)'\n\
|
|
||||
\n\ |
|
||||
CC_OPTS=text - This variable holds compiler optimization parameters.\n\
|
|
||||
Default CC_OPTS value is:\n\
|
|
||||
'$(CC_OPTS)'\n\
|
|
||||
To add text to this variable set EXTRA_CC_OPTS=text.\n\
|
|
||||
\n\ |
|
||||
CC_WARN=text - This variable holds compiler warning parameters.\n\
|
|
||||
Default CC_WARN value is:\n\
|
|
||||
'$(CC_WARN)'\n\
|
|
||||
To add text to this variable set EXTRA_CC_WARN=text.\n\
|
|
||||
\n\ |
|
||||
V=1 - Request build process to print verbose messages. By\n\
|
|
||||
default the only messages that are shown are simple info\n\
|
|
||||
what is being compiled. To request verbose build run:\n\
|
|
||||
'make V=1'\n\
|
|
||||
\n\ |
|
||||
Extra build variables:\n\
|
|
||||
These variables add text to build variables. They are useful if you want\n\
|
|
||||
to add additional options to already set variables without overwriting them\n\
|
|
||||
Currently defined EXTRA_xxx variables are:\n\
|
|
||||
\n\ |
|
||||
EXTRA_CC_OPTS - Add text to CC_OPTS.\n\
|
|
||||
Example: 'make EXTRA_CC_OPTS=-Os'\n\
|
|
||||
\n\ |
|
||||
EXTRA_CC_WARN - Add text to CC_WARN.\n\
|
|
||||
Example: 'make EXTRA_CC_WARN=-Wshadow'\n\
|
|
||||
\n\ |
|
||||
EXTRA_TARGET - Add text to TARGET.\n\
|
|
||||
Example: 'make EXTRA_TARGET=-private'\n\
|
|
||||
\n\ |
|
||||
EXTRA_CFLAGS - Add text to CFLAGS (affects compilation).\n\
|
|
||||
Example: 'make EXTRA_CFLAGS=\"-DBLAH=1 -I/opt/local\"'\n\
|
|
||||
\n\ |
|
||||
EXTRA_LDFLAGS - Add text to LDFLAGS (affects linking).\n\
|
|
||||
Example: 'make EXTRA_LDFLAGS=-Llibdir'\n\
|
|
||||
\n\ |
|
||||
EXTRA_FLAGS - Add text to both EXTRA_CFLAGS and EXTRA_LDFLAGS.\n\
|
|
||||
Example: 'make EXTRA_FLAGS=-DBLAH=1'\n\
|
|
||||
\n\ |
|
||||
EXTRA_LIBS - Add text to LIBS (affects linking).\n\
|
|
||||
Example: 'make EXTRA_LIBS=\"-L./stapi -loscam_stapi\"'\n\
|
|
||||
\n\ |
|
||||
Use flags:\n\
|
|
||||
Use flags are used to request additional libraries or features to be used\n\
|
|
||||
by OSCam. Currently defined USE_xxx flags are:\n\
|
|
||||
\n\ |
|
||||
USE_LIBUSB=1 - Request linking with libusb. The variables that control\n\
|
|
||||
USE_LIBUSB=1 build are:\n\
|
|
||||
LIBUSB_FLAGS='$(DEFAULT_LIBUSB_FLAGS)'\n\
|
|
||||
LIBUSB_CFLAGS='$(DEFAULT_LIBUSB_FLAGS)'\n\
|
|
||||
LIBUSB_LDFLAGS='$(DEFAULT_LIBUSB_FLAGS)'\n\
|
|
||||
LIBUSB_LIB='$(DEFAULT_LIBUSB_LIB)'\n\
|
|
||||
Using USE_LIBUSB=1 adds to '-libusb' to PLUS_TARGET.\n\
|
|
||||
To build with static libusb, set the variable LIBUSB_LIB\n\
|
|
||||
to contain full path of libusb library. For example:\n\
|
|
||||
make USE_LIBUSB=1 LIBUSB_LIB=/usr/lib/libusb-1.0.a\n\
|
|
||||
\n\ |
|
||||
USE_PCSC=1 - Request linking with PCSC. The variables that control\n\
|
|
||||
USE_PCSC=1 build are:\n\
|
|
||||
PCSC_FLAGS='$(DEFAULT_PCSC_FLAGS)'\n\
|
|
||||
PCSC_CFLAGS='$(DEFAULT_PCSC_FLAGS)'\n\
|
|
||||
PCSC_LDFLAGS='$(DEFAULT_PCSC_FLAGS)'\n\
|
|
||||
PCSC_LIB='$(DEFAULT_PCSC_LIB)'\n\
|
|
||||
Using USE_PCSC=1 adds to '-pcsc' to PLUS_TARGET.\n\
|
|
||||
To build with static PCSC, set the variable PCSC_LIB\n\
|
|
||||
to contain full path of PCSC library. For example:\n\
|
|
||||
make USE_PCSC=1 PCSC_LIB=/usr/local/lib/libpcsclite.a\n\
|
|
||||
\n\ |
|
||||
USE_STAPI=1 - Request linking with STAPI. The variables that control\n\
|
|
||||
USE_STAPI=1 build are:\n\
|
|
||||
STAPI_FLAGS='$(DEFAULT_STAPI_FLAGS)'\n\
|
|
||||
STAPI_CFLAGS='$(DEFAULT_STAPI_FLAGS)'\n\
|
|
||||
STAPI_LDFLAGS='$(DEFAULT_STAPI_FLAGS)'\n\
|
|
||||
STAPI_LIB='$(DEFAULT_STAPI_LIB)'\n\
|
|
||||
Using USE_STAPI=1 adds to '-stapi' to PLUS_TARGET.\n\
|
|
||||
In order for USE_STAPI to work you have to create stapi\n\
|
|
||||
directory and put liboscam_stapi.a file in it.\n\
|
|
||||
\n\ |
|
||||
USE_STAPI5=1 - Request linking with STAPI5. The variables that control\n\
|
|
||||
USE_STAPI5=1 build are:\n\
|
|
||||
STAPI5_FLAGS='$(DEFAULT_STAPI5_FLAGS)'\n\
|
|
||||
STAPI5_CFLAGS='$(DEFAULT_STAPI5_FLAGS)'\n\
|
|
||||
STAPI5_LDFLAGS='$(DEFAULT_STAPI5_FLAGS)'\n\
|
|
||||
STAPI5_LIB='$(DEFAULT_STAPI5_LIB)'\n\
|
|
||||
Using USE_STAPI5=1 adds to '-stapi' to PLUS_TARGET.\n\
|
|
||||
In order for USE_STAPI5 to work you have to create stapi\n\
|
|
||||
directory and put liboscam_stapi5.a file in it.\n\
|
|
||||
\n\ |
|
||||
USE_COOLAPI=1 - Request support for Coolstream API (libnxp) aka NeutrinoHD\n\
|
|
||||
box. The variables that control the build are:\n\
|
|
||||
COOLAPI_FLAGS='$(DEFAULT_COOLAPI_FLAGS)'\n\
|
|
||||
COOLAPI_CFLAGS='$(DEFAULT_COOLAPI_FLAGS)'\n\
|
|
||||
COOLAPI_LDFLAGS='$(DEFAULT_COOLAPI_FLAGS)'\n\
|
|
||||
COOLAPI_LIB='$(DEFAULT_COOLAPI_LIB)'\n\
|
|
||||
Using USE_COOLAPI=1 adds to '-coolapi' to PLUS_TARGET.\n\
|
|
||||
In order for USE_COOLAPI to work you have to have libnxp.so\n\
|
|
||||
library in your cross compilation toolchain.\n\
|
|
||||
\n\ |
|
||||
USE_COOLAPI2=1 - Request support for Coolstream API aka NeutrinoHD\n\
|
|
||||
box. The variables that control the build are:\n\
|
|
||||
COOLAPI_FLAGS='$(DEFAULT_COOLAPI2_FLAGS)'\n\
|
|
||||
COOLAPI_CFLAGS='$(DEFAULT_COOLAPI2_FLAGS)'\n\
|
|
||||
COOLAPI_LDFLAGS='$(DEFAULT_COOLAPI2_FLAGS)'\n\
|
|
||||
COOLAPI_LIB='$(DEFAULT_COOLAPI2_LIB)'\n\
|
|
||||
Using USE_COOLAPI2=1 adds to '-coolapi2' to PLUS_TARGET.\n\
|
|
||||
In order for USE_COOLAPI2 to work you have to have liblnxUKAL.so,\n\
|
|
||||
liblnxcssUsr.so, liblnxscsUsr.so, liblnxnotifyqUsr.so, liblnxplatUsr.so\n\
|
|
||||
library in your cross compilation toolchain.\n\
|
|
||||
\n\ |
|
||||
USE_SU980=1 - Request support for SU980 API (libentropic) aka Enimga2 arm\n\
|
|
||||
box. The variables that control the build are:\n\
|
|
||||
COOLAPI_FLAGS='$(DEFAULT_SU980_FLAGS)'\n\
|
|
||||
COOLAPI_CFLAGS='$(DEFAULT_SU980_FLAGS)'\n\
|
|
||||
COOLAPI_LDFLAGS='$(DEFAULT_SU980_FLAGS)'\n\
|
|
||||
COOLAPI_LIB='$(DEFAULT_SU980_LIB)'\n\
|
|
||||
Using USE_SU980=1 adds to '-su980' to PLUS_TARGET.\n\
|
|
||||
In order for USE_SU980 to work you have to have libentropic.a\n\
|
|
||||
library in your cross compilation toolchain.\n\
|
|
||||
\n\ |
|
||||
USE_AZBOX=1 - Request support for AZBOX (openxcas)\n\
|
|
||||
box. The variables that control the build are:\n\
|
|
||||
AZBOX_FLAGS='$(DEFAULT_AZBOX_FLAGS)'\n\
|
|
||||
AZBOX_CFLAGS='$(DEFAULT_AZBOX_FLAGS)'\n\
|
|
||||
AZBOX_LDFLAGS='$(DEFAULT_AZBOX_FLAGS)'\n\
|
|
||||
AZBOX_LIB='$(DEFAULT_AZBOX_LIB)'\n\
|
|
||||
Using USE_AZBOX=1 adds to '-azbox' to PLUS_TARGET.\n\
|
|
||||
extapi/openxcas/libOpenXCASAPI.a library that is shipped\n\
|
|
||||
with OSCam is compiled for MIPSEL.\n\
|
|
||||
\n\ |
|
||||
USE_MCA=1 - Request support for Matrix Cam Air (MCA).\n\
|
|
||||
The variables that control the build are:\n\
|
|
||||
MCA_FLAGS='$(DEFAULT_MCA_FLAGS)'\n\
|
|
||||
MCA_CFLAGS='$(DEFAULT_MCA_FLAGS)'\n\
|
|
||||
MCA_LDFLAGS='$(DEFAULT_MCA_FLAGS)'\n\
|
|
||||
Using USE_MCA=1 adds to '-mca' to PLUS_TARGET.\n\
|
|
||||
\n\ |
|
||||
USE_LIBCRYPTO=1 - Request linking with libcrypto instead of using OSCam\n\
|
|
||||
internal crypto functions. USE_LIBCRYPTO is automatically\n\
|
|
||||
enabled if the build is configured with SSL support. The\n\
|
|
||||
variables that control USE_LIBCRYPTO=1 build are:\n\
|
|
||||
LIBCRYPTO_FLAGS='$(DEFAULT_LIBCRYPTO_FLAGS)'\n\
|
|
||||
LIBCRYPTO_CFLAGS='$(DEFAULT_LIBCRYPTO_FLAGS)'\n\
|
|
||||
LIBCRYPTO_LDFLAGS='$(DEFAULT_LIBCRYPTO_FLAGS)'\n\
|
|
||||
LIBCRYPTO_LIB='$(DEFAULT_LIBCRYPTO_LIB)'\n\
|
|
||||
\n\ |
|
||||
USE_SSL=1 - Request linking with libssl. USE_SSL is automatically\n\
|
|
||||
enabled if the build is configured with SSL support. The\n\
|
|
||||
variables that control USE_SSL=1 build are:\n\
|
|
||||
SSL_FLAGS='$(DEFAULT_SSL_FLAGS)'\n\
|
|
||||
SSL_CFLAGS='$(DEFAULT_SSL_FLAGS)'\n\
|
|
||||
SSL_LDFLAGS='$(DEFAULT_SSL_FLAGS)'\n\
|
|
||||
SSL_LIB='$(DEFAULT_SSL_LIB)'\n\
|
|
||||
Using USE_SSL=1 adds to '-ssl' to PLUS_TARGET.\n\
|
|
||||
\n\ |
|
||||
USE_UTF8=1 - Request UTF-8 enabled webif by default.\n\
|
|
||||
\n\ |
|
||||
Automatically intialized variables:\n\
|
|
||||
\n\ |
|
||||
TARGET=text - This variable is auto detected by using the compiler's\n\
|
|
||||
-dumpmachine output. To see the target on your machine run:\n\
|
|
||||
'gcc -dumpmachine'\n\
|
|
||||
\n\ |
|
||||
PLUS_TARGET - This variable is added to TARGET and it is set depending\n\
|
|
||||
on the chosen USE_xxx flags. To disable adding\n\
|
|
||||
PLUS_TARGET to TARGET, set NO_PLUS_TARGET=1\n\
|
|
||||
\n\ |
|
||||
BINDIR - The directory where final oscam binary would be put. The\n\
|
|
||||
default is: $(BINDIR)\n\
|
|
||||
\n\ |
|
||||
OSCAM_BIN=text - This variable controls how the oscam binary will be named.\n\
|
|
||||
Default OSCAM_BIN value is:\n\
|
|
||||
'BINDIR/oscam-VERSVN_REV-TARGET'\n\
|
|
||||
Once the variables (BINDIR, VER, SVN_REV and TARGET) are\n\
|
|
||||
replaced, the resulting filename can look like this:\n\
|
|
||||
'Distribution/oscam-1.20-unstable_svn7404-i486-slackware-linux-static'\n\
|
|
||||
For example you can run: 'make OSCAM_BIN=my-oscam'\n\
|
|
||||
\n\ |
|
||||
Binaries compiled and run during the OSCam build:\n\
|
|
||||
\n\ |
|
||||
OSCam builds webif/pages_gen binary that is run by the build system to\n\
|
|
||||
generate file that holds web pages. To build this binary two variables\n\
|
|
||||
are used:\n\
|
|
||||
\n\ |
|
||||
HOSTCC=gcc - The compiler used for building binaries that are run on\n\
|
|
||||
the build machine (the host). Default: gcc\n\
|
|
||||
To use clang for example run: make CC=clang HOSTCC=clang\n\
|
|
||||
\n\ |
|
||||
HOSTCFLAGS=xxx - The CFLAGS passed to HOSTCC. See webif/Makefile for the\n\
|
|
||||
default host cflags.\n\
|
|
||||
\n\ |
|
||||
Config targets:\n\
|
|
||||
make config - Start configuration utility.\n\
|
|
||||
make allyesconfig - Enable all configuration options.\n\
|
|
||||
make allnoconfig - Disable all configuration options.\n\
|
|
||||
make defconfig - Restore default configuration options.\n\
|
|
||||
\n\ |
|
||||
Cleaning targets:\n\
|
|
||||
make clean - Remove '$(BUILD_DIR)' directory which contains compiled\n\
|
|
||||
object files.\n\
|
|
||||
make distclean - Executes clean target and also removes binary files\n\
|
|
||||
located in '$(BINDIR)' directory.\n\
|
|
||||
\n\ |
|
||||
Build system files:\n\
|
|
||||
config.sh - OSCam configuration. Run 'config.sh --help' to see\n\
|
|
||||
available parameters or 'make config' to start GUI\n\
|
|
||||
configuratior.\n\
|
|
||||
Makefile - Main build system file.\n\
|
|
||||
Makefile.extra - Contains predefined targets. You can use this file\n\
|
|
||||
as example on how to use the build system.\n\
|
|
||||
Makefile.local - This file is included in Makefile and allows creation\n\
|
|
||||
of local build system targets. See Makefile.extra for\n\
|
|
||||
examples.\n\
|
|
||||
\n\ |
|
||||
Here are some of the interesting predefined targets in Makefile.extra.\n\
|
|
||||
To use them run 'make target ...' where ... can be any extra flag. For\n\
|
|
||||
example if you want to compile OSCam for Dreambox (DM500) but do not\n\
|
|
||||
have the compilers in the path, you can run:\n\
|
|
||||
make dm500 CROSS_DIR=/opt/cross/dm500/cdk/bin/\n\
|
|
||||
\n\ |
|
||||
Predefined targets in Makefile.extra:\n\
|
|
||||
\n\ |
|
||||
make libusb - Builds OSCam with libusb support\n\
|
|
||||
make pcsc - Builds OSCam with PCSC support\n\
|
|
||||
make pcsc-libusb - Builds OSCam with PCSC and libusb support\n\
|
|
||||
make dm500 - Builds OSCam for Dreambox (DM500)\n\
|
|
||||
make sh4 - Builds OSCam for SH4 boxes\n\
|
|
||||
make azbox - Builds OSCam for AZBox STBs\n\
|
|
||||
make mca - Builds OSCam for Matrix Cam Air (MCA)\n\
|
|
||||
make coolstream - Builds OSCam for Coolstream HD1\n\
|
|
||||
make coolstream2 - Builds OSCam for Coolstream HD2\n\
|
|
||||
make dockstar - Builds OSCam for Dockstar\n\
|
|
||||
make qboxhd - Builds OSCam for QBoxHD STBs\n\
|
|
||||
make opensolaris - Builds OSCam for OpenSolaris\n\
|
|
||||
make uclinux - Builds OSCam for m68k uClinux\n\
|
|
||||
\n\ |
|
||||
Predefined targets for static builds:\n\
|
|
||||
make static - Builds OSCam statically\n\
|
|
||||
make static-libusb - Builds OSCam with libusb linked statically\n\
|
|
||||
make static-libcrypto - Builds OSCam with libcrypto linked statically\n\
|
|
||||
make static-ssl - Builds OSCam with SSL support linked statically\n\
|
|
||||
\n\ |
|
||||
Developer targets:\n\
|
|
||||
make tests - Builds '$(TESTS_BIN)' binary\n\
|
|
||||
\n\ |
|
||||
Examples:\n\
|
|
||||
Build OSCam for SH4 (the compilers are in the path):\n\
|
|
||||
make CROSS=sh4-linux-\n\n\
|
|
||||
Build OSCam for SH4 (the compilers are in not in the path):\n\
|
|
||||
make sh4 CROSS_DIR=/opt/STM/STLinux-2.3/devkit/sh4/bin/\n\
|
|
||||
make CROSS_DIR=/opt/STM/STLinux-2.3/devkit/sh4/bin/ CROSS=sh4-linux-\n\
|
|
||||
make CROSS=/opt/STM/STLinux-2.3/devkit/sh4/bin/sh4-linux-\n\n\
|
|
||||
Build OSCam for SH4 with STAPI:\n\
|
|
||||
make CROSS=sh4-linux- USE_STAPI=1\n\n\
|
|
||||
Build OSCam for SH4 with STAPI and changed configuration directory:\n\
|
|
||||
make CROSS=sh4-linux- USE_STAPI=1 CONF_DIR=/var/tuxbox/config\n\n\
|
|
||||
Build OSCam for ARM with COOLAPI (coolstream aka NeutrinoHD):\n\
|
|
||||
make CROSS=arm-cx2450x-linux-gnueabi- USE_COOLAPI=1\n\n\
|
|
||||
Build OSCam for ARM with COOLAPI2 (coolstream aka NeutrinoHD):\n\
|
|
||||
make CROSS=arm-pnx8400-linux-uclibcgnueabi- USE_COOLAPI2=1\n\n\
|
|
||||
Build OSCam for MIPSEL with AZBOX support:\n\
|
|
||||
make CROSS=mipsel-linux-uclibc- USE_AZBOX=1\n\n\
|
|
||||
Build OSCam for ARM with MCA support:\n\
|
|
||||
make CROSS=arm-none-linux-gnueabi- USE_MCA=1\n\n\
|
|
||||
Build OSCam with libusb and PCSC:\n\
|
|
||||
make USE_LIBUSB=1 USE_PCSC=1\n\n\
|
|
||||
Build OSCam with static libusb:\n\
|
|
||||
make USE_LIBUSB=1 LIBUSB_LIB=\"/usr/lib/libusb-1.0.a\"\n\n\
|
|
||||
Build OSCam with static libcrypto:\n\
|
|
||||
make USE_LIBCRYPTO=1 LIBCRYPTO_LIB=\"/usr/lib/libcrypto.a\"\n\n\
|
|
||||
Build OSCam with static libssl and libcrypto:\n\
|
|
||||
make USE_SSL=1 SSL_LIB=\"/usr/lib/libssl.a\" LIBCRYPTO_LIB=\"/usr/lib/libcrypto.a\"\n\n\
|
|
||||
Build with verbose messages and size optimizations:\n\
|
|
||||
make V=1 CC_OPTS=-Os\n\n\
|
|
||||
Build and set oscam file name:\n\
|
|
||||
make OSCAM_BIN=oscam\n\n\
|
|
||||
Build and set oscam file name depending on revision:\n\
|
|
||||
make OSCAM_BIN=oscam-\`./config.sh -r\`\n\n\
|
|
||||
" |
|
||||
|
|
||||
simple: all |
|
||||
default: all |
|
||||
debug: all |
|
||||
|
|
||||
-include Makefile.extra |
|
||||
-include Makefile.local |
|
Loading…
Reference in new issue