cross platform make
This commit is contained in:
parent
d39fde8b05
commit
ffeb906f7b
36
Makefile
36
Makefile
|
@ -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
|
26
README.md
26
README.md
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue