You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.2 KiB
86 lines
2.2 KiB
EXE = main |
|
|
|
sdl2ibdir = sdllib |
|
|
|
ifndef target |
|
target=linux |
|
endif |
|
|
|
ifeq ($(target),windows) |
|
CC=x86_64-w64-mingw32-gcc |
|
SDL_INCLUDE = -Dmain=SDL_main -Lsdllib -lSDL2main -lSDL2main -lSDL2 -lmingw32 -lSDL2main -lSDL2 -mwindows -Wl,-static -lpthread -lm |
|
CCFLAGS=$(SDL_INCLUDE) -O3 |
|
else |
|
CC=gcc |
|
SDL_INCLUDE= -lSDL2 -lm |
|
CCFLAGS=$(SDL_INCLUDE) -O3 |
|
endif |
|
|
|
ifdef debug |
|
CC += -g -Wall |
|
endif |
|
|
|
.PHONY: default |
|
.PHONY: all |
|
.PHONY: run |
|
.PHONY: dist |
|
|
|
default: all |
|
|
|
dist: build/main build/main.exe |
|
mkdir -p dist |
|
mkdir -p dist/windows |
|
mkdir -p dist/linux |
|
cp build/main dist/linux |
|
cp build/main.exe dist/windows |
|
cp build/SDL2.dll dist/windows |
|
cp README.md dist/windows |
|
cp README.md dist/linux |
|
cd dist && zip -r windows.zip windows |
|
cd dist && zip -r linux.zip linux |
|
|
|
run: all |
|
./main |
|
|
|
all: $(EXE) |
|
|
|
$(EXE): prebuild build/main.o build/vect.o build/logger.o build/game.o build/garbo.o build/draw.o build/controlscheme.o build/environment.o build/colours.o build/datatypes.o |
|
cd build && $(CC) -o $(EXE) main.o vect.o game.o logger.o draw.o garbo.o environment.o controlscheme.o colours.o datatypes.o $(CCFLAGS) |
|
|
|
build/colours.o: c-colours/colours.c c-colours/colours.h |
|
$(CC) -c c-colours/colours.c -o build/colours.o $(CCFLAGS) |
|
|
|
build/datatypes.o: datastructures/datatypes.c datastructures/datatypes.h |
|
$(CC) -c datastructures/datatypes.c -o build/datatypes.o $(CCFLAGS) |
|
|
|
build/main.o: src/main.c |
|
$(CC) -c src/main.c -o build/main.o $(CCFLAGS) |
|
|
|
build/logger.o: src/logger.c src/logger.h |
|
$(CC) -c src/logger.c -o build/logger.o $(CCFLAGS) |
|
|
|
build/game.o: src/game.c src/game.h |
|
$(CC) -c src/game.c -o build/game.o $(CCFLAGS) |
|
|
|
build/garbo.o: src/garbo.c src/garbo.h |
|
$(CC) -c src/garbo.c -o build/garbo.o $(CCFLAGS) |
|
|
|
build/draw.o: src/draw.c src/draw.h |
|
$(CC) -c src/draw.c -o build/draw.o $(CCFLAGS) |
|
|
|
build/vect.o: src/vect.c src/vect.h |
|
$(CC) -c src/vect.c -o build/vect.o $(CCFLAGS) |
|
|
|
build/controlscheme.o: src/controlscheme.c src/controlscheme.h |
|
$(CC) -c src/controlscheme.c -o build/controlscheme.o $(CCFLAGS) |
|
|
|
build/environment.o: src/environment.c src/environment.h |
|
$(CC) -c src/environment.c -o build/environment.o $(CCFLAGS) |
|
|
|
clean: |
|
rm build/*.o |
|
|
|
prebuild: |
|
mkdir -p build |
|
ln -srf datastructures src/ |
|
ln -srf c-colours src/
|
|
|