Makefile.static 13.6 KB
Newer Older
1 2 3 4 5 6 7 8 9

##############################################################################

# If you have a suggestion for a name, tell me about it:
# <[email protected]>

# No quotes for these four:
# NAME = [technical] name
# NAME_C = Capitalized name (human name)
Oskar Skog's avatar
Oskar Skog committed
10
# DESCRIPTION =
11 12 13 14
# VERSION = x.y.z
NAME := anonymine
NAME_C := Anonymine
DESCRIPTION = Minesweeper without guessing
15
VERSION := pre-0.3.8
16

Oskar Skog's avatar
Oskar Skog committed
17 18
# Five more variables are required: sysconfdir, vargamesdir, EXECUTABLES and
# MODULES, and MODULES_OTHERVER which may be set to "non-existent".
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
# They will be prepended to the actual Makefile by the "configure" script.

# srcdir, builddir and DESTDIR may also be prepended by the "configure"
# script.

# freedesktop == "" if not freedesktop.org DE.
# windows == "" if not on Windows.
# macosx == "" if not on Mac OS X.

# See "INSTALL".

# Define these to prevent bugs on certain platforms.
PRE_INSTALL = true
NORMAL_INSTALL = true
POST_INSTALL = true
PRE_UNINSTALL = true
NORMAL_UNINSTALL = true
POST_UNINSTALL = true

##############################################################################

Oskar Skog's avatar
Oskar Skog committed
40 41 42
verbose ?= true
info := test "$(verbose)" != true || echo '//'

43 44 45 46 47 48
# Desktop specific prefixes:
# FD_	freedesktop.org
# OSX_	Mac OS X
# CYG_	Cygwin
# W_	Cygwin, "temporary" variables

Oskar Skog's avatar
Oskar Skog committed
49 50 51
MAIN_SRC := $(srcdir)$(NAME).py
MAIN_STAGE := $(builddir)$(NAME)
MAIN_DEST := $(DESTDIR)$(EXECUTABLES)/$(NAME)
52 53 54 55 56 57

CFG_DIR := $(DESTDIR)$(sysconfdir)/$(NAME)

MAIN_STAGE_SED1 := s/MAKEFILE_GAME_VERSION/$(VERSION)/
SED_CFGDIR := `echo $(CFG_DIR) | sed -e 's/\\//\\\\\\//g'`
MAIN_STAGE_SED2 := s/MAKEFILE_CFGDIR/$(SED_CFGDIR)/
Oskar Skog's avatar
Oskar Skog committed
58

Oskar Skog's avatar
Oskar Skog committed
59
HISCORE_FILE := $(DESTDIR)$(vargamesdir)/anonymine
Oskar Skog's avatar
Oskar Skog committed
60
ENGINECFG_STAGE := $(builddir)enginecfg.out
61 62

# freedesktop.org, see desktop/README
Oskar Skog's avatar
Oskar Skog committed
63 64 65
FD_MK_DESKTOP := $(srcdir)desktop/desktop.sh
FD_DESKTOP_STAGE := $(builddir)$(NAME).desktop
FD_DESKTOP_DEST := $(DESTDIR)$(prefix)/share/applications/$(NAME).desktop
66 67

# Mac OS X, see desktop/README
Oskar Skog's avatar
Oskar Skog committed
68 69 70 71 72
OSX_WRAPPER := $(builddir)$(NAME)-wrapper
OSX_INFO_PLIST := $(builddir)Info.plist
OSX_MK_INFO_PLIST := $(srcdir)desktop/Info.plist.py
OSX_ICON := $(builddir)icon.icns
OSX_MK_ICON := $(srcdir)desktop/icon.icns.py
73 74

# Windows/Cygwin, see desktop/README
Oskar Skog's avatar
Oskar Skog committed
75 76
CYG_ICO_SRC := $(srcdir)desktop/$(NAME).ico
CYG_ICO_DIR := $(DESTDIR)$(prefix)/share/pixmaps
77
CYG_ICO_DEST := $(CYG_ICO_DIR)/$(NAME).ico
78 79

