
Originally Posted by
kraiv
От доста време ползвам FreeBSD и OpenBSD за компилиране на оскам, за това споделям тук един малък пач, който коригира нещата за OpenBSD и вмъква някой параметри зададени подходящо за двете системи. FreeBSD се поддържа официално, но за OpenBSD трябват тези промени за да се компилира оскам правилно. Ако gfto чете тук, може да му хвърли едно око и ако иска да го комитва.
Частите за globals.h имат смисъл. Другите - не особено. Тъпият форум е ужас за коментиране на код....дал съм коментари към всяка промяна в Makefile.
Code:
+# Set uname_S to Linux if we cross compiling. +# We need this on FreeBSD and OpenBSD to do cross compilation +# with linux toolchains. +ifdef CROSS +uname_S := Linux +else uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') +endif
Ако погледнеш по-надолу uname_S контролира само LIB_RT. Така че сложи LIB_RT=-lrt при викането на `make` и това няма да ти трябва.
Code:
ifeq ($(uname_S),FreeBSD) +CONF_DIR = /usr/local/etc/oscam +USE_LIBCRYPTO = 1 +LIB_DL := +else ifeq ($(uname_S),OpenBSD) +CONF_DIR = /etc/oscam +USE_LIBCRYPTO = 1 LIB_DL := endif
Използвай USE_LIBCRYPTO=1 и CONF_DIR=xxxxx при викането на `make` - make USE_LIBCRYPTO=1 CONF_DIR=/usr/local/etc/oscam
Code:
+# Suppress some useless warnings on OpenBSD +ifeq ($(uname_S),OpenBSD) +CC_WARN = -W -Wall -Wshadow -Wstrict-prototypes -Wold-style-definition -Wno-format +endif
What warnings? Защо OpenBsd ще дава грешки при -Wredundant-decls и -Wold-style-definition и защо включваш -Wno-format. format string warning-ите са почти винаги реална грешка.
Code:
@@ -103,12 +122,15 @@ else DEFAULT_LIBUSB_LIB = -lusb-1.0 endif +DEFAULT_PCSC_FLAGS = -I/usr/include/PCSC +DEFAULT_PCSC_LIB = -lpcsclite ifeq ($(uname_S),Darwin) DEFAULT_PCSC_FLAGS = -isysroot $(OSX_SDK) -I/usr/local/include DEFAULT_PCSC_LIB = -isysroot $(OSX_SDK) -framework IOKit -framework CoreFoundation -framework PCSC -L/usr/local/lib -else -DEFAULT_PCSC_FLAGS = -I/usr/include/PCSC -DEFAULT_PCSC_LIB = -lpcsclite +else ifeq ($(uname_S),FreeBSD) +DEFAULT_PCSC_FLAGS = -I/usr/local/include -I/usr/local/include/PCSC -L/usr/local/lib +else ifeq ($(uname_S),OpenBSD) +DEFAULT_PCSC_FLAGS = -I/usr/local/include -I/usr/local/include/PCSC -L/usr/local/lib endif
Можеш да ползваш параметри към make
Code:
USE_PCSC=1 - Request linking with PCSC. The variables that control USE_PCSC=1 build are: PCSC_FLAGS='-DWITH_PCSC=1 -I/usr/include/PCSC' PCSC_CFLAGS='-DWITH_PCSC=1 -I/usr/include/PCSC' PCSC_LDFLAGS='-DWITH_PCSC=1 -I/usr/include/PCSC' PCSC_LIB='-lpcsclite'