MSIBuild/Version/Makefile

99 lines
3.1 KiB
Makefile

!INCLUDE "..\..\include\MSIBuildCfg.mak"
!IFNDEF MSIBUILD_VERSION_FILE
!ERROR Parameter MSIBUILD_VERSION_FILE is undefined.
!ENDIF
All ::
Clean ::
-if exist "Version.mak" del /f /q "Version.mak"
!IFNDEF MSIBUILD_HAS_VERSION
######################################################################
# 1st Phase
# - Parse C++ version file and create NMake friendly variant.
######################################################################
All :: "Version.mak"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) MSIBUILD_HAS_VERSION=1
Version :: "Version.mak"
"Version.mak" : "$(MSIBUILD_VERSION_FILE)"
-if exist $@ del /f /q $@
-if exist "$(@:"=).tmp" del /f /q "$(@:"=).tmp"
grep.exe -e "#define[[:space:]]*.*_VERSION_STR[[:space:]]" "$(MSIBUILD_VERSION_FILE)" | sed.exe -e "s/[^\"]*\"\([^\"]*\)\"/MSIBUILD_VERSION_STR=\1/g" >> "$(@:"=).tmp"
grep.exe -e "#define[[:space:]]*.*_VERSION_INST[[:space:]]" "$(MSIBUILD_VERSION_FILE)" | sed.exe -e "s/[^\"]*\"\([^\"]*\)\"/MSIBUILD_VERSION_INST=\1/g" >> "$(@:"=).tmp"
grep.exe -e "#define[[:space:]]*.*_VERSION_GUID[[:space:]]" "$(MSIBUILD_VERSION_FILE)" | sed.exe -e "s/[^\"]*\"\([^\"]*\)\"/MSIBUILD_VERSION_GUID=\1/g" >> "$(@:"=).tmp"
move /y "$(@:"=).tmp" $@ > NUL
!ELSE
######################################################################
# 2nd Phase
# - Version file is ready, prepare the rest and compile module.
######################################################################
!INCLUDE "Version.mak"
!IFNDEF MSIBUILD_UPGRADE_GUID
!ERROR Parameter MSIBUILD_UPGRADE_GUID is undefined.
!ENDIF
!IFNDEF MSIBUILD_VERSION_INST
!ERROR Parameter MSIBUILD_VERSION_INST is undefined.
!ENDIF
!IFNDEF MSIBUILD_VERSION_STR
!ERROR Parameter MSIBUILD_VERSION_STR is undefined.
!ENDIF
!IFNDEF MSIBUILD_VERSION_GUID
!ERROR Parameter MSIBUILD_VERSION_GUID is undefined.
!ENDIF
######################################################################
# Property
All :: "$(LANG).$(PLAT).$(CFG).Property-1.idt"
"$(LANG).$(PLAT).$(CFG).Property-1.idt" : "Makefile" "Version.mak" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
Property Value
s$(MSIBUILD_LENGTH_ID) l0
Property Property
ProductVersion $(MSIBUILD_VERSION_INST)
DisplayVersion $(MSIBUILD_VERSION_STR)
ProductCode $(MSIBUILD_VERSION_GUID)
UpgradeCode $(MSIBUILD_UPGRADE_GUID)
<<NOKEEP
######################################################################
# Upgrade
All :: "$(LANG).$(PLAT).$(CFG).Upgrade-1.idt"
"$(LANG).$(PLAT).$(CFG).Upgrade-1.idt" : "Makefile" "Version.mak" "..\..\include\MSIBuildCfg.mak"
-if exist $@ del /f /q $@
move /y << $@ > NUL
UpgradeCode VersionMin VersionMax Language Attributes Remove ActionProperty
s38 S20 S20 S255 i4 S255 s$(MSIBUILD_LENGTH_ID)
Upgrade UpgradeCode VersionMin VersionMax Language Attributes
$(MSIBUILD_UPGRADE_GUID) 0 257 OLDPRODUCTFOUND
$(MSIBUILD_UPGRADE_GUID) $(MSIBUILD_VERSION_INST) 2 NEWPRODUCTFOUND
<<NOKEEP
!ENDIF
######################################################################
# Build MSM module!
######################################################################
!INCLUDE "..\MSM.mak"