Skip to content

Commit 8ba3d3e

Browse files
committed
debian: Declaring deps required only for docs/testing
1 parent 05047ee commit 8ba3d3e

2 files changed

Lines changed: 40 additions & 26 deletions

File tree

debian/control.top.in

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ Build-Depends:
1010
@KERNEL_HEADERS@,
1111
@MODUTILS_DEPENDS@,
1212
@EXTRA_BUILD@,
13-
docbook-xsl,
14-
asciidoc,
15-
ghostscript,
16-
groff-base,
17-
imagemagick,
18-
asciidoc-dblatex,
13+
docbook-xsl <!nodocs>,
14+
asciidoc <!nodocs>,
15+
ghostscript <!nodocs>,
16+
groff-base <!nodocs>,
17+
imagemagick <!nodocs>,
18+
asciidoc-dblatex <!nodocs>,
1919
autoconf,
2020
automake,
2121
bwidget (>= 1.7),
@@ -34,7 +34,7 @@ Build-Depends:
3434
libusb-1.0-0-dev,
3535
libxmu-dev,
3636
netcat-traditional | netcat-openbsd | netcat,
37-
po4a,
37+
po4a <!nodocs>,
3838
procps,
3939
psmisc,
4040
python3,
@@ -44,12 +44,12 @@ Build-Depends:
4444
tcl@TCLTK_VERSION@-dev,
4545
tclx,
4646
tk@TCLTK_VERSION@-dev,
47-
xvfb,
47+
xvfb <!nocheck>,
4848
yapps2
4949
Build-Depends-Indep:
5050
@DOC_DEPENDS@,
51-
Build-Conflicts: libjpeg8-dev, libtiff4-dev
52-
Standards-Version: 4.6.1
51+
Build-Conflicts-Arch: libjpeg8-dev, libtiff4-dev
52+
Standards-Version: 4.7.0
5353
Homepage: https://linuxcnc.org/
5454
Vcs-Browser: https://github.com/LinuxCNC/linuxcnc
5555
Vcs-Git: https://github.com/LinuxCNC/linuxcnc.git
@@ -69,23 +69,23 @@ Section: devel
6969
Description: PC based motion controller for real-time Linux
7070
LinuxCNC is a fully-realised CNC machine controller that can interpret
7171
machine-control programs (such as G-code), plan trajectories and finally
72-
output low-level signals to machine control hardware
72+
output low-level signals to machine control hardware.
7373
.
74-
LinuxCNC is modular and in principle the HAL (hardware abstraction layer),
75-
pluggable interpreters and variety of hardware drivers mean that it can
76-
control almost any software-defined physical system.
74+
LinuxCNC is modular, thus in principle its HAL (hardware abstraction
75+
layer) together with pluggable interpreters and variety of hardware
76+
drivers can control almost any software-defined physical system.
7777
.
7878
LinuxCNC relies on a realtime kernel to support real-time motion control,
79-
typically updating the position waypoints every 1mS and reacting to
80-
input within tens of microseconds.
79+
typically updating the position waypoints every millisecond and reacting
80+
to input within tens of microseconds.
8181
.
8282
Modules exist to use the low-level parts of LinuxCNC as a motion-control
8383
client for OpenPnP. Interfaces exist for ROS (the Robot Operating System)
8484
with which LinuxCNC has considerable overlap.
8585
.
8686
LinuxCNC supports arbitrary kinematics (the mapping between coordinate
87-
space and actuator space) and can control both parallel (eg Stewart
88-
platform) and serial (eg robot arm) systems in addition to conventional
87+
space and actuator space) and can control both parallel (e.g., Stewart
88+
platform) and serial (e.g., robot arm) systems in addition to conventional
8989
cartesian machine tools.
9090
.
9191
LinuxCNC supports 9 cartesian axes and 16 "Joints" (individual actuators)

debian/rules.in

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ export TIME=$(shell LANG=C date --date='@$(TIMESTAMP)' '+%T')
3232

3333
kernel_version = @KERNEL_VERSION@
3434
configure_realtime_arg = @CONFIGURE_REALTIME_ARG@
35+
ifeq (,$(filter nodocs,$(DEB_BUILD_OPTIONS)))
3536
enable_build_documentation = @ENABLE_BUILD_DOCUMENTATION@
37+
endif
3638
SRCDIR = $(CURDIR)/src
3739
DESTDIR=$(CURDIR)/debian/tmp
3840
DEV_PACKAGE_NAME=@MAIN_PACKAGE_NAME@-dev
@@ -55,18 +57,25 @@ override_dh_auto_build-arch:
5557
dh_auto_build -- build-software
5658

