### this file is sourced not run
PKGVER=5.49
PKGBUILD=1
PKGARCH=x86_64

# post BLFS 8.2 2018-07-31 modified with Fatdog64 build config 
TARBALL=bluez-$PKGVER.tar.xz
MD5SUM=f210e84db707d66af3b889084a6f8bef
SRC_URL=http://www.kernel.org/pub/linux/bluetooth/$TARBALL
BUNDLE=

SLACKREQ='glib dbus libical libsndfile libusb cups'
SLACKDESC="bluez: bluez $PKGVER (Bluetooth protocol stack)  
bluez:  
bluez: The BlueZ package contains the Bluetooth protocol stack for Linux. It 
bluez: enables you to connect to bluetooth devices - provided that you have 
bluez: bluetooth hardware in your machine.  
bluez: 
bluez: 
bluez: 
bluez: 
bluez: 
bluez:
"

### default pkg_download
### prepare
pkg_prepare() {
	pkg_prepare_default &&
	cd tmp/bluez* &&
	
	# BLFS patch to enable non-systemd operation with obexd
	patch -Np1 -i ../pkg/bluez-5.49-obexd_without_systemd-1.patch &&
	cp ../pkg/hex2hcd.c . &&
	cp ../pkg/brcm_patchram*.c . &&
	true
}
### default pkg_package
### build
pkg_build() {
	cd /tmp/bluez*
	CONFFLAGS="$CONFFLAGS \
			--enable-library \
			--disable-systemd \
			--disable-test \
			--enable-threads \
			--enable-midi \
			--enable-manpages \
			--enable-deprecated \
			--enable-experimental"
			#--enable-testing # only useful stuff here is btvirt emulator
    pkg_build_autoconf &&
	pkg_build_slackdesc &&

    # install bin
	ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin &&

	# install conf
	install -v -dm755 /etc/bluetooth &&
	install -v -m644 src/main.conf /etc/bluetooth/main.conf &&

	# install docs
	install -v -dm755 /usr/share/doc/bluez-$PKGVER &&
	install -v -m644 doc/*.txt /usr/share/doc/bluez-$PKGVER &&

	# BLFS extra conf
	install -m644 ../pkg/*.conf /etc/bluetooth &&

	# Fatdog extras
	for CONFFILE in input network; do
		install -v -m644 profiles/${CONFFILE}/${CONFFILE}.conf /etc/bluetooth/${CONFFILE}.conf
	done &&
	
	# build hex2hcd for converting Broadcom windows firmware to Linux format
	gcc -Os -s -o /usr/bin/hex2hcd hex2hcd.c &&
	
	# tool to upload broadcom firmware. Not needed for if btusb.ko can already patch it.
	gcc -Os -s -o /usr/bin/brcm_patchram_plus_usb brcm_patchram_plus_usb.c -lbluetooth &&
	gcc -Os -s -o /usr/bin/brcm_patchram_plus brcm_patchram_plus.c -lbluetooth &&
	
	# legacy link for Fatdog apps
	rm -f /etc/bluetooth/var && 
	ln -sf /var/lib/bluetooth /etc/bluetooth/var && 
	
	true
}


<< "EOF"
sh-4.4# pwd
/tmp/bluez-5.49
sh-4.4# ./configure --help
`configure' configures bluez 5.49 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/bluez]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-silent-rules   less verbose build output (undo: "make V=1")
  --disable-silent-rules  verbose build output (undo: "make V=0")
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --enable-maintainer-mode
                          enable make rules and dependencies not useful (and
                          sometimes confusing) to the casual installer
  --enable-static[=PKGS]  build static libraries [default=no]
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --disable-optimization  disable code optimization through compiler
  --enable-debug          enable compiling with debugging information
  --enable-pie            enable position independent executables flag
  --enable-threads        enable threading support
  --enable-backtrace      compile backtrace support
  --enable-library        install Bluetooth library
  --enable-test           enable test/example scripts
  --enable-nfc            enable NFC paring
  --enable-sap            enable SAP profile
  --disable-a2dp          disable A2DP profile
  --disable-avrcp         disable AVRCP profile
  --disable-network       disable network profiles
  --disable-hid           disable HID profile
  --disable-hog           disable HoG profile
  --enable-health         enable health profiles
  --disable-tools         disable Bluetooth tools
  --disable-monitor       disable Bluetooth monitor
  --disable-udev          disable udev device support
  --disable-cups          disable CUPS printer support
  --enable-mesh           enable Mesh profile support
  --enable-midi           enable MIDI support
  --disable-obex          disable OBEX profile support
  --enable-btpclient      enable BTP client
  --disable-client        disable command line client
  --disable-systemd       disable systemd integration
  --disable-datafiles     do not install configuration and data files
  --enable-manpages       enable building of manual pages
  --enable-testing        enable testing tools
  --enable-experimental   enable experimental tools
  --enable-deprecated     enable deprecated tools
  --enable-sixaxis        enable sixaxis plugin
  --enable-android        enable BlueZ for Android

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                          both]
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-sysroot=DIR Search for dependent libraries within DIR
                        (or the compiler's sysroot if not specified).
  --with-dbusconfdir=DIR  path to D-Bus configuration directory
  --with-dbussystembusdir=DIR
                          path to D-Bus system bus services directory
  --with-dbussessionbusdir=DIR
                          path to D-Bus session bus services directory
  --with-udevdir=DIR      path to udev directory
  --with-systemdsystemunitdir=DIR
                          path to systemd system unit directory
  --with-systemduserunitdir=DIR
                          path to systemd user unit directory

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  PKG_CONFIG  path to pkg-config utility
  PKG_CONFIG_PATH
              directories to add to pkg-config's search path
  PKG_CONFIG_LIBDIR
              path overriding pkg-config's built-in search path
  GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
  GLIB_LIBS   linker flags for GLIB, overriding pkg-config
  GTHREAD_CFLAGS
              C compiler flags for GTHREAD, overriding pkg-config
  GTHREAD_LIBS
              linker flags for GTHREAD, overriding pkg-config
  DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config
  DBUS_LIBS   linker flags for DBUS, overriding pkg-config
  UDEV_CFLAGS C compiler flags for UDEV, overriding pkg-config
  UDEV_LIBS   linker flags for UDEV, overriding pkg-config
  JSONC_CFLAGS
              C compiler flags for JSONC, overriding pkg-config
  JSONC_LIBS  linker flags for JSONC, overriding pkg-config
  ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config
  ALSA_LIBS   linker flags for ALSA, overriding pkg-config
  ICAL_CFLAGS C compiler flags for ICAL, overriding pkg-config
  ICAL_LIBS   linker flags for ICAL, overriding pkg-config
  ELL_CFLAGS  C compiler flags for ELL, overriding pkg-config
  ELL_LIBS    linker flags for ELL, overriding pkg-config
  SBC_CFLAGS  C compiler flags for SBC, overriding pkg-config
  SBC_LIBS    linker flags for SBC, overriding pkg-config
  SPEEXDSP_CFLAGS
              C compiler flags for SPEEXDSP, overriding pkg-config
  SPEEXDSP_LIBS
              linker flags for SPEEXDSP, overriding pkg-config

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to the package provider.
sh-4.4# 
EOF
