xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
2*4882a593SmuzhiyunSECTION = "console/network"
3*4882a593SmuzhiyunLICENSE = "BSD-2-Clause"
4*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=7a5d174db44ec45f9638b2c747806821"
5*4882a593SmuzhiyunDEPENDS = "dbus ncurses python3 pps-tools"
6*4882a593SmuzhiyunPROVIDES = "virtual/gpsd"
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunSRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
9*4882a593Smuzhiyun           file://gpsd.init \
10*4882a593Smuzhiyun           "
11*4882a593SmuzhiyunSRC_URI[sha256sum] = "0b991ce9a46538c4ea450f7a8ee428ff44fb4f8d665fddf2ffe40fe0ae9a6c09"
12*4882a593Smuzhiyun
13*4882a593Smuzhiyuninherit scons update-rc.d python3-dir python3native systemd update-alternatives pkgconfig
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunINITSCRIPT_PACKAGES = "gpsd-conf"
16*4882a593SmuzhiyunINITSCRIPT_NAME = "gpsd"
17*4882a593SmuzhiyunINITSCRIPT_PARAMS = "defaults 35"
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunSYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunexport STAGING_INCDIR
22*4882a593Smuzhiyunexport STAGING_LIBDIR
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunCLEANBROKEN = "1"
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunPACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} usb"
27*4882a593SmuzhiyunPACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez5"
28*4882a593SmuzhiyunPACKAGECONFIG[qt] = "qt='yes' qt_versioned=5,qt='no',qtbase"
29*4882a593SmuzhiyunPACKAGECONFIG[usb] = "usb='true',usb='false',libusb1"
30*4882a593SmuzhiyunEXTRA_OESCONS = " \
31*4882a593Smuzhiyun    sysroot=${STAGING_DIR_TARGET} \
32*4882a593Smuzhiyun    libQgpsmm='false' \
33*4882a593Smuzhiyun    debug='false' \
34*4882a593Smuzhiyun    nostrip='true' \
35*4882a593Smuzhiyun    systemd='${SYSTEMD_OESCONS}' \
36*4882a593Smuzhiyun    libdir='${libdir}' \
37*4882a593Smuzhiyun    sbindir='${sbindir}' \
38*4882a593Smuzhiyun    udevdir='${nonarch_base_libdir}/udev' \
39*4882a593Smuzhiyun    unitdir='${systemd_system_unitdir}' \
40*4882a593Smuzhiyun    manbuild='false' \
41*4882a593Smuzhiyun    LINK='${CC}' \
42*4882a593Smuzhiyun    ${PACKAGECONFIG_CONFARGS} \
43*4882a593Smuzhiyun"
44*4882a593Smuzhiyun# This cannot be used, because then chrpath is not found and only static lib is built
45*4882a593Smuzhiyun# target=${HOST_SYS}
46*4882a593Smuzhiyun
47*4882a593Smuzhiyundo_compile:prepend() {
48*4882a593Smuzhiyun    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
49*4882a593Smuzhiyun    export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
50*4882a593Smuzhiyun    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
51*4882a593Smuzhiyun    export CC="${CC}"
52*4882a593Smuzhiyun    export LD="${CC}"
53*4882a593Smuzhiyun    export LINKFLAGS="${LDFLAGS}"
54*4882a593Smuzhiyun}
55*4882a593Smuzhiyun
56*4882a593Smuzhiyundo_install() {
57*4882a593Smuzhiyun    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
58*4882a593Smuzhiyun    export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
59*4882a593Smuzhiyun    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
60*4882a593Smuzhiyun    export LD="${CC}"
61*4882a593Smuzhiyun    export LINKFLAGS="${LDFLAGS}"
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun    export DESTDIR="${D}"
64*4882a593Smuzhiyun    # prefix is used for RPATH and DESTDIR/prefix for installation
65*4882a593Smuzhiyun    ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} python_libdir=${libdir} udev-install ${EXTRA_OESCONS} || \
66*4882a593Smuzhiyun      bbfatal "scons install execution failed."
67*4882a593Smuzhiyun}
68*4882a593Smuzhiyun
69*4882a593Smuzhiyundo_install:append() {
70*4882a593Smuzhiyun    install -d ${D}${sysconfdir}/init.d
71*4882a593Smuzhiyun    install -m 0755 ${WORKDIR}/gpsd.init ${D}${sysconfdir}/init.d/gpsd
72*4882a593Smuzhiyun    install -d ${D}${sysconfdir}/default
73*4882a593Smuzhiyun    install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}${sysconfdir}/default/gpsd.default
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun    # Support for python
76*4882a593Smuzhiyun    if [ -d ${D}${libdir}/gps ]; then
77*4882a593Smuzhiyun        install -d ${D}${PYTHON_SITEPACKAGES_DIR}/gps
78*4882a593Smuzhiyun        install -m 755 ${D}${libdir}/gps/*.py ${D}${PYTHON_SITEPACKAGES_DIR}/gps
79*4882a593Smuzhiyun    fi
80*4882a593Smuzhiyun}
81*4882a593Smuzhiyun
82*4882a593SmuzhiyunPACKAGES =+ "libgps python3-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils gps-utils-python"
83*4882a593Smuzhiyun
84*4882a593SmuzhiyunRPROVIDES:${PN}-dbg += "python-pygps-dbg"
85*4882a593Smuzhiyun
86*4882a593SmuzhiyunFILES:${PN}-dev += "${libdir}/libQgpsmm.prl"
87*4882a593Smuzhiyun
88*4882a593SmuzhiyunFILES:${PN}-doc += "${datadir}/${BPN}/doc"
89*4882a593Smuzhiyun
90*4882a593SmuzhiyunRDEPENDS:${PN} = "gpsd-gpsctl"
91*4882a593SmuzhiyunRRECOMMENDS:${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
92*4882a593Smuzhiyun
93*4882a593SmuzhiyunSUMMARY:gpsd-udev = "udev relevant files to use gpsd hotplugging"
94*4882a593SmuzhiyunFILES:gpsd-udev = "${nonarch_base_libdir}/udev"
95*4882a593SmuzhiyunRDEPENDS:gpsd-udev += "udev gpsd-conf"
96*4882a593Smuzhiyun
97*4882a593SmuzhiyunSUMMARY:libgps = "C service library used for communicating with gpsd"
98*4882a593SmuzhiyunFILES:libgps = "${libdir}/libgps.so.*"
99*4882a593Smuzhiyun
100*4882a593SmuzhiyunSUMMARY:gpsd-conf = "gpsd configuration files and init scripts"
101*4882a593SmuzhiyunFILES:gpsd-conf = "${sysconfdir}"
102*4882a593SmuzhiyunCONFFILES:gpsd-conf = "${sysconfdir}/default/gpsd.default"
103*4882a593Smuzhiyun
104*4882a593SmuzhiyunSUMMARY:gpsd-gpsctl = "Tool for tweaking GPS modes"
105*4882a593SmuzhiyunFILES:gpsd-gpsctl = "${bindir}/gpsctl"
106*4882a593Smuzhiyun
107*4882a593SmuzhiyunSUMMARY:gps-utils = "Utils used for simulating, monitoring,... a GPS"
108*4882a593SmuzhiyunFILES:gps-utils = "\
109*4882a593Smuzhiyun    ${bindir}/cgps         \
110*4882a593Smuzhiyun    ${bindir}/gps2udp      \
111*4882a593Smuzhiyun    ${bindir}/gpsctl       \
112*4882a593Smuzhiyun    ${bindir}/gpsdebuginfo \
113*4882a593Smuzhiyun    ${bindir}/gpsdecode    \
114*4882a593Smuzhiyun    ${bindir}/gpsmon       \
115*4882a593Smuzhiyun    ${bindir}/gpspipe      \
116*4882a593Smuzhiyun    ${bindir}/gpsrinex     \
117*4882a593Smuzhiyun    ${bindir}/gpssnmp      \
118*4882a593Smuzhiyun    ${bindir}/gpxlogger    \
119*4882a593Smuzhiyun    ${bindir}/lcdgps       \
120*4882a593Smuzhiyun    ${bindir}/ntpshmmon    \
121*4882a593Smuzhiyun    ${bindir}/ppscheck     \
122*4882a593Smuzhiyun"
123*4882a593SmuzhiyunRRECOMMENDS:gps-utils = "gps-utils-python"
124*4882a593Smuzhiyun
125*4882a593SmuzhiyunSUMMARY:gps-utils-python = "Python utils used for simulating, monitoring,... a GPS"
126*4882a593SmuzhiyunFILES:gps-utils-python = "\
127*4882a593Smuzhiyun    ${bindir}/gegps        \
128*4882a593Smuzhiyun    ${bindir}/gpscat       \
129*4882a593Smuzhiyun    ${bindir}/gpscsv       \
130*4882a593Smuzhiyun    ${bindir}/gpsfake      \
131*4882a593Smuzhiyun    ${bindir}/gpsplot      \
132*4882a593Smuzhiyun    ${bindir}/gpsprof      \
133*4882a593Smuzhiyun    ${bindir}/gpssubframe  \
134*4882a593Smuzhiyun    ${bindir}/ubxtool      \
135*4882a593Smuzhiyun    ${bindir}/xgps         \
136*4882a593Smuzhiyun    ${bindir}/xgpsspeed    \
137*4882a593Smuzhiyun    ${bindir}/zerk         \
138*4882a593Smuzhiyun"
139*4882a593SmuzhiyunRDEPENDS:gps-utils-python = "python3-pygps"
140*4882a593Smuzhiyun
141*4882a593SmuzhiyunSUMMARY:python3-pygps = "Python bindings to gpsd"
142*4882a593SmuzhiyunFILES:python3-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info"
143*4882a593SmuzhiyunRDEPENDS:python3-pygps = " \
144*4882a593Smuzhiyun    python3-core \
145*4882a593Smuzhiyun    python3-io \
146*4882a593Smuzhiyun    python3-threading \
147*4882a593Smuzhiyun    python3-terminal \
148*4882a593Smuzhiyun    gpsd \
149*4882a593Smuzhiyun    python3-json"
150*4882a593Smuzhiyun
151*4882a593SmuzhiyunRPROVIDES:${PN} += "${PN}-systemd"
152*4882a593SmuzhiyunRREPLACES:${PN} += "${PN}-systemd"
153*4882a593SmuzhiyunRCONFLICTS:${PN} += "${PN}-systemd"
154*4882a593SmuzhiyunSYSTEMD_SERVICE:${PN} = "${BPN}.socket ${BPN}ctl@.service"
155*4882a593Smuzhiyun
156*4882a593SmuzhiyunALTERNATIVE:${PN} = "gpsd-defaults"
157*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd"
158*4882a593SmuzhiyunALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default"
159