1
1
Fork 0
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.
 
 
 
 
 

99 lines
2.6 KiB

EXE = main
sdl2ibdir = sdllib
ifndef target
target=linux
endif
ifeq ($(target),windows)
CC=x86_64-w64-mingw32-gcc -DWIN32 -g
SDL_INCLUDE = -Dmain=SDL_main -Lsdllib -lSDL2main -lSDL2main -lSDL2_mixer -lSDL2_ttf -lSDL2 -lmingw32 -lSDL2main -lSDL2 -mwindows -Wl,-static -lpthread -lm
CCFLAGS=$(SDL_INCLUDE) -O2
else
ifeq ($(target),web)
CC=emcc
SDL_INCLUDE= -s USE_SDL=2 -s USE_SDL_MIXER=2 -s USE_SDL_TTF=2 -s FULL_ES3=1 --preload-file "TerminusTTF.ttf"
CCFLAGS=$(SDL_INCLUDE) -O2
else
CC=gcc -D__linux__
SDL_INCLUDE= -lSDL2 -lSDL2_ttf -lSDL2_mixer -lm
CCFLAGS=$(SDL_INCLUDE) -O3
endif
endif
ifdef debug
CC += -fsanitize=address -g -ggdb -fno-omit-frame-pointer -Wall
endif
.PHONY: default
.PHONY: all
.PHONY: run
.PHONY: dist
.PHONY: web
default: all
dist: all
mkdir -p dist
mkdir -p dist/windows
cp build/main.exe dist/windows
cp build/SDL2.dll dist/windows
cp README.md dist/windows
cd dist && zip -r windows.zip windows
distlin: all
mkdir -p dist
mkdir -p dist/linux
cp build/main dist/linux
cp README.md dist/linux
cd dist && zip -r linux.zip linux
run: all
./main
all: $(EXE)
web: $(EXE)
$(CC) -o build/index.html build/main.o build/vect.o build/game.o build/draw.o build/environment.o build/controlscheme.o build/colours.o build/datatypes.o build/audio.o $(CCFLAGS)
$(EXE): prebuild build/main.o build/vect.o build/game.o build/draw.o build/controlscheme.o build/environment.o build/colours.o build/datatypes.o build/audio.o
cd build && $(CC) -o $(EXE) main.o vect.o game.o draw.o environment.o controlscheme.o colours.o datatypes.o audio.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/game.o: src/game.c src/game.h
$(CC) -c src/game.c -o build/game.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)
build/audio.o: src/audio.c src/audio.h
$(CC) -c src/audio.c -o build/audio.o $(CCFLAGS)
clean:
rm build/*.o
prebuild:
mkdir -p build
ln -srf datastructures src/
ln -srf c-colours src/