spiegel-keyman/developer/src/Makefile
Marc Durdin e804dac967
Merge pull request #6687 from keymanapp/chore/developer/move-browse4folder-component
chore(developer): move browse4folder to Developer source 🎢
2022-06-18 11:43:32 +10:00

250 lines
6.4 KiB
Makefile

#
# Keyman dev Makefile
#
!ifdef NODELPHI
TARGETS=kmcmpdll kmanalyze kmdecomp server kmlmc
!else
TARGETS=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
# ----------------------------------------------------------------------
imsample: build-tools .virtual
cd $(DEVELOPER_ROOT)\src\imsample
$(MAKE) $(TARGET)
kmcmpdll: build-tools .virtual
cd $(DEVELOPER_ROOT)\src\kmcmpdll
$(MAKE) $(TARGET)
kmdecomp: build-tools .virtual
cd $(DEVELOPER_ROOT)\src\kmdecomp
$(MAKE) $(TARGET)
kmcomp: build-tools kmcmpdll
cd $(DEVELOPER_ROOT)\src\kmcomp
$(MAKE) $(TARGET)
kmanalyze: build-tools .virtual
cd $(DEVELOPER_ROOT)\src\kmanalyze
$(MAKE) $(TARGET)
kmconvert: build-tools .virtual
cd $(DEVELOPER_ROOT)\src\kmconvert
$(MAKE) $(TARGET)
tike: build-tools kmcmpdll redist
cd $(DEVELOPER_ROOT)\src\tike
$(MAKE) $(TARGET)
samples: build-tools .virtual
cd $(DEVELOPER_ROOT)\src\samples
$(MAKE) $(TARGET)
setup: build-tools .virtual
cd $(DEVELOPER_ROOT)\src\setup
$(MAKE) $(TARGET)
server: build-tools .virtual
cd $(DEVELOPER_ROOT)\src\server
$(MAKE) $(TARGET)
kmlmc: build-tools .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 $(WINDOWS_ROOT)\src\ext\sentry\sentry.dll $(DEVELOPER_ROOT)\bin
copy $(WINDOWS_ROOT)\src\ext\sentry\sentry.x64.dll $(DEVELOPER_ROOT)\bin
copy $(WINDOWS_ROOT)\src\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 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 $(DEVELOPER_ROOT)\src
$(MAKE) global-versions
$(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
$(WINDOWS_PROGRAM)\buildtools\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) $(WINDOWS_ROOT)\src\buildtools\cef-checkout.sh
!else
start /wait $(WINDOWS_ROOT)\src\buildtools\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 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 $(WINDOWS_ROOT)\src\buildtools\devtools
$(MAKE) test-releasebuildcheck
cd $(DEVELOPER_ROOT)\src
global-versions:
# Build our root version.txt
cd $(WINDOWS_ROOT)\src
$(MKVER_U) $(WINDOWS_ROOT)\src\global\inc\keymanversion_build.in $(WINDOWS_ROOT)\src\global\inc\keymanversion_build.h
$(MKVER_U) $(WINDOWS_ROOT)\src\global\delphi\general\keymanversion_build.in $(WINDOWS_ROOT)\src\global\delphi\general\keymanversion_build.inc
echo Continue Global-Versions
cd $(DEVELOPER_ROOT)\src
echo End Global-Versions
#
# Tools needed to complete a build
#
build-tools:
@if not exist $(WINDOWS_ROOT)\src\global\inc\keymanversion_build.h $(MAKE) global-versions
!ifdef NODELPHI
echo Skipping build-tools
!else
# we need to build devtools directly because otherwise we have a
# chicken-and-egg issue with PathDefines.mak
@if not exist $(WINDOWS_ROOT)\src\PathDefines.mak $(MAKE) build-tools-internal
!endif
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...
cd $(WINDOWS_ROOT)\src\buildtools\devtools
$(MAKE)
$(WINDOWS_PROGRAM)\buildtools\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
# ----------------------------------------------------------------------