# make clean
Oskar Skog's avatar
Oskar Skog committed
80
ALL_STAGE := "$(MAIN_STAGE)" "$(OSX_WRAPPER)" "$(OSX_INFO_PLIST)" \
Oskar Skog's avatar
Oskar Skog committed
81 82 83
	"$(OSX_ICON)" "$(builddir)check.py" "$(FD_DESKTOP_STAGE)" \
	"$(ENGINECFG_STAGE)" "$(builddir)mkenginecfg.py"

Oskar Skog's avatar
Oskar Skog committed
84 85
all : $(MAIN_STAGE) $(ENGINECFG_STAGE)
	@$(info) 'Maybe building .desktop and app/bundle'
86
	@if "$(freedesktop)"; then \
Oskar Skog's avatar
Oskar Skog committed
87
		cd "$(builddir)" && make build-freedesktop > /dev/null; \
88
	fi
89
	@if "$(macosx)"; then \
Oskar Skog's avatar
Oskar Skog committed
90
		cd "$(builddir)" && make build-macosx > /dev/null; \
91 92
	fi

93
$(MAIN_STAGE) : $(MAIN_SRC) $(srcdir)Makefile.static
Oskar Skog's avatar
Oskar Skog committed
94 95
	@$(info) 'Creating the appropriate shebang line'
	@echo "#!`which python`" > "$(MAIN_STAGE)"
96 97
	@sed -e "$(MAIN_STAGE_SED1)" "$(MAIN_SRC)" \
		| sed -e "$(MAIN_STAGE_SED2)" >> "$(MAIN_STAGE)"
Oskar Skog's avatar
Oskar Skog committed
98

99
$(ENGINECFG_STAGE) : $(srcdir)mkenginecfg
Oskar Skog's avatar
Oskar Skog committed
100 101
	@$(info) 'Making enginecfg: mostly counting processors'
	@"$(srcdir)mkenginecfg" "$(srcdir)" "$(builddir)" "$(HISCORE_FILE)"
Oskar Skog's avatar
Oskar Skog committed
102 103 104 105 106 107 108 109 110 111 112 113 114 115

build-freedesktop : FORCE
	@: # Refer to desktop/README for information about the following.
	@"$(FD_MK_DESKTOP)" "$(FD_DESKTOP_STAGE)" $(NAME) "$(NAME_C)" \
		"$(DESCRIPTION) -- version $(VERSION)"

build-macosx : FORCE
	@: # Refer to desktop/README for information about the following.
	@echo '#!/bin/sh' > "$(OSX_WRAPPER)"
	@echo 'open -b com.apple.terminal' "$(MAIN_DEST)" >> "$(OSX_WRAPPER)"
	@python "$(OSX_MK_INFO_PLIST)" "$(OSX_INFO_PLIST)" "$(NAME_C)" \
		"$(NAME_C) - $(DESCRIPTION)" $(VERSION) $(NAME)
	@python "$(OSX_MK_ICON)" "$(OSX_ICON)" "$(srcdir)desktop/$(NAME)"

116 117 118
clean : FORCE
	@rm $(ALL_STAGE) 2> /dev/null || true
	@: # Remove the bytecode files.
Oskar Skog's avatar
Oskar Skog committed
119 120
	@rm -- "$(srcdir)"*.pyc 2> /dev/null || true
	@rm -r -- "$(srcdir)"__pycache__/ 2> /dev/null || true
121

Oskar Skog's avatar
0.3.4  
Oskar Skog committed
122 123 124
distclean : clean
	@rm $(builddir)Makefile

125
# configure.py will choose /usr/ucb/install on Solares.
126
INSTALL ?= install
127

Oskar Skog's avatar
Oskar Skog committed
128 129
INSTALL_CFG := python "$(srcdir)install-cfg" "$(INSTALL)"

