Source: linuxcnc
Section: misc
Priority: optional
Maintainer: LinuxCNC Developers <emc-developers@lists.sourceforge.net>
Uploaders: Jeff Epler <jepler@gmail.com>, Sebastian Kuzminsky <seb@highlab.com>
Build-Depends:
    @DEBHELPER@,
    @PYTHON_PACKAGING_DEPENDS@,
    @KERNEL_DEPENDS_BUILD@,
    @KERNEL_HEADERS@,
    @MODUTILS_DEPENDS@,
    @EXTRA_BUILD@,
    docbook-xsl,
    asciidoc,
    ghostscript,
    imagemagick,
    asciidoc-dblatex,
    autoconf,
    automake,
    bwidget (>= 1.7),
    desktop-file-utils,
    gettext,
    intltool,
    libboost-python-dev,
    libepoxy-dev,
    libgl1-mesa-dev | libgl1-mesa-swx11-dev,
    libglu1-mesa-dev,
    libgtk2.0-dev,
    libgtk-3-dev,
    libmodbus-dev (>= 3.0),
    @LIBREADLINE_DEV@,
    libtirpc-dev,
    libusb-1.0-0-dev,
    libxmu-dev,
    netcat-traditional | netcat-openbsd | netcat,
    po4a,
    procps,
    psmisc,
    python3,
    python3-dev,
    python3-tk,
    python3-xlib,
    tcl@TCLTK_VERSION@-dev,
    tclx,
    tk@TCLTK_VERSION@-dev,
    yapps2
Build-Depends-Indep:
    @DOC_DEPENDS@,
Standards-Version: 4.6.1
Homepage: https://linuxcnc.org/
Vcs-Browser: https://github.com/LinuxCNC/linuxcnc
Vcs-Git: https://github.com/LinuxCNC/linuxcnc.git
Rules-Requires-Root: binary-targets

Package: @MAIN_PACKAGE_NAME@-dev
Architecture: any
Conflicts: linuxcnc-sim-dev, @OTHER_MAIN_PACKAGE_NAME@-dev
Depends: ${misc:Depends},
         ${python3:Depends},
         @KERNEL_HEADERS@,
         python3-serial,
         @MAIN_PACKAGE_NAME@ (= ${binary:Version}),
         udev,
         @YAPPS_RUNTIME@
Section: devel
Description: PC based motion controller for real-time Linux
 LinuxCNC is a fully-realised CNC machine controller that can interpret
 machine-control programs (such as G-code), plan trajectories and finally
 output low-level signals to machine control hardware
 .
 LinuxCNC is modular and in principle the HAL (hardware abstraction layer),
 pluggable interpreters and variety of hardware drivers mean that it can
 control almost any software-defined physical system.
 .
 LinuxCNC relies on a realtime kernel to support real-time motion control,
 typically updating the position waypoints every 1mS and reacting to
 input within tens of microseconds.
 .
 Modules exist to use the low-level parts of LinuxCNC as a motion-control
 client for OpenPnP. Interfaces exist for ROS (the Robot Operating System)
 with which LinuxCNC has considerable overlap.
 .
 LinuxCNC supports arbitrary kinematics (the mapping between coordinate
 space and actuator space) and can control both parallel (eg Stewart
 platform) and serial (eg robot arm) systems in addition to conventional
 cartesian machine tools.
 .
 LinuxCNC supports 9 cartesian axes and 16 "Joints" (individual actuators)
 though the joint limit is build-time configurable.
 .
 A variety of interface hardware is supported including Modbus, EtherCAT,
 analogue +/-10V velocity control and Step/Dir. Step/Dir is supported by
 several hardware interfaces, including, but not limited to, the legacy
 Parallel Port.
 .
 A Hardware Abstraction Layer allows for great flexibility in signal
 mapping between the controller and the driver hardware. An extensive
 library of modules allow for complex signal processing within the HAL
 layer. For specialised tasks custom HAL components can be created using
 a C-like syntax and installed with the supplied tools.
 .
 By default LinuxCNC supports RS274 G-code but is extendable to parse
 other grammars such as STEP-NC or Gerber through support for pluggable
 interpreters.
 .
 If you want a computer to control things in the real world
 then LinuxCNC can do it. It is especially applicable to systems that
 are required to follow accurate paths described in cartesian space but
 has been used for numerous other applications.
 .
 This package provides all files that you need to embed parts of LinuxCNC
 in your developments.
