Mercurial > mxe-octave
annotate Makefile @ 123:9fedbab70063
improved coding style
author | Volker Grabsch <vog@notjusthosting.com> |
---|---|
date | Sat, 08 Nov 2008 16:45:20 +0100 |
parents | daa21345aa2a |
children | d7e4464a369d |
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 = \ |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
19 $(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
|
20 $(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
|
21 $(if $(filter %.zip, $(1)),unzip -t '$(1)' >/dev/null 2>&1, \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
22 $(error Unknown archive format: $(1))))) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
23 |
120
4edf6a519683
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
119
diff
changeset
|
24 UNPACK_ARCHIVE = \ |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
25 $(if $(filter %.tar.gz, $(1)),tar xvzf '$(1)', \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
26 $(if $(filter %.tar.bz2,$(1)),tar xvjf '$(1)', \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
27 $(if $(filter %.zip, $(1)),unzip '$(1)', \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
28 $(error Unknown archive format: $(1))))) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
29 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
30 DOWNLOAD = \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
31 $(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
|
32 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
33 .PHONY: all |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
34 all: $(PKG_RULES) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
35 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
36 define PKG_RULE |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
37 .PHONY: $(1) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
38 $(1): $(PREFIX)/installed.$(1) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
39 $(PREFIX)/installed.$(1): $(addprefix $(PREFIX)/installed.,$($(1)_DEPS)) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
40 [ -z '$(PREFIX)' ] || mkdir -p '$(PREFIX)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
41 [ -z '$(PKG_DIR)' ] || mkdir -p '$(PKG_DIR)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
42 rm -rf '$(2)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
43 mkdir -p '$(2)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
44 cd '$(PKG_DIR)' && ( \ |
120
4edf6a519683
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
119
diff
changeset
|
45 $(call CHECK_ARCHIVE,$($(1)_FILE)) || \ |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
46 $(call DOWNLOAD,$($(1)_URL),$($(1)_URL_2)) ) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
47 cd '$(2)' && \ |
120
4edf6a519683
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
119
diff
changeset
|
48 $(call UNPACK_ARCHIVE,$(PKG_DIR)/$($(1)_FILE)) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
49 $$(call $(1)_BUILD,$(1),$(2)/$($(1)_SUBDIR)) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
50 rm -rfv '$(2)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
51 touch '$$@' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
52 endef |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
53 $(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
|
54 |
122
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
55 .PHONY: strip |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
56 strip: |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
57 rm -rf \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
58 $(PREFIX)/include \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
59 $(PREFIX)/info \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
60 $(PREFIX)/lib/libiberty.a \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
61 $(PREFIX)/man \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
62 $(PREFIX)/$(TARGET)/doc \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
63 $(PREFIX)/$(TARGET)/info \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
64 $(PREFIX)/$(TARGET)/man \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
65 $(PREFIX)/$(TARGET)/sbin \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
66 $(PREFIX)/$(TARGET)/share |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
67 -strip -s \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
68 $(PREFIX)/bin/* \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
69 $(PREFIX)/libexec/gcc/$(TARGET)/*/* \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
70 $(PREFIX)/$(TARGET)/bin/* |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
71 -$(TARGET)-strip -g \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
72 $(PREFIX)/lib/gcc/$(TARGET)/*/*.a \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
73 $(PREFIX)/lib/gcc/$(TARGET)/*/*.o \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
74 $(PREFIX)/$(TARGET)/lib/*.a \ |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
75 $(PREFIX)/$(TARGET)/lib/*.o |
daa21345aa2a
implemented 'make strip'
Volker Grabsch <vog@notjusthosting.com>
parents:
121
diff
changeset
|
76 |
119
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
77 .PHONY: clean |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
78 clean: |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
79 rm -rf $(call TMP_DIR,*) $(PREFIX)/* |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
80 |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
81 .PHONY: update |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
82 define UPDATE |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
83 $(if $(2), \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
84 $(SED) 's/^\([^ ]*_VERSION *:=\).*/\1 $(2)/' -i src/$(1).mk, \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
85 $(error Unable to update version number: $(1))) |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
86 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
87 endef |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
88 update: |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
89 $(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
|
90 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
91 .PHONY: dist |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
92 dist: |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
93 rm -rf 'mingw_cross_env-$(VERSION)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
94 mkdir 'mingw_cross_env-$(VERSION)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
95 mkdir 'mingw_cross_env-$(VERSION)/doc' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
96 mkdir 'mingw_cross_env-$(VERSION)/src' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
97 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
|
98 ( \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
99 $(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
|
100 echo '================' && \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
101 echo && \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
102 ($(foreach PKG,$(PKG_RULES),echo '$(PKG)' '$($(PKG)_VERSION)';)) | \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
103 awk '{ printf " %-12s %s\n", $$1, $$2 }' && \ |
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 $(SED) -n '/^Copyright/,$$ p' doc/README \ |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
107 ) >'mingw_cross_env-$(VERSION)/doc/README' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
108 cp -p Makefile 'mingw_cross_env-$(VERSION)/' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
109 cp -p src/*.mk 'mingw_cross_env-$(VERSION)/src/' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
110 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
|
111 rm -rf 'mingw_cross_env-$(VERSION)' |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
112 |