summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile18
-rw-r--r--src/main.c61
2 files changed, 18 insertions, 61 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..2068926
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,18 @@
+#
+# Copyright (c) 2026 Jacob McDonnell
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+LIB = Matfile
+SHLIB_MAJOR = 1
+SHLIB_MINOR = 1
+CFLAGS = -Wall \
+ -Werror \
+ -Wextra \
+ -Wpedantic \
+ -std=c17 \
+ -I../include
+SRCS = matfile.c
+
+include ../mk/mk/mcd.lib.mk
+
diff --git a/src/main.c b/src/main.c
deleted file mode 100644
index dda67fe..0000000
--- a/src/main.c
+++ /dev/null
@@ -1,61 +0,0 @@
-#include <assert.h>
-#include <stdio.h>
-#include <string.h>
-#include "matfile.h"
-
-double floats[5] = {0.0, 1.0, 3.14, 2.72, 5.5};
-
-int main(void) {
- FILE *fp = fopen("test.mat", "w");
- if (fp == NULL) {
- perror("fopen");
- return -1;
- }
-
- // Write File Header
- assert(write_header(fp));
-
- // Setup Array Dimensions
- int32_t dims[2] = {1, 5};
- mData_t dim_data;
- dim_data.data = (void *)&dims;
- dim_data.tag.type = miINT32;
- dim_data.tag.size = 8;
-
- // Array Flags
- mArrayFlags_t flags;
- memset(&flags, 0, sizeof(flags));
- flags.global = 0;
- flags.complex = 0;
- flags.logical = 0;
- flags.class = mxDOUBLE_CLASS;
-
- mData_t flags_data;
- flags_data.tag.type = miUINT32;
- flags_data.tag.size = 8;
- flags_data.data = (void *)&flags;
-
- // Name
- mSmallData_t name;
- name.tag.type = miINT8;
- name.tag.size = 1;
- name.data = 'A';
-
- mData_t data;
- data.tag.type = miDOUBLE;
- data.tag.size = sizeof(floats);
- data.data = (void *)floats;
-
- mTag_t array;
- array.type = miMATRIX;
- array.size = 96;
-
- fwrite((void *)&array, 1, sizeof(array), fp);
- write_data(fp, flags_data);
- write_data(fp, dim_data);
- write_small_data(fp, name);
- write_data(fp, data);
-
- fclose(fp);
- return 0;
-}