cross platform make

This commit is contained in:
Luca Conte 2025-03-09 22:32:47 +01:00
parent d39fde8b05
commit ffeb906f7b
2 changed files with 55 additions and 7 deletions

View File

@ -1,5 +1,33 @@
GLEW_LIBS=$(shell pkgconf glew --libs)
GLFW_LIBS=$(shell pkgconf glfw3 --libs)
# Detect OS
OS := $(shell uname)
cg1: src/main.c src/log.c src/shader.c
gcc -o cg1 $^ $(GLEW_LIBS) $(GLFW_LIBS)
GLEW_LIBS := $(shell pkgconf --libs glew)
GLFW_LIBS := $(shell pkgconf --libs glfw3)
# Set libraries for Linux
ifeq ($(OS), Linux)
OPENGL_LIB := -lGL
# Set libraries for Windows (MSYS2)
else
OPENGL_LIB := -lopengl32
endif
# Source files
SRC := src/main.c src/log.c src/shader.c
# Output binary
OUT := cg1
# Compiler
CC := gcc
# Build target
$(OUT): $(SRC)
$(CC) -o $(OUT) $(SRC) $(GLEW_LIBS) $(GLFW_LIBS) $(OPENGL_LIB)
# Clean target
clean:
rm -f $(OUT)
# mark phony targets
.PHONY: clean

View File

@ -1,6 +1,6 @@
Dieses Readme soll helfen, die Umgebung für die Computergrafik Übungen einzurichten.
**Merke:** Ich nutze [Meson](https://mesonbuild.com/) statt Make, somit wird `pkgconf` nicht benötigt, und Cross-Platform Entwicklung wird etwas erleichtert.
**Merke:** Ich nutze [Meson](https://mesonbuild.com/) statt Make, somit wird `pkgconf` nicht benötigt, und Cross-Platform Entwicklung wird etwas erleichtert. Diese Anleitung ist jedoch auch für Makefile Nutzer geeignet.
Unter Linux ist das Bearbeiten der Aufgaben am einfachsten. Dieses Readme beschreibt aber auch Möglichkeiten, die Aufgaben unter Windows zu bearbeiten, sowie eine Anleitung für macOS.
@ -31,6 +31,11 @@ Meson und Ninja (wird für Meson benötigt) installieren
sudo apt install meson ninja-build
```
pkgconf installieren (wird für Make benötigt)
```
sudo apt install pkgconf
```
GLFW installieren
```
sudo apt install libglfw3 libglfw3-dev
@ -144,13 +149,28 @@ Der Code dieses Projekts ist außerdem darauf ausgelegt, dass die Datei aus dem
Nach den oben beschriebenen Schritten sollte das Projekt kompiliert und ausgeführt werden können.
## Meson
```bash
meson setup build
meson compile -C build
meson setup build # muss nur beim ersten Mal ausgeführt werden
meson compile -C build # kompiliert das Projekt
# Ausführen
./build/cg1 # linux
./build/cg1.exe # windows
```
## Make
```bash
make # kompiliert das Projekt
# Ausführen
./cg1 # linux
./cg1.exe # windows
```
# MacOS
**Merke:** Da ich selber kein MacOS kann ich diese Schritte leider nicht replizieren. Diese Anleitung wurde geschrieben von Paul-Christoph Otte (Danke!), welcher 2024 dieses Modul belegt hat. Entsprechend wird hier *nicht* Meson genutzt.