annotate Makefile @ 2153:e4c83fa61a5b

replaced $(BUILD) with a more direct and less brittle construct For discussion, see the following email and its follow-ups: http://lists.nongnu.org/archive/html/mingw-cross-env-list/2011-11/msg00112.html
author Volker Grabsch <vog@notjusthosting.com>
date Mon, 28 Nov 2011 09:51:56 +0100
parents 02d04ce7c9c7
children e9eed43704a2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
641
dab071eac9c0 simplified file markers
Volker Grabsch <vog@notjusthosting.com>
parents: 604
diff changeset
1 # This file is part of mingw-cross-env.
714
29f1ba4559ae point consequently to "doc/index.html" instead of "doc/index.html or doc/README"
Volker Grabsch <vog@notjusthosting.com>
parents: 704
diff changeset
2 # See doc/index.html for further information.
123
9fedbab70063 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 122
diff changeset
3
206
c82301af7b7f disable parallel builds by default and document in the README how to enable parallelization
Volker Grabsch <vog@notjusthosting.com>
parents: 197
diff changeset
4 JOBS := 1
450
f3563b6817c1 update the target triplet to i686-pc-mingw32
Volker Grabsch <vog@notjusthosting.com>
parents: 448
diff changeset
5 TARGET := i686-pc-mingw32
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
6 SOURCEFORGE_MIRROR := kent.dl.sourceforge.net
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
7
1865
aa8e9bab281d Ensure that $(PWD) is always set, which is needed for use with sudo
Volker Grabsch <vog@notjusthosting.com>
parents: 1847
diff changeset
8 PWD := $(shell pwd)
704
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
9 PREFIX := $(PWD)/usr
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
10 LOG_DIR := $(PWD)/log
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
11 TIMESTAMP := $(shell date +%Y%m%d_%H%M%S)
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
12 PKG_DIR := $(PWD)/pkg
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
13 DIST_DIR := $(PWD)/dist
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
14 TMP_DIR = $(PWD)/tmp-$(1)
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
15 MAKEFILE := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
16 TOP_DIR := $(patsubst %/,%,$(dir $(MAKEFILE)))
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
17 PATH := $(PREFIX)/bin:$(PATH)
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
18 SHELL := bash
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
19 INSTALL := $(shell ginstall --help >/dev/null 2>&1 && echo g)install
1413
b14677f6af57 add portability variable for libtool
Tony Theodore <tonyt@logyst.com>
parents: 1411
diff changeset
20 LIBTOOL := $(shell glibtool --help >/dev/null 2>&1 && echo g)libtool
704
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
21 LIBTOOLIZE := $(shell glibtoolize --help >/dev/null 2>&1 && echo g)libtoolize
1245
37aa3912b501 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1206
diff changeset
22 PATCH := $(shell gpatch --help >/dev/null 2>&1 && echo g)patch
37aa3912b501 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1206
diff changeset
23 SED := $(shell gsed --help >/dev/null 2>&1 && echo g)sed
704
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
24 VERSION := $(shell $(SED) -n 's,^.*<span id="latest-version">\([^<]*\)</span>.*$$,\1,p' '$(TOP_DIR)/doc/index.html')
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
25
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
26 REQUIREMENTS := autoconf automake bash bison bzip2 cmake flex \
1413
b14677f6af57 add portability variable for libtool
Tony Theodore <tonyt@logyst.com>
parents: 1411
diff changeset
27 gcc intltoolize $(LIBTOOL) $(LIBTOOLIZE) \
b14677f6af57 add portability variable for libtool
Tony Theodore <tonyt@logyst.com>
parents: 1411
diff changeset
28 $(MAKE) openssl $(PATCH) $(PERL) pkg-config \
b14677f6af57 add portability variable for libtool
Tony Theodore <tonyt@logyst.com>
parents: 1411
diff changeset
29 scons $(SED) unzip wget xz yasm
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
30
1663
9577f70222f8 add cmake toolchain file and simplify build rules of relevant packages
Tony Theodore <tonyt@logyst.com>
parents: 1555
diff changeset
31 CMAKE_TOOLCHAIN_FILE := $(PREFIX)/$(TARGET)/share/cmake/mingw-cross-env-conf.cmake
9577f70222f8 add cmake toolchain file and simplify build rules of relevant packages
Tony Theodore <tonyt@logyst.com>
parents: 1555
diff changeset
32
1074
4f4354ddd6ae really unexport the troublesome environment variables, rather than just setting them to empty strings
Volker Grabsch <vog@notjusthosting.com>
parents: 826
diff changeset
33 # unexport any environment variables that might cause trouble
1206
686a80e66ce1 add more environment variables to the blacklist: CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH OBJC_INCLUDE_PATH LIBRARY_PATH
Volker Grabsch <vog@notjusthosting.com>
parents: 1201
diff changeset
34 unexport AR CC CFLAGS C_INCLUDE_PATH CPATH CPLUS_INCLUDE_PATH CPP
686a80e66ce1 add more environment variables to the blacklist: CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH OBJC_INCLUDE_PATH LIBRARY_PATH
Volker Grabsch <vog@notjusthosting.com>
parents: 1201
diff changeset
35 unexport CPPFLAGS CROSS CXX CXXCPP CXXFLAGS EXEEXT EXTRA_CFLAGS
686a80e66ce1 add more environment variables to the blacklist: CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH OBJC_INCLUDE_PATH LIBRARY_PATH
Volker Grabsch <vog@notjusthosting.com>
parents: 1201
diff changeset
36 unexport EXTRA_LDFLAGS LD LDFLAGS LIBRARY_PATH LIBS NM
1504
dfa937baa17b improved pkg-config wrapper and its documentation
Volker Grabsch <vog@notjusthosting.com>
parents: 1466
diff changeset
37 unexport OBJC_INCLUDE_PATH PKG_CONFIG QMAKESPEC RANLIB STRIP
287
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
38
264
01aa6a0e1c9e new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents: 259
diff changeset
39 SHORT_PKG_VERSION = \
01aa6a0e1c9e new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents: 259
diff changeset
40 $(word 1,$(subst ., ,$($(1)_VERSION))).$(word 2,$(subst ., ,$($(1)_VERSION)))
01aa6a0e1c9e new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents: 259
diff changeset
41
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
42 PKGS := $(sort $(patsubst $(TOP_DIR)/src/%.mk,%,$(wildcard $(TOP_DIR)/src/*.mk)))
213
faeb91c793f3 find the src/*.mk and doc/ files even when called from another directory, e.g. via "make -f /path/to/mingw_cross_env/Makefile"
Volker Grabsch <vog@notjusthosting.com>
parents: 212
diff changeset
43 include $(TOP_DIR)/src/*.mk
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
44
120
4edf6a519683 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 119
diff changeset
45 UNPACK_ARCHIVE = \
1101
28abe875c217 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1095
diff changeset
46 $(if $(filter %.tgz, $(1)),tar xzf '$(1)', \
28abe875c217 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1095
diff changeset
47 $(if $(filter %.tar.gz, $(1)),tar xzf '$(1)', \
28abe875c217 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1095
diff changeset
48 $(if $(filter %.tar.bz2, $(1)),tar xjf '$(1)', \
1136
cf87e39ecc2c improved portability invoking tar with stdin
Mark Brand <mabrand@mabrand.nl>
parents: 1132
diff changeset
49 $(if $(filter %.tar.lzma,$(1)),xz -dc -F lzma '$(1)' | tar xf -, \
1555
1669134dcd03 unpack .tar.xz archives
Mark Brand <mabrand@mabrand.nl>
parents: 1519
diff changeset
50 $(if $(filter %.tar.xz,$(1)),xz -dc '$(1)' | tar xf -, \
1101
28abe875c217 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1095
diff changeset
51 $(if $(filter %.zip, $(1)),unzip -q '$(1)', \
1555
1669134dcd03 unpack .tar.xz archives
Mark Brand <mabrand@mabrand.nl>
parents: 1519
diff changeset
52 $(error Unknown archive format: $(1))))))))
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
53
215
898425550c29 new macro UNPACK_PKG_ARCHIVE for build rules (This is useful in connection with download-only packages)
Volker Grabsch <vog@notjusthosting.com>
parents: 214
diff changeset
54 UNPACK_PKG_ARCHIVE = \
898425550c29 new macro UNPACK_PKG_ARCHIVE for build rules (This is useful in connection with download-only packages)
Volker Grabsch <vog@notjusthosting.com>
parents: 214
diff changeset
55 $(call UNPACK_ARCHIVE,$(PKG_DIR)/$($(1)_FILE))
898425550c29 new macro UNPACK_PKG_ARCHIVE for build rules (This is useful in connection with download-only packages)
Volker Grabsch <vog@notjusthosting.com>
parents: 214
diff changeset
56
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
57 PKG_CHECKSUM = \
473
b0cc6cc3c1fc improved status output
Volker Grabsch <vog@notjusthosting.com>
parents: 461
diff changeset
58 openssl sha1 '$(PKG_DIR)/$($(1)_FILE)' 2>/dev/null | $(SED) -n 's,^.*\([0-9a-f]\{40\}\)$$,\1,p'
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
59
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
60 CHECK_PKG_ARCHIVE = \
311
ce0d27e7993f use "openssl sha1 ..." instead of "sha1sum -b ..."
Volker Grabsch <vog@notjusthosting.com>
parents: 310
diff changeset
61 [ '$($(1)_CHECKSUM)' == "`$$(call PKG_CHECKSUM,$(1))`" ]
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
62
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
63 DOWNLOAD_PKG_ARCHIVE = \
1159
782fbc148784 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1136
diff changeset
64 mkdir -p '$(PKG_DIR)' && \
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
65 $(if $($(1)_URL_2), \
1847
f6e74296023b avoid HTTPS issues when downloading files (the checksum test remains, of course)
Volker Grabsch <vog@notjusthosting.com>
parents: 1742
diff changeset
66 ( wget -T 30 -t 3 --no-check-certificate -O- '$($(1)_URL)' || wget --no-check-certificate -O- '$($(1)_URL_2)' ), \
f6e74296023b avoid HTTPS issues when downloading files (the checksum test remains, of course)
Volker Grabsch <vog@notjusthosting.com>
parents: 1742
diff changeset
67 wget --no-check-certificate -O- '$($(1)_URL)') \
1438
698e4de6d9a6 implemented $(PKG)_FIX_GZIP for GitWeb snapshots and similar issues
Volker Grabsch <vog@notjusthosting.com>
parents: 1437
diff changeset
68 $(if $($(1)_FIX_GZIP), \
698e4de6d9a6 implemented $(PKG)_FIX_GZIP for GitWeb snapshots and similar issues
Volker Grabsch <vog@notjusthosting.com>
parents: 1437
diff changeset
69 | gzip -d | gzip -9n, \
698e4de6d9a6 implemented $(PKG)_FIX_GZIP for GitWeb snapshots and similar issues
Volker Grabsch <vog@notjusthosting.com>
parents: 1437
diff changeset
70 ) \
1437
181c89101ae0 changed download mechanism to allow for simple integration of post-download filters, at the cost of not being able to contine interrupted downloads
Volker Grabsch <vog@notjusthosting.com>
parents: 1413
diff changeset
71 > '$(PKG_DIR)/$($(1)_FILE)'
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
72
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
73 .PHONY: all
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
74 all: $(PKGS)
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
75
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
76 .PHONY: check-requirements
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
77 define CHECK_REQUIREMENT
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
78 @if ! $(1) --help &>/dev/null; then \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
79 echo; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
80 echo 'Missing requirement: $(1)'; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
81 echo; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
82 echo 'Please have a look at "doc/index.html" to ensure'; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
83 echo 'that your system meets all requirements.'; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
84 echo; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
85 exit 1; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
86 fi
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
87
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
88 endef
1403
90d846d2b3c9 check requirements only at the first time and after each change to the main Makefile (which possibly changed the list of requirements)
Volker Grabsch <vog@notjusthosting.com>
parents: 1399
diff changeset
89 check-requirements: $(PREFIX)/installed/check-requirements
90d846d2b3c9 check requirements only at the first time and after each change to the main Makefile (which possibly changed the list of requirements)
Volker Grabsch <vog@notjusthosting.com>
parents: 1399
diff changeset
90 $(PREFIX)/installed/check-requirements: $(MAKEFILE)
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
91 @echo '[check requirements]'
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
92 $(foreach REQUIREMENT,$(REQUIREMENTS),$(call CHECK_REQUIREMENT,$(REQUIREMENT)))
1403
90d846d2b3c9 check requirements only at the first time and after each change to the main Makefile (which possibly changed the list of requirements)
Volker Grabsch <vog@notjusthosting.com>
parents: 1399
diff changeset
93 @[ -d '$(PREFIX)/installed' ] || mkdir -p '$(PREFIX)/installed'
90d846d2b3c9 check requirements only at the first time and after each change to the main Makefile (which possibly changed the list of requirements)
Volker Grabsch <vog@notjusthosting.com>
parents: 1399
diff changeset
94 @touch '$@'
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
95
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
96 .PHONY: download
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
97 download: $(addprefix download-,$(PKGS))
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
98
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
99 define PKG_RULE
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
100 .PHONY: download-$(1)
429
2fa394d22e1d bugfix and simplification of "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 428
diff changeset
101 download-$(1): $(addprefix download-,$($(1)_DEPS))
310
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
102 if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
103 $(call DOWNLOAD_PKG_ARCHIVE,$(1)); \
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
104 $(call CHECK_PKG_ARCHIVE,$(1)) || { echo 'Wrong checksum!'; exit 1; }; \
430
5d2c64680021 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 429
diff changeset
105 fi
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
106
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
107 .PHONY: $(1)
593
e3fa9c5468a5 put installation markers into a separate sub directory usr/installed/
Volker Grabsch <vog@notjusthosting.com>
parents: 592
diff changeset
108 $(1): $(PREFIX)/installed/$(1)
1399
6b28a4f27b8c bugfix in the integration of "make check-requirements"
Volker Grabsch <vog@notjusthosting.com>
parents: 1398
diff changeset
109 $(PREFIX)/installed/$(1): $(TOP_DIR)/src/$(1).mk \
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
110 $(wildcard $(TOP_DIR)/src/$(1)-*.patch) \
778
f8c2ff4cf740 bugfix: add test scripts as dependency files, and put them into the distribution tarball
Volker Grabsch <vog@notjusthosting.com>
parents: 738
diff changeset
111 $(wildcard $(TOP_DIR)/src/$(1)-test*) \
1399
6b28a4f27b8c bugfix in the integration of "make check-requirements"
Volker Grabsch <vog@notjusthosting.com>
parents: 1398
diff changeset
112 $(addprefix $(PREFIX)/installed/,$($(1)_DEPS)) \
6b28a4f27b8c bugfix in the integration of "make check-requirements"
Volker Grabsch <vog@notjusthosting.com>
parents: 1398
diff changeset
113 | check-requirements
604
95aeaeacaf9c improved layout of the log/ directory
Volker Grabsch <vog@notjusthosting.com>
parents: 596
diff changeset
114 @[ -d '$(LOG_DIR)/$(TIMESTAMP)' ] || mkdir -p '$(LOG_DIR)/$(TIMESTAMP)'
431
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
115 @if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
116 echo '[download] $(1)'; \
1396
296b81e392cf portability fix for MSYS
Volker Grabsch <vog@notjusthosting.com>
parents: 1296
diff changeset
117 ($(call DOWNLOAD_PKG_ARCHIVE,$(1))) &> '$(LOG_DIR)/$(TIMESTAMP)/$(1)-download'; \
1397
b33871ee26a3 improved coding style: make use of the "-f" option of "ln"
Volker Grabsch <vog@notjusthosting.com>
parents: 1396
diff changeset
118 ln -sf '$(TIMESTAMP)/$(1)-download' '$(LOG_DIR)/$(1)-download'; \
431
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
119 if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
120 echo; \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
121 echo 'Wrong checksum of package $(1)!'; \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
122 echo '------------------------------------------------------------'; \
595
f4b50cf506c6 keep separate download logs in log/PKG-download
Volker Grabsch <vog@notjusthosting.com>
parents: 594
diff changeset
123 tail -n 10 '$(LOG_DIR)/$(1)-download' | $(SED) -n '/./p'; \
431
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
124 echo '------------------------------------------------------------'; \
595
f4b50cf506c6 keep separate download logs in log/PKG-download
Volker Grabsch <vog@notjusthosting.com>
parents: 594
diff changeset
125 echo '[log] $(LOG_DIR)/$(1)-download'; \
431
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
126 echo; \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
127 exit 1; \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
128 fi; \
430
5d2c64680021 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 429
diff changeset
129 fi
434
7fdb6628d83a improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents: 431
diff changeset
130 $(if $(value $(1)_BUILD),
7fdb6628d83a improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents: 431
diff changeset
131 @echo '[build] $(1)'
7fdb6628d83a improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents: 431
diff changeset
132 ,)
1396
296b81e392cf portability fix for MSYS
Volker Grabsch <vog@notjusthosting.com>
parents: 1296
diff changeset
133 @touch '$(LOG_DIR)/$(TIMESTAMP)/$(1)'
1397
b33871ee26a3 improved coding style: make use of the "-f" option of "ln"
Volker Grabsch <vog@notjusthosting.com>
parents: 1396
diff changeset
134 @ln -sf '$(TIMESTAMP)/$(1)' '$(LOG_DIR)/$(1)'
1396
296b81e392cf portability fix for MSYS
Volker Grabsch <vog@notjusthosting.com>
parents: 1296
diff changeset
135 @if ! (time $(MAKE) -f '$(MAKEFILE)' 'build-only-$(1)') &> '$(LOG_DIR)/$(TIMESTAMP)/$(1)'; then \
431
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
136 echo; \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
137 echo 'Failed to build package $(1)!'; \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
138 echo '------------------------------------------------------------'; \
594
2a325441b1ab put log files into a separate sub directory log/, separate from usr/, surviving a "make clean"
Volker Grabsch <vog@notjusthosting.com>
parents: 593
diff changeset
139 tail -n 10 '$(LOG_DIR)/$(1)' | $(SED) -n '/./p'; \
431
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
140 echo '------------------------------------------------------------'; \
594
2a325441b1ab put log files into a separate sub directory log/, separate from usr/, surviving a "make clean"
Volker Grabsch <vog@notjusthosting.com>
parents: 593
diff changeset
141 echo '[log] $(LOG_DIR)/$(1)'; \
431
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
142 echo; \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
143 exit 1; \
e77981de8c92 highlevel output of the download/build process, put also download actions into the log file
Volker Grabsch <vog@notjusthosting.com>
parents: 430
diff changeset
144 fi
435
80c86e6f7ca6 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 434
diff changeset
145 @echo '[done] $(1)'
428
951e2a6d1e69 create a separate build log file "usr/log-PKG" for each package build
Volker Grabsch <vog@notjusthosting.com>
parents: 427
diff changeset
146
951e2a6d1e69 create a separate build log file "usr/log-PKG" for each package build
Volker Grabsch <vog@notjusthosting.com>
parents: 427
diff changeset
147 .PHONY: build-only-$(1)
951e2a6d1e69 create a separate build log file "usr/log-PKG" for each package build
Volker Grabsch <vog@notjusthosting.com>
parents: 427
diff changeset
148 build-only-$(1):
214
e1c566cd7a5e allow packages without a BUILD section (This will be used for download-only packages such as gcc-g++.)
Volker Grabsch <vog@notjusthosting.com>
parents: 213
diff changeset
149 $(if $(value $(1)_BUILD),
e1c566cd7a5e allow packages without a BUILD section (This will be used for download-only packages such as gcc-g++.)
Volker Grabsch <vog@notjusthosting.com>
parents: 213
diff changeset
150 rm -rf '$(2)'
e1c566cd7a5e allow packages without a BUILD section (This will be used for download-only packages such as gcc-g++.)
Volker Grabsch <vog@notjusthosting.com>
parents: 213
diff changeset
151 mkdir -p '$(2)'
215
898425550c29 new macro UNPACK_PKG_ARCHIVE for build rules (This is useful in connection with download-only packages)
Volker Grabsch <vog@notjusthosting.com>
parents: 214
diff changeset
152 cd '$(2)' && $(call UNPACK_PKG_ARCHIVE,$(1))
214
e1c566cd7a5e allow packages without a BUILD section (This will be used for download-only packages such as gcc-g++.)
Volker Grabsch <vog@notjusthosting.com>
parents: 213
diff changeset
153 cd '$(2)/$($(1)_SUBDIR)'
391
8349a6576cac automatically apply patches "src/PKG-*.patch" which are provided with a "src/PKG.mk" file
Volker Grabsch <vog@notjusthosting.com>
parents: 378
diff changeset
154 $(foreach PKG_PATCH,$(sort $(wildcard $(TOP_DIR)/src/$(1)-*.patch)),
1132
d4ccfc3cfdd4 bugfix: use GNU Patch under FreeBSD (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 1101
diff changeset
155 (cd '$(2)/$($(1)_SUBDIR)' && $(PATCH) -p1 -u) < $(PKG_PATCH))
657
b1d03b91eb1e test program for package sdl
Volker Grabsch <vog@notjusthosting.com>
parents: 641
diff changeset
156 $$(call $(1)_BUILD,$(2)/$($(1)_SUBDIR),$(TOP_DIR)/src/$(1)-test)
1979
9e3cc5c56804 log the total disk usage of the temporary build directory after each successful build
Volker Grabsch <vog@notjusthosting.com>
parents: 1847
diff changeset
157 (du -k -d 0 '$(2)' 2>/dev/null || du -k --max-depth 0 '$(2)') | $(SED) -n 's/^\(\S*\).*/du: \1 KiB/p'
214
e1c566cd7a5e allow packages without a BUILD section (This will be used for download-only packages such as gcc-g++.)
Volker Grabsch <vog@notjusthosting.com>
parents: 213
diff changeset
158 rm -rfv '$(2)'
e1c566cd7a5e allow packages without a BUILD section (This will be used for download-only packages such as gcc-g++.)
Volker Grabsch <vog@notjusthosting.com>
parents: 213
diff changeset
159 ,)
593
e3fa9c5468a5 put installation markers into a separate sub directory usr/installed/
Volker Grabsch <vog@notjusthosting.com>
parents: 592
diff changeset
160 [ -d '$(PREFIX)/installed' ] || mkdir -p '$(PREFIX)/installed'
e3fa9c5468a5 put installation markers into a separate sub directory usr/installed/
Volker Grabsch <vog@notjusthosting.com>
parents: 592
diff changeset
161 touch '$(PREFIX)/installed/$(1)'
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
162 endef
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
163 $(foreach PKG,$(PKGS),$(eval $(call PKG_RULE,$(PKG),$(call TMP_DIR,$(PKG)))))
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
164
122
daa21345aa2a implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents: 121
diff changeset
165 .PHONY: strip
daa21345aa2a implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents: 121
diff changeset
166 strip:
daa21345aa2a implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents: 121
diff changeset
167 rm -rf \
256
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
168 '$(PREFIX)/include' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
169 '$(PREFIX)/info' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
170 '$(PREFIX)/lib/libiberty.a' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
171 '$(PREFIX)/man' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
172 '$(PREFIX)/share' \
259
3221273ea6cb remove also the etc/ directory on "make strip"
Volker Grabsch <vog@notjusthosting.com>
parents: 256
diff changeset
173 '$(PREFIX)/$(TARGET)/etc' \
256
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
174 '$(PREFIX)/$(TARGET)/doc' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
175 '$(PREFIX)/$(TARGET)/info' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
176 '$(PREFIX)/$(TARGET)/lib'/*.def \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
177 '$(PREFIX)/$(TARGET)/man' \
545
5ad2e782d8dd don't remove usr/i686-pc-mingw32/share/ on "make strip", because this might break NSIS and other packages
Volker Grabsch <vog@notjusthosting.com>
parents: 523
diff changeset
178 '$(PREFIX)/$(TARGET)/sbin'
299
9f5fdae25d77 portability fix for MacOS X: use more common options for the "strip" command
Volker Grabsch <vog@notjusthosting.com>
parents: 297
diff changeset
179 -strip -Sx \
256
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
180 '$(PREFIX)/bin'/* \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
181 '$(PREFIX)/libexec/gcc/$(TARGET)'/*/* \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
182 '$(PREFIX)/$(TARGET)/bin'/*
299
9f5fdae25d77 portability fix for MacOS X: use more common options for the "strip" command
Volker Grabsch <vog@notjusthosting.com>
parents: 297
diff changeset
183 -$(TARGET)-strip -S \
256
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
184 '$(PREFIX)/lib/gcc/$(TARGET)'/*/*.a \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
185 '$(PREFIX)/lib/gcc/$(TARGET)'/*/*.o \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
186 '$(PREFIX)/$(TARGET)/lib'/*.a \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
187 '$(PREFIX)/$(TARGET)/lib'/*.o
122
daa21345aa2a implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents: 121
diff changeset
188
119
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
189 .PHONY: clean
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
190 clean:
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
191 rm -rf $(call TMP_DIR,*) $(PREFIX)/*
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
192
226
c07a36f3ea80 new target "make clean-pkg" to remove all unused package files (handy after a successful "make update")
Volker Grabsch <vog@notjusthosting.com>
parents: 215
diff changeset
193 .PHONY: clean-pkg
c07a36f3ea80 new target "make clean-pkg" to remove all unused package files (handy after a successful "make update")
Volker Grabsch <vog@notjusthosting.com>
parents: 215
diff changeset
194 clean-pkg:
c07a36f3ea80 new target "make clean-pkg" to remove all unused package files (handy after a successful "make update")
Volker Grabsch <vog@notjusthosting.com>
parents: 215
diff changeset
195 rm -f $(patsubst %,'%', \
c07a36f3ea80 new target "make clean-pkg" to remove all unused package files (handy after a successful "make update")
Volker Grabsch <vog@notjusthosting.com>
parents: 215
diff changeset
196 $(filter-out \
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
197 $(foreach PKG,$(PKGS),$(PKG_DIR)/$($(PKG)_FILE)), \
226
c07a36f3ea80 new target "make clean-pkg" to remove all unused package files (handy after a successful "make update")
Volker Grabsch <vog@notjusthosting.com>
parents: 215
diff changeset
198 $(wildcard $(PKG_DIR)/*)))
c07a36f3ea80 new target "make clean-pkg" to remove all unused package files (handy after a successful "make update")
Volker Grabsch <vog@notjusthosting.com>
parents: 215
diff changeset
199
119
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
200 .PHONY: update
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
201 define UPDATE
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
202 $(if $(2),
448
e9afec55fd6b improved version recognition, enable the notation of ignored (bad) package versions
Volker Grabsch <vog@notjusthosting.com>
parents: 443
diff changeset
203 $(if $(filter $(2),$($(1)_IGNORE)),
461
c489fb1015e2 improved output style of "make update" again
Volker Grabsch <vog@notjusthosting.com>
parents: 454
diff changeset
204 $(info IGNORED $(1) $(2)),
448
e9afec55fd6b improved version recognition, enable the notation of ignored (bad) package versions
Volker Grabsch <vog@notjusthosting.com>
parents: 443
diff changeset
205 $(if $(filter $(2),$($(1)_VERSION)),
461
c489fb1015e2 improved output style of "make update" again
Volker Grabsch <vog@notjusthosting.com>
parents: 454
diff changeset
206 $(info . $(1) $(2)),
477
ffca44340844 improved output of "make update"
Volker Grabsch <vog@notjusthosting.com>
parents: 473
diff changeset
207 $(info NEW $(1) $($(1)_VERSION) --> $(2))
448
e9afec55fd6b improved version recognition, enable the notation of ignored (bad) package versions
Volker Grabsch <vog@notjusthosting.com>
parents: 443
diff changeset
208 $(SED) 's/^\([^ ]*_VERSION *:=\).*/\1 $(2)/' -i '$(TOP_DIR)/src/$(1).mk'
517
80db96994441 improved "make update": revert a package's version number when there were download problem with the new version
Volker Grabsch <vog@notjusthosting.com>
parents: 511
diff changeset
209 $(MAKE) -f '$(MAKEFILE)' 'update-checksum-$(1)' \
519
99a330c048df bugfix for "make update": avoid silent package update failures
Volker Grabsch <vog@notjusthosting.com>
parents: 517
diff changeset
210 || { $(SED) 's/^\([^ ]*_VERSION *:=\).*/\1 $($(1)_VERSION)/' -i '$(TOP_DIR)/src/$(1).mk'; \
99a330c048df bugfix for "make update": avoid silent package update failures
Volker Grabsch <vog@notjusthosting.com>
parents: 517
diff changeset
211 exit 1; })),
560
185e73877b08 improved error message for "make update"
Volker Grabsch <vog@notjusthosting.com>
parents: 545
diff changeset
212 $(error Unable to update version number of package $(1)))
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
213
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
214 endef
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
215 update:
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
216 $(foreach PKG,$(PKGS),$(call UPDATE,$(PKG),$(shell $($(PKG)_UPDATE))))
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
217
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
218 update-checksum-%:
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
219 $(call DOWNLOAD_PKG_ARCHIVE,$*)
319
9a9cffd8a015 bugfix in the "update-checksum-%" target which is internally used by "make update"
Volker Grabsch <vog@notjusthosting.com>
parents: 316
diff changeset
220 $(SED) 's/^\([^ ]*_CHECKSUM *:=\).*/\1 '"`$(call PKG_CHECKSUM,$*)`"'/' -i '$(TOP_DIR)/src/$*.mk'
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
221
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
222 .PHONY: dist
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
223 dist:
1676
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
224 rm -rf '$(DIST_DIR)'
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
225 mkdir -p '$(DIST_DIR)'
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
226 mkdir '$(DIST_DIR)/mingw-cross-env-$(VERSION)'
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
227 mkdir '$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc'
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
228 mkdir '$(DIST_DIR)/mingw-cross-env-$(VERSION)/src'
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
229 ( \
698
a7b95e107568 more liberal parsing of doc/index.html in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 689
diff changeset
230 $(SED) -n '1,/<table id="package-list"/ p' '$(TOP_DIR)/doc/index.html' && \
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
231 ($(foreach PKG,$(PKGS), \
278
6b9ea2440ba5 merge text documentation and website into an HTML documentation
Volker Grabsch <vog@notjusthosting.com>
parents: 275
diff changeset
232 echo ' <tr><td><a href="$($(PKG)_WEBSITE)">$(PKG)</a></td><td>$($(PKG)_VERSION)</td></tr>';)) && \
698
a7b95e107568 more liberal parsing of doc/index.html in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 689
diff changeset
233 $(SED) -n '/<table id="package-list"/,/<ul id="authors-list"/ p' '$(TOP_DIR)/doc/index.html' | \
523
1711ff2b9416 generate the list of authors automatically from the version history
Volker Grabsch <vog@notjusthosting.com>
parents: 521
diff changeset
234 $(SED) '1d' && \
699
4c4e4591f94f handle special characters correctly in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 698
diff changeset
235 (LC_ALL=en_US.UTF-8 hg log | $(SED) -n 's,^\(user: *\([^<]*\) <.*\|.*(by \([^)]*\)).*\)$$,\2\3,p' | \
523
1711ff2b9416 generate the list of authors automatically from the version history
Volker Grabsch <vog@notjusthosting.com>
parents: 521
diff changeset
236 sort | uniq -c | sort -nr | \
1711ff2b9416 generate the list of authors automatically from the version history
Volker Grabsch <vog@notjusthosting.com>
parents: 521
diff changeset
237 $(SED) 's,^ *[0-9]* *\(.*\)$$, <li>\1</li>,') && \
698
a7b95e107568 more liberal parsing of doc/index.html in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 689
diff changeset
238 $(SED) '1,/<ul id="authors-list"/ d' '$(TOP_DIR)/doc/index.html' \
359
e9fbffc4f48a introduce placeholders for version number and target in the tutorial
Volker Grabsch <vog@notjusthosting.com>
parents: 353
diff changeset
239 ) \
e9fbffc4f48a introduce placeholders for version number and target in the tutorial
Volker Grabsch <vog@notjusthosting.com>
parents: 353
diff changeset
240 | $(SED) 's,\(<span class="version">\)[^<]*\(</span>\),\1$(VERSION)\2,g' \
e9fbffc4f48a introduce placeholders for version number and target in the tutorial
Volker Grabsch <vog@notjusthosting.com>
parents: 353
diff changeset
241 | $(SED) 's,\(<span class="target">\)[^<]*\(</span>\),\1$(TARGET)\2,g' \
1504
dfa937baa17b improved pkg-config wrapper and its documentation
Volker Grabsch <vog@notjusthosting.com>
parents: 1466
diff changeset
242 | $(SED) 's,\(<span class="target-underscore">\)[^<]*\(</span>\),\1$(subst -,_,$(TARGET))\2,g' \
1516
1e071bb32b42 generate list of year for copyright message automatically from "hg log"
Volker Grabsch <vog@notjusthosting.com>
parents: 1504
diff changeset
243 | $(SED) 's;\(<span class="years">\)[^<]*\(</span>\);\1'"`LC_ALL=en_US.UTF-8 hg log | $(SED) -n 's,^date:.*\s\([0-9]\{4\}\)\s.*$$,\1,p' | sort -nu | $(SED) -n '1 h; 2,$$ H; $$ {x; s/\n/, /gp}'`"'\2;g' \
416
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
244 >'$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc/index.html'
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
245 cp -p '$(TOP_DIR)/doc'/screenshot-* '$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc/'
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
246 cp -p '$(TOP_DIR)/Makefile' '$(DIST_DIR)/mingw-cross-env-$(VERSION)/'
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
247 cp -p '$(TOP_DIR)/src'/*.mk '$(DIST_DIR)/mingw-cross-env-$(VERSION)/src/'
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
248 cp -p '$(TOP_DIR)/src'/*.patch '$(DIST_DIR)/mingw-cross-env-$(VERSION)/src/'
778
f8c2ff4cf740 bugfix: add test scripts as dependency files, and put them into the distribution tarball
Volker Grabsch <vog@notjusthosting.com>
parents: 738
diff changeset
249 cp -p '$(TOP_DIR)/src'/*-test* '$(DIST_DIR)/mingw-cross-env-$(VERSION)/src/'
1676
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
250 (cd '$(DIST_DIR)' && tar cvf - 'mingw-cross-env-$(VERSION)' | gzip -9) >'$(DIST_DIR)/mingw-cross-env-$(VERSION).tar.gz'
1677
5be6de295211 fixed usability issue in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 1676
diff changeset
251 @echo
1676
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
252 @echo 'Upload will start in 5 seconds. Last chance to cancel! (Ctrl+C)'
1677
5be6de295211 fixed usability issue in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 1676
diff changeset
253 @echo
1676
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
254 @sleep 5
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
255 mkdir '$(DIST_DIR)/web'
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
256 cd '$(DIST_DIR)/web' && cvs -d :ext:cvs.savannah.nongnu.org:/web/mingw-cross-env co mingw-cross-env
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
257 cp -p '$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc'/* '$(DIST_DIR)/web/mingw-cross-env/'
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
258 cd '$(DIST_DIR)/web/mingw-cross-env' && cvs add * || echo 'Errors on "cvs add" ignored.'
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
259 cd '$(DIST_DIR)/web/mingw-cross-env' && cvs commit -m 'upload'
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
260 sleep 2 # wait for the "triggered webpages update" to complete
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
261 x-www-browser \
1742
c45847e6eb81 improved validator URL to be used on "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 1677
diff changeset
262 'http://validator.w3.org/unicorn/check?ucn_uri=http://mingw-cross-env.nongnu.org/' \
1676
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
263 'http://mingw-cross-env.nongnu.org/#latest-release' \
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
264 'https://bitbucket.org/vog/mingw-cross-env/downloads#new-download-form' \
a4be0de7ea2c improved "make dist" to automate more activities of the release process
Volker Grabsch <vog@notjusthosting.com>
parents: 1663
diff changeset
265 'http://freshmeat.net/projects/mingw_cross_env/releases/new'
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
266