2 # Linux-specific packaging script
5 ifndef OPENPILOT_IS_COOL
6 $(error Top level Makefile must be used to build this target
)
9 # Are we using a debian based distro?
10 ifneq ($(shell which dpkg
2> /dev
/null
),)
13 # Instead of RELEASE-15.01-RC1 debian wants 15.01~RC1
14 UPSTREAM_VER
:= $(subst -,~
,$(subst RELEASE-
,,$(PACKAGE_LBL
)))
16 ifeq ($(DEB_DIST
), trusty
)
17 DEB_REV
:= $(DEB_REV
)$(DEB_DIST
)1
20 DEB_ORIG_SRC
:= $(PACKAGE_DIR
)/$(DEB_NAME
)_
$(UPSTREAM_VER
).orig.
tar.gz
21 DEB_PACKAGE_DIR
:= $(PACKAGE_DIR
)/$(DEB_NAME
)-$(UPSTREAM_VER
)
22 DEB_ARCH
:= $(shell dpkg
--print-architecture
)
23 DEB_PACKAGE_NAME
:= $(DEB_NAME
)_
$(UPSTREAM_VER
)-$(DEB_REV
)_
$(DEB_ARCH
)
24 DEB_DIR
:= package
/linux
/debian
26 SED_DATE_STRG
= $(shell date
-R
)
27 SED_SCRIPT
= s
/<VERSION
>/$(UPSTREAM_VER
)-$(DEB_REV
)/;s
/<DATE
>/$(SED_DATE_STRG
)/;s
/<DIST
>/$(DEB_DIST
)/
29 # Ubuntu 14.04 (Trusty Tahr) has different names for the qml-modules
30 TRUSTY_DEPS_SED
:= s
/qml-module-qtquick-controls
/qtdeclarative5-controls-plugin
/g
; \
31 s
/qml-module-qtquick-dialogs
/qtdeclarative5-dialogs-plugin
/g
; \
32 s
/qml-module-qtquick-localstorage
/qtdeclarative5-localstorage-plugin
/g
; \
33 s
/qml-module-qtquick-particles2
/qtdeclarative5-particles-plugin
/g
; \
34 s
/qml-module-qtquick2
/qtdeclarative5-qtquick2-plugin
/g
; \
35 s
/qml-module-qtquick-window2
/qtdeclarative5-window-plugin
/g
; \
36 s
/qml-module-qtquick-xmllistmodel
/qtdeclarative5-xmllistmodel-plugin
/g
;
38 # Leave off Qt and ARM compiler dependencies if calling package target under the assumption that
39 # OP is providing them or the user already has them installed because OP is already built.
40 PACKAGE_DEPS_SED
:= s
/python.
*/python
/;s
/{misc
:Depends
}.
*/{misc
:Depends
}/;
44 @
$(ECHO
) "Building Linux package, please wait..."
45 $(V1
) sed
-i
-e
"$(PACKAGE_DEPS_SED)" debian
/control
46 $(V1
) dpkg-buildpackage
-b
-us
-uc
-nc
47 $(V1
) mv
$(ROOT_DIR
)/..
/$(DEB_PACKAGE_NAME
).deb
$(BUILD_DIR
)
48 $(V1
) mv
$(ROOT_DIR
)/..
/$(DEB_PACKAGE_NAME
).changes
$(BUILD_DIR
)
54 $(V1
) cp
-rL
$(DEB_DIR
) debian
55 $(V1
) sed
-i
-e
"$(SED_SCRIPT)" debian
/changelog
56 ifeq ($(DEB_DIST
), trusty
)
57 $(V1
) sed
-i
-e
"$(TRUSTY_DEPS_SED)" debian
/control
61 package_src
: $(DEB_ORIG_SRC_NAME
) $(DEB_PACKAGE_DIR
)
62 $(V1
) cd
$(DEB_PACKAGE_DIR
) && dpkg-buildpackage
-S
-us
-uc
64 $(DEB_ORIG_SRC
): $(DIST_NAME
).gz |
$(PACKAGE_DIR
)
65 $(V1
) cp
$(DIST_NAME
).gz
$(DEB_ORIG_SRC
)
67 $(DEB_PACKAGE_DIR
): $(DEB_ORIG_SRC
) debian |
$(PACKAGE_DIR
)
68 $(V1
) tar -xf
$(DEB_ORIG_SRC
) -C
$(PACKAGE_DIR
)
69 $(V1
) mv debian
$(PACKAGE_DIR
)/$(PACKAGE_NAME
)
70 $(V1
) rm -rf
$(DEB_PACKAGE_DIR
) && mv
$(PACKAGE_DIR
)/$(PACKAGE_NAME
) $(DEB_PACKAGE_DIR
)
72 endif # Debian based distro?
73 ##############################
77 ##############################
79 bindir := $(prefix)/bin
80 libdir := $(prefix)/lib
81 datadir := $(prefix)/share
83 INSTALL
= cp
-a
--no-preserve
=ownership
89 @
$(ECHO
) " INSTALLING GCS TO $(DESTDIR)/)"
90 $(V1
) $(MKDIR
) -p
$(DESTDIR
)$(bindir)
91 $(V1
) $(MKDIR
) -p
$(DESTDIR
)$(libdir)
92 $(V1
) $(MKDIR
) -p
$(DESTDIR
)$(datadir)
93 $(V1
) $(MKDIR
) -p
$(DESTDIR
)$(datadir)/applications
94 $(V1
) $(MKDIR
) -p
$(DESTDIR
)$(datadir)/pixmaps
95 $(V1
) $(MKDIR
) -p
$(DESTDIR
)$(udevdir
)
96 $(V1
) $(INSTALL
) $(BUILD_DIR
)/openpilotgcs_
$(GCS_BUILD_CONF
)/bin
/openpilotgcs
$(DESTDIR
)$(bindir)
97 $(V1
) $(INSTALL
) $(BUILD_DIR
)/openpilotgcs_
$(GCS_BUILD_CONF
)/bin
/udp_test
$(DESTDIR
)$(bindir)
98 $(V1
) $(INSTALL
) $(BUILD_DIR
)/openpilotgcs_
$(GCS_BUILD_CONF
)/lib
/openpilotgcs
$(DESTDIR
)$(libdir)
99 $(V1
) $(INSTALL
) $(BUILD_DIR
)/openpilotgcs_
$(GCS_BUILD_CONF
)/share
/openpilotgcs
$(DESTDIR
)$(datadir)
100 $(V1
) $(INSTALL
) $(ROOT_DIR
)/package
/linux
/openpilot.desktop
$(DESTDIR
)$(datadir)/applications
101 $(V1
) $(INSTALL
) $(ROOT_DIR
)/package
/linux
/openpilot.png
$(DESTDIR
)$(datadir)/pixmaps
102 $(V1
) rm $(DESTDIR
)/$(datadir)/openpilotgcs
/translations
/Makefile