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
# BEWARE: this makefile is solely used for preparing a release - it is not useful for compiling/installing the program
# use something like "VERSION=0.2 make" to override the VERSION on the command line
VERSION ?= $(shell sed -n "s/^.*[\t ]*version[\t ]*=[\t ]*[\"']\([^\"']*\)[\"'].*/\1/gp" setup.py)
SVN_BASE ?= https://pycam.svn.sourceforge.net/svnroot/pycam
RELEASE_PREFIX ?= pycam-
ARCHIVE_DIR_RELATIVE ?= release-archives
EXPORT_DIR = $(RELEASE_PREFIX)$(VERSION)
EXPORT_FILE_PREFIX = $(EXPORT_DIR)
EXPORT_ZIP = $(ARCHIVE_DIR)/$(EXPORT_FILE_PREFIX).zip
EXPORT_TGZ = $(ARCHIVE_DIR)/$(EXPORT_FILE_PREFIX).tar.gz
EXPORT_WIN32 = $(ARCHIVE_DIR)/$(EXPORT_FILE_PREFIX).win32.exe
# turn the destination directory into an absolute path
ARCHIVE_DIR := $(shell pwd)/$(ARCHIVE_DIR_RELATIVE)
.PHONY: zip tgz win32 clean dist svn_export upload create_archive_dir
dist: zip tgz win32
@# remove the tmp directory when everything is done
@rm -rf "$(EXPORT_DIR)"
clean:
@rm -rf "$(EXPORT_DIR)"
svn_export: clean
svn export --quiet "$(SVN_BASE)/trunk" "$(EXPORT_DIR)"
create_archive_dir:
mkdir -p "$(ARCHIVE_DIR)"
zip: create_archive_dir svn_export
cd "$(EXPORT_DIR)"; python setup.py sdist --format zip --dist-dir "$(ARCHIVE_DIR)"
tgz: create_archive_dir svn_export
cd "$(EXPORT_DIR)"; python setup.py sdist --format gztar --dist-dir "$(ARCHIVE_DIR)"
win32: create_archive_dir svn_export
# this is a binary release
cd "$(EXPORT_DIR)"; python setup.py bdist --format wininst --dist-dir "$(ARCHIVE_DIR)"
upload:
svn cp "$(SVN_BASE)/trunk" "$(SVN_BASE)/tags/release-$(VERSION)" -m "tag release $(VERSION)"
svn import "$(EXPORT_ZIP)" "$(SVN_BASE)/tags/archives/$(EXPORT_ZIP)" -m "added released zip file for version $(VERSION)"
svn import "$(EXPORT_TGZ)" "$(SVN_BASE)/tags/archives/$(EXPORT_TGZ)" -m "added released tgz file for version $(VERSION)"
svn import "$(EXPORT_WIN32)" "$(SVN_BASE)/tags/archives/$(EXPORT_WIN32)" -m "added released win32 installer for version $(VERSION)"