Skip to content

Commit 93f4477

Browse files
finish build scripts for linux and windows
1 parent 2631995 commit 93f4477

File tree

5 files changed

+30
-26
lines changed

5 files changed

+30
-26
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Makefile
22
.vs
3-
/build-*/
3+
/build-*
44
/.settings/

.travis.yml

Lines changed: 0 additions & 13 deletions
This file was deleted.

common.mk

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: all clean distclean install
1+
.PHONY: all clean distclean install bin-archive
22

33
SHELL := /bin/bash
44

@@ -12,8 +12,13 @@ CC := $(CHOST)-gcc
1212
export CC
1313
CXX := $(CHOST)-g++
1414
export CXX
15+
CPP := $(CHOST)-cpp
16+
export CPP
17+
CXXCPP := $(CHOST)-cpp
18+
export CXXCPP
1519
AR := $(CHOST)-ar
1620
export AR
21+
LIBS :=
1722
SOURCE_DIR := $(abspath .)
1823
HEADERS := $(wildcard $(SOURCE_DIR)/include/*.h)
1924
HEADERS += $(wildcard $(SOURCE_DIR)/include/*/*.h)
@@ -32,7 +37,7 @@ OPENSSL_LIB_DIR := $(OPENSSL_BUILD_DIR)
3237
HEADERS += $(OPENSSL_BUILD_MAKEFILE)
3338
LIBCRYPTO := $(OPENSSL_BUILD_DIR)/$(LIBCRYPTO_NAME)
3439
LIBSSL := $(OPENSSL_BUILD_DIR)/$(LIBSSL_NAME)
35-
LDFLAGS += $(LIBSSL) $(LIBCRYPTO)
40+
LIBS += $(LIBSSL) $(LIBCRYPTO)
3641
LIBPNG_BUILD_DIR := $(BUILD_DIR)/libpng
3742
LIBPNG_BUILD_AUTOGEN := $(LIBPNG_BUILD_DIR)/autogen.sh
3843
LIBPNG_BUILD_CONFIGURE := $(LIBPNG_BUILD_DIR)/configure
@@ -42,15 +47,15 @@ LIBPNG_LIB_DIR := $(LIBPNG_BUILD_DIR)
4247
HEADERS += $(LIBPNG_BUILD_MAKEFILE)
4348
LIBPNG_LA := $(LIBPNG_BUILD_DIR)/.libs/libpng16.la
4449
LIBPNG := $(LIBPNG_BUILD_DIR)/libpng16.a
45-
LDFLAGS += $(LIBPNG)
50+
LIBS += $(LIBPNG)
4651
ZLIB_BUILD_DIR := $(BUILD_DIR)/zlib
4752
ZLIB_BUILD_CONFIGURE := $(ZLIB_BUILD_DIR)/configure
4853
ZLIB_BUILD_MAKEFILE := $(ZLIB_BUILD_DIR)/Makefile
4954
ZLIB_INCLUDE_DIR := $(ZLIB_BUILD_DIR)
5055
ZLIB_LIB_DIR := $(ZLIB_BUILD_DIR)
5156
HEADERS += $(ZLIB_BUILD_MAKEFILE)
5257
LIBZ := $(ZLIB_BUILD_DIR)/libz.a
53-
LDFLAGS += $(LIBZ)
58+
LIBS += $(LIBZ)
5459
VORBIS_BUILD_DIR := $(BUILD_DIR)/vorbis
5560
VORBIS_BUILD_AUTOGEN := $(VORBIS_BUILD_DIR)/autogen.sh
5661
VORBIS_BUILD_MAKEFILE := $(VORBIS_BUILD_DIR)/Makefile
@@ -60,7 +65,7 @@ HEADERS += $(VORBIS_BUILD_MAKEFILE)
6065
LIBVORBISFILE_LA := $(VORBIS_BUILD_DIR)/lib/.libs/libvorbisfile.la
6166
LIBVORBIS := $(VORBIS_BUILD_DIR)/libvorbis.a
6267
LIBVORBISFILE := $(VORBIS_BUILD_DIR)/libvorbisfile.a
63-
LDFLAGS += $(LIBVORBISFILE) $(LIBVORBIS)
68+
LIBS += $(LIBVORBISFILE) $(LIBVORBIS)
6469
OGG_BUILD_DIR := $(BUILD_DIR)/ogg
6570
OGG_BUILD_AUTOGEN := $(OGG_BUILD_DIR)/autogen.sh
6671
OGG_BUILD_MAKEFILE := $(OGG_BUILD_DIR)/Makefile
@@ -69,7 +74,7 @@ OGG_LIB_DIR := $(OGG_BUILD_DIR)
6974
HEADERS += $(OGG_BUILD_MAKEFILE)
7075
LIBOGG_LA := $(OGG_BUILD_DIR)/src/.libs/libogg.la
7176
LIBOGG := $(OGG_BUILD_DIR)/libogg.a
72-
LDFLAGS += $(LIBOGG)
77+
LIBS += $(LIBOGG)
7378
SDL_BUILD_DIR := $(BUILD_DIR)/SDL
7479
SDL_BUILD_CONFIGURE := $(SDL_BUILD_DIR)/configure
7580
SDL_BUILD_MAKEFILE := $(SDL_BUILD_DIR)/Makefile
@@ -79,7 +84,7 @@ HEADERS += $(SDL_BUILD_MAKEFILE)
7984
LIBSDL2_LA := $(SDL_BUILD_DIR)/build/.libs/libSDL2.la
8085
LIBSDL2 := $(SDL_BUILD_DIR)/build/libSDL2.a
8186
LIBSDL2MAIN := $(SDL_BUILD_DIR)/build/libSDL2main.a
82-
LDFLAGS += $(LIBSDL2) -Wl,--whole-archive $(LIBSDL2MAIN) -Wl,--no-whole-archive
87+
LIBS += $(LIBSDL2) -Wl,--whole-archive $(LIBSDL2MAIN) -Wl,--no-whole-archive
8388
PROGRAM_NAME := voxels$(EXEEXT)
8489
PROGRAM := $(BUILD_DIR)/$(PROGRAM_NAME)
8590
CPP_SOURCES := $(wildcard $(SOURCE_DIR)/src/*.cpp)
@@ -196,7 +201,7 @@ $(SDL_BUILD_CONFIGURE): ;
196201
&& [ -x $(SDL_BUILD_CONFIGURE) ]
197202

198203
$(SDL_BUILD_MAKEFILE): $(SDL_BUILD_CONFIGURE)
199-
cd $(SDL_BUILD_DIR) && ./configure --disable-dependency-tracking --enable-libc --disable-shared --disable-render-d3d --host $(CHOST)
204+
cd $(SDL_BUILD_DIR) && ./configure --disable-dependency-tracking --enable-libc --disable-sndio --disable-shared --disable-render-d3d --host $(CHOST)
200205

201206
$(LIBSDL2_LA): $(SDL_BUILD_MAKEFILE)
202207
cd $(SDL_BUILD_DIR) && $(MAKE)
@@ -222,15 +227,23 @@ $(BUILD_DIR)/%.o : $(SOURCE_DIR)/%.cpp $(HEADERS)
222227
mkdir -p $(dir $@) && $(CXX) $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) -c -o $@ $<
223228

224229
LDFLAGS += -static-libgcc -static-libstdc++
225-
LDFLAGS += $(DEFERRED_LDFLAGS)
226230

227231
$(PROGRAM) : $(OBJECTS) $(LIBSDL2) $(LIBSDL2MAIN) $(LIBPNG) $(LIBOGG) $(LIBVORBISFILE) $(LIBVORBIS) $(LIBCRYPTO) $(LIBSSL) $(LIBZ)
228-
$(CXX) -o $(PROGRAM) $(OBJECTS) $(LDFLAGS)
232+
$(CXX) -o $(PROGRAM) $(OBJECTS) $(LDFLAGS) $(LIBS) $(DEFERRED_LDFLAGS)
229233

230234
install: all
231235

232236
clean:
233237
-rm -rf $(OBJECTS) $(PROGRAM)
234238

235239
distclean: clean
236-
-rm -rf $(BUILD_DIR)
240+
-rm -rf $(BUILD_DIR)
241+
242+
ARCHIVE_NAME := voxels$(ARCHIVE_EXTENSION)
243+
244+
bin-archive: all
245+
mkdir -p $(BUILD_DIR)/voxels-0.7 \
246+
&& cp -rt $(BUILD_DIR)/voxels-0.7 $(PROGRAM) $(SOURCE_DIR)/res $(SOURCE_DIR)/LICENSE $(SOURCE_DIR)/README.md \
247+
&& cd $(BUILD_DIR) \
248+
&& { rm -f $(ARCHIVE_NAME) || true; } \
249+
&& $(ARCHIVE_COMMAND) $(ARCHIVE_NAME) voxels-0.7

linux-x86_64-cross-x86_64-w64-mingw32.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,7 @@ CFLAGS := $(CFLAGS)
1313
CFLAGS += -pthread -mwin32 -mwindows
1414
DEFERRED_LDFLAGS := -static -pthread -lopengl32 -mwin32 -mwindows -lws2_32 -lgdi32 -lcrypt32 -lole32
1515
DEFERRED_LDFLAGS += -limm32 -lversion -loleaut32 -lwinmm
16+
ARCHIVE_EXTENSION := .zip
17+
ARCHIVE_COMMAND := zip -r
1618

1719
include common.mk

linux-x86_64.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ CFLAGS := -O2 -DNDEBUG
1111
endif
1212
CFLAGS := $(CFLAGS)
1313
CFLAGS += -pthread
14-
DEFERRED_LDFLAGS := -pthread -lGL -ldl
14+
DEFERRED_LDFLAGS := -pthread -lGL -ldl -lrt
15+
ARCHIVE_EXTENSION := .txz
16+
ARCHIVE_COMMAND := tar -cvaf
1517

1618
include common.mk

0 commit comments

Comments
 (0)