summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoey Castillo <jose.castillo@gmail.com>2021-08-28 13:58:21 -0400
committerJoey Castillo <jose.castillo@gmail.com>2021-08-28 14:13:03 -0400
commit39bba27d7dcbe8c22b3f6651f7ae3aa2d6a7c28c (patch)
treec36e22f6457839232b7f4e79cf2c92a2f4862f7e
parent3e45de7deade177b5caa921ee72a0e36300474c7 (diff)
downloadSensor-Watch-39bba27d7dcbe8c22b3f6651f7ae3aa2d6a7c28c.tar.gz
Sensor-Watch-39bba27d7dcbe8c22b3f6651f7ae3aa2d6a7c28c.tar.bz2
Sensor-Watch-39bba27d7dcbe8c22b3f6651f7ae3aa2d6a7c28c.zip
simplify project makefiles
-rwxr-xr-xSensor Watch BME280 Project/make/Makefile150
-rwxr-xr-xSensor Watch Buzzer Demo/make/Makefile150
-rwxr-xr-xSensor Watch Starter Project/make/Makefile181
-rw-r--r--make.mk113
-rw-r--r--rules.mk41
5 files changed, 185 insertions, 450 deletions
diff --git a/Sensor Watch BME280 Project/make/Makefile b/Sensor Watch BME280 Project/make/Makefile
index 9b8d25c0..358bb860 100755
--- a/Sensor Watch BME280 Project/make/Makefile
+++ b/Sensor Watch BME280 Project/make/Makefile
@@ -1,151 +1,9 @@
-##############################################################################
-BUILD = build
-BIN = watch
+include ../../make.mk
-##############################################################################
-.PHONY: all directory clean size
-
-CC = arm-none-eabi-gcc
-OBJCOPY = arm-none-eabi-objcopy
-SIZE = arm-none-eabi-size
-UF2 = python ../../utils/uf2conv.py
-
-ifeq ($(OS), Windows_NT)
- MKDIR = gmkdir
-else
- MKDIR = mkdir
-endif
-
-CFLAGS += -W -Wall --std=gnu99 -Os
-CFLAGS += -fno-diagnostics-show-caret
-CFLAGS += -fdata-sections -ffunction-sections
-CFLAGS += -funsigned-char -funsigned-bitfields
-CFLAGS += -mcpu=cortex-m0plus -mthumb
-CFLAGS += -MD -MP -MT $(BUILD)/$(*F).o -MF $(BUILD)/$(@F).d
-
-LDFLAGS += -mcpu=cortex-m0plus -mthumb
-LDFLAGS += -Wl,--gc-sections
-LDFLAGS += -Wl,--script=../../watch-library/linker/saml22j18.ld
-
-# If you add any additional directories with headers, add them to this list, e.g.
-# ../drivers/
INCLUDES += \
- -I../ \
- -I../../watch-library/include \
- -I../../watch-library/hal/ \
- -I../../watch-library/hal/documentation/ \
- -I../../watch-library/hal/include/ \
- -I../../watch-library/hal/src/ \
- -I../../watch-library/hal/utils/ \
- -I../../watch-library/hal/utils/include/ \
- -I../../watch-library/hal/utils/src/ \
- -I../../watch-library/hpl/ \
- -I../../watch-library/hpl/adc/ \
- -I../../watch-library/hpl/core/ \
- -I../../watch-library/hpl/dmac/ \
- -I../../watch-library/hpl/eic/ \
- -I../../watch-library/hpl/gclk/ \
- -I../../watch-library/hpl/mclk/ \
- -I../../watch-library/hpl/osc32kctrl/ \
- -I../../watch-library/hpl/oscctrl/ \
- -I../../watch-library/hpl/pm/ \
- -I../../watch-library/hpl/port/ \
- -I../../watch-library/hpl/rtc/ \
- -I../../watch-library/hpl/sercom/ \
- -I../../watch-library/hpl/slcd/ \
- -I../../watch-library/hpl/systick/ \
- -I../../watch-library/hpl/tcc/ \
- -I../../watch-library/hpl/tc/ \
- -I../../watch-library/hri/ \
- -I../../watch-library/config/ \
- -I../../watch-library/hw/ \
- -I../../watch-library/watch/ \
- -I../../watch-library
+ -I../
-# If you add any additional C files to your project, add them each to this list, e.g.
-# ../drivers/st25dv.c
SRCS += \
- ../app.c \
- ../../watch-library/main.c \
- ../../watch-library/startup_saml22.c \
- ../../watch-library/hw/driver_init.c \
- ../../watch-library/watch/watch.c \
- ../../watch-library/hal/src/hal_adc_sync.c \
- ../../watch-library/hal/src/hal_atomic.c \
- ../../watch-library/hal/src/hal_calendar.c \
- ../../watch-library/hal/src/hal_delay.c \
- ../../watch-library/hal/src/hal_ext_irq.c \
- ../../watch-library/hal/src/hal_gpio.c \
- ../../watch-library/hal/src/hal_i2c_m_sync.c \
- ../../watch-library/hal/src/hal_init.c \
- ../../watch-library/hal/src/hal_io.c \
- ../../watch-library/hal/src/hal_pwm.c \
- ../../watch-library/hal/src/hal_slcd_sync.c \
- ../../watch-library/hal/src/hal_sleep.c \
- ../../watch-library/hal/utils/src/utils_assert.c \
- ../../watch-library/hal/utils/src/utils_event.c \
- ../../watch-library/hal/utils/src/utils_list.c \
- ../../watch-library/hal/utils/src/utils_syscalls.c \
- ../../watch-library/hpl/adc/hpl_adc.c \
- ../../watch-library/hpl/core/hpl_core_m0plus_base.c \
- ../../watch-library/hpl/core/hpl_init.c \
- ../../watch-library/hpl/dmac/hpl_dmac.c \
- ../../watch-library/hpl/eic/hpl_eic.c \
- ../../watch-library/hpl/gclk/hpl_gclk.c \
- ../../watch-library/hpl/mclk/hpl_mclk.c \
- ../../watch-library/hpl/osc32kctrl/hpl_osc32kctrl.c \
- ../../watch-library/hpl/oscctrl/hpl_oscctrl.c \
- ../../watch-library/hpl/pm/hpl_pm.c \
- ../../watch-library/hpl/rtc/hpl_rtc.c \
- ../../watch-library/hpl/sercom/hpl_sercom.c \
- ../../watch-library/hpl/slcd/hpl_slcd.c \
- ../../watch-library/hpl/systick/hpl_systick.c \
- ../../watch-library/hpl/tcc/hpl_tcc.c \
- ../../watch-library/hpl/tc/hpl_tc.c
-
-DEFINES += \
- -D__SAML22J18A__ \
- -DDONT_USE_CMSIS_INIT
-
-CFLAGS += $(INCLUDES) $(DEFINES)
-
-OBJS = $(addprefix $(BUILD)/, $(notdir %/$(subst .c,.o, $(SRCS))))
-
-all: directory $(BUILD)/$(BIN).elf $(BUILD)/$(BIN).hex $(BUILD)/$(BIN).bin $(BUILD)/$(BIN).uf2 size
-
-$(BUILD)/$(BIN).elf: $(OBJS)
- @echo LD $@
- @$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
-
-$(BUILD)/$(BIN).hex: $(BUILD)/$(BIN).elf
- @echo OBJCOPY $@
- @$(OBJCOPY) -O ihex $^ $@
-
-$(BUILD)/$(BIN).bin: $(BUILD)/$(BIN).elf
- @echo OBJCOPY $@
- @$(OBJCOPY) -O binary $^ $@
-
-$(BUILD)/$(BIN).uf2: $(BUILD)/$(BIN).bin
- @echo UF2CONV $@
- @$(UF2) $^ -co $@
-
-install:
- @$(UF2) -D $(BUILD)/$(BIN).uf2
-
-%.o:
- @echo CC $@
- @$(CC) $(CFLAGS) $(filter %/$(subst .o,.c,$(notdir $@)), $(SRCS)) -c -o $@
-
-directory:
- @$(MKDIR) -p $(BUILD)
-
-size: $(BUILD)/$(BIN).elf
- @echo size:
- @$(SIZE) -t $^
-
-clean:
- @echo clean
- @-rm -rf $(BUILD)
-
--include $(wildcard $(BUILD)/*.d)
+ ../app.c
+include ../../rules.mk
diff --git a/Sensor Watch Buzzer Demo/make/Makefile b/Sensor Watch Buzzer Demo/make/Makefile
index 9b8d25c0..358bb860 100755
--- a/Sensor Watch Buzzer Demo/make/Makefile
+++ b/Sensor Watch Buzzer Demo/make/Makefile
@@ -1,151 +1,9 @@
-##############################################################################
-BUILD = build
-BIN = watch
+include ../../make.mk
-##############################################################################
-.PHONY: all directory clean size
-
-CC = arm-none-eabi-gcc
-OBJCOPY = arm-none-eabi-objcopy
-SIZE = arm-none-eabi-size
-UF2 = python ../../utils/uf2conv.py
-
-ifeq ($(OS), Windows_NT)
- MKDIR = gmkdir
-else
- MKDIR = mkdir
-endif
-
-CFLAGS += -W -Wall --std=gnu99 -Os
-CFLAGS += -fno-diagnostics-show-caret
-CFLAGS += -fdata-sections -ffunction-sections
-CFLAGS += -funsigned-char -funsigned-bitfields
-CFLAGS += -mcpu=cortex-m0plus -mthumb
-CFLAGS += -MD -MP -MT $(BUILD)/$(*F).o -MF $(BUILD)/$(@F).d
-
-LDFLAGS += -mcpu=cortex-m0plus -mthumb
-LDFLAGS += -Wl,--gc-sections
-LDFLAGS += -Wl,--script=../../watch-library/linker/saml22j18.ld
-
-# If you add any additional directories with headers, add them to this list, e.g.
-# ../drivers/
INCLUDES += \
- -I../ \
- -I../../watch-library/include \
- -I../../watch-library/hal/ \
- -I../../watch-library/hal/documentation/ \
- -I../../watch-library/hal/include/ \
- -I../../watch-library/hal/src/ \
- -I../../watch-library/hal/utils/ \
- -I../../watch-library/hal/utils/include/ \
- -I../../watch-library/hal/utils/src/ \
- -I../../watch-library/hpl/ \
- -I../../watch-library/hpl/adc/ \
- -I../../watch-library/hpl/core/ \
- -I../../watch-library/hpl/dmac/ \
- -I../../watch-library/hpl/eic/ \
- -I../../watch-library/hpl/gclk/ \
- -I../../watch-library/hpl/mclk/ \
- -I../../watch-library/hpl/osc32kctrl/ \
- -I../../watch-library/hpl/oscctrl/ \
- -I../../watch-library/hpl/pm/ \
- -I../../watch-library/hpl/port/ \
- -I../../watch-library/hpl/rtc/ \
- -I../../watch-library/hpl/sercom/ \
- -I../../watch-library/hpl/slcd/ \
- -I../../watch-library/hpl/systick/ \
- -I../../watch-library/hpl/tcc/ \
- -I../../watch-library/hpl/tc/ \
- -I../../watch-library/hri/ \
- -I../../watch-library/config/ \
- -I../../watch-library/hw/ \
- -I../../watch-library/watch/ \
- -I../../watch-library
+ -I../
-# If you add any additional C files to your project, add them each to this list, e.g.
-# ../drivers/st25dv.c
SRCS += \
- ../app.c \
- ../../watch-library/main.c \
- ../../watch-library/startup_saml22.c \
- ../../watch-library/hw/driver_init.c \
- ../../watch-library/watch/watch.c \
- ../../watch-library/hal/src/hal_adc_sync.c \
- ../../watch-library/hal/src/hal_atomic.c \
- ../../watch-library/hal/src/hal_calendar.c \
- ../../watch-library/hal/src/hal_delay.c \
- ../../watch-library/hal/src/hal_ext_irq.c \
- ../../watch-library/hal/src/hal_gpio.c \
- ../../watch-library/hal/src/hal_i2c_m_sync.c \
- ../../watch-library/hal/src/hal_init.c \
- ../../watch-library/hal/src/hal_io.c \
- ../../watch-library/hal/src/hal_pwm.c \
- ../../watch-library/hal/src/hal_slcd_sync.c \
- ../../watch-library/hal/src/hal_sleep.c \
- ../../watch-library/hal/utils/src/utils_assert.c \
- ../../watch-library/hal/utils/src/utils_event.c \
- ../../watch-library/hal/utils/src/utils_list.c \
- ../../watch-library/hal/utils/src/utils_syscalls.c \
- ../../watch-library/hpl/adc/hpl_adc.c \
- ../../watch-library/hpl/core/hpl_core_m0plus_base.c \
- ../../watch-library/hpl/core/hpl_init.c \
- ../../watch-library/hpl/dmac/hpl_dmac.c \
- ../../watch-library/hpl/eic/hpl_eic.c \
- ../../watch-library/hpl/gclk/hpl_gclk.c \
- ../../watch-library/hpl/mclk/hpl_mclk.c \
- ../../watch-library/hpl/osc32kctrl/hpl_osc32kctrl.c \
- ../../watch-library/hpl/oscctrl/hpl_oscctrl.c \
- ../../watch-library/hpl/pm/hpl_pm.c \
- ../../watch-library/hpl/rtc/hpl_rtc.c \
- ../../watch-library/hpl/sercom/hpl_sercom.c \
- ../../watch-library/hpl/slcd/hpl_slcd.c \
- ../../watch-library/hpl/systick/hpl_systick.c \
- ../../watch-library/hpl/tcc/hpl_tcc.c \
- ../../watch-library/hpl/tc/hpl_tc.c
-
-DEFINES += \
- -D__SAML22J18A__ \
- -DDONT_USE_CMSIS_INIT
-
-CFLAGS += $(INCLUDES) $(DEFINES)
-
-OBJS = $(addprefix $(BUILD)/, $(notdir %/$(subst .c,.o, $(SRCS))))
-
-all: directory $(BUILD)/$(BIN).elf $(BUILD)/$(BIN).hex $(BUILD)/$(BIN).bin $(BUILD)/$(BIN).uf2 size
-
-$(BUILD)/$(BIN).elf: $(OBJS)
- @echo LD $@
- @$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
-
-$(BUILD)/$(BIN).hex: $(BUILD)/$(BIN).elf
- @echo OBJCOPY $@
- @$(OBJCOPY) -O ihex $^ $@
-
-$(BUILD)/$(BIN).bin: $(BUILD)/$(BIN).elf
- @echo OBJCOPY $@
- @$(OBJCOPY) -O binary $^ $@
-
-$(BUILD)/$(BIN).uf2: $(BUILD)/$(BIN).bin
- @echo UF2CONV $@
- @$(UF2) $^ -co $@
-
-install:
- @$(UF2) -D $(BUILD)/$(BIN).uf2
-
-%.o:
- @echo CC $@
- @$(CC) $(CFLAGS) $(filter %/$(subst .o,.c,$(notdir $@)), $(SRCS)) -c -o $@
-
-directory:
- @$(MKDIR) -p $(BUILD)
-
-size: $(BUILD)/$(BIN).elf
- @echo size:
- @$(SIZE) -t $^
-
-clean:
- @echo clean
- @-rm -rf $(BUILD)
-
--include $(wildcard $(BUILD)/*.d)
+ ../app.c
+include ../../rules.mk
diff --git a/Sensor Watch Starter Project/make/Makefile b/Sensor Watch Starter Project/make/Makefile
index e9a581d5..bf6d4232 100755
--- a/Sensor Watch Starter Project/make/Makefile
+++ b/Sensor Watch Starter Project/make/Makefile
@@ -1,158 +1,23 @@
-##############################################################################
-BUILD = build
-BIN = watch
-
-##############################################################################
-.PHONY: all directory clean size
-
-CC = arm-none-eabi-gcc
-OBJCOPY = arm-none-eabi-objcopy
-SIZE = arm-none-eabi-size
-UF2 = python ../../utils/uf2conv.py
-
-ifeq ($(OS), Windows_NT)
- MKDIR = gmkdir
-else
- MKDIR = mkdir
-endif
-
-CFLAGS += -W -Wall --std=gnu99 -Os
-CFLAGS += -fno-diagnostics-show-caret
-CFLAGS += -fdata-sections -ffunction-sections
-CFLAGS += -funsigned-char -funsigned-bitfields
-CFLAGS += -mcpu=cortex-m0plus -mthumb
-CFLAGS += -MD -MP -MT $(BUILD)/$(*F).o -MF $(BUILD)/$(@F).d
-
-LDFLAGS += -mcpu=cortex-m0plus -mthumb
-LDFLAGS += -Wl,--gc-sections
-LDFLAGS += -Wl,--script=../../watch-library/linker/saml22j18.ld
-
-# If you add any additional directories with headers, add them to this list, e.g.
-# ../drivers/
-INCLUDES += \
- -I../ \
- -I../../tinyusb/src \
- -I../../watch-library/include \
- -I../../watch-library/hal/ \
- -I../../watch-library/hal/documentation/ \
- -I../../watch-library/hal/include/ \
- -I../../watch-library/hal/src/ \
- -I../../watch-library/hal/utils/ \
- -I../../watch-library/hal/utils/include/ \
- -I../../watch-library/hal/utils/src/ \
- -I../../watch-library/hpl/ \
- -I../../watch-library/hpl/adc/ \
- -I../../watch-library/hpl/core/ \
- -I../../watch-library/hpl/dmac/ \
- -I../../watch-library/hpl/eic/ \
- -I../../watch-library/hpl/gclk/ \
- -I../../watch-library/hpl/mclk/ \
- -I../../watch-library/hpl/osc32kctrl/ \
- -I../../watch-library/hpl/oscctrl/ \
- -I../../watch-library/hpl/pm/ \
- -I../../watch-library/hpl/port/ \
- -I../../watch-library/hpl/rtc/ \
- -I../../watch-library/hpl/sercom/ \
- -I../../watch-library/hpl/slcd/ \
- -I../../watch-library/hpl/systick/ \
- -I../../watch-library/hpl/tcc/ \
- -I../../watch-library/hpl/tc/ \
- -I../../watch-library/hri/ \
- -I../../watch-library/config/ \
- -I../../watch-library/hw/ \
- -I../../watch-library/watch/ \
- -I../../watch-library
-
-# If you add any additional C files to your project, add them each to this list, e.g.
-# ../drivers/st25dv.c
-SRCS += \
- ../app.c \
- ../../tinyusb/src/tusb.c \
- ../../tinyusb/src/common/tusb_fifo.c \
- ../../tinyusb/src/class/cdc/cdc_device.c \
- ../../tinyusb/src/device/usbd.c \
- ../../tinyusb/src/device/usbd_control.c \
- ../../tinyusb/src/portable/microchip/samd/dcd_samd.c \
- ../../watch-library/main.c \
- ../../watch-library/startup_saml22.c \
- ../../watch-library/hw/driver_init.c \
- ../../watch-library/watch/watch.c \
- ../../watch-library/hal/src/hal_adc_sync.c \
- ../../watch-library/hal/src/hal_atomic.c \
- ../../watch-library/hal/src/hal_calendar.c \
- ../../watch-library/hal/src/hal_delay.c \
- ../../watch-library/hal/src/hal_ext_irq.c \
- ../../watch-library/hal/src/hal_gpio.c \
- ../../watch-library/hal/src/hal_i2c_m_sync.c \
- ../../watch-library/hal/src/hal_init.c \
- ../../watch-library/hal/src/hal_io.c \
- ../../watch-library/hal/src/hal_pwm.c \
- ../../watch-library/hal/src/hal_slcd_sync.c \
- ../../watch-library/hal/src/hal_sleep.c \
- ../../watch-library/hal/utils/src/utils_assert.c \
- ../../watch-library/hal/utils/src/utils_event.c \
- ../../watch-library/hal/utils/src/utils_list.c \
- ../../watch-library/hal/utils/src/utils_syscalls.c \
- ../../watch-library/hpl/adc/hpl_adc.c \
- ../../watch-library/hpl/core/hpl_core_m0plus_base.c \
- ../../watch-library/hpl/core/hpl_init.c \
- ../../watch-library/hpl/dmac/hpl_dmac.c \
- ../../watch-library/hpl/eic/hpl_eic.c \
- ../../watch-library/hpl/gclk/hpl_gclk.c \
- ../../watch-library/hpl/mclk/hpl_mclk.c \
- ../../watch-library/hpl/osc32kctrl/hpl_osc32kctrl.c \
- ../../watch-library/hpl/oscctrl/hpl_oscctrl.c \
- ../../watch-library/hpl/pm/hpl_pm.c \
- ../../watch-library/hpl/rtc/hpl_rtc.c \
- ../../watch-library/hpl/sercom/hpl_sercom.c \
- ../../watch-library/hpl/slcd/hpl_slcd.c \
- ../../watch-library/hpl/systick/hpl_systick.c \
- ../../watch-library/hpl/tcc/hpl_tcc.c \
- ../../watch-library/hpl/tc/hpl_tc.c
-
-DEFINES += \
- -D__SAML22J18A__ \
- -DDONT_USE_CMSIS_INIT
-
-CFLAGS += $(INCLUDES) $(DEFINES)
-
-OBJS = $(addprefix $(BUILD)/, $(notdir %/$(subst .c,.o, $(SRCS))))
-
-all: directory $(BUILD)/$(BIN).elf $(BUILD)/$(BIN).hex $(BUILD)/$(BIN).bin $(BUILD)/$(BIN).uf2 size
-
-$(BUILD)/$(BIN).elf: $(OBJS)
- @echo LD $@
- @$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
-
-$(BUILD)/$(BIN).hex: $(BUILD)/$(BIN).elf
- @echo OBJCOPY $@
- @$(OBJCOPY) -O ihex $^ $@
-
-$(BUILD)/$(BIN).bin: $(BUILD)/$(BIN).elf
- @echo OBJCOPY $@
- @$(OBJCOPY) -O binary $^ $@
-
-$(BUILD)/$(BIN).uf2: $(BUILD)/$(BIN).bin
- @echo UF2CONV $@
- @$(UF2) $^ -co $@
-
-install:
- @$(UF2) -D $(BUILD)/$(BIN).uf2
-
-%.o:
- @echo CC $@
- @$(CC) $(CFLAGS) $(filter %/$(subst .o,.c,$(notdir $@)), $(SRCS)) -c -o $@
-
-directory:
- @$(MKDIR) -p $(BUILD)
-
-size: $(BUILD)/$(BIN).elf
- @echo size:
- @$(SIZE) -t $^
-
-clean:
- @echo clean
- @-rm -rf $(BUILD)
-
--include $(wildcard $(BUILD)/*.d)
-
+# Leave this line at the top of the file; it has all the watch library sources and includes.
+include ../../make.mk
+
+# If you add any other subdirectories with header files you wish to include, add them after ../
+# Note that you will need to add a backslash at the end of any line you wish to continue, i.e.
+# INCLUDES += \
+# -I../ \
+# -I../drivers/ \
+# -I../utils/
+INCLUDES += \
+ -I../ \
+
+# If you add any other source files you wish to compile, add them after ../app.c
+# Note that you will need to add a backslash at the end of any line you wish to continue, i.e.
+# SRCS += \
+# ../app.c \
+# ../drivers/bmp280.c \
+# ../utils/temperature.c
+SRCS += \
+ ../app.c \
+
+# Leave this line at the bottom of the file; it has all the targets for making your project.
+include ../../rules.mk
diff --git a/make.mk b/make.mk
new file mode 100644
index 00000000..38dcdf57
--- /dev/null
+++ b/make.mk
@@ -0,0 +1,113 @@
+##############################################################################
+BUILD = ./build
+BIN = watch
+
+##############################################################################
+.PHONY: all directory clean size
+
+CC = arm-none-eabi-gcc
+OBJCOPY = arm-none-eabi-objcopy
+SIZE = arm-none-eabi-size
+UF2 = python ../../utils/uf2conv.py
+
+ifeq ($(OS), Windows_NT)
+ MKDIR = gmkdir
+else
+ MKDIR = mkdir
+endif
+
+CFLAGS += -W -Wall --std=gnu99 -Os
+CFLAGS += -fno-diagnostics-show-caret
+CFLAGS += -fdata-sections -ffunction-sections
+CFLAGS += -funsigned-char -funsigned-bitfields
+CFLAGS += -mcpu=cortex-m0plus -mthumb
+CFLAGS += -MD -MP -MT $(BUILD)/$(*F).o -MF $(BUILD)/$(@F).d
+
+LDFLAGS += -mcpu=cortex-m0plus -mthumb
+LDFLAGS += -Wl,--gc-sections
+LDFLAGS += -Wl,--script=../../watch-library/linker/saml22j18.ld
+
+# If you add any additional directories with headers, add them to this list, e.g.
+# ../drivers/
+INCLUDES += \
+ -I../../tinyusb/src \
+ -I../../watch-library/include \
+ -I../../watch-library/hal/ \
+ -I../../watch-library/hal/documentation/ \
+ -I../../watch-library/hal/include/ \
+ -I../../watch-library/hal/src/ \
+ -I../../watch-library/hal/utils/ \
+ -I../../watch-library/hal/utils/include/ \
+ -I../../watch-library/hal/utils/src/ \
+ -I../../watch-library/hpl/ \
+ -I../../watch-library/hpl/adc/ \
+ -I../../watch-library/hpl/core/ \
+ -I../../watch-library/hpl/dmac/ \
+ -I../../watch-library/hpl/eic/ \
+ -I../../watch-library/hpl/gclk/ \
+ -I../../watch-library/hpl/mclk/ \
+ -I../../watch-library/hpl/osc32kctrl/ \
+ -I../../watch-library/hpl/oscctrl/ \
+ -I../../watch-library/hpl/pm/ \
+ -I../../watch-library/hpl/port/ \
+ -I../../watch-library/hpl/rtc/ \
+ -I../../watch-library/hpl/sercom/ \
+ -I../../watch-library/hpl/slcd/ \
+ -I../../watch-library/hpl/systick/ \
+ -I../../watch-library/hpl/tcc/ \
+ -I../../watch-library/hpl/tc/ \
+ -I../../watch-library/hri/ \
+ -I../../watch-library/config/ \
+ -I../../watch-library/hw/ \
+ -I../../watch-library/watch/ \
+ -I../../watch-library
+
+# If you add any additional C files to your project, add them each to this list, e.g.
+# ../drivers/st25dv.c
+SRCS += \
+ ../../tinyusb/src/tusb.c \
+ ../../tinyusb/src/common/tusb_fifo.c \
+ ../../tinyusb/src/class/cdc/cdc_device.c \
+ ../../tinyusb/src/device/usbd.c \
+ ../../tinyusb/src/device/usbd_control.c \
+ ../../tinyusb/src/portable/microchip/samd/dcd_samd.c \
+ ../../watch-library/main.c \
+ ../../watch-library/startup_saml22.c \
+ ../../watch-library/hw/driver_init.c \
+ ../../watch-library/watch/watch.c \
+ ../../watch-library/hal/src/hal_adc_sync.c \
+ ../../watch-library/hal/src/hal_atomic.c \
+ ../../watch-library/hal/src/hal_calendar.c \
+ ../../watch-library/hal/src/hal_delay.c \
+ ../../watch-library/hal/src/hal_ext_irq.c \
+ ../../watch-library/hal/src/hal_gpio.c \
+ ../../watch-library/hal/src/hal_i2c_m_sync.c \
+ ../../watch-library/hal/src/hal_init.c \
+ ../../watch-library/hal/src/hal_io.c \
+ ../../watch-library/hal/src/hal_pwm.c \
+ ../../watch-library/hal/src/hal_slcd_sync.c \
+ ../../watch-library/hal/src/hal_sleep.c \
+ ../../watch-library/hal/utils/src/utils_assert.c \
+ ../../watch-library/hal/utils/src/utils_event.c \
+ ../../watch-library/hal/utils/src/utils_list.c \
+ ../../watch-library/hal/utils/src/utils_syscalls.c \
+ ../../watch-library/hpl/adc/hpl_adc.c \
+ ../../watch-library/hpl/core/hpl_core_m0plus_base.c \
+ ../../watch-library/hpl/core/hpl_init.c \
+ ../../watch-library/hpl/dmac/hpl_dmac.c \
+ ../../watch-library/hpl/eic/hpl_eic.c \
+ ../../watch-library/hpl/gclk/hpl_gclk.c \
+ ../../watch-library/hpl/mclk/hpl_mclk.c \
+ ../../watch-library/hpl/osc32kctrl/hpl_osc32kctrl.c \
+ ../../watch-library/hpl/oscctrl/hpl_oscctrl.c \
+ ../../watch-library/hpl/pm/hpl_pm.c \
+ ../../watch-library/hpl/rtc/hpl_rtc.c \
+ ../../watch-library/hpl/sercom/hpl_sercom.c \
+ ../../watch-library/hpl/slcd/hpl_slcd.c \
+ ../../watch-library/hpl/systick/hpl_systick.c \
+ ../../watch-library/hpl/tcc/hpl_tcc.c \
+ ../../watch-library/hpl/tc/hpl_tc.c
+
+DEFINES += \
+ -D__SAML22J18A__ \
+ -DDONT_USE_CMSIS_INIT
diff --git a/rules.mk b/rules.mk
new file mode 100644
index 00000000..cc442f67
--- /dev/null
+++ b/rules.mk
@@ -0,0 +1,41 @@
+CFLAGS += $(INCLUDES) $(DEFINES)
+
+OBJS = $(addprefix $(BUILD)/, $(notdir %/$(subst .c,.o, $(SRCS))))
+
+all: directory $(BUILD)/$(BIN).elf $(BUILD)/$(BIN).hex $(BUILD)/$(BIN).bin $(BUILD)/$(BIN).uf2 size
+
+$(BUILD)/$(BIN).elf: $(OBJS)
+ @echo LD $@
+ @$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
+
+$(BUILD)/$(BIN).hex: $(BUILD)/$(BIN).elf
+ @echo OBJCOPY $@
+ @$(OBJCOPY) -O ihex $^ $@
+
+$(BUILD)/$(BIN).bin: $(BUILD)/$(BIN).elf
+ @echo OBJCOPY $@
+ @$(OBJCOPY) -O binary $^ $@
+
+$(BUILD)/$(BIN).uf2: $(BUILD)/$(BIN).bin
+ @echo UF2CONV $@
+ @$(UF2) $^ -co $@
+
+install:
+ @$(UF2) -D $(BUILD)/$(BIN).uf2
+
+%.o:
+ @echo CC $@
+ @$(CC) $(CFLAGS) $(filter %/$(subst .o,.c,$(notdir $@)), $(SRCS)) -c -o $@
+
+directory:
+ @$(MKDIR) -p $(BUILD)
+
+size: $(BUILD)/$(BIN).elf
+ @echo size:
+ @$(SIZE) -t $^
+
+clean:
+ @echo clean
+ @-rm -rf $(BUILD)
+
+-include $(wildcard $(BUILD)/*.d)