annotate Makefile @ 427:9605f8f088e4

small bugfix in "make dist"
author Volker Grabsch <vog@notjusthosting.com>
date Wed, 02 Sep 2009 09:23:45 +0200
parents c82e9294b774
children 951e2a6d1e69
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
123
9fedbab70063 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 122
diff changeset
1 # MinGW cross compiling environment
371
e8f5952f877a mention doc/index.html in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 364
diff changeset
2 # see doc/index.html or doc/README for further information
414
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
3 #
417
c82e9294b774 replace the contact email address with hints to the project mailing list
Volker Grabsch <vog@notjusthosting.com>
parents: 416
diff changeset
4 # Copyright (C) 2009 Volker Grabsch
414
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
5 #
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
6 # Permission is hereby granted, free of charge, to any person obtaining
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
7 # a copy of this software and associated documentation files (the
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
8 # "Software"), to deal in the Software without restriction, including
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
9 # without limitation the rights to use, copy, modify, merge, publish,
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
10 # distribute, sublicense, and/or sell copies of the Software, and to
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
11 # permit persons to whom the Software is furnished to do so, subject
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
12 # to the following conditions:
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
13 #
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
14 # The above copyright notice and this permission notice shall be
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
15 # included in all copies or substantial portions of the Software.
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
16 #
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
18 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
19 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
20 # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
21 # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
22 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
d2a6561bcb6d add a copyright notice and license to each source file
Volker Grabsch <vog@notjusthosting.com>
parents: 412
diff changeset
23 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
123
9fedbab70063 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 122
diff changeset
24
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
25 JOBS := 1
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
26 TARGET := i386-mingw32msvc
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
27 SOURCEFORGE_MIRROR := kent.dl.sourceforge.net
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
28
412
87801b601eb0 increased version number to 2.8
Volker Grabsch <vog@notjusthosting.com>
parents: 408
diff changeset
29 VERSION := 2.8
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
30 PREFIX := $(PWD)/usr
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
31 PKG_DIR := $(PWD)/pkg
416
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
32 DIST_DIR := $(PWD)/dist
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
33 TMP_DIR = $(PWD)/tmp-$(1)
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
34 MAKEFILE := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
35 TOP_DIR := $(patsubst %/,%,$(dir $(MAKEFILE)))
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
36 PATH := $(PREFIX)/bin:$(PATH)
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
37 SHELL := bash
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
38 SED := $(shell gsed --help >/dev/null 2>&1 && echo g)sed
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
39 INSTALL := $(shell ginstall --help >/dev/null 2>&1 && echo g)install
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
40
287
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
41 # unset any environment variables which might cause trouble
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
42 AR =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
43 CC =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
44 CFLAGS =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
45 CPP =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
46 CPPFLAGS =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
47 CROSS =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
48 CXX =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
49 CXXCPP =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
50 CXXFLAGS =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
51 EXEEXT =
378
a2b5d6e4d117 bugfix: unset the EXTRA_* environment variables which causes trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 371
diff changeset
52 EXTRA_CFLAGS =
a2b5d6e4d117 bugfix: unset the EXTRA_* environment variables which causes trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 371
diff changeset
53 EXTRA_LDFLAGS =
287
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
54 LD =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
55 LDFLAGS =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
56 LIBS =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
57 NM =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
58 PKG_CONFIG =
364
b8cd5199077e bugfix: unset the PKG_CONFIG_PATH environment variable which causes trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 359
diff changeset
59 PKG_CONFIG_PATH =
287
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
60 RANLIB =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
61 STRIP =
92ac81dea92d bugfix: unset any environment variables which might cause trouble
Volker Grabsch <vog@notjusthosting.com>
parents: 285
diff changeset
62
264
01aa6a0e1c9e new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents: 259
diff changeset
63 SHORT_PKG_VERSION = \
01aa6a0e1c9e new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents: 259
diff changeset
64 $(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
65
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
66 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
67 include $(TOP_DIR)/src/*.mk
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
68
120
4edf6a519683 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 119
diff changeset
69 UNPACK_ARCHIVE = \
144
aafad5b5de5f bugfix: support the .tgz archive extension in addition to .tar.gz
Volker Grabsch <vog@notjusthosting.com>
parents: 135
diff changeset
70 $(if $(filter %.tgz, $(1)),tar xvzf '$(1)', \
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
71 $(if $(filter %.tar.gz, $(1)),tar xvzf '$(1)', \
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
72 $(if $(filter %.tar.bz2,$(1)),tar xvjf '$(1)', \
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
73 $(if $(filter %.zip, $(1)),unzip '$(1)', \
144
aafad5b5de5f bugfix: support the .tgz archive extension in addition to .tar.gz
Volker Grabsch <vog@notjusthosting.com>
parents: 135
diff changeset
74 $(error Unknown archive format: $(1))))))
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
75
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
76 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
77 $(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
78
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
79 PKG_CHECKSUM = \
311
ce0d27e7993f use "openssl sha1 ..." instead of "sha1sum -b ..."
Volker Grabsch <vog@notjusthosting.com>
parents: 310
diff changeset
80 openssl sha1 '$(PKG_DIR)/$($(1)_FILE)' | $(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
81
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
82 CHECK_PKG_ARCHIVE = \
311
ce0d27e7993f use "openssl sha1 ..." instead of "sha1sum -b ..."
Volker Grabsch <vog@notjusthosting.com>
parents: 310
diff changeset
83 [ '$($(1)_CHECKSUM)' == "`$$(call PKG_CHECKSUM,$(1))`" ]
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
84
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
85 DOWNLOAD_PKG_ARCHIVE = \
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
86 $(if $($(1)_URL_2), \
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
87 wget -T 30 -t 3 -c -O '$(PKG_DIR)/$($(1)_FILE)' '$($(1)_URL)' \
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
88 || wget -c -O '$(PKG_DIR)/$($(1)_FILE)' '$($(1)_URL_2)', \
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
89 wget -c -O '$(PKG_DIR)/$($(1)_FILE)' '$($(1)_URL)')
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
90
408
413750a629be improved version recognition for sourceforge packages
Volker Grabsch <vog@notjusthosting.com>
parents: 406
diff changeset
91 SOURCEFORGE_FILES = \
413750a629be improved version recognition for sourceforge packages
Volker Grabsch <vog@notjusthosting.com>
parents: 406
diff changeset
92 wget -q -O- '$(1)' | \
413750a629be improved version recognition for sourceforge packages
Volker Grabsch <vog@notjusthosting.com>
parents: 406
diff changeset
93 grep 'title="/' | \
413750a629be improved version recognition for sourceforge packages
Volker Grabsch <vog@notjusthosting.com>
parents: 406
diff changeset
94 $(SED) -n 's,.*title="\(/[^:]*\).*released on \([^ "]* [^ "]* [^ "]*\)",\2 \1,p' | \
413750a629be improved version recognition for sourceforge packages
Volker Grabsch <vog@notjusthosting.com>
parents: 406
diff changeset
95 while read d1 d2 d3 url; do echo "`date -d "$$d1 $$d2 $$d3" +%Y-%m-%d`" "$$url"; done | \
413750a629be improved version recognition for sourceforge packages
Volker Grabsch <vog@notjusthosting.com>
parents: 406
diff changeset
96 sort | \
413750a629be improved version recognition for sourceforge packages
Volker Grabsch <vog@notjusthosting.com>
parents: 406
diff changeset
97 $(SED) 's,^[^ ]* ,,'
413750a629be improved version recognition for sourceforge packages
Volker Grabsch <vog@notjusthosting.com>
parents: 406
diff changeset
98
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
99 .PHONY: all
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
100 all: $(PKGS)
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
101
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
102 .PHONY: download
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
103 download: $(addprefix download-,$(PKGS))
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
104
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
105 define PKG_RULE
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
106 .PHONY: download-$(1)
399
d787957fed5a improved implementation of the download-* commands
Volker Grabsch <vog@notjusthosting.com>
parents: 396
diff changeset
107 download-$(1): $(addprefix download-only-,$($(1)_DEPS)) download-only-$(1)
d787957fed5a improved implementation of the download-* commands
Volker Grabsch <vog@notjusthosting.com>
parents: 396
diff changeset
108
d787957fed5a improved implementation of the download-* commands
Volker Grabsch <vog@notjusthosting.com>
parents: 396
diff changeset
109 .PHONY: download-only-$(1)
d787957fed5a improved implementation of the download-* commands
Volker Grabsch <vog@notjusthosting.com>
parents: 396
diff changeset
110 download-only-$(1): $(TOP_DIR)/src/$(1).mk
134
d24e76675835 bugfix: use -d instead of -z to check for a directory
Volker Grabsch <vog@notjusthosting.com>
parents: 131
diff changeset
111 [ -d '$(PKG_DIR)' ] || mkdir -p '$(PKG_DIR)'
310
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
112 if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
113 $(call DOWNLOAD_PKG_ARCHIVE,$(1)); \
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
114 $(call CHECK_PKG_ARCHIVE,$(1)) || { echo 'Wrong checksum!'; exit 1; }; \
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
115 fi
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
116
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
117 .PHONY: $(1)
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
118 $(1): $(PREFIX)/installed-$(1)
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
119 $(PREFIX)/installed-$(1): $(TOP_DIR)/src/$(1).mk \
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
120 $(wildcard $(TOP_DIR)/src/$(1)-*.patch) \
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
121 $(addprefix $(PREFIX)/installed-,$($(1)_DEPS))
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
122 [ -d '$(PREFIX)' ] || mkdir -p '$(PREFIX)'
396
3bfb1390ce96 bugfix: decouple the download-* targets from the build targets
Volker Grabsch <vog@notjusthosting.com>
parents: 394
diff changeset
123 [ -d '$(PKG_DIR)' ] || mkdir -p '$(PKG_DIR)'
3bfb1390ce96 bugfix: decouple the download-* targets from the build targets
Volker Grabsch <vog@notjusthosting.com>
parents: 394
diff changeset
124 if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
3bfb1390ce96 bugfix: decouple the download-* targets from the build targets
Volker Grabsch <vog@notjusthosting.com>
parents: 394
diff changeset
125 $(call DOWNLOAD_PKG_ARCHIVE,$(1)); \
3bfb1390ce96 bugfix: decouple the download-* targets from the build targets
Volker Grabsch <vog@notjusthosting.com>
parents: 394
diff changeset
126 $(call CHECK_PKG_ARCHIVE,$(1)) || { echo 'Wrong checksum!'; exit 1; }; \
3bfb1390ce96 bugfix: decouple the download-* targets from the build targets
Volker Grabsch <vog@notjusthosting.com>
parents: 394
diff changeset
127 fi
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
128 $(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
129 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
130 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
131 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
132 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
133 $(foreach PKG_PATCH,$(sort $(wildcard $(TOP_DIR)/src/$(1)-*.patch)),
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
134 (cd '$(2)/$($(1)_SUBDIR)' && patch -p1) < $(PKG_PATCH))
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
135 $$(call $(1)_BUILD,$(2)/$($(1)_SUBDIR))
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
136 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
137 ,)
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
138 touch '$$@'
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
139 endef
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
140 $(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
141
122
daa21345aa2a implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents: 121
diff changeset
142 .PHONY: strip
daa21345aa2a implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents: 121
diff changeset
143 strip:
daa21345aa2a implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents: 121
diff changeset
144 rm -rf \
256
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
145 '$(PREFIX)/include' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
146 '$(PREFIX)/info' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
147 '$(PREFIX)/lib/libiberty.a' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
148 '$(PREFIX)/man' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
149 '$(PREFIX)/share' \
259
3221273ea6cb remove also the etc/ directory on "make strip"
Volker Grabsch <vog@notjusthosting.com>
parents: 256
diff changeset
150 '$(PREFIX)/$(TARGET)/etc' \
256
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
151 '$(PREFIX)/$(TARGET)/doc' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
152 '$(PREFIX)/$(TARGET)/info' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
153 '$(PREFIX)/$(TARGET)/lib'/*.def \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
154 '$(PREFIX)/$(TARGET)/man' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
155 '$(PREFIX)/$(TARGET)/sbin' \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
156 '$(PREFIX)/$(TARGET)/share'
299
9f5fdae25d77 portability fix for MacOS X: use more common options for the "strip" command
Volker Grabsch <vog@notjusthosting.com>
parents: 297
diff changeset
157 -strip -Sx \
256
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
158 '$(PREFIX)/bin'/* \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
159 '$(PREFIX)/libexec/gcc/$(TARGET)'/*/* \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
160 '$(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
161 -$(TARGET)-strip -S \
256
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
162 '$(PREFIX)/lib/gcc/$(TARGET)'/*/*.a \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
163 '$(PREFIX)/lib/gcc/$(TARGET)'/*/*.o \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
164 '$(PREFIX)/$(TARGET)/lib'/*.a \
f14c13297108 improved quoting
Volker Grabsch <vog@notjusthosting.com>
parents: 255
diff changeset
165 '$(PREFIX)/$(TARGET)/lib'/*.o
122
daa21345aa2a implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents: 121
diff changeset
166
119
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
167 .PHONY: clean
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
168 clean:
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
169 rm -rf $(call TMP_DIR,*) $(PREFIX)/*
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
170
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
171 .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
172 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
173 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
174 $(filter-out \
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
175 $(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
176 $(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
177
119
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
178 .PHONY: update
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
179 define UPDATE
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
180 $(if $(2),
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
181 $(info $(1): $(2))
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
182 $(if $(filter $(2),$($(1)_VERSION)),
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
183 ,
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
184 $(SED) 's/^\([^ ]*_VERSION *:=\).*/\1 $(2)/' -i '$(TOP_DIR)/src/$(1).mk'
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
185 $(MAKE) -f '$(MAKEFILE)' 'update-checksum-$(1)'),
130
d7e4464a369d show status information during 'make update'
Volker Grabsch <vog@notjusthosting.com>
parents: 123
diff changeset
186 $(error Unable to update version number: $(1)))
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
187
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
188 endef
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
189 update:
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
190 $(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
191
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
192 update-checksum-%:
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
193 $(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
194 $(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
195
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
196 .PHONY: dist
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
197 dist:
427
9605f8f088e4 small bugfix in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 417
diff changeset
198 [ -d '$(DIST_DIR)' ] || mkdir -p '$(DIST_DIR)'
9605f8f088e4 small bugfix in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 417
diff changeset
199 [ -d '$(DIST_DIR)/web' ] || mkdir '$(DIST_DIR)/web'
9605f8f088e4 small bugfix in "make dist"
Volker Grabsch <vog@notjusthosting.com>
parents: 417
diff changeset
200 [ -d '$(DIST_DIR)/releases' ] || mkdir '$(DIST_DIR)/releases'
416
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
201 rm -rf '$(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
202 mkdir '$(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
203 mkdir '$(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
204 mkdir '$(DIST_DIR)/mingw-cross-env-$(VERSION)/src'
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
205 ( \
353
94ba675f6705 renamed doc/README.html to doc/index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 319
diff changeset
206 $(SED) -n '1,/<!-- begin of 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
207 ($(foreach PKG,$(PKGS), \
278
6b9ea2440ba5 merge text documentation and website into an HTML documentation
Volker Grabsch <vog@notjusthosting.com>
parents: 275
diff changeset
208 echo ' <tr><td><a href="$($(PKG)_WEBSITE)">$(PKG)</a></td><td>$($(PKG)_VERSION)</td></tr>';)) && \
353
94ba675f6705 renamed doc/README.html to doc/index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 319
diff changeset
209 $(SED) -n '/<!-- end of package list -->/,$$ p' '$(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
210 ) \
e9fbffc4f48a introduce placeholders for version number and target in the tutorial
Volker Grabsch <vog@notjusthosting.com>
parents: 353
diff changeset
211 | $(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
212 | $(SED) 's,\(<span class="target">\)[^<]*\(</span>\),\1$(TARGET)\2,g' \
416
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
213 >'$(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
214 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
215 cp -p '$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc'/* '$(DIST_DIR)/web/'
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
216 (cd '$(TOP_DIR)' && hg log -v --style changelog) >'$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc/ChangeLog'
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
217 cd '$(DIST_DIR)/mingw-cross-env-$(VERSION)/doc' && lynx -dump -width 75 -nolist -force_html index.html >README
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
218 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
219 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
220 cp -p '$(TOP_DIR)/src'/*.patch '$(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
221 (cd '$(DIST_DIR)' && tar cvf - 'mingw-cross-env-$(VERSION)' | gzip -9) >'$(DIST_DIR)/releases/mingw-cross-env-$(VERSION).tar.gz'
2c560952dba8 let "make dist" put everything into a separate dist/ subdirectory
Volker Grabsch <vog@notjusthosting.com>
parents: 415
diff changeset
222 rm -rf '$(DIST_DIR)/mingw-cross-env-$(VERSION)'
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
223