5759
override_dh_auto_build-indep:
60+
ifeq (,$(filter nodocs,$(DEB_BUILD_OPTIONS)))
5861
ifneq "$(enable_build_documentation)" ""
5962
dh_auto_build -- manpages
6063
dh_auto_build -- translateddocs
6164
dh_auto_build -- docs
6265
endif
66+
endif
6367

6468
override_dh_auto_clean:
6569
if [ -r src/Makefile.inc -a -r src/config.status ]; then \
6670
dh_auto_clean; \
6771
py3clean .; \
6872
fi
6973

74+
override_dh_auto_test:
75+
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
76+
dh_auto_test
77+
endif
78+
7079
override_dh_auto_install-arch:
7180
# Install all architecture-dependent libraries and executables
7281
# in DESTDIR (the staging dir for the main package).
@@ -79,24 +88,30 @@ override_dh_auto_install-arch:
7988
rm -f $(DESTDIR)/usr/share/doc/@MAIN_PACKAGE_NAME@/examples/sample-configs/*/*position*.txt
8089

8190
override_dh_installdocs-arch:
82-
# Sample configs go in `usr/share/doc/linuxcnc` (not `.../doc/@MAIN_PACKAGE_NAME@`)
83-
# because that's where the `linuxcnc` launcher script looks for them,
84-
# and that's inconvenient to change.
91+
ifeq (,$(filter nodocs,$(DEB_BUILD_OPTIONS)))
92+
# Sample configs go in `usr/share/doc/linuxcnc` (not
93+
# `.../doc/@MAIN_PACKAGE_NAME@`) because that's where the
94+
# `linuxcnc` launcher script looks for them, and that's
95+
# inconvenient to change.
8596
dh_installdocs --doc-main-package=@MAIN_PACKAGE_NAME@ --package=@MAIN_PACKAGE_NAME@
8697
mkdir -p debian/@MAIN_PACKAGE_NAME@/usr/share/doc/linuxcnc
8798
mv debian/@MAIN_PACKAGE_NAME@/usr/share/doc/@MAIN_PACKAGE_NAME@/examples debian/@MAIN_PACKAGE_NAME@/usr/share/doc/linuxcnc
8899

89100
dh_installdocs --doc-main-package=@MAIN_PACKAGE_NAME@ --package=@MAIN_PACKAGE_NAME@-dev
90-
101+
endif
91102

92103
override_dh_auto_install-indep:
104+
ifeq (,$(filter nodocs,$(DEB_BUILD_OPTIONS)))
93105
DESTDIR=$(DESTDIR) $(MAKE) -C src install-docs install-doc
94106
# Remove the docs we just built that we don't have debs for yet...
95107
rm -f $(DESTDIR)/usr/share/doc/linuxcnc/*_nb.pdf
108+
endif
96109

97110
override_dh_installdocs-indep:
98-
# The G-code quick reference html docs are built as `docs/html/${LANG}/gcode.html`.
99-
# We install them into `/usr/share/doc/@MAIN_PACKAGE_NAME@/` in each
111+
ifeq (,$(filter nodocs,$(DEB_BUILD_OPTIONS)))
112+
# The G-code quick reference html docs are built as
113+
# `docs/html/${LANG}/gcode.html`. We install them
114+
# into `/usr/share/doc/@MAIN_PACKAGE_NAME@/` in each
100115
# linuxcnc-doc-${LANG} package, then rename them there (except
101116
# for the English one) to include the language in the filename,
102117
# so they don't collide when we install all the doc debs.
@@ -116,8 +131,7 @@ override_dh_installdocs-indep:
116131
$(RM) debian/tmp/usr/share/doc/linuxcnc/LinuxCNC_*_$$l.pdf; \
117132
done
118133
$(RM) debian/tmp/usr/share/doc/linuxcnc/*_es.adoc
119-
120-
134+
endif
121135

122136
override_dh_compress:
123137
dh_compress -X.pdf -X.txt -X.hal -X.ini -X.clp -X.var -X.nml -X.tbl -X.xml -Xsample-configs

0 commit comments

Comments
 (0)