From 22d9d9feb9df11998c9e5a8f0155108ebe0cf1e7 Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Fri, 6 Mar 2020 19:04:12 +0100 Subject: [PATCH] Fix support for Emscripten --- Makefile.common | 78 ++++++++++++++++++++++----------------------- Makefile.emscripten | 8 +++-- Makefile.linux | 1 + Makefile.mingw | 14 ++++---- Makefile.win32 | 5 +-- 5 files changed, 56 insertions(+), 50 deletions(-) diff --git a/Makefile.common b/Makefile.common index 9f22be4..69b9a2a 100644 --- a/Makefile.common +++ b/Makefile.common @@ -17,36 +17,36 @@ endif ######################## CFLAGS += -IGameLib GAMELIB_HEADS := \ - GameLib/Time.h \ - GameLib/Util.h \ - GameLib/QuadArray2D.h \ - GameLib/Draw.h \ - GameLib/Input.h \ - GameLib/Audio.h \ - GameLib/Anim.h \ - GameLib/Entity.h \ - GameLib/GameLib.h + GameLib$(SLASH)Time.h \ + GameLib$(SLASH)Util.h \ + GameLib$(SLASH)QuadArray2D.h \ + GameLib$(SLASH)Draw.h \ + GameLib$(SLASH)Input.h \ + GameLib$(SLASH)Audio.h \ + GameLib$(SLASH)Anim.h \ + GameLib$(SLASH)Entity.h \ + GameLib$(SLASH)GameLib.h GAMELIBS_OBJS := \ - $(BUILDDIR)/GameLib/Time.o \ - $(BUILDDIR)/GameLib/Util.o \ - $(BUILDDIR)/GameLib/QuadArray2D.o \ - $(BUILDDIR)/GameLib/Draw.o \ - $(BUILDDIR)/GameLib/Input.o \ - $(BUILDDIR)/GameLib/Audio.o \ - $(BUILDDIR)/GameLib/Anim.o \ - $(BUILDDIR)/GameLib/Entity.o \ - $(BUILDDIR)/GameLib/GameLib.o -RES_GAMELIB_OUT := $(BUILDDIR)/$(RES_GAMELIB) + $(BUILDDIR)$(SLASH)GameLib$(SLASH)Time.o \ + $(BUILDDIR)$(SLASH)GameLib$(SLASH)Util.o \ + $(BUILDDIR)$(SLASH)GameLib$(SLASH)QuadArray2D.o \ + $(BUILDDIR)$(SLASH)GameLib$(SLASH)Draw.o \ + $(BUILDDIR)$(SLASH)GameLib$(SLASH)Input.o \ + $(BUILDDIR)$(SLASH)GameLib$(SLASH)Audio.o \ + $(BUILDDIR)$(SLASH)GameLib$(SLASH)Anim.o \ + $(BUILDDIR)$(SLASH)GameLib$(SLASH)Entity.o \ + $(BUILDDIR)$(SLASH)GameLib$(SLASH)GameLib.o +RES_GAMELIB_OUT := $(BUILDDIR)$(SLASH)$(RES_GAMELIB) ##################### # Game Declarations # ##################### -GAME_HEADS := $(GAMELIB_HEADS) Game/GameEnts.h Game/GameMap.h +GAME_HEADS := $(GAMELIB_HEADS) Game$(SLASH)GameEnts.h Game$(SLASH)GameMap.h GAME_OBJS := \ - $(BUILDDIR)/Game/GameEnts.o \ - $(BUILDDIR)/Game/GameMap.o \ - $(BUILDDIR)/Game/main.o -RES_GAME_OUT := $(BUILDDIR)/$(RES_GAME) + $(BUILDDIR)$(SLASH)Game$(SLASH)GameEnts.o \ + $(BUILDDIR)$(SLASH)Game$(SLASH)GameMap.o \ + $(BUILDDIR)$(SLASH)Game$(SLASH)main.o +RES_GAME_OUT := $(BUILDDIR)$(SLASH)$(RES_GAME) ################# @@ -56,37 +56,37 @@ all: $(BUILDDIR) $(RES_GAME_OUT) $(BUILDDIR): $(MKDIR) $(BUILDDIR) - $(MKDIR) $(BUILDDIR)/GameLib - $(MKDIR) $(BUILDDIR)/Game + $(MKDIR) $(BUILDDIR)$(SLASH)GameLib + $(MKDIR) $(BUILDDIR)$(SLASH)Game clean: $(RM) $(GAMELIBS_OBJS) $(RES_GAMELIB_OUT) $(GAME_OBJS) $(RES_GAME_OUT) run: $(BUILDDIR) $(RES_GAME_OUT) - $(LAUNCHER) ./$(RES_GAME_OUT) debug + $(LAUNCHER) .$(SLASH)$(RES_GAME_OUT) debug rebuild: clean all ################# # GameLib Rules # ################# -$(BUILDDIR)/GameLib/Time.o: GameLib/Time.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)Time.o: GameLib$(SLASH)Time.c $(HEADS) $(DO_CC) -$(BUILDDIR)/GameLib/Util.o: GameLib/Util.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)Util.o: GameLib$(SLASH)Util.c $(HEADS) $(DO_CC) -$(BUILDDIR)/GameLib/QuadArray2D.o: GameLib/QuadArray2D.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)QuadArray2D.o: GameLib$(SLASH)QuadArray2D.c $(HEADS) $(DO_CC) -$(BUILDDIR)/GameLib/Draw.o: GameLib/Draw.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)Draw.o: GameLib$(SLASH)Draw.c $(HEADS) $(DO_CC) -$(BUILDDIR)/GameLib/Input.o: GameLib/Input.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)Input.o: GameLib$(SLASH)Input.c $(HEADS) $(DO_CC) -$(BUILDDIR)/GameLib/Audio.o: GameLib/Audio.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)Audio.o: GameLib$(SLASH)Audio.c $(HEADS) $(DO_CC) -$(BUILDDIR)/GameLib/Entity.o: GameLib/Entity.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)Entity.o: GameLib$(SLASH)Entity.c $(HEADS) $(DO_CC) -$(BUILDDIR)/GameLib/Anim.o: GameLib/Anim.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)Anim.o: GameLib$(SLASH)Anim.c $(HEADS) $(DO_CC) -$(BUILDDIR)/GameLib/GameLib.o: GameLib/GameLib.c $(HEADS) +$(BUILDDIR)$(SLASH)GameLib$(SLASH)GameLib.o: GameLib$(SLASH)GameLib.c $(HEADS) $(DO_CC) @@ -94,11 +94,11 @@ $(BUILDDIR)/GameLib/GameLib.o: GameLib/GameLib.c $(HEADS) # Game Rules # ############## -$(BUILDDIR)/Game/GameEnts.o: Game/GameEnts.c $(HEADS) +$(BUILDDIR)$(SLASH)Game$(SLASH)GameEnts.o: Game$(SLASH)GameEnts.c $(HEADS) $(DO_CC) -$(BUILDDIR)/Game/GameMap.o: Game/GameMap.c $(HEADS) +$(BUILDDIR)$(SLASH)Game$(SLASH)GameMap.o: Game$(SLASH)GameMap.c $(HEADS) $(DO_CC) -$(BUILDDIR)/Game/main.o: Game/main.c $(HEADS) +$(BUILDDIR)$(SLASH)Game$(SLASH)main.o: Game$(SLASH)main.c $(HEADS) $(DO_CC) diff --git a/Makefile.emscripten b/Makefile.emscripten index edf2e51..950dbcb 100644 --- a/Makefile.emscripten +++ b/Makefile.emscripten @@ -1,9 +1,11 @@ CC := emcc AR := emar -LAUNCHER := start -RM := rm -rf +LAUNCHER := emrun --port 8080 +RM := del MKDIR := mkdir ECHO := echo +SLASH := \\ +VERBOSE_BUILD := true LIBS := CFLAGS := -s FULL_ES2=1 -s ASM_JS=1 -O1 -Wno-implicit-function-declaration -DEMSCRIPTEN @@ -16,7 +18,7 @@ BUILDDIR := build-emscripten ifeq ($(target),release) CFLAGS := -s FULL_ES2=1 -s ASM_JS=1 -O1 --llvm-lto 1 -Wno-implicit-function-declaration -DEMSCRIPTEN BUILDDIR := build-emscripten-release - LDFLAGS := --preload-file data -s TOTAL_MEMORY=134217728 + LDFLAGS := --preload-file data -s TOTAL_MEMORY=134217728 --emrun endif include Makefile.common diff --git a/Makefile.linux b/Makefile.linux index 2264985..0135b05 100644 --- a/Makefile.linux +++ b/Makefile.linux @@ -4,6 +4,7 @@ LAUNCHER := RM := rm -rf MKDIR := mkdir ECHO := echo +SLASH := / LIBS := -lSDL -lpthread -L/usr/X11R6/lib -L/usr/lib -lm -lGL -lX11 CFLAGS := -Wall -g -I/usr/include/ -I/usr/include/SDL/ -I/usr/X11R6/include/ diff --git a/Makefile.mingw b/Makefile.mingw index f1a0f9e..9b373f3 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -1,17 +1,19 @@ -CC := i486-mingw32-gcc -AR := i486-mingw32-ar +CC := gcc +AR := ar LAUNCHER := RM := rm -rf MKDIR := mkdir ECHO := echo +SLASH := / -LIBS := -L/usr/i486-mingw/lib -D_GNU_SOURCE=1 -Dmain=SDL_main -lopengl32 -lmingw32 -lSDLmain -lSDL -CFLAGS := -I/usr/i486-mingw/include -mwindows -LDFLAGS := +LIBS := -L/mingw/lib -lopengl32 -lSDL -lm +#CFLAGS := -I/mingw/include -g -mwindows -D_GNU_SOURCE=1 +CFLAGS := -g -mwindows -D_GNU_SOURCE=1 -DWIN32 +LDFLAGS := -g -mwindows -D_GNU_SOURCE=1 RES_GAMELIB := libgame.a RES_GAME := game.exe -BUILDDIR := build-mingw +BUILDDIR := build-$(shell gcc -v 2>&1 | grep "Target:" | cut --delimiter=' ' --fields=2) include Makefile.common diff --git a/Makefile.win32 b/Makefile.win32 index 5325fbf..9b373f3 100644 --- a/Makefile.win32 +++ b/Makefile.win32 @@ -4,10 +4,11 @@ LAUNCHER := RM := rm -rf MKDIR := mkdir ECHO := echo +SLASH := / -LIBS := -L/mingw/lib -lopengl32 -lSDL +LIBS := -L/mingw/lib -lopengl32 -lSDL -lm #CFLAGS := -I/mingw/include -g -mwindows -D_GNU_SOURCE=1 -CFLAGS := -g -mwindows -D_GNU_SOURCE=1 +CFLAGS := -g -mwindows -D_GNU_SOURCE=1 -DWIN32 LDFLAGS := -g -mwindows -D_GNU_SOURCE=1 RES_GAMELIB := libgame.a