From c64c92e1cc2713990869d7b1008bb1cc9ef0a53c Mon Sep 17 00:00:00 2001
From: retoor <retoor@molodetz.nl>
Date: Sun, 30 Mar 2025 01:09:06 +0100
Subject: [PATCH] Update.

---
 Dockerfile  | 37 +++++++++++++++++++++++++++++++++++++
 Makefile    | 28 +++++++++++++++++++++++-----
 compose.yml | 10 ++++++++++
 3 files changed, 70 insertions(+), 5 deletions(-)
 create mode 100644 Dockerfile
 create mode 100644 compose.yml

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..f3f7112
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,37 @@
+# Use an official Ubuntu as a base image
+FROM ubuntu:latest
+
+# Set environment variables to avoid interactive prompts during package installation
+ENV DEBIAN_FRONTEND=noninteractive
+
+# Update the package list and install required packages
+RUN apt-get update -y && \
+    apt-get install -y \
+    gcc \
+    make \
+    libreadline-dev \
+    libncurses5-dev \
+    libcurl4-openssl-dev \
+    libssl-dev \
+    libjson-c-dev \
+    libsqlite3-dev \
+    python3-dev \
+    && apt-get clean \
+    && rm -rf /var/lib/apt/lists/*
+
+RUN mkdir /r
+# Set the working directory
+WORKDIR /r
+
+# Copy the source files into the container
+COPY . .
+
+# Build the application
+RUN make build
+
+RUN cp r /usr/local/bin/r
+
+WORKDIR /app
+
+# Command to run the application (optional, can be overridden)
+CMD ["r", "--verbose"]
diff --git a/Makefile b/Makefile
index d8990f2..1924a40 100644
--- a/Makefile
+++ b/Makefile
@@ -1,28 +1,35 @@
-all: build build_rd build_free build_rpylib run
+all: build build_rd build_free build_rpylib run build_mingw
 
 # Variables for compiler and flags
 CC = gcc
 CFLAGS = -Ofast -Werror -Wall -lreadline -lncurses -lcurl -lssl -lcrypto -ljson-c -lm -lsqlite3
 
+# MinGW Variables
+MINGW_CC = x86_64-w64-mingw32-gcc  # Change to x86_64-w64-mingw32-gcc for 64-bit
+MINGW_CFLAGS = -Ofast -Werror -Wall -lreadline -lcurl -lssl -lcrypto -ljson-c -lm -lglob
+
 # Targets
 build: 
 	$(CC) main.c $(CFLAGS) -o r
-	publish r
+	-@publish r
 
 build_free:
 	$(CC) -DOLLAMA main.c $(CFLAGS) -o rf
-	publish rf
+	@publish rf
 
 build_rd:
 	$(CC) -DRD main.c $(CFLAGS) -o rd
 	publish rd
 
-
-
 build_rpylib:
 	$(CC) -shared -o rpylib.so -fPIC rpylib.c -lpython3.12 `python3-config --includes` -I/usr/include/CL -ljson-c -lcurl -lsqlite3
 	publish rpylib.so
 
+# New MinGW build target
+build_mingw:
+	$(MINGW_CC) main.c $(MINGW_CFLAGS) -o r.exe
+	publish r.exe
+
 run: 
 	./r --verbose
 
@@ -31,3 +38,14 @@ run_free:
 
 run_rd:
 	./rd --verbose 
+
+run_mingw:
+	./r.exe --verbose
+
+docker: docker_make docker_run
+
+docker_make:
+	docker build -t r .
+
+docker_run:
+	docker run -v .:/app --rm -it r
diff --git a/compose.yml b/compose.yml
new file mode 100644
index 0000000..251f6d3
--- /dev/null
+++ b/compose.yml
@@ -0,0 +1,10 @@
+services:
+  shell:
+    build: .
+    command: sh
+    tty: true 
+    stdin_open: true 
+    working_dir: /home
+    volumes:
+      - ./:/home
+