diff --git a/Makefile b/Makefile index 60fe7b1ab..33ea4af40 100644 --- a/Makefile +++ b/Makefile @@ -866,7 +866,8 @@ build-info: help: @$(ECHO) @$(ECHO) " This Makefile is known to work on Linux and Mac in a standard shell environment." - @$(ECHO) " It also works on Windows by following the instructions in make/winx86/README.txt." + @$(ECHO) " It also works on Windows by following the instructions given on this wiki page:" + @$(ECHO) " http://wiki.openpilot.org/display/Doc/Windows%3A+Building+and+Packaging" @$(ECHO) @$(ECHO) " Here is a summary of the available targets:" @$(ECHO) @@ -875,11 +876,15 @@ help: @$(ECHO) " qt_sdk_install - Install the QT development tools" @$(ECHO) " mingw_install - Install the MinGW toolchain (Windows only)" @$(ECHO) " python_install - Install the Python interpreter (Windows only)" + @$(ECHO) " nsis_install - Install the NSIS Unicode (Windows only)" @$(ECHO) " uncrustify_install - Install the Uncrustify source code beautifier" + @$(ECHO) " doxygen_install - Install the Doxygen documentation generator" + @$(ECHO) " These targets are not updated yet and are probably broken:" @$(ECHO) " openocd_install - Install the OpenOCD JTAG daemon" @$(ECHO) " stm32flash_install - Install the stm32flash tool for unbricking F1-based boards" @$(ECHO) " dfuutil_install - Install the dfu-util tool for unbricking F4-based boards" @$(ECHO) " android_sdk_install - Install the Android SDK tools" + @$(ECHO) " Install all available tools:" @$(ECHO) " all_sdk_install - Install all of above (platform-dependent)" @$(ECHO) @$(ECHO) " Other tool options are:" diff --git a/make/tools.mk b/make/tools.mk index e5007a9de..599d1e21f 100644 --- a/make/tools.mk +++ b/make/tools.mk @@ -11,6 +11,7 @@ # qt_sdk_install # mingw_install (Windows only) # python_install (Windows only) +# nsis_install (Windows only) # uncrustify_install # doxygen_install # @@ -73,6 +74,7 @@ else ifeq ($(UNAME), Windows) QT_SDK_URL := http://wiki.openpilot.org/download/attachments/18612236/qt-4.8.4-windows.tar.bz2 MINGW_URL := http://wiki.openpilot.org/download/attachments/18612236/mingw-4.4.0.tar.bz2 PYTHON_URL := http://wiki.openpilot.org/download/attachments/18612236/python-2.7.4-windows.tar.bz2 + NSIS_URL := http://wiki.openpilot.org/download/attachments/18612236/nsis-2.46-unicode.tar.bz2 UNCRUSTIFY_URL := http://wiki.openpilot.org/download/attachments/18612236/uncrustify-0.60-windows.tar.bz2 DOXYGEN_URL := http://wiki.openpilot.org/download/attachments/18612236/doxygen-1.8.3.1-windows.tar.bz2 endif @@ -82,6 +84,7 @@ ARM_SDK_DIR := $(TOOLS_DIR)/gcc-arm-none-eabi-4_7-2013q1 QT_SDK_DIR := $(TOOLS_DIR)/qt-4.8.4 MINGW_DIR := $(TOOLS_DIR)/mingw-4.4.0 PYTHON_DIR := $(TOOLS_DIR)/python-2.7.4 +NSIS_DIR := $(TOOLS_DIR)/nsis-2.46-unicode UNCRUSTIFY_DIR := $(TOOLS_DIR)/uncrustify-0.60 DOXYGEN_DIR := $(TOOLS_DIR)/doxygen-1.8.3.1 @@ -93,7 +96,7 @@ DOXYGEN_DIR := $(TOOLS_DIR)/doxygen-1.8.3.1 ALL_SDK_TARGETS := arm_sdk qt_sdk ifeq ($(UNAME), Windows) - ALL_SDK_TARGETS += mingw python + ALL_SDK_TARGETS += mingw python nsis endif ALL_SDK_TARGETS += uncrustify doxygen @@ -400,6 +403,30 @@ endif python_version: -$(V1) $(PYTHON) --version +############################## +# +# NSIS Unicode +# +############################## + +ifeq ($(UNAME), Windows) + +$(eval $(call TOOL_INSTALL_TEMPLATE,nsis,$(NSIS_DIR),$(NSIS_URL),$(notdir $(NSIS_URL)))) + +ifeq ($(shell [ -d "$(NSIS_DIR)" ] && $(ECHO) "exists"), exists) + export NSIS := $(NSIS_DIR)/makensis +else + # not installed, hope it's in the path... + # $(info $(EMPTY) WARNING $(call toprel, $(NSIS_DIR)) not found (make nsis_install), using system PATH) + export NSIS ?= makensis +endif + +.PHONY: nsis_version +nsis_version: + -$(V1) $(NSIS) | head -n1 + +endif + ############################## # # Uncrustify diff --git a/package/Windows.mk b/package/Windows.mk index f6e195a41..ea474d5c5 100644 --- a/package/Windows.mk +++ b/package/Windows.mk @@ -9,11 +9,10 @@ endif VERSION_CMD := $(VERSION_INFO) FW_DIR := $(PACKAGE_DIR)/firmware -NSIS_CMD := makensis.exe NSIS_OPTS := /V3 -NSIS_DIR := $(ROOT_DIR)/package/winx86 -NSIS_SCRIPT := $(NSIS_DIR)/openpilotgcs.nsi -NSIS_TEMPLATE := $(NSIS_DIR)/openpilotgcs.tpl +NSIS_WINX86 := $(ROOT_DIR)/package/winx86 +NSIS_SCRIPT := $(NSIS_WINX86)/openpilotgcs.nsi +NSIS_TEMPLATE := $(NSIS_WINX86)/openpilotgcs.tpl NSIS_HEADER := $(OPGCSSYNTHDIR)/openpilotgcs.nsh .PHONY: package @@ -28,4 +27,4 @@ package: $(V1) echo "Building Windows installer, please wait..." $(V1) echo "If you have a script error in line 1 - use Unicode NSIS 2.46+" $(V1) echo " http://www.scratchpaper.com" - $(NSIS_CMD) $(NSIS_OPTS) $(NSIS_SCRIPT) + $(NSIS) $(NSIS_OPTS) $(NSIS_SCRIPT)