diff --git a/Makefile b/Makefile index df41ac29..f1e42e9e 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ export CFLAGS = -x c++ --std=c++14 -ffunction-sections -fdata-sections export LDFLAGS = -pthread export COPTFLAGS = -Os -export LDOPTFLAGS = -Os -s +export LDOPTFLAGS = -Os export CDBGFLAGS = -O0 -g export LDDBGFLAGS = -O0 -g @@ -16,7 +16,8 @@ endif ifeq ($(OS), Windows_NT) export PROTOC = /mingw32/bin/protoc export CXX = /mingw32/bin/g++ -export AR = /mingw32/bin/ar rcs +export AR = /mingw32/bin/ar rc +export RANLIB = /mingw32/bin/ranlib -c export STRIP = /mingw32/bin/strip export CFLAGS += -I/mingw32/include/libusb-1.0 -I/mingw32/include export LDFLAGS += @@ -32,7 +33,8 @@ endif export PROTOC = protoc export CXX = g++ -export AR = ar rcs +export AR = ar rc +export RANLIB = ranlib -c export STRIP = strip export CFLAGS += $(shell pkg-config --cflags $(PACKAGES)) export LDFLAGS += @@ -41,13 +43,18 @@ export EXTENSION = endif export XXD = xxd +ifeq ($(shell uname),Darwin) +AR = ar rcS +RANLIB += -no_warning_for_no_symbols +endif + CFLAGS += -Ilib -Idep/fmt -Iarch export OBJDIR = .obj all: .obj/build.ninja @ninja -f .obj/build.ninja - @-cscope -bRq + @(command -v cscope > /dev/null) && cscope -bRq clean: @echo CLEAN diff --git a/doc/building.md b/doc/building.md index e6f033bd..6a5d974d 100644 --- a/doc/building.md +++ b/doc/building.md @@ -186,7 +186,8 @@ install some support packages. - For Linux (this is Ubuntu, but this should apply to Debian too): `ninja-build`, `libusb-1.0-0-dev`, `libsqlite3-dev`, `zlib1g-dev`, `libudev-dev`. - - For OSX with Homebrew: `ninja`, `libusb`, `pkg-config`, `sqlite`. + - For OSX with Homebrew: `ninja`, `libusb`, `pkg-config`, `sqlite`, + `protobuf`. - For Windows with MSYS2: `make`, `ninja`, `mingw-w64-i686-libusb`, `mingw-w64-i686-protobuf`, `mingw-w64-i686-sqlite3`, `mingw-w64-i686-zlib`, `mingw-w64-i686-gcc`. diff --git a/mkninja.sh b/mkninja.sh index ba9f1b26..b32c9626 100644 --- a/mkninja.sh +++ b/mkninja.sh @@ -24,7 +24,7 @@ rule binencode restat = true rule library - command = $AR \$out \$in + command = $AR \$out \$in && $RANLIB \$out description = AR \$in rule link @@ -186,9 +186,10 @@ buildprogram() { echo build $prog-debug$EXTENSION : link $dobjs echo " flags=$flags $LDDBGFLAGS" - echo build $prog$EXTENSION : link $oobjs + echo build $prog$EXTENSION-unstripped : link $oobjs echo " flags=$flags $LDOPTFLAGS" + echo build $prog$EXTENSION : strip $prog$EXTENSION-unstripped } buildsimpleprogram() {