diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..fcc9dee --- /dev/null +++ b/.cvsignore @@ -0,0 +1,2 @@ +O.* +.*ignore diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000..a8caae8 --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,64 @@ +include /ioc/tools/driver.makefile + +MODULE = ecmc_plugin_grbl + +BUILDCLASSES = Linux +ARCH_FILTER = deb10% + +# Run 7.0.6 for now +EXCLUDE_VERSIONS+=3 7.0.5 7.0.7 + +IGNORE_MODULES += asynMotor +IGNORE_MODULES += motorBase + +USR_CXXFLAGS += -std=c++17 +OPT_CXXFLAGS_YES = -O3 + +# dependencies +ECmasterECMC_VERSION = v1.1.0 +motorECMC_VERSION = 7.0.7-ESS +ecmc_VERSION = v9.0.1_RC1 + +################################################################################ +# THIS RELATES TO THE EtherCAT MASTER LIBRARY +# IT IS OF PARAMOUNT IMPORTANCE TO LOAD THE PROPER KERNEL MODULE +# ################################################################################ +USR_LDFLAGS += -lethercat + +EC_MASTER_LIB = ${EPICS_MODULES}/ECmasterECMC/${ECmasterECMC_VERSION}/R${EPICSVERSION}/lib/${T_A} +USR_LDFLAGS += -Wl,-rpath=${EC_MASTER_LIB} +USR_LDFLAGS += -L ${EC_MASTER_LIB} + +BASE_DIR = ecmc_plugin_motion +SRC_DIR = $(BASE_DIR)/src +DB_DIR = $(BASE_DIR)/Db + +APPSRC_GRBL := grbl +APPSRC_ECMC := ecmc_plugin_grbl + +SOURCES+=$(APPSRC_GRBL)/grbl_motion_control.c +SOURCES+=$(APPSRC_GRBL)/grbl_gcode.c +SOURCES+=$(APPSRC_GRBL)/grbl_spindle_control.c +SOURCES+=$(APPSRC_GRBL)/grbl_coolant_control.c +SOURCES+=$(APPSRC_GRBL)/grbl_serial.c +SOURCES+=$(APPSRC_GRBL)/grbl_protocol.c +SOURCES+=$(APPSRC_GRBL)/grbl_stepper.c +SOURCES+=$(APPSRC_GRBL)/grbl_eeprom.c +SOURCES+=$(APPSRC_GRBL)/grbl_settings.c +SOURCES+=$(APPSRC_GRBL)/grbl_planner.c +SOURCES+=$(APPSRC_GRBL)/grbl_nuts_bolts.c +SOURCES+=$(APPSRC_GRBL)/grbl_limits.c +SOURCES+=$(APPSRC_GRBL)/grbl_jog.c +SOURCES+=$(APPSRC_GRBL)/grbl_print.c +SOURCES+=$(APPSRC_GRBL)/grbl_probe.c +SOURCES+=$(APPSRC_GRBL)/grbl_report.c +SOURCES+=$(APPSRC_GRBL)/grbl_system.c + + +#SOURCES += $(foreach d,${SRC_DIR}, $(wildcard $d/*.c) $(wildcard $d/*.cpp)) +HEADERS += $(foreach d,${SRC_DIR}, $(wildcard $d/*.h)) +DBDS += $(foreach d,${SRC_DIR}, $(wildcard $d/*.dbd)) +#SCRIPTS += $(BASE_DIR)/startup.cmd +#SCRIPTS += $(BASE_DIR)/addMotionObj.cmd +TEMPLATES += $(wildcard $(DB_DIR)/*.template) + diff --git a/Makefile b/Makefile deleted file mode 100644 index 9e20a43..0000000 --- a/Makefile +++ /dev/null @@ -1,106 +0,0 @@ -# Part of Grbl -# -# Copyright (c) 2009-2011 Simen Svale Skogsrud -# Copyright (c) 2012-2016 Sungeun K. Jeon for Gnea Research LLC -# -# Grbl is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Grbl is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Grbl. If not, see . - - -# This is a prototype Makefile. Modify it according to your needs. -# You should at least check the settings for -# DEVICE ....... The AVR device you compile for -# CLOCK ........ Target AVR clock rate in Hertz -# OBJECTS ...... The object files created from your source files. This list is -# usually the same as the list of source files with suffix ".o". -# PROGRAMMER ... Options to avrdude which define the hardware you use for -# uploading to the AVR and the interface where this hardware -# is connected. -# FUSES ........ Parameters for avrdude to flash the fuses appropriately. - -DEVICE ?= atmega328p -CLOCK = 16000000 -PROGRAMMER ?= -c avrisp2 -P usb -SOURCE = main.c motion_control.c gcode.c spindle_control.c coolant_control.c serial.c \ - protocol.c stepper.c eeprom.c settings.c planner.c nuts_bolts.c limits.c jog.c\ - print.c probe.c report.c system.c -BUILDDIR = build -SOURCEDIR = grbl -# FUSES = -U hfuse:w:0xd9:m -U lfuse:w:0x24:m -FUSES = -U hfuse:w:0xd2:m -U lfuse:w:0xff:m - -# Tune the lines below only if you know what you are doing: - -AVRDUDE = avrdude $(PROGRAMMER) -p $(DEVICE) -B 10 -F - -# Compile flags for avr-gcc v4.8.1. Does not produce -flto warnings. -# COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) -I. -ffunction-sections - -# Compile flags for avr-gcc v4.9.2 compatible with the IDE. Or if you don't care about the warnings. -COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) -I. -ffunction-sections -flto - - -OBJECTS = $(addprefix $(BUILDDIR)/,$(notdir $(SOURCE:.c=.o))) - -# symbolic targets: -all: grbl.hex - -$(BUILDDIR)/%.o: $(SOURCEDIR)/%.c - $(COMPILE) -MMD -MP -c $< -o $@ - -.S.o: - $(COMPILE) -x assembler-with-cpp -c $< -o $(BUILDDIR)/$@ -# "-x assembler-with-cpp" should not be necessary since this is the default -# file type for the .S (with capital S) extension. However, upper case -# characters are not always preserved on Windows. To ensure WinAVR -# compatibility define the file type manually. - -#.c.s: - $(COMPILE) -S $< -o $(BUILDDIR)/$@ - -flash: all - $(AVRDUDE) -U flash:w:grbl.hex:i - -fuse: - $(AVRDUDE) $(FUSES) - -# Xcode uses the Makefile targets "", "clean" and "install" -install: flash fuse - -# if you use a bootloader, change the command below appropriately: -load: all - bootloadHID grbl.hex - -clean: - rm -f grbl.hex $(BUILDDIR)/*.o $(BUILDDIR)/*.d $(BUILDDIR)/*.elf - -# file targets: -$(BUILDDIR)/main.elf: $(OBJECTS) - $(COMPILE) -o $(BUILDDIR)/main.elf $(OBJECTS) -lm -Wl,--gc-sections - -grbl.hex: $(BUILDDIR)/main.elf - rm -f grbl.hex - avr-objcopy -j .text -j .data -O ihex $(BUILDDIR)/main.elf grbl.hex - avr-size --format=berkeley $(BUILDDIR)/main.elf -# If you have an EEPROM section, you must also create a hex file for the -# EEPROM and add it to the "flash" target. - -# Targets for code debugging and analysis: -disasm: main.elf - avr-objdump -d $(BUILDDIR)/main.elf - -cpp: - $(COMPILE) -E $(SOURCEDIR)/main.c - -# include generated header dependencies --include $(BUILDDIR)/$(OBJECTS:.o=.d)