diff --git a/makerelease-osx.mk b/makerelease-osx.mk index 2d7fa77c..802e0291 100644 --- a/makerelease-osx.mk +++ b/makerelease-osx.mk @@ -66,7 +66,6 @@ # Note: The convoluted way to create separate arch builds and later merge them # with lipo is because of two things: # 1) Avoid patching c-ares, which hardcodes some sizes in its headers. -# 2) Make it easy in the future to enable -flto (currently, -flto builds crash) # # Note: This Makefile uses resources from osx-package when creating the # *.pkg and *.dmg targets @@ -104,6 +103,7 @@ export CXXFLAGS LDFLAGS ?= -Wl,-dead_strip export LDFLAGS +LTO_FLAGS = -flto -ffunction-sections -fdata-sections # Dependency versions zlib_version = 1.2.8 @@ -113,15 +113,21 @@ zlib_url = http://zlib.net/zlib-$(zlib_version).tar.gz expat_version = 2.1.0 expat_hash = b08197d146930a5543a7b99e871cba3da614f6f0 expat_url = http://sourceforge.net/projects/expat/files/expat/$(expat_version)/expat-$(expat_version).tar.gz +expat_cflags=$(LTO_FLAGS) +expat_ldflags=$(CFLAGS) $(LTO_FLAGS) cares_version = 1.10.0 cares_hash = e44e6575d5af99cb3a38461486e1ee8b49810eb5 cares_url = http://c-ares.haxx.se/download/c-ares-$(cares_version).tar.gz cares_confflags = "--enable-optimize=$(OPTFLAGS)" +cares_cflags=$(LTO_FLAGS) +cares_ldflags=$(CFLAGS) $(LTO_FLAGS) sqlite_version = autoconf-3080500 sqlite_hash = 7f667e10ccebc26ab2086b8a30cb0a600ca0acae sqlite_url = http://sqlite.org/2014/sqlite-$(sqlite_version).tar.gz +sqlite_cflags=$(LTO_FLAGS) +sqlite_ldflags=$(CFLAGS) $(LTO_FLAGS) gmp_version = 5.1.3 gmp_hash = b35928e2927b272711fdfbf71b7cfd5f86a6b165 @@ -282,8 +288,8 @@ zlib.%.build: zlib.stamp ( cd $(DEST) && ./configure \ --static --prefix=$(PWD)/$(ARCH) \ ) - $(MAKE) -C $(DEST) -sj$(CPUS) CFLAGS="$(CFLAGS) -arch $(ARCH)" - $(MAKE) -C $(DEST) -sj$(CPUS) CFLAGS="$(CFLAGS) -arch $(ARCH)" check + $(MAKE) -C $(DEST) -sj$(CPUS) CFLAGS="$(CFLAGS) $(LTO_FLAGS) -arch $(ARCH)" + $(MAKE) -C $(DEST) -sj$(CPUS) CFLAGS="$(CFLAGS) $(LTO_FLAGS) -arch $(ARCH)" check $(MAKE) -C $(DEST) -s install touch $@ @@ -301,8 +307,9 @@ $(1).%.build: $(1).stamp --enable-static --disable-shared \ --prefix=$$(PWD)/$$(ARCH) \ $$($(1)_confflags) $$($(1)_confflags_$$(ARCH)) \ - CFLAGS="$$(CFLAGS) -arch $$(ARCH)" \ - CXXFLAGS="$$(CXXFLAGS) -arch $$(ARCH) -stdlib=libc++ -std=c++11" \ + CFLAGS="$$(CFLAGS) $$($(1)_cflags) -arch $$(ARCH)" \ + CXXFLAGS="$$(CXXFLAGS) $$($(1)_cxxflags) -arch $$(ARCH) -stdlib=libc++ -std=c++11" \ + LDFLAGS="$(LDFLAGS) $$($(1)_ldflags)" \ ) $$(MAKE) -C $$(DEST) -sj$(CPUS) $$(MAKE) -C $$(DEST) -sj$(CPUS) check @@ -331,9 +338,9 @@ aria2.%.build: zlib.%.build expat.%.build gmp.%.build cares.%.build sqlite.%.bui --sysconfdir=/etc \ --with-cppunit-prefix=$(PWD)/$(ARCH) \ $(ARIA2_CONFFLAGS) \ - CFLAGS="$(CFLAGS) -arch $(ARCH) -I$(PWD)/$(ARCH)/include" \ - CXXFLAGS="$(CXXFLAGS) -arch $(ARCH) -I$(PWD)/$(ARCH)/include" \ - LDFLAGS="$(LDFLAGS) -L$(PWD)/$(ARCH)/lib" \ + CFLAGS="$(CFLAGS) $(LTO_FLAGS) -arch $(ARCH) -I$(PWD)/$(ARCH)/include" \ + CXXFLAGS="$(CXXFLAGS) $(LTO_FLAGS) -arch $(ARCH) -I$(PWD)/$(ARCH)/include" \ + LDFLAGS="$(LDFLAGS) $(CXXFLAGS) $(LTO_FLAGS) -L$(PWD)/$(ARCH)/lib" \ PKG_CONFIG_PATH=$(PWD)/$(ARCH)/lib/pkgconfig \ ) $(MAKE) -C $(DEST) -sj$(CPUS)