Windows: Support building a lite-client installer
[openafs.git] / src / WINNT / install / wix / NTMakefile
1 # Copyright 2004, OpenAFS.ORG and others.
2 # All Rights Reserved.
3 #
4 # This software has been released under the terms of the IBM Public
5 # License.  For details, see the LICENSE file in the top-level source
6 # directory or online at http://www.openafs.org/dl/license10.html
7
8 RELDIR=WINNT\install\wix
9 !INCLUDE ..\..\..\config\NTMakefile.$(SYS_NAME)
10 !INCLUDE ..\..\..\config\NTMakefile.version
11
12 MEDIADIR = $(DESTDIR)\WinInstall
13 MEDIABINDIR = $(MEDIADIR)\Dll
14
15 !IFDEF LITECLIENT
16 LITE=-lite
17 !ELSE
18 LITE=
19 !ENDIF
20
21 MSIFILE = $(MEDIADIR)\openafs-$(LANG)$(LITE).msi
22 !IF ("$(CPU)" == "i386")
23 BINMSIFILE = $(MEDIADIR)\openafs-32bit-tools-$(LANG)$(LITE).msi
24 !ENDIF
25
26 !IFNDEF MSIDNNLS
27 !ERROR Please set MSIDNNLS to the directory where Microsoft IDN Mitigation APIs are installed.
28 # $(MSIDNNLS)\REDIST\idndl.(platform).exe should exist.
29 !ENDIF
30
31 WIXINCLUDES = \
32         config.wxi \
33         feature.wxi \
34         files.wxi \
35         language_config.wxi \
36         property.wxi \
37         registry.wxi \
38         lang\$(LANG)\ui.wxi
39
40 WIXOBJ = $(OUT)\openafs-$(LANG)$(LITE).wixobj
41 !IF ("$(CPU)" == "i386")
42 BINWIXOBJ  = $(OUT)\openafs-32bit-tools-$(LANG)$(LITE).wixobj
43 !ENDIF
44 !IFNDEF NOCYGWIN
45 WIXCYGOPT=-dCygwinArchives
46 !ELSE
47 WIXCYGOPT=
48 !ENDIF
49
50 LANGUAGES=en_US de_DE es_ES ja_JP ko_KR pt_BR zh_CN zh_TW
51
52 languages:
53 # Don't bother with non en_US for now.  The other builds comprise of either
54 # verbatim copies of en_US files, partial translations or doesn't build 
55 # (no languages resources). Someday when OpenAFS 8.1029828419 comes out we'll 
56 # get someone to translate.
57 #       for %l in ( $(LANGUAGES ) do (
58 #       $(MAKE) /f NTMakefile /nologo LANG=%l lang
59 #       )
60         $(MAKE) /f NTMakefile /nologo LANG=en_US lang
61
62 lang:: lang_clean $(MSIFILE) $(BINMSIFILE)
63
64 lang_clean:
65         -$(DEL) $(WIXOBJ)
66         -$(DEL) $(MSIFILE)
67 !IF ("$(CPU)" == "i386")
68         -$(DEL) $(BINWIXOBJ)
69         -$(DEL) $(BINMSIFILE)
70 !ENDIF
71
72 uninst: 
73         $(CD) uninstall
74         $(MAKE) /f NTMakefile /nologo install
75         $(CD) ..
76
77 customactions:
78         $(CD) custom
79         $(MAKE) /f NTMakefile /nologo install
80         $(CD) ..
81
82 install: uninst customactions languages
83
84 $(MSIFILE): $(WIXOBJ)
85         light -nologo -out $(MSIFILE) \
86                 -loc lang\$(LANG)\strings.wxl \
87                 $(WIXOBJ)
88         $(CODESIGN_USERLAND)
89         dir $(MSIFILE)
90
91 $(WIXOBJ): openafs.wxs $(WIXINCLUDES)
92         candle -nologo -out $@  \
93                 "-dCellName=$(CELLNAME_DEFAULT)" \
94                 -dLanguage=$(LANG) \
95                 -dNumericVersion=$(AFSPRODUCT_VERSION)  \
96                 -dVersionMajor=$(AFSPRODUCT_VER_MAJOR)  \
97                 -dVersionMinor=$(AFSPRODUCT_VER_MINOR)  \
98                 -dVersionPatch=$(AFSPRODUCT_VER_PATCH)  \
99                 "-dDestDir=$(DESTDIR)\\" \
100                 -dCellDbFile=CellServDB \
101                 "-dIDNMRedistDir=$(MSIDNNLS)\\REDIST"   \
102 !IFDEF LITECLIENT
103                 -dLiteClient=1 \
104 !ENDIF
105                 -v0 \
106                 -w0 \
107                 $(WIXCYGOPT) $(AFSDEV_AUXWIXDEFINES)    openafs.wxs
108
109 !IF ("$(CPU)" == "i386")
110 $(BINWIXOBJ): oafwbins.wxs $(WIXINCLUDES)
111         candle -nologo -out $@  \
112                 "-dCellName=$(CELLNAME_DEFAULT)" \
113                 -dLanguage=$(LANG) \
114                 -dNumericVersion=$(AFSPRODUCT_VERSION)  \
115                 -dVersionMajor=$(AFSPRODUCT_VER_MAJOR)  \
116                 -dVersionMinor=$(AFSPRODUCT_VER_MINOR)  \
117                 -dVersionPatch=$(AFSPRODUCT_VER_PATCH)  \
118                 "-dDestDir=$(DESTDIR)\\" \
119                 -dCellDbFile=CellServDB \
120 !IFDEF LITECLIENT
121                 -dLiteClient=1 \
122 !ENDIF
123                 -v0 \
124                 -w0 \
125         $(WIXCYGOPT) $(AFSDEV_AUXWIXDEFINES)    oafwbins.wxs
126
127 $(BINMSIFILE): $(BINWIXOBJ)
128         light -nologo -out $(BINMSIFILE) \
129                 -loc lang\en_US\strings.wxl \
130                 $(BINWIXOBJ)
131         $(CODESIGN_USERLAND)
132         dir $(BINMSIFILE)
133 !ENDIF
134
135 # Pseudotarget for building lite installer.
136 !IFNDEF LITECLIENT
137 lite:
138         $(MAKE) /f NTMakefile /nologo install LITECLIENT=1
139 !ENDIF
140
141 # Cleanup
142 clean::
143         for %l in ( $(LANGUAGES) ) do \
144                 $(MAKE) /f NTMakefile /nologo LANG=%l lang_clean
145         $(CD) custom
146         $(MAKE) /f NTMakefile /nologo clean
147         $(CD) ..
148         $(CD) uninstall
149         $(MAKE) /f NTMakefile /nologo clean
150         $(CD) ..
151
152
153