From 0caec9646b6b92d98036038818e43ea1a9397226 Mon Sep 17 00:00:00 2001 From: igor725 Date: Fri, 5 Apr 2019 21:52:01 +0300 Subject: [PATCH 1/4] Some improvements to makefile --- src/Makefile | 56 ++++++++++++++++++++++++++++++++++++++++-------- src/Makefile.win | 17 --------------- 2 files changed, 47 insertions(+), 26 deletions(-) delete mode 100644 src/Makefile.win diff --git a/src/Makefile b/src/Makefile index 0722d6d80..7af608b63 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,17 +1,55 @@ -CC=gcc -LIBS=-lX11 -lpthread -lGL -lm -lcurl -lopenal -ldl -CFLAGS=-g -w -no-pie -rdynamic -pipe SOURCES=$(wildcard *.c) OBJECTS=$(patsubst %.c, %.o, $(SOURCES)) COMMITSHA=$(shell git rev-parse --short HEAD) +ENAME=ClassiCube +PLAT=ns +DEL=rm +JOBS=1 -EXECUTABLE=ClassiCube +ifeq ($(OS),Windows_NT) +DEL=del +endif -$(EXECUTABLE): $(OBJECTS) - $(CC) $(CFLAGS) -o $@ $(OBJECTS) $(LIBS) +CC_web=emcc +LIBS_web= +OEXT_web=.html +CFLAGS_web=-w -g +LDFLAGS_web=-s WASM=1 -s NO_EXIT_RUNTIME=1 -s FETCH=1 --preload-file texpacks/default.zip@texpacks/default.zip + +CC_mingw=gcc +LIBS_mingw=-mwindows -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -ld3d9 +OEXT_mingw=.exe +CFLAGS_mingw=-w -g -pipe + +CC_linux=gcc +LIBS_linux=-lX11 -lpthread -lGL -lm -lopenal -ldl -lcurl +CFLAGS_linux=-w -g -pipe + +default: $(PLAT) + +web: + $(MAKE) $(ENAME) PLAT=web -j$(JOBS) + +linux: + $(MAKE) $(ENAME) PLAT=linux -j$(JOBS) + +mingw: + $(MAKE) $(ENAME) PLAT=mingw -j$(JOBS) + +clean: + $(DEL) $(OBJECTS) + +ns: + $(error Target platform not selected) + +CC=$(CC_$(PLAT)) +LIBS=$(LIBS_$(PLAT)) +OEXT=$(OEXT_$(PLAT)) +CFLAGS=$(CFLAGS_$(PLAT)) +LDFLAGS=$(LDFLAGS_$(PLAT)) + +$(ENAME): $(OBJECTS) + $(CC) $(LDFLAGS) -o $@$(OEXT) $(OBJECTS) $(LIBS) $(OBJECTS): %.o : %.c $(CC) $(CFLAGS) -DCC_COMMIT_SHA=\"$(COMMITSHA)\" -c $< $(LIBS) -o $@ - -clean: - rm -f $(EXECUTABLE) $(OBJECTS) diff --git a/src/Makefile.win b/src/Makefile.win deleted file mode 100644 index 91c059d1f..000000000 --- a/src/Makefile.win +++ /dev/null @@ -1,17 +0,0 @@ -CC=gcc -LIBS=-mwindows -lws2_32 -lwininet -lwinmm -limagehlp -lcrypt32 -ld3d9 -CFLAGS=-g -w -pipe -SOURCES=$(wildcard *.c) -OBJECTS=$(patsubst %.c, %.o, $(SOURCES)) -COMMITSHA=$(shell git rev-parse --short HEAD) - -EXECUTABLE=ClassiCube - -$(EXECUTABLE): $(OBJECTS) - $(CC) $(CFLAGS) -o $@ $(OBJECTS) $(LIBS) - -$(OBJECTS): %.o : %.c - $(CC) $(CFLAGS) -DCC_COMMIT_SHA=\"$(COMMITSHA)\" -c $< $(LIBS) -o $@ - -clean: - rm -f $(EXECUTABLE) $(OBJECTS) From ca5e99f758e053d545c0a61050d55c667f396536 Mon Sep 17 00:00:00 2001 From: igor725 Date: Fri, 5 Apr 2019 22:44:56 +0300 Subject: [PATCH 2/4] Auto platform detection (Not tested on MacOS and Solaris) --- src/Makefile | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/src/Makefile b/src/Makefile index 7af608b63..4c4a102f5 100644 --- a/src/Makefile +++ b/src/Makefile @@ -6,12 +6,24 @@ PLAT=ns DEL=rm JOBS=1 -ifeq ($(OS),Windows_NT) -DEL=del +ifeq ($(PLAT),ns) + ifeq ($(OS),Windows_NT) + PLAT=mingw + else + UNAME=$(shell uname -s) + ifeq ($(UNAME),Linux) + PLAT=linux + endif + ifeq ($(UNAME),Darwin) + PLAT=osx + endif + ifeq ($(UNAME),SunOS) + PLAT=solaris + endif + endif endif CC_web=emcc -LIBS_web= OEXT_web=.html CFLAGS_web=-w -g LDFLAGS_web=-s WASM=1 -s NO_EXIT_RUNTIME=1 -s FETCH=1 --preload-file texpacks/default.zip@texpacks/default.zip @@ -25,6 +37,19 @@ CC_linux=gcc LIBS_linux=-lX11 -lpthread -lGL -lm -lopenal -ldl -lcurl CFLAGS_linux=-w -g -pipe +CC_solaris=gcc +LIBS_solaris=-lm -lsocket -lX11 -lGL -lcurl -lopenal +CFLAGS_solaris=-w -g -pipe + +CC_osx=gcc +LIBS_osx=-lcurl +LDFLAGS_osx=-framework Carbon -framework AGL -framework OpenAL -framework OpenGL +CFLAGS_osx=-w -g -pipe + +ifeq ($(OS),Windows_NT) +DEL=del +endif + default: $(PLAT) web: @@ -36,6 +61,12 @@ linux: mingw: $(MAKE) $(ENAME) PLAT=mingw -j$(JOBS) +solaris: + $(MAKE) $(ENAME) PLAT=solaris -j$(JOBS) + +osx: + $(MAKE) $(ENAME) PLAT=osx -j$(JOBS) + clean: $(DEL) $(OBJECTS) From d546009254535dae4c35b68405c101ff76fd1829 Mon Sep 17 00:00:00 2001 From: igor725 Date: Sat, 6 Apr 2019 10:44:53 +0300 Subject: [PATCH 3/4] Makefile BSD support --- src/Makefile | 64 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4c4a102f5..02401536f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2,24 +2,14 @@ SOURCES=$(wildcard *.c) OBJECTS=$(patsubst %.c, %.o, $(SOURCES)) COMMITSHA=$(shell git rev-parse --short HEAD) ENAME=ClassiCube -PLAT=ns DEL=rm JOBS=1 -ifeq ($(PLAT),ns) +ifndef $(PLAT) ifeq ($(OS),Windows_NT) PLAT=mingw else - UNAME=$(shell uname -s) - ifeq ($(UNAME),Linux) - PLAT=linux - endif - ifeq ($(UNAME),Darwin) - PLAT=osx - endif - ifeq ($(UNAME),SunOS) - PLAT=solaris - endif + PLAT=$(shell uname -s | tr -s '[:upper:]' '[:lower:]') endif endif @@ -37,14 +27,31 @@ CC_linux=gcc LIBS_linux=-lX11 -lpthread -lGL -lm -lopenal -ldl -lcurl CFLAGS_linux=-w -g -pipe -CC_solaris=gcc -LIBS_solaris=-lm -lsocket -lX11 -lGL -lcurl -lopenal -CFLAGS_solaris=-w -g -pipe +CC_sunos=gcc +LIBS_sunos=-lm -lsocket -lX11 -lGL -lcurl -lopenal +CFLAGS_sunos=-w -g -pipe -CC_osx=gcc -LIBS_osx=-lcurl -LDFLAGS_osx=-framework Carbon -framework AGL -framework OpenAL -framework OpenGL -CFLAGS_osx=-w -g -pipe +CC_darwin=gcc +LIBS_darwin=-lcurl +LDFLAGS_darwin=-framework Carbon -framework AGL -framework OpenAL -framework OpenGL +CFLAGS_darwin=-w -g -pipe + +BSDLIBS=-lcurl -lexecinfo -lopenal -lGL -lX11 + +CC_freebsd=gcc +LIBS_freebsd=$(BSDLIBS) -lm -lpthread +INCDIRS_freebsd=-I /usr/local/include -L /usr/Xlocal/lib +CFLAGS_freebsd=-w -g -pipe + +CC_openbsd=gcc +LIBS_openbsd=$(BSDLIBS) +INCDIRS_openbsd=-isystem /usr/X11R6/include -isystem /usr/local/include +LDFLAGS_openbsd=-L /usr/X11R6/lib -L /usr/local/lib + +CC_netbsd=gcc +LIBS_netbsd=$(BSDLIBS) +INCDIRS_netbsd=-I /usr/X11R7/include -I /usr/pkg/include +LDFLAGS_netbsd=-L /usr/X11R7/lib -L /usr/pkg/lib ifeq ($(OS),Windows_NT) DEL=del @@ -62,25 +69,32 @@ mingw: $(MAKE) $(ENAME) PLAT=mingw -j$(JOBS) solaris: - $(MAKE) $(ENAME) PLAT=solaris -j$(JOBS) + $(MAKE) $(ENAME) PLAT=sunos -j$(JOBS) osx: - $(MAKE) $(ENAME) PLAT=osx -j$(JOBS) + $(MAKE) $(ENAME) PLAT=darwin -j$(JOBS) + +freebsd: + $(MAKE) $(ENAME) PLAT=freebsd -j$(JOBS) + +openbsd: + $(MAKE) $(ENAME) PLAT=openbsd -j$(JOBS) + +netbsd: + $(MAKE) $(ENAME) PLAT=netbsd -j$(JOBS) clean: $(DEL) $(OBJECTS) -ns: - $(error Target platform not selected) - CC=$(CC_$(PLAT)) LIBS=$(LIBS_$(PLAT)) OEXT=$(OEXT_$(PLAT)) CFLAGS=$(CFLAGS_$(PLAT)) LDFLAGS=$(LDFLAGS_$(PLAT)) +INCDIRS=$(INCDIRS_$(PLAT)) $(ENAME): $(OBJECTS) $(CC) $(LDFLAGS) -o $@$(OEXT) $(OBJECTS) $(LIBS) $(OBJECTS): %.o : %.c - $(CC) $(CFLAGS) -DCC_COMMIT_SHA=\"$(COMMITSHA)\" -c $< $(LIBS) -o $@ + $(CC) $(CFLAGS) $(INCDIRS) -DCC_COMMIT_SHA=\"$(COMMITSHA)\" -c $< -o $@ From 8a172fc0fa49bcaf50b5990fc573ab6464ce716b Mon Sep 17 00:00:00 2001 From: igor725 Date: Sat, 6 Apr 2019 16:16:52 +0300 Subject: [PATCH 4/4] Makefile fixes --- src/Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Makefile b/src/Makefile index 02401536f..092912c93 100644 --- a/src/Makefile +++ b/src/Makefile @@ -9,7 +9,7 @@ ifndef $(PLAT) ifeq ($(OS),Windows_NT) PLAT=mingw else - PLAT=$(shell uname -s | tr -s '[:upper:]' '[:lower:]') + PLAT=$(shell uname -s | tr '[:upper:]' '[:lower:]') endif endif @@ -38,9 +38,10 @@ CFLAGS_darwin=-w -g -pipe BSDLIBS=-lcurl -lexecinfo -lopenal -lGL -lX11 -CC_freebsd=gcc +CC_freebsd=clang LIBS_freebsd=$(BSDLIBS) -lm -lpthread -INCDIRS_freebsd=-I /usr/local/include -L /usr/Xlocal/lib +INCDIRS_freebsd=-I /usr/local/include +LDFLAGS_freebsd=-L /usr/local/lib CFLAGS_freebsd=-w -g -pipe CC_openbsd=gcc