# # Copyright 1991-2016 Amebis # Copyright 2016 GÉANT # # This file is part of GÉANTLink. # # GÉANTLink is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # GÉANTLink is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GÉANTLink. If not, see . # PRODUCT_NAME=GEANTLink OUTPUT_DIR=output !IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64" PLAT=x64 REG_FLAGS=/f /reg:64 REG_FLAGS32=/f /reg:32 !ELSE PLAT=Win32 REG_FLAGS=/f !ENDIF All :: Clean :: cd "MSI\MSIBuild\Version" $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean cd "$(MAKEDIR)" cd "MSI\Base" $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=En PLAT=Win32 CFG=Release $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=En PLAT=Win32 CFG=Debug $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=En PLAT=x64 CFG=Release $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=En PLAT=x64 CFG=Debug # $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=Sl PLAT=Win32 CFG=Release # $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=Sl PLAT=Win32 CFG=Debug # $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=Sl PLAT=x64 CFG=Release # $(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean LANG=Sl PLAT=x64 CFG=Debug cd "$(MAKEDIR)" devenv.com "VS10Solution.sln" /clean "Release|Win32" devenv.com "VS10Solution.sln" /clean "Debug|Win32" devenv.com "VS10Solution.sln" /clean "Release|x64" devenv.com "VS10Solution.sln" /clean "Debug|x64" -if exist "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)32.msi" del /f /q "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)32.msi" -if exist "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)32D.msi" del /f /q "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)32D.msi" -if exist "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)64.msi" del /f /q "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)64.msi" -if exist "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)64D.msi" del /f /q "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)64D.msi" # -if exist "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl32.msi" del /f /q "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl32.msi" # -if exist "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl32D.msi" del /f /q "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl32D.msi" # -if exist "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl64.msi" del /f /q "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl64.msi" # -if exist "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl64D.msi" del /f /q "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl64D.msi" -if exist "$(OUTPUT_DIR)\Setup\CredWrite.exe" del /f /q "$(OUTPUT_DIR)\Setup\CredWrite.exe" -if exist "$(OUTPUT_DIR)\Setup\MsiUseFeature.exe" del /f /q "$(OUTPUT_DIR)\Setup\MsiUseFeature.exe" !IFNDEF HAS_VERSION ###################################################################### # 1st Phase # - Version info parsing ###################################################################### All \ Setup \ SetupDebug \ Register \ Unregister \ StopServices \ StartServices \ Publish :: "MSI\MSIBuild\Version\Version.mak" $(MAKE) /f "Makefile" /$(MAKEFLAGS) HAS_VERSION=1 $@ "MSI\MSIBuild\Version\Version.mak" :: cd "MSI\MSIBuild\Version" $(MAKE) /f "Makefile" /$(MAKEFLAGS) Version cd "$(MAKEDIR)" GenRSAKeypair :: \ "include\KeyPrivate.bin" \ "include\KeyPublic.bin" "include\KeyPrivate.bin" : if exist $@ del /f /q $@ if exist "$(@:"=).tmp" del /f /q "$(@:"=).tmp" openssl.exe genrsa 2048 | openssl.exe rsa -inform PEM -outform DER -out "$(@:"=).tmp" move /y "$(@:"=).tmp" $@ > NUL "include\KeyPublic.bin" : "include\KeyPrivate.bin" if exist $@ del /f /q $@ if exist "$(@:"=).tmp" del /f /q "$(@:"=).tmp" openssl.exe rsa -in $** -inform DER -outform DER -out "$(@:"=).tmp" -pubout move /y "$(@:"=).tmp" $@ > NUL !ELSE ###################################################################### # 2nd Phase # - The version is known, do the rest. ###################################################################### !INCLUDE "MSI\MSIBuild\Version\Version.mak" !INCLUDE "include\MSIBuildCfg.mak" PUBLISH_PACKAGE_DIR=..\$(PRODUCT_NAME)-dist #PUBLISH_PACKAGE_DIR=..\$(PRODUCT_NAME)-dist\$(MSIBUILD_VERSION_STR) #PUBLISH_PACKAGE_URL=http://www.amebis.si/prenos/$(PRODUCT_NAME)/$(MSIBUILD_VERSION_STR) REDIST_EN_WIN32="$(PUBLISH_PACKAGE_DIR)\$(PRODUCT_NAME)32.msi" REDIST_EN_X64="$(PUBLISH_PACKAGE_DIR)\$(PRODUCT_NAME)64.msi" #REDIST_SL_WIN32="$(PUBLISH_PACKAGE_DIR)\$(PRODUCT_NAME)Sl32.msi" #REDIST_SL_X64="$(PUBLISH_PACKAGE_DIR)\$(PRODUCT_NAME)Sl64.msi" ###################################################################### # Main targets ###################################################################### All :: \ Setup Setup :: \ "$(OUTPUT_DIR)\Setup" \ "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)32.msi" \ "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)64.msi" \ # "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl32.msi" \ # "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl64.msi" "$(OUTPUT_DIR)\Setup\CredWrite.exe" \ "$(OUTPUT_DIR)\Setup\MsiUseFeature.exe" SetupDebug :: \ "$(OUTPUT_DIR)\Setup" \ "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)32D.msi" \ "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)64D.msi" \ # "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl32D.msi" \ # "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl64D.msi" Register :: \ StopServices \ RegisterSettings \ RegisterDLLs \ StartServices \ # RegisterShortcuts Unregister :: \ # UnregisterShortcuts \ StopServices \ UnregisterDLLs \ UnregisterSettings \ StartServices StartServices :: cmd.exe /c <<"$(TEMP)\start_EapHost.bat" @echo off net.exe start EapHost if errorlevel 3 exit %errorlevel% if errorlevel 2 exit 0 exit %errorlevel% < NUL !IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64" reg.exe add "HKLM\Software\$(MSIBUILD_VENDOR_NAME)\$(MSIBUILD_PRODUCT_NAME)" /v "LocalizationRepositoryPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\locale" $(REG_FLAGS32) > NUL !ENDIF UnregisterSettings :: -reg.exe delete "HKLM\Software\$(MSIBUILD_VENDOR_NAME)\$(MSIBUILD_PRODUCT_NAME)" /v "LocalizationRepositoryPath" $(REG_FLAGS) > NUL !IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64" -reg.exe delete "HKLM\Software\$(MSIBUILD_VENDOR_NAME)\$(MSIBUILD_PRODUCT_NAME)" /v "LocalizationRepositoryPath" $(REG_FLAGS32) > NUL !ENDIF RegisterDLLs :: \ "$(OUTPUT_DIR)\$(PLAT).Debug\Events.dll" \ "$(OUTPUT_DIR)\$(PLAT).Debug\EAPTTLS.dll" \ "$(OUTPUT_DIR)\$(PLAT).Debug\EAPTTLSUI.dll" reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{3f65af01-ce8f-4c7d-990b-673b244aac7b}" /ve /t REG_SZ /d "$(MSIBUILD_PRODUCT_NAME)-Events" /f > NUL reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{3f65af01-ce8f-4c7d-990b-673b244aac7b}" /v "MessageFileName" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\Events.dll" /f > NUL reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{3f65af01-ce8f-4c7d-990b-673b244aac7b}" /v "ResourceFileName" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\Events.dll" /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532" /ve /t REG_SZ /d "$(MSIBUILD_PRODUCT_NAME)" /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532\21" /v "PeerDllPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\EAPTTLS.dll" /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532\21" /v "PeerConfigUIPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\EAPTTLSUI.dll" /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532\21" /v "PeerIdentityPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\EAPTTLSUI.dll" /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532\21" /v "PeerInteractiveUIPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\EAPTTLSUI.dll" /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532\21" /v "PeerFriendlyName" /t REG_SZ /d "@$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\EAPTTLS.dll,-1" /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532\21" /v "PeerInvokePasswordDialog" /t REG_DWORD /d 0 /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532\21" /v "PeerInvokeUsernameDialog" /t REG_DWORD /d 0 /f > NUL reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532\21" /v "Properties" /t REG_DWORD /d 389871807 /f > NUL UnregisterDLLs :: -reg.exe delete "HKLM\SYSTEM\CurrentControlSet\services\EapHost\Methods\67532" /f > NUL #RegisterShortcuts :: \ # "$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\$(MSIBUILD_PRODUCT_NAME)" \ # "$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\$(MSIBUILD_PRODUCT_NAME)\$(MSIBUILD_PRODUCT_NAME).lnk" # #UnregisterShortcuts :: # -if exist "$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\$(MSIBUILD_PRODUCT_NAME)" rd /s /q "$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\$(MSIBUILD_PRODUCT_NAME)" Publish :: \ "$(PUBLISH_PACKAGE_DIR)" \ $(REDIST_EN_WIN32) \ $(REDIST_EN_X64) \ "$(PUBLISH_PACKAGE_DIR)\CredWrite.exe" \ "$(PUBLISH_PACKAGE_DIR)\MsiUseFeature.exe" \ # $(REDIST_SL_WIN32) \ # $(REDIST_SL_X64) ###################################################################### # Folder creation ###################################################################### "$(OUTPUT_DIR)" \ "$(OUTPUT_DIR)\Setup" \ "$(PUBLISH_PACKAGE_DIR)" \ "$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\$(MSIBUILD_PRODUCT_NAME)" : if not exist $@ md $@ "$(OUTPUT_DIR)\Setup" : "$(OUTPUT_DIR)" ###################################################################### # File copy ###################################################################### "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)32.msi" \ $(REDIST_EN_WIN32) : "$(OUTPUT_DIR)\$(PRODUCT_NAME)32.3.msi" copy /y $** $@ > NUL "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)32D.msi" : "$(OUTPUT_DIR)\$(PRODUCT_NAME)32D.3.msi" copy /y $** $@ > NUL "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)64.msi" \ $(REDIST_EN_X64) : "$(OUTPUT_DIR)\$(PRODUCT_NAME)64.3.msi" copy /y $** $@ > NUL "$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)64D.msi" : "$(OUTPUT_DIR)\$(PRODUCT_NAME)64D.3.msi" copy /y $** $@ > NUL #"$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl32.msi" \ #$(REDIST_SL_WIN32) : "$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl32.3.msi" # copy /y $** $@ > NUL # #"$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl32D.msi" : "$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl32D.3.msi" # copy /y $** $@ > NUL # #"$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl64.msi" \ #$(REDIST_SL_X64) : "$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl64.3.msi" # copy /y $** $@ > NUL # #"$(OUTPUT_DIR)\Setup\$(PRODUCT_NAME)Sl64D.msi" : "$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl64D.3.msi" # copy /y $** $@ > NUL "$(OUTPUT_DIR)\Setup\CredWrite.exe" \ "$(PUBLISH_PACKAGE_DIR)\CredWrite.exe" : "$(OUTPUT_DIR)\Win32.Release\CredWrite.exe" copy /y $** $@ > NUL "$(OUTPUT_DIR)\Setup\MsiUseFeature.exe" \ "$(PUBLISH_PACKAGE_DIR)\MsiUseFeature.exe" : "$(OUTPUT_DIR)\Win32.Release\MsiUseFeature.exe" copy /y $** $@ > NUL ###################################################################### # Shortcut creation ###################################################################### #"$(PROGRAMDATA)\Microsoft\Windows\Start Menu\Programs\$(MSIBUILD_PRODUCT_NAME)\$(MSIBUILD_PRODUCT_NAME).lnk" : "$(OUTPUT_DIR)\$(PLAT).Debug\$(PRODUCT_NAME).exe" # cscript.exe "bin\MkLnk.wsf" //Nologo $@ "$(MAKEDIR)\$(OUTPUT_DIR)\$(PLAT).Debug\$(PRODUCT_NAME).exe" ###################################################################### # Building ###################################################################### "$(OUTPUT_DIR)\Win32.Release\CredWrite.exe" \ "$(OUTPUT_DIR)\Win32.Release\MsiUseFeature.exe" \ "$(OUTPUT_DIR)\Win32.Release\Events.dll" \ "$(OUTPUT_DIR)\Win32.Release\EAPTTLS.dll" \ "$(OUTPUT_DIR)\Win32.Release\EAPTTLSUI.dll" \ "$(OUTPUT_DIR)\$(PRODUCT_NAME)32.3.msi" \ #"$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl32.3.msi" \ :: devenv.com "VS10Solution.sln" /build "Release|Win32" "$(OUTPUT_DIR)\Win32.Debug\CredWrite.exe" \ "$(OUTPUT_DIR)\Win32.Debug\MsiUseFeature.exe" \ "$(OUTPUT_DIR)\Win32.Debug\Events.dll" \ "$(OUTPUT_DIR)\Win32.Debug\EAPTTLS.dll" \ "$(OUTPUT_DIR)\Win32.Debug\EAPTTLSUI.dll" \ "$(OUTPUT_DIR)\$(PRODUCT_NAME)32D.3.msi" \ #"$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl32D.3.msi" :: devenv.com "VS10Solution.sln" /build "Debug|Win32" "$(OUTPUT_DIR)\x64.Release\CredWrite.exe" \ "$(OUTPUT_DIR)\x64.Release\MsiUseFeature.exe" \ "$(OUTPUT_DIR)\x64.Release\Events.dll" \ "$(OUTPUT_DIR)\x64.Release\EAPTTLS.dll" \ "$(OUTPUT_DIR)\x64.Release\EAPTTLSUI.dll" \ "$(OUTPUT_DIR)\$(PRODUCT_NAME)64.3.msi" \ #"$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl64.3.msi" :: devenv.com "VS10Solution.sln" /build "Release|x64" "$(OUTPUT_DIR)\x64.Debug\CredWrite.exe" \ "$(OUTPUT_DIR)\x64.Debug\MsiUseFeature.exe" \ "$(OUTPUT_DIR)\x64.Debug\Events.dll" \ "$(OUTPUT_DIR)\x64.Debug\EAPTTLS.dll" \ "$(OUTPUT_DIR)\x64.Debug\EAPTTLSUI.dll" \ "$(OUTPUT_DIR)\$(PRODUCT_NAME)64D.3.msi" \ #"$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl64D.3.msi" :: devenv.com "VS10Solution.sln" /build "Debug|x64" "$(OUTPUT_DIR)\$(PRODUCT_NAME)32.3.msi" :: cd "MSI\Base" $(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=En PLAT=Win32 CFG=Release cd "$(MAKEDIR)" "$(OUTPUT_DIR)\$(PRODUCT_NAME)32D.3.msi" :: cd "MSI\Base" $(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=En PLAT=Win32 CFG=Debug cd "$(MAKEDIR)" "$(OUTPUT_DIR)\$(PRODUCT_NAME)64.3.msi" :: cd "MSI\Base" $(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=En PLAT=x64 CFG=Release cd "$(MAKEDIR)" "$(OUTPUT_DIR)\$(PRODUCT_NAME)64D.3.msi" :: cd "MSI\Base" $(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=En PLAT=x64 CFG=Debug cd "$(MAKEDIR)" #"$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl32.3.msi" :: # cd "MSI\Base" # $(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=Sl PLAT=Win32 CFG=Release # cd "$(MAKEDIR)" # #"$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl32D.3.msi" :: # cd "MSI\Base" # $(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=Sl PLAT=Win32 CFG=Debug # cd "$(MAKEDIR)" # #"$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl64.3.msi" :: # cd "MSI\Base" # $(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=Sl PLAT=x64 CFG=Release # cd "$(MAKEDIR)" # #"$(OUTPUT_DIR)\$(PRODUCT_NAME)Sl64D.3.msi" :: # cd "MSI\Base" # $(MAKE) /f "Makefile" /$(MAKEFLAGS) LANG=Sl PLAT=x64 CFG=Debug # cd "$(MAKEDIR)" !ENDIF