diff --git a/.gitignore b/.gitignore index 4c158e61722..d3baec6aa47 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ share/menus/CNC.menu share/desktop-directories/linuxcnc-cnc.directory share/desktop-directories/linuxcnc-ref.directory share/desktop-directories/linuxcnc-doc.directory +share/linuxcnc/mesa_modbus.c.tmpl src/modules.order /configs/*/emc.nml !/configs/common/emc.nml diff --git a/debian/linuxcnc-dev.files b/debian/linuxcnc-dev.files new file mode 100644 index 00000000000..1280f14ea94 --- /dev/null +++ b/debian/linuxcnc-dev.files @@ -0,0 +1,12 @@ +usr/include/linuxcnc/*.hh +usr/include/linuxcnc/*.h +usr/lib/*.a +usr/lib/*.so +usr/share/man/man1/halcompile.1 +usr/share/man/man3/* +usr/bin/halcompile +usr/bin/modcompile +usr/share/linuxcnc/mesa_modbus.c.tmpl +usr/share/doc/linuxcnc-dev/* +usr/share/linuxcnc/Makefile.modinc +usr/realtime-4.19.195-rtai-amd64/modules/linuxcnc/Module.symvers diff --git a/debian/linuxcnc-uspace-dev.install b/debian/linuxcnc-uspace-dev.install index 80a59b53d8d..b7f6d141155 100644 --- a/debian/linuxcnc-uspace-dev.install +++ b/debian/linuxcnc-uspace-dev.install @@ -1,7 +1,9 @@ usr/bin/halcompile +usr/bin/modcompile usr/include/linuxcnc usr/lib/liblinuxcnc.a usr/lib/*.so usr/share/linuxcnc/Makefile.modinc +usr/share/linuxcnc/mesa_modbus.c.tmpl usr/share/man/man1/halcompile.1 usr/share/man/man3 diff --git a/debian/linuxcnc.install b/debian/linuxcnc.install new file mode 100644 index 00000000000..e42c1cfbb2a --- /dev/null +++ b/debian/linuxcnc.install @@ -0,0 +1,263 @@ +etc + +usr/bin/5axisgui +usr/bin/axis +usr/bin/axis-remote +usr/bin/classicladder +usr/bin/debuglevel +usr/bin/elbpcom +usr/bin/genserkins +usr/bin/gladevcp +usr/bin/gladevcp_demo +usr/bin/gmoccapy +usr/bin/gremlin_view +usr/bin/gs2_vfd +usr/bin/gscreen +usr/bin/hal-histogram +usr/bin/hal_input +usr/bin/hal_manualtoolchange +usr/bin/halcmd +usr/bin/halcmd_twopass +usr/bin/halmeter +usr/bin/halreport +usr/bin/halrmt +usr/bin/halrun +usr/bin/halsampler +usr/bin/halscope +usr/bin/halshow +usr/bin/halstreamer +usr/bin/haltcl +usr/bin/halui +usr/bin/hbmgui +usr/bin/hexagui +usr/bin/hy_gt_vfd +usr/bin/hy_vfd +usr/bin/image-to-gcode +usr/bin/inivar +usr/bin/io +usr/bin/iov2 +usr/bin/latency-histogram +usr/bin/latency-plot +usr/bin/latency-test +usr/bin/lineardelta +usr/bin/linuxcnc +usr/bin/linuxcnc_info +usr/bin/linuxcnc_module_helper +usr/bin/linuxcnc_var +usr/bin/linuxcnclcd +usr/bin/linuxcncmkdesktop +usr/bin/linuxcncrsh +usr/bin/linuxcncsvr +usr/bin/linuxcnctop +usr/bin/maho600gui +usr/bin/max5gui +usr/bin/mb2hal +usr/bin/mdi +usr/bin/melfagui +usr/bin/milltask +usr/bin/millturngui +usr/bin/mitsub_vfd +usr/bin/z_level_compensation +usr/bin/monitor-xhc-hb04 +usr/bin/motion-logger +usr/bin/moveoff_gui +usr/bin/ngcgui +usr/bin/panelui +usr/bin/pi500_vfd +usr/bin/pmx485 +usr/bin/pmx485-test +usr/bin/pncconf +usr/bin/puma560gui +usr/bin/pumagui +usr/bin/pyngcgui +usr/bin/pyui +usr/bin/pyvcp +usr/bin/pyvcp_demo +usr/bin/qtplasmac-cfg2prefs +usr/bin/qtplasmac-materials +usr/bin/qtplasmac-plasmac2qt +usr/bin/qtplasmac_gcode +usr/bin/qtvcp +usr/bin/rotarydelta +usr/bin/rs274 +usr/bin/rtapi_app +usr/bin/scaragui +usr/bin/schedrmt +usr/bin/scorbot-er-3 +usr/bin/sendkeys +usr/bin/shuttle +usr/bin/sim-torch +usr/bin/sim_pin +usr/bin/simulate_probe +usr/bin/stepconf +usr/bin/svd-ps_vfd +usr/bin/teach-in +usr/bin/thermistor +usr/bin/tool_mmap_read +usr/bin/tool_watch +usr/bin/tooledit +usr/bin/touchy +usr/bin/update_ini +usr/bin/vfdb_vfd +usr/bin/vfs11_vfd +usr/bin/wj200_vfd +usr/bin/xhc-hb04 +usr/bin/xhc-hb04-accels +usr/bin/xhc-whb04b-6 +usr/bin/xyzac-trt-gui +usr/bin/xyzbc-trt-gui + +usr/lib/lib*.so.* +usr/lib/linuxcnc +usr/lib/python3 +usr/lib/tcltk + +usr/share/axis +usr/share/glade3 +usr/share/gmoccapy +usr/share/gscreen +usr/share/gtksourceview-2.0 + +usr/share/applications/linuxcnc.desktop +usr/share/applications/linuxcnc-latency.desktop +usr/share/applications/linuxcnc-latency-histogram.desktop +usr/share/applications/linuxcnc-pncconf.desktop +usr/share/applications/linuxcnc-stepconf.desktop + +usr/share/linuxcnc/gremlin_view.ui +usr/share/linuxcnc/gscreen2.glade +usr/share/linuxcnc/gscreen.glade +usr/share/linuxcnc/hallib/ +usr/share/linuxcnc/linuxcnc_big.nml +usr/share/linuxcnc/linuxcnc.gif +usr/share/linuxcnc/linuxcncicon.png +usr/share/linuxcnc/linuxcnc.nml +usr/share/linuxcnc/linuxcnc-wizard.gif +usr/share/linuxcnc/ncfiles/ +usr/share/linuxcnc/pncconf/ +usr/share/linuxcnc/popupkeyboard.ui +usr/share/linuxcnc/stepconf/ +usr/share/linuxcnc/touchy.glade + +usr/share/locale + +usr/share/man/man1/5axisgui.1 +usr/share/man/man1/axis.1 +usr/share/man/man1/axis-remote.1 +usr/share/man/man1/debuglevel.1 +usr/share/man/man1/elbpcom.1 +usr/share/man/man1/gladevcp.1 +usr/share/man/man1/gladevcp_demo.1 +usr/share/man/man1/gmoccapy.1 +usr/share/man/man1/gremlin_view.1 +usr/share/man/man1/gs2_vfd.1 +usr/share/man/man1/gscreen.1 +usr/share/man/man1/halcmd.1 +usr/share/man/man1/halcmd_twopass.1 +usr/share/man/man1/hal-histogram.1 +usr/share/man/man1/hal_input.1 +usr/share/man/man1/hal_manualtoolchange.1 +usr/share/man/man1/halmeter.1 +usr/share/man/man1/hal_parport.1 +usr/share/man/man1/halreport.1 +usr/share/man/man1/halrmt.1 +usr/share/man/man1/halrun.1 +usr/share/man/man1/halsampler.1 +usr/share/man/man1/halscope.1 +usr/share/man/man1/halshow.1 +usr/share/man/man1/halstreamer.1 +usr/share/man/man1/haltcl.1 +usr/share/man/man1/halui.1 +usr/share/man/man1/hbmgui.1 +usr/share/man/man1/hexagui.1 +usr/share/man/man1/hy_gt_vfd.1 +usr/share/man/man1/hy_vfd.1 +usr/share/man/man1/image-to-gcode.1 +usr/share/man/man1/inivar.1 +usr/share/man/man1/io.1 +usr/share/man/man1/iocontrol.1 +usr/share/man/man1/iov2.1 +usr/share/man/man1/latency-histogram.1 +usr/share/man/man1/latency-plot.1 +usr/share/man/man1/latency-test.1 +usr/share/man/man1/lineardelta.1 +usr/share/man/man1/linuxcnc.1 +usr/share/man/man1/linuxcnc_info.1 +usr/share/man/man1/linuxcnclcd.1 +usr/share/man/man1/linuxcncmkdesktop.1 +usr/share/man/man1/linuxcnc_module_helper.1 +usr/share/man/man1/linuxcncrsh.1 +usr/share/man/man1/linuxcncsvr.1 +usr/share/man/man1/linuxcnctop.1 +usr/share/man/man1/linuxcnc_var.1 +usr/share/man/man1/maho600gui.1 +usr/share/man/man1/max5gui.1 +usr/share/man/man1/mb2hal.1 +usr/share/man/man1/mdi.1 +usr/share/man/man1/mdro.1 +usr/share/man/man1/milltask.1 +usr/share/man/man1/mitsub_vfd.1 +usr/share/man/man1/monitor-xhc-hb04.1 +usr/share/man/man1/motion-logger.1 +usr/share/man/man1/moveoff_gui.1 +usr/share/man/man1/ngcgui.1 +usr/share/man/man1/panelui.1 +usr/share/man/man1/pi500_vfd.1 +usr/share/man/man1/pmx485.1 +usr/share/man/man1/pmx485-test.1 +usr/share/man/man1/pncconf.1 +usr/share/man/man1/puma560gui.1 +usr/share/man/man1/pumagui.1 +usr/share/man/man1/pyngcgui.1 +usr/share/man/man1/pyui.1 +usr/share/man/man1/pyvcp.1 +usr/share/man/man1/pyvcp_demo.1 +usr/share/man/man1/qtplasmac-cfg2prefs.1 +usr/share/man/man1/qtplasmac-materials.1 +usr/share/man/man1/qtplasmac-plasmac2qt.1 +usr/share/man/man1/qtplasmac-setup.1 +usr/share/man/man1/qtvcp.1 +usr/share/man/man1/rotarydelta.1 +usr/share/man/man1/rs274.1 +usr/share/man/man1/rtapi_app.1 +usr/share/man/man1/scaragui.1 +usr/share/man/man1/schedrmt.1 +usr/share/man/man1/scorbot-er-3.1 +usr/share/man/man1/sendkeys.1 +usr/share/man/man1/shuttle.1 +usr/share/man/man1/sim_pin.1 +usr/share/man/man1/sim-torch.1 +usr/share/man/man1/simulate_probe.1 +usr/share/man/man1/stepconf.1 +usr/share/man/man1/svd-ps_vfd.1 +usr/share/man/man1/teach-in.1 +usr/share/man/man1/thermistor.1 +usr/share/man/man1/tooledit.1 +usr/share/man/man1/touchy.1 +usr/share/man/man1/update_ini.1 +usr/share/man/man1/vfdb_vfd.1 +usr/share/man/man1/vfs11_vfd.1 +usr/share/man/man1/wj200_vfd.1 +usr/share/man/man1/xhc-hb04.1 +usr/share/man/man1/xhc-hb04-accels.1 +usr/share/man/man1/xhc-whb04b-6.1 +usr/share/man/man1/xyzac-trt-gui.1 +usr/share/man/man1/xyzbc-trt-gui.1 + +usr/share/man/man9 + +usr/share/qtvcp + +src/emc/usr_intf/axis/etc usr/share/doc/linuxcnc/axis +src/emc/usr_intf/axis/README usr/share/doc/linuxcnc/axis + +debian/linuxcnc-uspace.metainfo.xml usr/share/metainfo + +debian/extras/etc / +debian/extras/lib / + +debian/extras/usr/share/icons usr/share + +debian/extras/usr/share/desktop-directories/linuxcnc-cnc.directory usr/share/desktop-directories +debian/extras/usr/share/desktop-directories/linuxcnc-doc.directory usr/share/desktop-directories +debian/extras/usr/share/desktop-directories/linuxcnc-ref.directory usr/share/desktop-directories diff --git a/docs/src/drivers/mesa_modbus.adoc b/docs/src/drivers/mesa_modbus.adoc index 7dc1e6fac3d..8907f753378 100644 --- a/docs/src/drivers/mesa_modbus.adoc +++ b/docs/src/drivers/mesa_modbus.adoc @@ -293,13 +293,13 @@ necessary except in the special case of the 'modcompile all' command, which will compile and install all .mod files in the current directory. ---- -modcompile my_file.mod +sudo modcompile my_file.mod ---- or ---- -modcompile all +sudo modcompile all ---- "modcompile" is provided by the "linuxcnc-dev" package. diff --git a/src/Makefile b/src/Makefile index 434bb0608a5..0d83608453c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -766,6 +766,8 @@ install-kernel-indep: install-dirs $(FILE) ../share/gtksourceview-2.0/language-specs/*.lang $(DESTDIR)$(datadir)/gtksourceview-2.0/language-specs/ + $(FILE) ../src/hal/drivers/mesa-hostmot2/modbus/*.tmpl $(DESTDIR)$(prefix)/share/linuxcnc/ + install-kernel-indep: install-python install-python: install-dirs $(DIR) $(DESTDIR)$(SITEPY) $(DESTDIR)$(SITEPY)/rs274 diff --git a/src/hal/drivers/mesa-hostmot2/modbus/mesa_modbus.c b/src/hal/drivers/mesa-hostmot2/modbus/mesa_modbus.c.tmpl similarity index 100% rename from src/hal/drivers/mesa-hostmot2/modbus/mesa_modbus.c rename to src/hal/drivers/mesa-hostmot2/modbus/mesa_modbus.c.tmpl diff --git a/src/hal/drivers/mesa-hostmot2/modbus/modcompile b/src/hal/drivers/mesa-hostmot2/modbus/modcompile.py old mode 100755 new mode 100644 similarity index 78% rename from src/hal/drivers/mesa-hostmot2/modbus/modcompile rename to src/hal/drivers/mesa-hostmot2/modbus/modcompile.py index 25bcc7afc9b..cec7d21dc30 --- a/src/hal/drivers/mesa-hostmot2/modbus/modcompile +++ b/src/hal/drivers/mesa-hostmot2/modbus/modcompile.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python3 +#!/usr/bin/python3 # Build Realtime Modbus modules to use the Mesa FPGA card PktUART @@ -42,8 +42,7 @@ def find_modinc(): global modinc if modinc: return modinc d = os.path.abspath(os.path.dirname(os.path.dirname(sys.argv[0]))) - for e in ['%s/src' % os.environ["EMC2_HOME"], 'etc/linuxcnc', - '/etc/linuxcnc', 'share/linuxcnc']: + for e in ['src', 'etc/linuxcnc', '/etc/linuxcnc', 'share/linuxcnc']: e = os.path.join(d, e, 'Makefile.modinc') if os.path.exists(e): modinc = e @@ -59,17 +58,19 @@ def find_modinc(): names = [sys.argv[1]] tempdir = tempfile.mkdtemp() +BASE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "..")) print(os.path.join(tempdir, "mesa_modbus.c")) -os.symlink(os.path.join(os.path.abspath("."), "mesa_modbus.c"), os.path.join(tempdir, "mesa_modbus.c")) +os.symlink(os.path.join(BASE, "share", "linuxcnc", "mesa_modbus.c.tmpl"), os.path.join(tempdir, "mesa_modbus.c")) for f in names: + b = os.path.splitext(os.path.basename(f))[0] # The module definition is #included as mesa_modbus.h m = open(os.path.join(tempdir, "Makefile"), "w") - print("obj-m += %s.o" % os.path.splitext(f)[0],file=m) - print("%s-objs:=mesa_modbus.o" % os.path.splitext(f)[0],file=m) + print("obj-m += %s.o" % b,file=m) + print("%s-objs:=mesa_modbus.o" % b,file=m) print("include %s" % find_modinc(), file=m) - print("EXTRA_CFLAGS += -I%s" % os.path.abspath('.'), file=m) - print("EXTRA_CFLAGS += -DMODFILE=%s" % f, file=m) - print("EXTRA_CFLAGS += -D_COMP_NAME_=%s" % os.path.splitext(f)[0], file=m) + print("EXTRA_CFLAGS += -I%s" % tempdir, file=m) + print("EXTRA_CFLAGS += -DMODFILE=%s" % os.path.abspath(f), file=m) + print("EXTRA_CFLAGS += -D_COMP_NAME_=%s" % b, file=m) m.close() os.system("touch mesa_modbus.c") # Force a recompile result = os.system("cd %s && make -S modules install" % tempdir) diff --git a/src/hal/utils/Submakefile b/src/hal/utils/Submakefile index b9933381d0f..1ec91b283ef 100644 --- a/src/hal/utils/Submakefile +++ b/src/hal/utils/Submakefile @@ -96,7 +96,16 @@ endif $(ECHO) Copying python script $(notdir $@) $(Q)(echo '#!$(PYTHON)'; sed '1 { /^#!/d; }' $<) > $@.tmp && chmod +x $@.tmp && mv -f $@.tmp $@ -TARGETS += ../bin/halcompile ../bin/elbpcom +../bin/modcompile: ../bin/%: hal/drivers/mesa-hostmot2/modbus/%.py + @$(ECHO) Syntax checking python script $(notdir $@) + $(Q)$(PYTHON) -m py_compile $< + $(ECHO) Copying python script $(notdir $@) + $(Q)(echo '#!$(PYTHON)'; sed '1 { /^#!/d; }' $<) > $@.tmp && chmod +x $@.tmp && mv -f $@.tmp $@ +../share/linuxcnc/mesa_modbus.c.tmpl: hal/drivers/mesa-hostmot2/modbus/mesa_modbus.c.tmpl + $(ECHO) Copying Modbus template $(notdir $@) + $(Q)cp -f $< $@ + +TARGETS += ../bin/halcompile ../bin/elbpcom ../bin/modcompile ../share/linuxcnc/mesa_modbus.c.tmpl objects/%.py: %.g @mkdir -p $(dir $@) $(Q)$(YAPPS) $< $@