130
# Modules: FOO_SRC, FOO_DEST, FOO_DEST_OTHERVER
Oskar Skog's avatar
Oskar Skog committed
131 132 133 134 135 136 137 138 139
ENGINE_SRC := $(srcdir)$(NAME)_engine.py
ENGINE_DEST := $(DESTDIR)$(MODULES)/$(NAME)_engine.py
ENGINE_DEST_OTHERVER := $(DESTDIR)$(MODULES_OTHERVER)/$(NAME)_engine.py
SOLVER_SRC := $(srcdir)$(NAME)_solver.py
SOLVER_DEST := $(DESTDIR)$(MODULES)/$(NAME)_solver.py
SOLVER_DEST_OTHERVER := $(DESTDIR)$(MODULES_OTHERVER)/$(NAME)_solver.py
FIELDS_SRC := $(srcdir)$(NAME)_fields.py
FIELDS_DEST := $(DESTDIR)$(MODULES)/$(NAME)_fields.py
FIELDS_DEST_OTHERVER := $(DESTDIR)$(MODULES_OTHERVER)/$(NAME)_fields.py
140 141 142 143 144

# Installation commands for modules:
NO_OTHERVER := test "$(MODULES_OTHERVER)" "=" non-existent

# See desktop/README
145 146 147 148 149 150 151 152 153 154 155 156 157 158
# $$size would work in gmake while $$$$size would work in BSD make.
# Neither works in both.
FD_ICON_SRC16 := $(srcdir)desktop/$(NAME)-16x16.png
FD_ICON_DESTDIR16 := $(DESTDIR)$(prefix)/share/icons/hicolor/16x16/apps
FD_ICON_DEST16 := $(FD_ICON_DESTDIR16)/$(NAME).png
FD_ICON_SRC32 := $(srcdir)desktop/$(NAME)-32x32.png
FD_ICON_DESTDIR32 := $(DESTDIR)$(prefix)/share/icons/hicolor/32x32/apps
FD_ICON_DEST32 := $(FD_ICON_DESTDIR32)/$(NAME).png
FD_ICON_SRC64 := $(srcdir)desktop/$(NAME)-64x64.png
FD_ICON_DESTDIR64 := $(DESTDIR)$(prefix)/share/icons/hicolor/64x64/apps
FD_ICON_DEST64 := $(FD_ICON_DESTDIR64)/$(NAME).png
FD_ICON_SRC256 := $(srcdir)desktop/$(NAME)-256x256.png
FD_ICON_DESTDIR256 := $(DESTDIR)$(prefix)/share/icons/hicolor/256x256/apps
FD_ICON_DEST256 := $(FD_ICON_DESTDIR256)/$(NAME).png
159 160

# See desktop/README
Oskar Skog's avatar
Oskar Skog committed
161 162
BUNDLE := $(DESTDIR)/Applications/$(NAME_C).app

163 164 165 166

check-install-cfg : FORCE
	@$(PRE_INSTALL)
	@: # Cause installation to fail if the configuration is incompatible.
Oskar Skog's avatar
Oskar Skog committed
167
	@$(info) 'Installing or checking configuration'
168 169 170
	@: # Install the directory for the configuration files as install-dirs
	@: # might not have been run yet.
	@mkdir -p "$(CFG_DIR)"
171 172
	@$(INSTALL_CFG) "$(srcdir)cursescfg" "$(CFG_DIR)/cursescfg" $(verbose)
	@$(INSTALL_CFG) "$(ENGINECFG_STAGE)" "$(CFG_DIR)/enginecfg" $(verbose)
173 174

overwrite-cfg: FORCE
175 176
	@echo "overwrite-cfg has been disabled" >/dev/stderr && false
	@false
