Mercurial > mxe-octave
annotate Makefile @ 144:aafad5b5de5f
bugfix: support the .tgz archive extension in addition to .tar.gz
author | Volker Grabsch <vog@notjusthosting.com> |
---|---|
date | Sat, 08 Nov 2008 20:28:59 +0100 |
parents | c8fadb1b0dbe |
children | 0d528839039a |
rev | line source |
---|---|
123
9fedbab70063
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
122
diff
changeset
|
1 # MinGW cross compiling environment |
9fedbab70063
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
122
diff
changeset
|
2 # see doc/README for further information |
9fedbab70063
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
122
diff
changeset
|
3 |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
4 JOBS := 4 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
5 TARGET := i386-mingw32msvc |
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 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
8 VERSION := 2.0 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
9 PREFIX := $(PWD)/usr |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
10 PKG_DIR := $(PWD)/pkg |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
11 TMP_DIR = $(PWD)/tmp-$(1) |
121
15e0ab5c4df0
bugfix: add $(PREFIX)/bin to the PATH
Volker Grabsch <vog@notjusthosting.com>
parents:
120
diff
changeset
|
12 PATH := $(PREFIX)/bin:$(PATH) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
13 SED := $(shell gsed --version >/dev/null 2>&1 && echo g)sed |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
14 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
15 PKG_RULES := $(patsubst src/%.mk,%,$(wildcard src/*.mk)) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
16 include src/*.mk |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
17 |
120
4edf6a519683
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
119
diff
changeset
|
18 CHECK_ARCHIVE = \ |
144
aafad5b5de5f
bugfix: support the .tgz archive extension in addition to .tar.gz
Volker Grabsch <vog@notjusthosting.com>
parents:
135
diff
changeset
|
19 $(if $(filter %.tgz, $(1)),tar tfz '$(1)' >/dev/null 2>&1, \ |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
20 $(if $(filter %.tar.gz, $(1)),tar tfz '$(1)' >/dev/null 2>&1, \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
21 $(if $(filter %.tar.bz2,$(1)),tar tfj '$(1)' >/dev/null 2>&1, \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
22 $(if $(filter %.zip, $(1)),unzip -t '$(1)' >/dev/null 2>&1, \ |
144
aafad5b5de5f
bugfix: support the .tgz archive extension in addition to .tar.gz
Volker Grabsch <vog@notjusthosting.com>
parents:
135
diff
changeset
|
23 $(error Unknown archive format: $(1)))))) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
24 |
120
4edf6a519683
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
119
diff
changeset
|
25 UNPACK_ARCHIVE = \ |
144
aafad5b5de5f
bugfix: support the .tgz archive extension in addition to .tar.gz
Volker Grabsch <vog@notjusthosting.com>
parents:
135
diff
changeset
|
26 $(if $(filter %.tgz, $(1)),tar xvzf '$(1)', \ |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
27 $(if $(filter %.tar.gz, $(1)),tar xvzf '$(1)', \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
28 $(if $(filter %.tar.bz2,$(1)),tar xvjf '$(1)', \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
29 $(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
|
30 $(error Unknown archive format: $(1)))))) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
31 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
32 DOWNLOAD = \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
33 $(if $(2),wget -t 3 -c '$(1)' || wget -c '$(2)',wget -c '$(1)') |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
34 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
35 .PHONY: all |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
36 all: $(PKG_RULES) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
37 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
38 define PKG_RULE |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
39 .PHONY: $(1) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
40 $(1): $(PREFIX)/installed.$(1) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
41 $(PREFIX)/installed.$(1): $(addprefix $(PREFIX)/installed.,$($(1)_DEPS)) |
134
d24e76675835
bugfix: use -d instead of -z to check for a directory
Volker Grabsch <vog@notjusthosting.com>
parents:
131
diff
changeset
|
42 [ -d '$(PREFIX)' ] || mkdir -p '$(PREFIX)' |
d24e76675835
bugfix: use -d instead of -z to check for a directory
Volker Grabsch <vog@notjusthosting.com>
parents:
131
diff
changeset
|
43 [ -d '$(PKG_DIR)' ] || mkdir -p '$(PKG_DIR)' |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
44 rm -rf '$(2)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
45 mkdir -p '$(2)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
46 cd '$(PKG_DIR)' && ( \ |
120
4edf6a519683
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
119
diff
changeset
|
47 $(call CHECK_ARCHIVE,$($(1)_FILE)) || \ |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
48 $(call DOWNLOAD,$($(1)_URL),$($(1)_URL_2)) ) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
49 cd '$(2)' && \ |
120
4edf6a519683
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
119
diff
changeset
|
50 $(call UNPACK_ARCHIVE,$(PKG_DIR)/$($(1)_FILE)) |
135
c8fadb1b0dbe
after unpacking, check whether the expected subdirectory exists
Volker Grabsch <vog@notjusthosting.com>
parents:
134
diff
changeset
|
51 cd '$(2)/$($(1)_SUBDIR)' |
131
ed98f6b98e35
use $(1) instead of $(2) to address to temporary build dir
Volker Grabsch <vog@notjusthosting.com>
parents:
130
diff
changeset
|
52 $$(call $(1)_BUILD,$(2)/$($(1)_SUBDIR)) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
53 rm -rfv '$(2)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
54 touch '$$@' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
55 endef |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
56 $(foreach PKG,$(PKG_RULES),$(eval $(call PKG_RULE,$(PKG),$(call TMP_DIR,$(PKG))))) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
57 |
122
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
58 .PHONY: strip |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
59 strip: |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
60 rm -rf \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
61 $(PREFIX)/include \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
62 $(PREFIX)/info \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
63 $(PREFIX)/lib/libiberty.a \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
64 $(PREFIX)/man \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
65 $(PREFIX)/$(TARGET)/doc \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
66 $(PREFIX)/$(TARGET)/info \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
67 $(PREFIX)/$(TARGET)/man \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
68 $(PREFIX)/$(TARGET)/sbin \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
69 $(PREFIX)/$(TARGET)/share |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
70 -strip -s \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
71 $(PREFIX)/bin/* \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
72 $(PREFIX)/libexec/gcc/$(TARGET)/*/* \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
73 $(PREFIX)/$(TARGET)/bin/* |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
74 -$(TARGET)-strip -g \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
75 $(PREFIX)/lib/gcc/$(TARGET)/*/*.a \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
76 $(PREFIX)/lib/gcc/$(TARGET)/*/*.o \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
77 $(PREFIX)/$(TARGET)/lib/*.a \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
78 $(PREFIX)/$(TARGET)/lib/*.o |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
79 |
119
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
80 .PHONY: clean |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
81 clean: |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
82 rm -rf $(call TMP_DIR,*) $(PREFIX)/* |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
83 |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
84 .PHONY: update |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
85 define UPDATE |
130
d7e4464a369d
show status information during 'make update'
Volker Grabsch <vog@notjusthosting.com>
parents:
123
diff
changeset
|
86 $(if $(2), \ |
d7e4464a369d
show status information during 'make update'
Volker Grabsch <vog@notjusthosting.com>
parents:
123
diff
changeset
|
87 $(info $(1): $(2)) \ |
d7e4464a369d
show status information during 'make update'
Volker Grabsch <vog@notjusthosting.com>
parents:
123
diff
changeset
|
88 $(SED) 's/^\([^ ]*_VERSION *:=\).*/\1 $(2)/' -i src/$(1).mk, \ |
d7e4464a369d
show status information during 'make update'
Volker Grabsch <vog@notjusthosting.com>
parents:
123
diff
changeset
|
89 $(error Unable to update version number: $(1))) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
90 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
91 endef |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
92 update: |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
93 $(foreach PKG,$(PKG_RULES),$(call UPDATE,$(PKG),$(shell $($(PKG)_UPDATE)))) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
94 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
95 .PHONY: dist |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
96 dist: |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
97 rm -rf 'mingw_cross_env-$(VERSION)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
98 mkdir 'mingw_cross_env-$(VERSION)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
99 mkdir 'mingw_cross_env-$(VERSION)/doc' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
100 mkdir 'mingw_cross_env-$(VERSION)/src' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
101 hg log -v --style changelog >'mingw_cross_env-$(VERSION)/doc/ChangeLog' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
102 ( \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
103 $(SED) -n '1,/^List/ { s/^\(MinGW cross.*\)/\1 ($(VERSION))/; p }' doc/README && \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
104 echo '================' && \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
105 echo && \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
106 ($(foreach PKG,$(PKG_RULES),echo '$(PKG)' '$($(PKG)_VERSION)';)) | \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
107 awk '{ printf " %-12s %s\n", $$1, $$2 }' && \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
108 echo && \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
109 echo && \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
110 $(SED) -n '/^Copyright/,$$ p' doc/README \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
111 ) >'mingw_cross_env-$(VERSION)/doc/README' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
112 cp -p Makefile 'mingw_cross_env-$(VERSION)/' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
113 cp -p src/*.mk 'mingw_cross_env-$(VERSION)/src/' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
114 tar cvf - 'mingw_cross_env-$(VERSION)' | gzip -9 >'mingw_cross_env-$(VERSION).tar.gz' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
115 rm -rf 'mingw_cross_env-$(VERSION)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
116 |