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 +