]> git.proxmox.com Git - proxmox-widget-toolkit.git/blob - src/Makefile
bump version to 4.2.3
[proxmox-widget-toolkit.git] / src / Makefile
1 include defines.mk
2
3 ESLINT ?= $(if $(shell command -v pve-eslint), pve-eslint, eslint)
4
5 SUBDIRS= css images proxmox-dark
6
7 # bundle it for now from the libjs-marked debian package to avoid touching our proxies file mapper,
8 # we could also just ship a link to the packages file and load from same path as the widget-toolkit
9 MARKEDJS=/usr/share/javascript/marked/marked.js
10
11 JSSRC= \
12 Utils.js \
13 Schema.js \
14 Toolkit.js \
15 Logo.js \
16 Parser.js \
17 mixin/CBind.js \
18 data/reader/JsonObject.js \
19 data/ProxmoxProxy.js \
20 data/UpdateStore.js \
21 data/DiffStore.js \
22 data/ObjectStore.js \
23 data/RRDStore.js \
24 data/TimezoneStore.js \
25 data/model/NotificationConfig.js \
26 data/model/Realm.js \
27 data/model/Certificates.js \
28 data/model/ACME.js \
29 form/BandwidthSelector.js \
30 form/DisplayEdit.js \
31 form/ExpireDate.js \
32 form/IntegerField.js \
33 form/TextField.js \
34 form/VlanField.js \
35 form/DateTimeField.js \
36 form/Checkbox.js \
37 form/KVComboBox.js \
38 form/LanguageSelector.js \
39 form/ComboGrid.js \
40 form/RRDTypeSelector.js \
41 form/BondModeSelector.js \
42 form/NetworkSelector.js \
43 form/RealmComboBox.js \
44 form/PruneKeepField.js \
45 form/RoleSelector.js \
46 form/DiskSelector.js \
47 form/MultiDiskSelector.js \
48 form/TaskTypeSelector.js \
49 form/ACME.js \
50 form/UserSelector.js \
51 form/ThemeSelector.js \
52 button/Button.js \
53 button/AltText.js \
54 button/HelpButton.js \
55 grid/ObjectGrid.js \
56 grid/PendingObjectGrid.js \
57 panel/AuthView.js \
58 panel/DiskList.js \
59 panel/EOLNotice.js \
60 panel/InputPanel.js \
61 panel/InfoWidget.js \
62 panel/LogView.js \
63 panel/NodeInfoRepoStatus.js \
64 panel/NotificationConfigView.js \
65 panel/JournalView.js \
66 panel/PermissionView.js \
67 panel/PruneKeepPanel.js \
68 panel/RRDChart.js \
69 panel/GaugeWidget.js \
70 panel/GotifyEditPanel.js \
71 panel/Certificates.js \
72 panel/ACMEAccount.js \
73 panel/ACMEPlugin.js \
74 panel/ACMEDomains.js \
75 panel/EmailRecipientPanel.js \
76 panel/SendmailEditPanel.js \
77 panel/SmtpEditPanel.js \
78 panel/StatusView.js \
79 panel/TfaView.js \
80 panel/NotesView.js \
81 window/Edit.js \
82 window/PasswordEdit.js \
83 window/SafeDestroy.js \
84 window/PackageVersions.js \
85 window/TaskViewer.js \
86 window/LanguageEdit.js \
87 window/DiskSmart.js \
88 window/ZFSDetail.js \
89 window/Certificates.js \
90 window/ACMEAccount.js \
91 window/ACMEPluginEdit.js \
92 window/ACMEDomains.js \
93 window/EndpointEditBase.js \
94 window/NotificationMatcherEdit.js \
95 window/FileBrowser.js \
96 window/AuthEditBase.js \
97 window/AuthEditOpenId.js \
98 window/AuthEditLDAP.js \
99 window/AuthEditAD.js \
100 window/TfaWindow.js \
101 window/AddTfaRecovery.js \
102 window/AddTotp.js \
103 window/AddWebauthn.js \
104 window/AddYubico.js \
105 window/TfaEdit.js \
106 window/NotesEdit.js \
107 window/ThemeEdit.js \
108 window/SyncWindow.js \
109 node/APT.js \
110 node/APTRepositories.js \
111 node/NetworkEdit.js \
112 node/NetworkView.js \
113 node/DNSEdit.js \
114 node/HostsView.js \
115 node/DNSView.js \
116 node/Tasks.js \
117 node/ServiceView.js \
118 node/TimeEdit.js \
119 node/TimeView.js
120
121 all: $(SUBDIRS)
122 set -e && for i in $(SUBDIRS); do $(MAKE) -C $$i; done
123
124 .lint-incremental: $(JSSRC)
125 $(ESLINT) $?
126 touch "$@"
127
128 .PHONY: lint
129 check: lint
130 $(ESLINT) --strict api-viewer/APIViewer.js
131 lint: $(JSSRC)
132 $(ESLINT) --strict $(JSSRC)
133 touch ".lint-incremental"
134
135 BUILD_TIME=$(or $(SOURCE_DATE_EPOCH),$(shell date '+%s.%N'))
136 BUILD_VERSION=$(or $(DEB_VERSION),$(shell git rev-parse HEAD),unknown version)
137 proxmoxlib.js: .lint-incremental $(JSSRC)
138 # add the version as comment in the file
139 echo "// v$(BUILD_VERSION)-t$(BUILD_TIME)" > $@.tmp
140 cat $(JSSRC) $(MARKEDJS) >> $@.tmp
141 mv $@.tmp $@
142
143 proxmoxlib.min.js: proxmoxlib.js
144 uglifyjs $< -c -m -o $@.tmp
145 mv $@.tmp $@
146
147 install: proxmoxlib.js proxmoxlib.min.js
148 install -d -m 755 $(WWWBASEDIR)
149 install -m 0644 proxmoxlib.js proxmoxlib.min.js $(WWWBASEDIR)
150 set -e && for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done
151
152 .PHONY: clean
153 clean:
154 $(MAKE) -C proxmox-dark $@
155 rm -f proxmoxlib.js* proxmoxlib.min.js* .lint-incremental