1- .PHONY : all clean distclean install
1+ .PHONY : all clean distclean install bin-archive
22
33SHELL := /bin/bash
44
@@ -12,8 +12,13 @@ CC := $(CHOST)-gcc
1212export CC
1313CXX := $(CHOST ) -g++
1414export CXX
15+ CPP := $(CHOST ) -cpp
16+ export CPP
17+ CXXCPP := $(CHOST ) -cpp
18+ export CXXCPP
1519AR := $(CHOST ) -ar
1620export AR
21+ LIBS :=
1722SOURCE_DIR := $(abspath .)
1823HEADERS := $(wildcard $(SOURCE_DIR ) /include/* .h)
1924HEADERS += $(wildcard $(SOURCE_DIR ) /include/* /* .h)
@@ -32,7 +37,7 @@ OPENSSL_LIB_DIR := $(OPENSSL_BUILD_DIR)
3237HEADERS += $(OPENSSL_BUILD_MAKEFILE )
3338LIBCRYPTO := $(OPENSSL_BUILD_DIR ) /$(LIBCRYPTO_NAME )
3439LIBSSL := $(OPENSSL_BUILD_DIR ) /$(LIBSSL_NAME )
35- LDFLAGS += $(LIBSSL ) $(LIBCRYPTO )
40+ LIBS += $(LIBSSL ) $(LIBCRYPTO )
3641LIBPNG_BUILD_DIR := $(BUILD_DIR ) /libpng
3742LIBPNG_BUILD_AUTOGEN := $(LIBPNG_BUILD_DIR ) /autogen.sh
3843LIBPNG_BUILD_CONFIGURE := $(LIBPNG_BUILD_DIR ) /configure
@@ -42,15 +47,15 @@ LIBPNG_LIB_DIR := $(LIBPNG_BUILD_DIR)
4247HEADERS += $(LIBPNG_BUILD_MAKEFILE )
4348LIBPNG_LA := $(LIBPNG_BUILD_DIR ) /.libs/libpng16.la
4449LIBPNG := $(LIBPNG_BUILD_DIR ) /libpng16.a
45- LDFLAGS += $(LIBPNG )
50+ LIBS += $(LIBPNG )
4651ZLIB_BUILD_DIR := $(BUILD_DIR ) /zlib
4752ZLIB_BUILD_CONFIGURE := $(ZLIB_BUILD_DIR ) /configure
4853ZLIB_BUILD_MAKEFILE := $(ZLIB_BUILD_DIR ) /Makefile
4954ZLIB_INCLUDE_DIR := $(ZLIB_BUILD_DIR )
5055ZLIB_LIB_DIR := $(ZLIB_BUILD_DIR )
5156HEADERS += $(ZLIB_BUILD_MAKEFILE )
5257LIBZ := $(ZLIB_BUILD_DIR ) /libz.a
53- LDFLAGS += $(LIBZ )
58+ LIBS += $(LIBZ )
5459VORBIS_BUILD_DIR := $(BUILD_DIR ) /vorbis
5560VORBIS_BUILD_AUTOGEN := $(VORBIS_BUILD_DIR ) /autogen.sh
5661VORBIS_BUILD_MAKEFILE := $(VORBIS_BUILD_DIR ) /Makefile
@@ -60,7 +65,7 @@ HEADERS += $(VORBIS_BUILD_MAKEFILE)
6065LIBVORBISFILE_LA := $(VORBIS_BUILD_DIR ) /lib/.libs/libvorbisfile.la
6166LIBVORBIS := $(VORBIS_BUILD_DIR ) /libvorbis.a
6267LIBVORBISFILE := $(VORBIS_BUILD_DIR ) /libvorbisfile.a
63- LDFLAGS += $(LIBVORBISFILE ) $(LIBVORBIS )
68+ LIBS += $(LIBVORBISFILE ) $(LIBVORBIS )
6469OGG_BUILD_DIR := $(BUILD_DIR ) /ogg
6570OGG_BUILD_AUTOGEN := $(OGG_BUILD_DIR ) /autogen.sh
6671OGG_BUILD_MAKEFILE := $(OGG_BUILD_DIR ) /Makefile
@@ -69,7 +74,7 @@ OGG_LIB_DIR := $(OGG_BUILD_DIR)
6974HEADERS += $(OGG_BUILD_MAKEFILE )
7075LIBOGG_LA := $(OGG_BUILD_DIR ) /src/.libs/libogg.la
7176LIBOGG := $(OGG_BUILD_DIR ) /libogg.a
72- LDFLAGS += $(LIBOGG )
77+ LIBS += $(LIBOGG )
7378SDL_BUILD_DIR := $(BUILD_DIR ) /SDL
7479SDL_BUILD_CONFIGURE := $(SDL_BUILD_DIR ) /configure
7580SDL_BUILD_MAKEFILE := $(SDL_BUILD_DIR ) /Makefile
@@ -79,7 +84,7 @@ HEADERS += $(SDL_BUILD_MAKEFILE)
7984LIBSDL2_LA := $(SDL_BUILD_DIR ) /build/.libs/libSDL2.la
8085LIBSDL2 := $(SDL_BUILD_DIR ) /build/libSDL2.a
8186LIBSDL2MAIN := $(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
8388PROGRAM_NAME := voxels$(EXEEXT )
8489PROGRAM := $(BUILD_DIR ) /$(PROGRAM_NAME )
8590CPP_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
224229LDFLAGS += -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
230234install : all
231235
232236clean :
233237 -rm -rf $(OBJECTS ) $(PROGRAM )
234238
235239distclean : 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
0 commit comments