commit 4078a8417ef7ab8be7a93efd36c69c50dde436e8 Author: Sebastian Hahn sebastian@torproject.org Date: Wed Feb 1 19:10:00 2012 +0100
Add dependencies for all build- targets --- build-scripts/linux.mk | 34 +++++++++++++++++++++------------- build-scripts/osx.mk | 21 ++++++++++++++------- build-scripts/versions.mk | 9 ++++++++- build-scripts/windows.mk | 19 +++++++++++++------ 4 files changed, 56 insertions(+), 27 deletions(-)
diff --git a/build-scripts/linux.mk b/build-scripts/linux.mk index 5073b70..8f25015 100644 --- a/build-scripts/linux.mk +++ b/build-scripts/linux.mk @@ -53,48 +53,55 @@ source-dance: fetch-source unpack-source echo "We're ready for building now."
ZLIB_OPTS=--shared --prefix=$(BUILT_DIR) -build-zlib: +build-zlib: $(ZLIB_DIR) cd $(ZLIB_DIR) && ./configure $(ZLIB_OPTS) cd $(ZLIB_DIR) && make -j $(NUM_CORES) cd $(ZLIB_DIR) && make install + touch build-zlib + +LIBPNG_OPTS=--prefix=$(BUILT_DIR) +build-libpng: $(LIBPNG_DIR) + cd $(LIBPNG_DIR) && ./configure $(LIBPNG_OPTS) + cd $(LIBPNG_DIR) && make + cd $(LIBPNG_DIR) && make install + touch build-libpng
OPENSSL_OPTS=-no-idea -no-rc5 -no-md2 shared zlib --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -I$(BUILT_DIR)/include -L$(BUILT_DIR)/lib -build-openssl: +build-openssl: build-zlib $(OPENSSL_DIR) cd $(OPENSSL_DIR) && ./config $(OPENSSL_OPTS) cd $(OPENSSL_DIR) && make depend cd $(OPENSSL_DIR) && make cd $(OPENSSL_DIR) && make install + touch build-openssl
QT_BUILD_PREFS=-system-zlib -confirm-license -opensource -openssl-linked -no-qt3support -fast -release -nomake demos -nomake examples QT_OPTS=$(QT_BUILD_PREFS) -prefix $(BUILT_DIR) -I $(BUILT_DIR)/include -I $(BUILT_DIR)/include/openssl/ -L$(BUILT_DIR)/lib -build-qt: +build-qt: build-zlib build-openssl $(QT_DIR) cd $(QT_DIR) && ./configure $(QT_OPTS) cd $(QT_DIR) && make -j $(NUM_CORES) cd $(QT_DIR) && make install + touch build-qt
VIDALIA_OPTS=-DOPENSSL_LIBCRYPTO=$(BUILT_DIR)/lib/libcrypto.so.1.0.0 -DOPENSSL_LIBSSL=$(BUILT_DIR)/lib/libssl.so.1.0.0 -DCMAKE_BUILD_TYPE=debug -DQT_QMAKE_EXECUTABLE=$(BUILT_DIR)/bin/qmake .. -build-vidalia: +build-vidalia: build-openssl build-qt $(VIDALIA_DIR) -mkdir $(VIDALIA_DIR)/build cd $(VIDALIA_DIR)/build && cmake $(VIDALIA_OPTS) && make -j $(NUM_CORES) cd $(VIDALIA_DIR)/build && DESTDIR=$(BUILT_DIR) make install + touch build-vidalia
LIBEVENT_OPTS=--prefix=$(BUILT_DIR) -build-libevent: +build-libevent: build-zlib build-openssl $(LIBEVENT_DIR) cd $(LIBEVENT_DIR) && ./configure $(LIBEVENT_OPTS) cd $(LIBEVENT_DIR) && make -j $(NUM_CORES) cd $(LIBEVENT_DIR) && make install - -LIBPNG_OPTS=--prefix=$(BUILT_DIR) -build-libpng: - cd $(LIBPNG_DIR) && ./configure $(LIBPNG_OPTS) - cd $(LIBPNG_DIR) && make - cd $(LIBPNG_DIR) && make install + touch build-libevent
TOR_OPTS=--enable-gcc-warnings --with-openssl-dir=$(BUILT_DIR) --with-zlib-dir=$(BUILT_DIR) --with-libevent-dir=$(BUILT_DIR)/lib --prefix=$(BUILT_DIR) -build-tor: +build-tor: build-zlib build-openssl build-libevent $(TOR_DIR) cd $(TOR_DIR) && ./configure $(TOR_OPTS) cd $(TOR_DIR) && make -j $(NUM_CORES) cd $(TOR_DIR) && make install + touch build-tor
## Polipo doesn't use autoconf, so we just have to hack their Makefile ## This probably needs to be updated if Polipo ever updates their Makefile @@ -107,9 +114,10 @@ build-polipo: build-pidgin: echo "We're not building pidgin yet!"
-build-firefox: +build-firefox: $(CONFIG_SRC)/dot_mozconfig $(FIREFOX_DIR) cp $(CONFIG_SRC)/dot_mozconfig $(FIREFOX_DIR)/mozconfig cd $(FIREFOX_DIR) && make -f client.mk build + touch build-firefox
copy-firefox: -rm -rf $(FETCH_DIR)/Firefox diff --git a/build-scripts/osx.mk b/build-scripts/osx.mk index c5cfdfb..947c04e 100644 --- a/build-scripts/osx.mk +++ b/build-scripts/osx.mk @@ -66,13 +66,14 @@ source-dance: fetch-source unpack-source
ZLIB_OPTS=--prefix=$(BUILT_DIR) ZLIB_CFLAGS="-arch $(ARCH_TYPE)" -build-zlib: +build-zlib: $(ZLIB_DIR) cd $(ZLIB_DIR) && CFLAGS=$(ZLIB_CFLAGS) ./configure $(ZLIB_OPTS) cd $(ZLIB_DIR) && make -j $(NUM_CORES) cd $(ZLIB_DIR) && make install + touch build-zlib
OPENSSL_OPTS=-no-rc5 -no-md2 -no-man shared zlib $(BACKWARDS_COMPAT) --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -L$(BUILT_DIR)/lib -I$(BUILT_DIR)/include -build-openssl: +build-openssl: build-zlib $(OPENSSL_DIR) cp ../src/current-patches/openssl/*patch $(OPENSSL_DIR) cp patch-any-src.sh $(OPENSSL_DIR) cd $(OPENSSL_DIR) && ./patch-any-src.sh @@ -85,44 +86,50 @@ endif # Do not use -j for the following make call, random build errors might happen. cd $(OPENSSL_DIR) && make cd $(OPENSSL_DIR) && make install + touch build-openssl
QT_BUILD_PREFS=-system-zlib -confirm-license -opensource -openssl-linked -no-qt3support \ -fast -release -no-framework -nomake demos -nomake examples $(SDK) QT_OPTS=$(QT_BUILD_PREFS) -prefix $(BUILT_DIR) -I $(BUILT_DIR)/include -I $(BUILT_DIR)/include/openssl/ -L $(BUILT_DIR)/lib -build-qt: +build-qt: build-zlib build-openssl $(QT_DIR) cd $(QT_DIR) && ./configure $(QT_OPTS) cd $(QT_DIR) && make -j $(NUM_CORES) cd $(QT_DIR) && make install + touch build-qt
VIDALIA_OPTS=-DCMAKE_OSX_ARCHITECTURES=$(ARCH_TYPE) -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake \ -DCMAKE_BUILD_TYPE=debug .. -build-vidalia: +build-vidalia: build-openssl build-qt $(VIDALIA_DIR) export MACOSX_DEPLOYMENT_TARGET=$(OSX_VERSION) -mkdir $(VIDALIA_DIR)/build cd $(VIDALIA_DIR)/build && cmake $(VIDALIA_OPTS) \ && make -j $(NUM_CORES) && make dist-osx-libraries cd $(VIDALIA_DIR)/build && DESTDIR=$(BUILT_DIR) make install + touch build-vidalia
LIBEVENT_CFLAGS="-O -g -arch $(ARCH_TYPE) $(MIN_VERSION) $(CF_MIN_VERSION) -arch $(ARCH_TYPE)" LIBEVENT_LDFLAGS="-L$(BUILT_DIR)/lib $(LD_MIN_VERSION)" LIBEVENT_OPTS=--prefix=$(BUILT_DIR) --enable-static --disable-shared --disable-dependency-tracking $(CC) -build-libevent: +build-libevent: build-zlib build-openssl $(LIBEVENT_DIR) cd $(LIBEVENT_DIR) && CFLAGS=$(LIBEVENT_CFLAGS) LDFLAGS=$(LIBEVENT_LDFLAGS) ./configure $(LIBEVENT_OPTS) cd $(LIBEVENT_DIR) && make -j $(NUM_CORES) cd $(LIBEVENT_DIR) && make install + touch build-libevent
TOR_CFLAGS="-O -g -arch $(ARCH_TYPE) -I$(BUILT_DIR)/include $(MIN_VERSION) $(CF_MIN_VERSION)" TOR_LDFLAGS="-L$(BUILT_DIR)/lib $(LD_MIN_VERSION)" TOR_OPTS=--enable-static-openssl --enable-static-libevent --with-openssl-dir=$(BUILT_DIR)/lib --with-libevent-dir=$(BUILT_DIR)/lib --prefix=$(BUILT_DIR) --disable-dependency-tracking $(CC) -build-tor: +build-tor: build-zlib build-openssl build-libevent $(TOR_DIR) cd $(TOR_DIR) && CFLAGS=$(TOR_CFLAGS) LDFLAGS=$(TOR_LDFLAGS) ./configure $(TOR_OPTS) cd $(TOR_DIR) && make -j $(NUM_CORES) cd $(TOR_DIR) && make install + touch build-tor
-build-firefox: +build-firefox: $(FIREFOX_DIR) $(CONFIG_SRC)/mozconfig-osx-$(ARCH_TYPE) cp $(CONFIG_SRC)/mozconfig-osx-$(ARCH_TYPE) $(FIREFOX_DIR)/mozconfig cd $(FIREFOX_DIR) && make -f client.mk build + touch build-firefox
copy-firefox: -rm -rf $(FETCH_DIR)/Firefox.app diff --git a/build-scripts/versions.mk b/build-scripts/versions.mk index 9bd254d..da23ea1 100644 --- a/build-scripts/versions.mk +++ b/build-scripts/versions.mk @@ -171,4 +171,11 @@ clean-unpack-%:
clean-unpack: clean-unpack-zlib clean-unpack-libpng clean-unpack-qt clean-unpack-openssl clean-unpack-vidalia clean-unpack-libevent clean-unpack-tor clean-unpack-firefox
-.PHONY: clean-fetch clean-unpack +clean-build-%: + rm -rf $($($*)_DIR) + rm -rf build-$* + +clean-build: clean-build-zlib clean-build-libpng clean-build-qt clean-build-openssl clean-build-vidalia clean-build-libevent clean-build-tor clean-build-firefox + +.PHONY: clean-fetch clean-unpack clean-build + diff --git a/build-scripts/windows.mk b/build-scripts/windows.mk index 862cd40..046baa4 100644 --- a/build-scripts/windows.mk +++ b/build-scripts/windows.mk @@ -73,40 +73,46 @@ include $(PWD)/versions.mk source-dance: fetch-source unpack-source echo "We're ready for building now."
-build-zlib: +build-zlib: $(ZLIB_DIR) cd $(ZLIB_DIR) && sed -i -e "s%prefix = /usr/local%prefix = ${BUILT_DIR}%" win32/Makefile.gcc cd $(ZLIB_DIR) && LDFLAGS="-Wl,--nxcompat -Wl,--dynamicbase" make -f win32/Makefile.gcc -j $(NUM_CORES) cd $(ZLIB_DIR) && BINARY_PATH="$(BUILT_DIR)/bin" INCLUDE_PATH="$(BUILT_DIR)/include" LIBRARY_PATH="$(BUILT_DIR)/lib" make -f win32/Makefile.gcc install + touch build-zlib
OPENSSL_OPTS=-no-idea -no-rc5 -no-md2 shared zlib --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -L$(BUILT_DIR)/lib -Wl,--nxcompat -Wl,--dynamicbase -I$(BUILT_DIR)/include -build-openssl: +build-openssl: build-zlib $(OPENSSL_DIR) cd $(OPENSSL_DIR) && ./config $(OPENSSL_OPTS) cd $(OPENSSL_DIR) && make depend cd $(OPENSSL_DIR) && make cd $(OPENSSL_DIR) && make install + touch build-openssl
VIDALIA_OPTS=-DCMAKE_EXE_LINKER_FLAGS="-static-libstdc++ -Wl,--nxcompat -Wl,--dynamicbase" -DWIN2K=1 -DQT_MAKE_EXECUTABLE=/c/Qt/$(QT_VER)/bin/qmake -DCMAKE_BUILD_TYPE=minsizerel -DMINGW_BINARY_DIR=$(MING) -DOPENSSL_BINARY_DIR=$(OPENSSL) -DWIX_BINARY_DIR=$(WIX_LIB) -build-vidalia: +# XXX Once we build qt on windows, we'll want to add build-qt here +build-vidalia: build-openssl $(VIDALIA_DIR) -mkdir $(VIDALIA_DIR)/build cd $(VIDALIA_DIR)/build && cmake -G "MSYS Makefiles" $(VIDALIA_OPTS) .. cd $(VIDALIA_DIR)/build && make -j $(NUM_CORES) + touch build-vidalia
LIBEVENT_CFLAGS="-I$(BUILT_DIR)/include -O -g" LIBEVENT_LDFLAGS="-L$(BUILT_DIR)/lib -L$(BUILT_DIR)/bin -Wl,--nxcompat -Wl,--dynamicbase" LIBEVENT_OPTS=--prefix=$(BUILT_DIR) --enable-static --disable-shared --disable-dependency-tracking -build-libevent: +build-libevent: build-zlib build-openssl $(LIBEVENT_DIR) cd $(LIBEVENT_DIR) && CFLAGS=$(LIBEVENT_CFLAGS) LDFLAGS=$(LIBEVENT_LDFLAGS) ./configure $(LIBEVENT_OPTS) cd $(LIBEVENT_DIR) && make -j $(NUM_CORES) cd $(LIBEVENT_DIR) && make install + touch build-libevent
TOR_CFLAGS="-O -g -I$(BUILT_DIR)/include" TOR_LDFLAGS="-L$(BUILT_DIR)/lib -L$(BUILT_DIR)/bin" TOR_OPTS=--enable-static-libevent --with-libevent-dir=$(BUILT_DIR)/lib --prefix=$(BUILT_DIR) build-tor:PATH+=:$(BUILT_DIR)/bin -build-tor: +build-tor: build-zlib build-openssl build-libevent $(TOR_DIR) cd $(TOR_DIR) && CFLAGS=$(TOR_CFLAGS) LDFLAGS=$(TOR_LDFLAGS) ./configure $(TOR_OPTS) cd $(TOR_DIR) && make -j $(NUM_CORES) cd $(TOR_DIR) && make install + touch build-tor
patch-mozbuild: cp ../src/current-patches/mozilla-build/start-msvc.patch $(MOZ_BUILD) @@ -114,9 +120,10 @@ patch-mozbuild: cp patch-mozilla-build.sh $(MOZ_BUILD) cd $(MOZ_BUILD) && ./patch-mozilla-build.sh $(MSVC_VER)
-build-firefox: +build-firefox: $(FIREFOX_DIR) $(CONFIG_SRC)/dot_mozconfig $(MOZ_BUILD) $(MOZ_BUILD)/start-msvc$(MSVC_VER).bat cp $(CONFIG_SRC)/dot_mozconfig $(FIREFOX_DIR)/mozconfig cd $(MOZ_BUILD) && cmd.exe /c "start-msvc$(MSVC_VER).bat $(FIREFOX_DIR)" + touch build-firefox
copy-firefox: -rm -rf $(FIREFOX)
tor-commits@lists.torproject.org