spiegel-keyman/developer/src/Makefile

260 lines
6.1 KiB
Makefile

#
# Keyman dev Makefile
#
!ifdef NODELPHI
TARGETS=build-tools kmcmpdll kmanalyze kmdecomp server kmlmc
!else
TARGETS=build-tools kmcmpdll kmcomp kmanalyze kmconvert tike samples setup inst kmdecomp server kmlmc
!endif
EXCLUDEPATHDEFINES=1
MANIFESTS=kmcomp tike setup
CLEANS=clean-developer
EXCLUDEPATHDEFINES=1
BUILDPREREQ=global-versions
!include Header.mak
# ----------------------------------------------------------------------
common: .virtual
cd $(KEYMAN_ROOT)\common\windows\delphi\components
$(MAKE) $(TARGET)
cd $(DEVELOPER_ROOT)\src\common\delphi\components
$(MAKE) $(TARGET)
imsample: .virtual
cd $(DEVELOPER_ROOT)\src\imsample
$(MAKE) $(TARGET)
kmcmpdll: .virtual
cd $(DEVELOPER_ROOT)\src\kmcmpdll
$(MAKE) $(TARGET)
kmdecomp: .virtual
cd $(DEVELOPER_ROOT)\src\kmdecomp
$(MAKE) $(TARGET)
kmcomp: kmcmpdll
cd $(DEVELOPER_ROOT)\src\kmcomp
$(MAKE) $(TARGET)
kmanalyze: .virtual
cd $(DEVELOPER_ROOT)\src\kmanalyze
$(MAKE) $(TARGET)
kmconvert: .virtual
cd $(DEVELOPER_ROOT)\src\kmconvert
$(MAKE) $(TARGET)
tike: kmcmpdll redist
cd $(DEVELOPER_ROOT)\src\tike
$(MAKE) $(TARGET)
samples: .virtual
cd $(DEVELOPER_ROOT)\src\samples
$(MAKE) $(TARGET)
setup: .virtual
cd $(DEVELOPER_ROOT)\src\setup
$(MAKE) $(TARGET)
server: .virtual
cd $(DEVELOPER_ROOT)\src\server
$(MAKE) $(TARGET)
kmlmc: .virtual
cd $(DEVELOPER_ROOT)\src\kmlmc
$(MAKE) $(TARGET)
# ----------------------------------------------------------------------
ext: .virtual
cd $(DEVELOPER_ROOT)\src\ext
$(MAKE) $(TARGET)
# ----------------------------------------------------------------------
test: .virtual
cd $(DEVELOPER_ROOT)\src\test\auto
$(MAKE) $(TARGET)
cd $(DEVELOPER_ROOT)\src
# ----------------------------------------------------------------------
redist:
copy $(KEYMAN_ROOT)\common\windows\delphi\ext\sentry\sentry.dll $(DEVELOPER_ROOT)\bin
copy $(KEYMAN_ROOT)\common\windows\delphi\ext\sentry\sentry.x64.dll $(DEVELOPER_ROOT)\bin
copy $(KEYMAN_ROOT)\common\windows\delphi\ext\sentry\crashpad_handler.exe $(DEVELOPER_ROOT)\bin
# ----------------------------------------------------------------------
inst: redist
cd $(DEVELOPER_ROOT)\src\inst
$(MAKE) $(TARGET)
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# release
# ----------------------------------------------------------------------
release: clean-pathdefines test-release-cef-path test-releasebuildcheck test-releaseexists test-cert test-7zip test-wix test-klog clean clean-output
cd $(DEVELOPER_ROOT)\src
echo Continuing Release
$(MAKE) do-build-release
echo After build-release
cd $(DEVELOPER_ROOT)\src
# Build a release
do-build-release:
echo Starting Release Build
cd $(COMMON_ROOT)
$(MAKE) global-versions
cd $(DEVELOPER_ROOT)\src
$(MAKE) dirs
cd $(WINDOWS_ROOT)\src
$(MAKE) build-tools
cd $(DEVELOPER_ROOT)\src
$(MAKE) build-release-dependencies
$(MAKE) "SIGNCODE_BUILD=SIGNCODE_BUILD" build test
$(MAKE) signcode
cd $(DEVELOPER_ROOT)\src\inst
$(MAKE)
cd $(DEVELOPER_ROOT)\src
#
# Dependencies on Windows are now only ext,global,buildtools and kmbrowserhost
#
build-release-dependencies:
cd $(WINDOWS_ROOT)\src\ext
$(MAKE) build
cd $(WINDOWS_ROOT)\src\global
$(MAKE) build
cd $(WINDOWS_ROOT)\src\buildtools
$(MAKE) build
# TODO: kmbrowserhost should be in global
cd $(WINDOWS_ROOT)\src\desktop\kmbrowserhost
$(MAKE) build signcode
cd $(DEVELOPER_ROOT)\src
clean-output:
rd /s/q $(DEVELOPER_ROOT)\bin
rd /s/q $(DEVELOPER_ROOT)\debug
rd /s/q $(DEVELOPER_ROOT)\build
rd /s/q $(DEVELOPER_ROOT)\lib
clean-pathdefines: test-releasebuildcheck
# test-releasebuildcheck builds devtools for us
$(DEVTOOLS) -ri
#
# Test that the CEF file path is accessible from env var KEYMAN_CEF4DELPHI_ROOT
# and checkout the appropriate version of CEF as determined by CEF_VERSION.md
#
test-release-cef-path:
!ifndef SC_TIMESTAMP
!ifdef GIT_BASH_FOR_KEYMAN
$(GIT_BASH_FOR_KEYMAN) $(KEYMAN_ROOT)\common\windows\cef-checkout.sh
!else
start /wait $(KEYMAN_ROOT)\common\windows\cef-checkout.sh
!endif
!endif
#
# Test that certificate checking is enabled and that certificate is accessible
#
test-cert:
copy $(SC_PFX_SHA1) $(WINDOWS_ROOT)\src\pfx.tmp
del $(WINDOWS_ROOT)\src\pfx.tmp
#
# Test that WiX is installed
#
test-wix:
if not exist $(WIXPATH)\candle.exe exit 1
#
# Test that 7-zip is installed
#
test-7zip:
if not exist $(WZZIPPATH) exit 1
#
# Test that klog is disabled
#
test-klog:
cd $(COMMON_ROOT)\tools\test-klog
$(MAKE) verify
cd $(DEVELOPER_ROOT)\src
#
# Test that we haven't already built this release
#
test-releaseexists:
cd $(DEVELOPER_ROOT)\src\inst
$(MAKE) test-releaseexists
cd $(DEVELOPER_ROOT)\src
#
# Test various release prerequisites, e.g. Debug reg key not set
#
test-releasebuildcheck: global-versions
cd $(COMMON_ROOT)\tools\devtools
$(MAKE) test-releasebuildcheck
cd $(DEVELOPER_ROOT)\src
#
# Tools needed to complete a build
#
build-tools:
$(MAKE) global-versions
$(MAKE) common
!ifdef NODELPHI
echo Skipping build-tools
!else
$(MAKE) build-tools-internal
!endif
global-versions:
cd $(COMMON_ROOT)
@if not exist $(KEYMAN_ROOT)\common\windows\cpp\include\keymanversion_build.h $(MAKE) global-versions
cd $(DEVELOPER_ROOT)\src
build-tools-internal:
# We'll build a default PathDefines.mak if it is missing here so we can
# go on and do the rest of the build. Build all the ext/global/build-tools
# things we need...
$(MAKE) devtools-app
$(DEVTOOLS) -ti
cd $(WINDOWS_ROOT)\src
$(MAKE) ext global buildtools
cd $(DEVELOPER_ROOT)\src
$(MAKE) ext
# ----------------------------------------------------------------------
clean-developer:
cd $(DEVELOPER_ROOT)\src
-del version.txt
!include Target.mak
# ----------------------------------------------------------------------
# EOF
# ----------------------------------------------------------------------