diff options
| author | Grant Limberg <glimberg@gmail.com> | 2015-07-03 18:15:56 -0700 |
|---|---|---|
| committer | Grant Limberg <glimberg@gmail.com> | 2015-07-03 18:15:56 -0700 |
| commit | 6d398beefddb48d91f27e5f41bf39f40eb77222f (patch) | |
| tree | 2aa6dfcf8dd121e61c12c3481adbe000a822516f /make-linux.mk | |
| parent | ab34884e3e47eb611d42312eb05079119f62e8b8 (diff) | |
| parent | 532f41347221668144f30dd1427de49f1925d2b8 (diff) | |
| download | infinitytier-6d398beefddb48d91f27e5f41bf39f40eb77222f.tar.gz infinitytier-6d398beefddb48d91f27e5f41bf39f40eb77222f.zip | |
Merge branch 'adamierymenko-dev' into android-jni
Diffstat (limited to 'make-linux.mk')
| -rw-r--r-- | make-linux.mk | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/make-linux.mk b/make-linux.mk index cc8021d0..18000c6c 100644 --- a/make-linux.mk +++ b/make-linux.mk @@ -1,7 +1,25 @@ -# Pick clang or gcc, with preference for clang -CC=$(shell if [ -e /usr/bin/clang ]; then echo clang; else echo gcc; fi) -CXX=$(shell if [ -e /usr/bin/clang++ ]; then echo clang++; else echo g++; fi) +# +# Makefile for ZeroTier One on Linux +# +# This is confirmed to work on distributions newer than CentOS 6 (the +# one used for reference builds) and on 32 and 64 bit x86 and ARM +# machines. It should also work on other 'normal' machines and recent +# distributions. Editing might be required for tiny devices or weird +# distros. +# +# Targets +# one: zerotier-one and symlinks (cli and idtool) +# all: builds 'one' +# selftest: zerotier-selftest +# debug: builds 'one' and 'selftest' with tracing and debug flags +# installer: ZeroTierOneInstaller-... and packages (if possible) +# official: builds 'one' and 'installer' +# clean: removes all built files, objects, other trash +# +# Automagically pick clang or gcc, with preference for clang +CC?=$(shell if [ -e /usr/bin/clang ]; then echo clang; else echo gcc; fi) +CXX?=$(shell if [ -e /usr/bin/clang++ ]; then echo clang++; else echo g++; fi) INCLUDES= DEFS= LIBS= @@ -24,25 +42,28 @@ endif # "make debug" is a shortcut for this ifeq ($(ZT_DEBUG),1) DEFS+=-DZT_TRACE - CFLAGS=-Wall -g -pthread $(INCLUDES) $(DEFS) + CFLAGS+=-Wall -g -pthread $(INCLUDES) $(DEFS) + CXXFLAGS+=-Wall -g -pthread $(INCLUDES) $(DEFS) LDFLAGS= STRIP=echo # The following line enables optimization for the crypto code, since - # C25519 in particular is almost UNUSABLE in heavy testing without it. + # C25519 in particular is almost UNUSABLE in -O0 even on a 3ghz box! ext/lz4/lz4.o node/Salsa20.o node/SHA512.o node/C25519.o node/Poly1305.o: CFLAGS = -Wall -O2 -g -pthread $(INCLUDES) $(DEFS) else - CFLAGS=-Wall -O3 -fPIE -fvisibility=hidden -fstack-protector -pthread $(INCLUDES) -DNDEBUG $(DEFS) + CFLAGS?=-O3 -fstack-protector + CFLAGS+=-Wall -fPIE -fvisibility=hidden -pthread $(INCLUDES) -DNDEBUG $(DEFS) + CXXFLAGS?=-O3 -fstack-protector + CXXFLAGS+=-Wall -fPIE -fvisibility=hidden -fno-rtti -pthread $(INCLUDES) -DNDEBUG $(DEFS) LDFLAGS=-pie -Wl,-z,relro,-z,now STRIP=strip --strip-all endif # Uncomment for gprof profile build #CFLAGS=-Wall -g -pg -pthread $(INCLUDES) $(DEFS) +#CXXFLAGS=-Wall -g -pg -pthread $(INCLUDES) $(DEFS) #LDFLAGS= #STRIP=echo -CXXFLAGS=$(CFLAGS) -fno-rtti - all: one one: $(OBJS) one.o @@ -62,7 +83,8 @@ clean: rm -rf *.o node/*.o controller/*.o osdep/*.o service/*.o ext/http-parser/*.o ext/lz4/*.o ext/json-parser/*.o zerotier-one zerotier-idtool zerotier-cli zerotier-selftest build-* ZeroTierOneInstaller-* *.deb *.rpm debug: FORCE - make -j 4 ZT_DEBUG=1 + make ZT_DEBUG=1 one + make ZT_DEBUG=1 selftest official: FORCE make -j 4 ZT_OFFICIAL_RELEASE=1 |
