-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile.win32
70 lines (60 loc) · 2.82 KB
/
Makefile.win32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#
# Partial Makefile to be included by other Makefiles
#
# This defines how to make Windows stuff that can be used on Windows
# and in cross-builds. If cross-compiling you need to have the
# appropriate cross-compiler, obviously, but more problematic is the
# iconv package for the cross environment. For Ubuntu 20/21 the
# package to get is "win-iconv-mingw-w64-dev", have not been able to
# find the correct one for Brew/Darwin.
CROSS_PACKAGE = alan$(VERSION)$(BUILDVERSION).win32.i686.zip
zip: PLATFORM=win32.i686
.PHONY: zip
# TODO: The checks for cygwin1.dll should only be done on Cygwin
# TODO: When building for release we dont' want the dash in BUILDVERSION
zip: bin/alan.exe bin/arun.exe alan.readme.txt CHANGES.txt alan.readme.windows.txt games/adventv3/adventV3.a3c regression/saviour.alan regression/logo.png COPYING.txt
@if ldd bin/alan.exe | grep -q cygwin1.dll ; then \
echo ERROR packaging - alan.exe is dependent on cygwin1.dll ; \
exit 1 ; \
fi
@if ldd bin/arun.exe | grep -q cygwin1.dll ; then \
echo ERROR packaging - arun.exe is dependent on cygwin1.dll ; \
exit 1 ; \
fi
-rm alan*.zip
mkdir -p $(PACKAGENAME)/bin $(PACKAGENAME)/games
cp -p bin/alan.exe bin/arun.exe $(PACKAGENAME)/bin
cp -p regression/saviour.alan regression/logo.png games/adventv3/adventV3.alan games/adventv3/adventV3.a3c $(PACKAGENAME)/games
cp alan.readme.txt CHANGES.txt alan.readme.windows.txt COPYING.txt $(PACKAGENAME)
zip -r alan$(VERSION)$(BUILDVERSION).$(PLATFORM).zip $(PACKAGENAME)
-rm -r $(PACKAGENAME)
bin/winalan.exe bin/winarun.exe :
$(error You must first enable or explicitly build winalan.exe and winarun.exe)
makensis:
@if ! command -v makensis > /dev/null 2>&1 ; then \
echo "ERROR: Must have 'makensis' installed to make setup, 'sudo apt install nsis' will probably fix it" ; \
exit 1 ; \
fi
# Create setup installers for SDK and WinArun using NullSoft Installer NSIS
# Script to replace "variables" in the .nsi files with actual values:
# (':' instead of customary '/' because of path names in expanded variables)
NSI_SED = -e 's:<WINGLK_ROOT>:$(WINGLK_ROOT):g' -e 's/<BUILD>/$(VERSION)$(BUILDVERSION)/g' -e 's/<PLATFORM>/$(PLATFORM)/g'
WINARUN_PACKAGE = winarun$(VERSION)$(BUILDVERSION).win32.i686.setup.exe
WINALAN_PACKAGE = alan$(VERSION)$(BUILDVERSION).win32.i686.setup.exe
.PHONY: setup
setup: PLATFORM=win32.i686
setup: buildnumbers makensis winarun.nsi alan.nsi bin/winalan.exe bin/winarun.exe COPYING.txt CHANGES.txt alan.readme.txt alan.readme.windows.txt
sed $(NSI_SED) winarun.nsi > winarun.tmp
makensis winarun.tmp
sed $(NSI_SED) alan.nsi > alan.tmp
makensis alan.tmp
COPYING.txt: COPYING
unix2dos >$@ <$<
CHANGES.txt: CHANGES
unix2dos >$@ <$<
alan.readme.txt: alan.readme
unix2dos >$@ <$<
alan.readme.windows.txt: alan.readme.windows
unix2dos >$@ <$<
converter/a2a3.readme.txt: converter/a2a3.readme
unix2dos >$@ <$<