Oskar Skog's avatar
Oskar Skog committed
177 178
	@$(INSTALL) -m 644 "$(srcdir)cursescfg" "$(CFG_DIR)/cursescfg"
	@$(INSTALL) -m 644 "$(ENGINECFG_STAGE)" "$(CFG_DIR)/enginecfg"
179 180
	@$(info) "Configuration has been overwritten"
	@$(info) "All (if any) system-wide modifications are lost"
181 182

install-dirs : FORCE
Oskar Skog's avatar
Oskar Skog committed
183
	@$(info) 'Installing directories'
Oskar Skog's avatar
Oskar Skog committed
184 185
	@mkdir -p "$(CFG_DIR)" || true
	@mkdir -p "$(DESTDIR)$(vargamesdir)" || true
Oskar Skog's avatar
Oskar Skog committed
186 187
	@mkdir -p "$(DESTDIR)$(EXECUTABLES)" || true
	@mkdir -p "$(DESTDIR)$(MODULES)" || true
188
	@if [ "$(MODULES_OTHERVER)" != "non-existent" ]; then \
Oskar Skog's avatar
Oskar Skog committed
189
		mkdir -p "$(DESTDIR)$(MODULES_OTHERVER)" || true; \
190
	fi
191
	@if "$(freedesktop)"; then \
Oskar Skog's avatar
Oskar Skog committed
192 193 194
		mkdir -p "$(DESTDIR)$(prefix)/share/applications" || true; \
		mkdir -p "$(DESTDIR)$(prefix)/share/pixmaps" || true; \
	fi
195
	@if "$(macosx)"; then \
Oskar Skog's avatar
Oskar Skog committed
196 197 198
		$(INSTALL) -d "$(BUNDLE)/Contents"; \
		$(INSTALL) -d "$(BUNDLE)/Contents/MacOS"; \
		$(INSTALL) -d "$(BUNDLE)/Contents/Resources"; \
199 200 201 202 203 204
	fi

install : check-install-cfg install-dirs
	@$(NORMAL_INSTALL)
	@: # When the configuration has been installed, install the main
	@: # program, and then the modules for both versions of Python.
Oskar Skog's avatar
Oskar Skog committed
205 206 207 208 209
	@$(info) 'Installing executable and modules'
	@$(INSTALL) -m 755 "$(MAIN_STAGE)" "$(MAIN_DEST)"
	@$(INSTALL) -m 644 "$(ENGINE_SRC)" "$(ENGINE_DEST)"
	@$(INSTALL) -m 644 "$(SOLVER_SRC)" "$(SOLVER_DEST)"
	@$(INSTALL) -m 644 "$(FIELDS_SRC)" "$(FIELDS_DEST)"
Oskar Skog's avatar
Oskar Skog committed
210 211 212
	@: # Create highscore file unless it already exists.
	@touch "$(HISCORE_FILE)"
	@chmod 666 "$(HISCORE_FILE)"
213
	@if "$(freedesktop)"; then \
Oskar Skog's avatar
Oskar Skog committed
214 215
		$(info) 'Installing icons and .desktop (NORMAL_INSTALL)'; \
		$(INSTALL) -m 644 "$(FD_DESKTOP_STAGE)" "$(FD_DESKTOP_DEST)"; \
216 217 218 219 220 221 222 223
		$(INSTALL) -d "$(FD_ICON_DESTDIR16)"; \
		$(INSTALL) -m 644 "$(FD_ICON_SRC16)" "$(FD_ICON_DEST16)"; \
		$(INSTALL) -d "$(FD_ICON_DESTDIR32)"; \
		$(INSTALL) -m 644 "$(FD_ICON_SRC32)" "$(FD_ICON_DEST32)"; \
		$(INSTALL) -d "$(FD_ICON_DESTDIR64)"; \
		$(INSTALL) -m 644 "$(FD_ICON_SRC64)" "$(FD_ICON_DEST64)"; \
		$(INSTALL) -d "$(FD_ICON_DESTDIR256)"; \
		$(INSTALL) -m 644 "$(FD_ICON_SRC256)" "$(FD_ICON_DEST256)"; \
