aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoe <rbo@gmx.us>2025-09-20 16:31:48 +0200
committerjoe <rbo@gmx.us>2025-09-20 16:31:48 +0200
commit4baef6078163edf6ad761e37d74dbf9330f9670b (patch)
treee163f2784fa7dfe9f8ba447e0d3103c7b43e9891
parentgood (diff)
downloadhalfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.tar.gz
halfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.tar.bz2
halfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.tar.xz
halfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.tar.zst
halfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.zip
c
Diffstat (limited to '')
-rw-r--r--Makefile59
-rw-r--r--src/c_halfcab.c62
-rw-r--r--src/c_halfcab.h53
-rw-r--r--src/esp/halfcab/halfcab.ino (renamed from esp/halfcab/halfcab.ino)2
4 files changed, 168 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 8f6cc11..9a77d03 100644
--- a/Makefile
+++ b/Makefile
@@ -16,20 +16,29 @@
#
# GNU Makefile
-default: esp
+default: debug
+
+SHELL := /bin/sh
+OS = $(shell /usr/bin/uname)
ESP_DIR = esp/halfcab/
OBJ_DIR = obj/
SRC_DIR = src/
-TRGT_DIR = ./
+TRG_DIR = ./
ESP_FQBN = esp8266:esp8266:d1_mini
ESP_DEV = /dev/ttyUSB0
-TRGT_NAME = hc
+TARGET = hc
ESP_NAME = halfcab.ino
+SRC_NAME = c_halfcab
+
+SRCS = $(addprefix ${SRC_DIR}, $(addsuffix .c, ${SRC_NAME}))
+INCS = $(addprefix ${SRC_DIR}, $(addsuffix .h, ${SRC_NAME}))
+OBJS = $(patsubst ${SRC_DIR}%.c, ${OBJ_DIR}%.c.o, ${SRCS})
+
ARDUINO = arduino-cli
CC = cc
CFLAGS = -std=c89
@@ -40,16 +49,52 @@ CFLAGS += -pedantic
CFLAGS += -march=haswell
CFLAGS += -O2
CFLAGS += -pipe
+# ifeq (${OS}, Linux)
+# CFLAGS += -D_GNU_SOURCE
+# endif
+
+ifeq (${OS}, Linux)
+CINCS = -isystem /usr/include
+endif
+
+MKDIR = mkdir -p
+RMDIR = rmdir
+RM = rm -rf
+
+${OBJ_DIR}%.c.o: ${SRC_DIR}%.c ${INCS} Makefile
+ ${CC} ${CFLAGS} -c ${CINCS} -o $@ $<
+
+${OBJ_DIR}:
+ ${MKDIR} ${OBJ_DIR}
+
+${TRG_DIR}${TARGET}: ${OBJ_DIR} ${OBJS}
+ ${CC} ${CFLAGS} -o $@ ${OBJS} ${LDFLAGS}
+
+debug: CFLAGS += -O0
+debug: CFLAGS += -g3
+debug: all
+
+asan: CFLAGS += -O0
+asan: CFLAGS += -g3
+asan: CFLAGS += -fsanitize=address
+asan: all
+
+clean:
+ ${RM} ${OBJS} vgcore.* ${TARGET}.core ${TARGET} ${OBJ_DIR}
esp:
- ${ARDUINO} compile -v -j8 --warnings all --fqbn ${ESP_FQBN} ${ESP_DIR}
- ${ARDUINO} upload -p ${ESP_DEV} --fqbn ${ESP_FQBN} ${ESP_DIR}
+ ${ARDUINO} compile -v -j8 --warnings all --fqbn ${ESP_FQBN} ${SRC_DIR}${ESP_DIR}
+ ${ARDUINO} upload -p ${ESP_DEV} --fqbn ${ESP_FQBN} ${SRC_DIR}${ESP_DIR}
attach:
- ${ARDUINO} board attach -p ${ESP_DEV} -b ${ESP_FQBN} ${ESP_DIR}${ESP_NAME}
+ ${ARDUINO} board attach -p ${ESP_DEV} -b ${ESP_FQBN} ${SRC_DIR}${ESP_DIR}${ESP_NAME}
mon:
${ARDUINO} monitor -p ${ESP_DEV} -b ${ESP_FQBN} --config 115200 --config 'rts=off' --config 'dtr=off' --quiet
+all: esp ${TRG_DIR}${TARGET}
+
+run: debug
+ ${TRG_DIR}${TARGET}
-.PHONY: esp attach mon
+.PHONY: esp attach mon hc
diff --git a/src/c_halfcab.c b/src/c_halfcab.c
new file mode 100644
index 0000000..68943f0
--- /dev/null
+++ b/src/c_halfcab.c
@@ -0,0 +1,62 @@
+/*
+ * =====================
+ * ==== ===============
+ * =====================
+ * === === ==== ==
+ * ==== == == = =
+ * ==== == = == =
+ * ==== == = == ====
+ * ==== == = == = =
+ * = = === ==== ==
+ * == ================
+ * =====================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2025, joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the organization nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * halfcab: src/c_halfcab.c
+ * Sat, 20 Sep 2025 16:24:57 +0200
+ * joe <rbo@gmx.us>
+ *
+ * the main
+ */
+
+#include <stdlib.h>
+
+int
+main
+(int argc,
+ const char* argv[])
+{
+ (void)argc;
+ (void)argv;
+ return (EXIT_SUCCESS);
+}
diff --git a/src/c_halfcab.h b/src/c_halfcab.h
new file mode 100644
index 0000000..f938c8f
--- /dev/null
+++ b/src/c_halfcab.h
@@ -0,0 +1,53 @@
+/*
+ * =====================
+ * ==== ===============
+ * =====================
+ * === === ==== ==
+ * ==== == == = =
+ * ==== == = == =
+ * ==== == = == ====
+ * ==== == = == = =
+ * = = === ==== ==
+ * == ================
+ * =====================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2025, joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the organization nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * halfcab: src/c_halfcab.h
+ * Sat, 20 Sep 2025 16:24:57 +0200
+ * joe <rbo@gmx.us>
+ */
+
+#ifndef __C_HALFCAB_H__
+#define __C_HALFCAB_H__
+
+#endif /* __C_HALFCAB_H__ */
diff --git a/esp/halfcab/halfcab.ino b/src/esp/halfcab/halfcab.ino
index b5a0d49..5af220d 100644
--- a/esp/halfcab/halfcab.ino
+++ b/src/esp/halfcab/halfcab.ino
@@ -42,7 +42,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
- * halfcab: eps/halfcab.ino
+ * halfcab: esp/halfcab/halfcab.ino
* Sat, 20 Sep 2025 00:17:38 +0200
* joe <rbo@gmx.us>
*