-
Notifications
You must be signed in to change notification settings - Fork 25
UseInMake
tim-lebedkov edited this page Nov 5, 2015
·
4 revisions
Npackd can be easily integrated with GNU Make. It is recommended to choose the shell by setting the SHELL variable:
SHELL:=cmd.exeThe call to the built-in shell function below stores the location of the GCC package in the Make variable named MINGW.
MINGW=$(shell "$(NPACKD_CL)\npackdcl.exe" "path" "--package=mingw-w64-i686-sjlj-posix" "--versions=[4.9.2, 4.9.2]")Note that the usage of unbalanced parenthesis is more complicated in Make. In the following example the variable RPAREN is defined in order to avoid putting the right parenthesis itself.
RPAREN=)
AI=$(shell "$(NPACKD_CL)\npackdcl.exe" "path" "--package=com.advancedinstaller.AdvancedInstallerFreeware" "--versions=[10, 20$(RPAREN)")Once you have the location in a variable, you can use it in commands to have a reproducible build environment.
# rem note how && directly follows \bin. Otherwise the path would contain a space
compile:
set path=$(MINGW)\bin&&set quazip_path=$(QUAZIP)&& cd $(WHERE)\.. && "$(QT)\qtbase\bin\qmake.exe" ..\..\src\wpmcpp.pro -r -spec win32-g++ CONFIG+=$(CONFIG)If you need different packages for different build options, you could use the if directive:
ifeq (32,$(findstring 32,$(PROFILE)))
MINGW=$(shell "$(NPACKD_CL)\npackdcl.exe" "path" "--package=mingw-w64-i686-sjlj-posix" "--versions=[4.9.2, 4.9.2]")
else
MINGW=$(shell "$(NPACKD_CL)\npackdcl.exe" "path" "--package=mingw-w64-x86_64-seh-posix" "--versions=[4.9.2, 4.9.2]")
endif