224
	fi
225
	@if "$(macosx)"; then \
Oskar Skog's avatar
Oskar Skog committed
226 227 228 229 230 231 232
		$(info) 'Installing app/bundle'; \
		$(INSTALL) -m 644 "$(OSX_INFO_PLIST)" \
			"$(BUNDLE)/Contents/Info.plist"; \
		$(INSTALL) -m 755 "$(OSX_WRAPPER)" \
			"$(BUNDLE)/Contents/MacOS/$(NAME)-wrapper"; \
		$(INSTALL) -m 644 "$(OSX_ICON)" \
			"$(BUNDLE)/Contents/Resources/icon.icns"; \
233
	fi
Oskar Skog's avatar
Oskar Skog committed
234 235 236 237
	@$(info) 'Symlinking the modules to the other Python'
	@$(NO_OTHERVER) || ln -sf "$(ENGINE_DEST)" "$(ENGINE_DEST_OTHERVER)"
	@$(NO_OTHERVER) || ln -sf "$(SOLVER_DEST)" "$(SOLVER_DEST_OTHERVER)"
	@$(NO_OTHERVER) || ln -sf "$(FIELDS_DEST)" "$(FIELDS_DEST_OTHERVER)"
238
	@$(POST_INSTALL)
239
	@if "$(freedesktop)"; then \
Oskar Skog's avatar
Oskar Skog committed
240
		$(info) 'Installing icons and .desktop (POST_INSTALL)'; \
241
		xdg-desktop-menu install --novendor --mode system \
Oskar Skog's avatar
Oskar Skog committed
242
			"$(FD_DESKTOP_DEST)" || true; \
243
	fi
244
	@if "$(windows)"; then \
Oskar Skog's avatar
Oskar Skog committed
245 246
		$(info) 'Installing shortcuts'; \
		$(INSTALL) "$(CYG_ICO_SRC)" "$(CYG_ICO_DEST)"; \
247
		mkshortcut -A -P -a '-lc $(NAME)' -n "$(NAME_C)" \
Oskar Skog's avatar
Oskar Skog committed
248
			-i "$(CYG_ICO_DEST)" /bin/bash.exe || \
249
		mkshortcut -P -a '-lc $(NAME)' -n "$(NAME_C)" \
Oskar Skog's avatar
Oskar Skog committed
250
			-i "$(CYG_ICO_DEST)" /bin/bash.exe; \
251
		\
252
		mkshortcut -A -D -a '-lc $(NAME)' -n "$(NAME_C)" \
Oskar Skog's avatar
Oskar Skog committed
253
			-i "$(CYG_ICO_DEST)" /bin/bash.exe || \
254
		mkshortcut -D -a '-lc $(NAME)' -n "$(NAME_C)" \
Oskar Skog's avatar
Oskar Skog committed
255
			-i "$(CYG_ICO_DEST)" /bin/bash.exe; \
256 257
		\
		mkshortcut -A -P -n "Uninstall $(NAME_C)" \
258 259
			-a '-lc "make uninstall && (./rmssh || true) && cd .. \
			&& rm -r ./$(NAME)*/" && /setup.exe' \
260 261
			-w "`pwd`" /bin/bash.exe || \
		mkshortcut -P -n "Uninstall $(NAME_C)" \
262 263
			-a '-lc "make uninstall && (./rmssh || true) && cd .. \
			&& rm -r ./$(NAME)*/" && /setup.exe' \
264
			-w "`pwd`" /bin/bash.exe; \
265 266 267
	fi

