#
# 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"
-if exist "$(OUTPUT_DIR)\Setup\WLANManager.exe" del /f /q "$(OUTPUT_DIR)\Setup\WLANManager.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" \
"$(OUTPUT_DIR)\Setup\WLANManager.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" \
"$(PUBLISH_PACKAGE_DIR)\WLANManager.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
"$(OUTPUT_DIR)\Setup\WLANManager.exe" \
"$(PUBLISH_PACKAGE_DIR)\WLANManager.exe" : "$(OUTPUT_DIR)\Win32.Release\WLANManager.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\WLANManager.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\WLANManager.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\WLANManager.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\WLANManager.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