# http://superuser.com/questions/86078/where-do-start-menu-all-programs-shortcuts-reside
Oskar Skog's avatar
Oskar Skog committed
268 269
W_C := $(DESTDIR)/cygdrive/c
W_U := $(DESTDIR)`cygpath --unix '$(USERPROFILE)'`
270 271
# Ugh: use $(NAME_C)*.lnk to get the uninstall .lnk removed as well.
W_F := Anonymine*.lnk
Oskar Skog's avatar
Oskar Skog committed
272
W_M := /Start Menu/Programs/
273 274 275
# W_C is the C drive, W_U is the users real home directory,
# W_F is the filename and W_M is a part of the path to the start menu
# common for both NT 5 and 6.
Oskar Skog's avatar
Oskar Skog committed
276
CYG_STARTMENU_NT5X_ALL := $(W_C)/Documents and Settings/All Users$(W_M)$(W_F)
277
CYG_STARTMENU_NT5X_ME := $(W_U)$(W_M)$(W_F)
Oskar Skog's avatar
Oskar Skog committed
278 279 280
CYG_STARTMENU_NT6X_ALL := $(W_C)/ProgramData/Microsoft/Windows$(W_M)$(W_F)
CYG_STARTMENU_NT6X_ME := $(W_U)/AppData/Roaming/Microsoft/Windows$(W_M)$(W_F)
CYG_DESKTOP_NT5X_ALL := $(W_C)/Documents and Settings/All Users/Desktop$(W_F)
281 282
CYG_DESKTOP_NT6X_ALL := $(W_C)/Users/Public/Desktop/$(W_F)
CYG_DESKTOP_ME := $(W_U)/Desktop/$(W_F)
283 284 285

uninstall: FORCE
	@$(PRE_UNINSTALL)
286
	@if "$(freedesktop)"; then \
287
		xdg-desktop-menu uninstall --novendor --mode system \
Oskar Skog's avatar
Oskar Skog committed
288
			"$(FD_DESKTOP_DEST)" || true; \
289 290
	fi
	@$(NORMAL_UNINSTALL)
Oskar Skog's avatar
Oskar Skog committed
291 292 293 294
	@-rm -r "$(CFG_DIR)"
	@-rm "$(ENGINE_DEST)" "$(SOLVER_DEST)" "$(FIELDS_DEST)" "$(MAIN_DEST)"
	@$(NO_OTHERVER) || rm "$(ENGINE_DEST_OTHERVER)" \
		"$(SOLVER_DEST_OTHERVER)" "$(FIELDS_DEST_OTHERVER)" || true
295
	@if "$(freedesktop)"; then \
Oskar Skog's avatar
Oskar Skog committed
296
		rm "$(FD_DESKTOP_DEST)" || true; \
297
		for size in $(FD_ICON_SIZES); do \
Oskar Skog's avatar
Oskar Skog committed
298
			rm "$(FD_ICON_DEST)" || true; \
299 300
		done; \
	fi
301
	@if "$(macosx)"; then \
Oskar Skog's avatar
Oskar Skog committed
302
		rm -r "$(BUNDLE)" || true; \
303
	fi
304
	@if "$(windows)"; then \
Oskar Skog's avatar
Oskar Skog committed
305 306 307 308 309 310 311
		rm "$(CYG_STARTMENU_NT5X_ALL)" || true; \
		rm "$(CYG_STARTMENU_NT5X_ME)" || true; \
		rm "$(CYG_STARTMENU_NT6X_ALL)" || true; \
		rm "$(CYG_STARTMENU_NT6X_ME)" || true; \
		rm "$(CYG_DESKTOP_NT5X_ALL)" || true; \
		rm "$(CYG_DESKTOP_NT6X_ALL)" || true; \
		rm "$(CYG_DESKTOP_ME)" || true; \
312 313 314
	fi

print-destinations: FORCE
Oskar Skog's avatar
Oskar Skog committed
315 316 317 318
	@echo "Main program:          $(MAIN_DEST)"
	@echo "Engine module:         $(ENGINE_DEST)"
	@echo "Solver module:         $(SOLVER_DEST)"
	@echo "Fields module:         $(FIELDS_DEST)"
319
	@$(NO_OTHERVER) || \
320
		echo "Engine module symlink: $(ENGINE_DEST_OTHERVER)"
321
	@$(NO_OTHERVER) || \
322
		echo "Solver module symlink: $(SOLVER_DEST_OTHERVER)"
323
	@$(NO_OTHERVER) || \
324
		echo "Fields module symlink: $(FIELDS_DEST_OTHERVER)"
Oskar Skog's avatar
Oskar Skog committed
325 326
	@echo "Configuration files:   $(CFG_DIR) (directory)"
	@echo "Highscores file:       $(HISCORE_FILE)"
327
	@if "$(freedesktop)"; then \
Oskar Skog's avatar
Oskar Skog committed
328 329 330 331 332
		echo "[freedesktop.org] .desktop: $(FD_DESKTOP_DEST)"; \
		echo "[freedesktop.org] Icon:     $(FD_ICON_DEST16)"; \
		echo "[freedesktop.org] Icon:     $(FD_ICON_DEST32)"; \
		echo "[freedesktop.org] Icon:     $(FD_ICON_DEST64)"; \
		echo "[freedesktop.org] Icon:     $(FD_ICON_DEST256)"; \
333
	fi
334
	@if "$(macosx)"; then \
Oskar Skog's avatar
Oskar Skog committed
335
		echo "[Mac OS X] Bundle (App): $(BUNDLE) (directory)"; \
336
	fi
337
	@if "$(windows)"; then \
338 339 340 341 342 343 344 345
		echo "[Windows] Shortcut: $(CYG_STARTMENU_NT5X_ALL)"; \
		echo "[Windows] Shortcut: $(CYG_STARTMENU_NT5X_ME)"; \
		echo "[Windows] Shortcut: $(CYG_STARTMENU_NT6X_ALL)"; \
		echo "[Windows] Shortcut: $(CYG_STARTMENU_NT6X_ME)"; \
		echo "[Windows] Shortcut: $(CYG_DESKTOP_NT5X_ALL)"; \
		echo "[Windows] Shortcut: $(CYG_DESKTOP_NT6X_ALL)"; \
		echo "[Windows] Shortcut: $(CYG_DESKTOP_ME)"; \
		echo "[Windows] Icon:     $(CYG_ICO_DEST)"; \
346 347
	fi

Oskar Skog's avatar
Oskar Skog committed
348 349 350
test : check
	@true

351
check: FORCE
Oskar Skog's avatar
Oskar Skog committed
352
	@$(info) "Checking that it works on both snakes... May take a while!"
353 354
	@$(srcdir)check.sh "$(srcdir)" "$(builddir)"

355
dist : FORCE
Oskar Skog's avatar
Oskar Skog committed
356
	@$(info) "Building tarballs..."
357
	@cd "$(builddir)" && make tarballs > /dev/null
Oskar Skog's avatar
Oskar Skog committed
358
	@$(info) "Maybe building a zip for Windrugs users..."
359
	@cd "$(builddir)" && make zip > /dev/null
360

361
release : dist check
Oskar Skog's avatar
Oskar Skog committed
362
	@cp -t ~www-data/archive/"$(NAME)/" "$(PKG).tar.gz" \
363
		|| echo You are not me.
364 365
	@cp -t ~www-data/archive/"$(NAME)/" "$(PKG).tar.xz" \
		|| echo You are not me.
Oskar Skog's avatar
Oskar Skog committed
366
	@cp -t ~www-data/archive/"$(NAME)/" "$(PKG).zip" \
367 368
		|| echo You are not me.

369 370
PKG := $(NAME)-$(VERSION)

371
tarballs : FORCE
372
	@$(srcdir)mkdist "$(srcdir)" "$(builddir)" "$(PKG)" tar
373 374

zip : FORCE
375
	@$(srcdir)mkdist "$(srcdir)" "$(builddir)" "$(PKG)" zip
376 377

FORCE: