Mercurial > mxe-octave
annotate Makefile @ 3018:051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
* Makefile:
added make variable MXE_NATIVE_MINGW_BUILD which is set to yes if doing a native build to a mingw system.
added PKG_CONFIG_PATH='$(HOST_LIBDIR)/pkgconfig fornative mingw builds
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Sat, 08 Jun 2013 09:48:20 -0400 |
parents | ec6f91539788 |
children | 2849bea3711f |
rev | line source |
---|---|
2333
f653602a0500
Rebrand to new project name MXE
Volker Grabsch <vog@notjusthosting.com>
parents:
2330
diff
changeset
|
1 # This file is part of MXE. |
2353
99516e73b368
Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2350
diff
changeset
|
2 # See index.html for further information. |
123
9fedbab70063
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
122
diff
changeset
|
3 |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
4 PWD := $(shell pwd) |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
5 |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
6 ## Configuration variables. |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
7 |
2997 | 8 # Set the following configuration variables with a configure script? |
9 | |
10 # Current valid values are mingw (cross) and gnu-linux (native). | |
11 MXE_SYSTEM := mingw | |
12 #MXE_SYSTEM := gnu-linux | |
13 | |
14 # Set to "no" if doing a cross compile build. | |
15 MXE_NATIVE_BUILD := no | |
16 #MXE_NATIVE_BUILD := yes | |
17 | |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
18 # Set to "yes" to use the versions of GCC and binutils already |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
19 # installed on your system. NOTE: building a copy of GCC for a |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
20 # native build does not appear to work correctly yet, so for now you |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
21 # must set USE_SYSTEM_GCC to yes if MXE_NATIVE_BUILD is set to yes. |
2997 | 22 USE_SYSTEM_GCC := no |
23 #USE_SYSTEM_GCC := yes | |
24 | |
25 # Should match what config.guess prints for your system. | |
3005
c154d525c70e
use config.guess to set TARGET for native builds
John W. Eaton <jwe@octave.org>
parents:
3003
diff
changeset
|
26 # If cross compiling, you must set it manually. |
c154d525c70e
use config.guess to set TARGET for native builds
John W. Eaton <jwe@octave.org>
parents:
3003
diff
changeset
|
27 ifeq ($(MXE_NATIVE_BUILD),yes) |
3009
23989e9403a3
use $(shell ...) to execute config.guess
John W. Eaton <jwe@octave.org>
parents:
3006
diff
changeset
|
28 TARGET := $(shell tools/config.guess) |
3005
c154d525c70e
use config.guess to set TARGET for native builds
John W. Eaton <jwe@octave.org>
parents:
3003
diff
changeset
|
29 else |
c154d525c70e
use config.guess to set TARGET for native builds
John W. Eaton <jwe@octave.org>
parents:
3003
diff
changeset
|
30 TARGET := i686-pc-mingw32 |
c154d525c70e
use config.guess to set TARGET for native builds
John W. Eaton <jwe@octave.org>
parents:
3003
diff
changeset
|
31 endif |
3013
bcc26ffe9a0f
use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents:
3012
diff
changeset
|
32 BUILD_SYSTEM := $(shell tools/config.guess) |
2997 | 33 |
2855
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
34 # Enable shared or static libs, or perhaps both. At least one |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
35 # package uses --with instead of --enable. Probably it doesn't |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
36 # make sense to disable both... |
2856
4d32dc6aca86
By default, build shared instead of static libraries.
John W. Eaton <jwe@octave.org>
parents:
2855
diff
changeset
|
37 BUILD_SHARED := yes |
4d32dc6aca86
By default, build shared instead of static libraries.
John W. Eaton <jwe@octave.org>
parents:
2855
diff
changeset
|
38 BUILD_STATIC := no |
2997 | 39 |
40 USE_PIC_FLAG := no | |
41 #USE_PIC_FLAG := yes | |
42 | |
3015
ec6f91539788
initial support for --enable-64
John W. Eaton <jwe@octave.org>
parents:
3014
diff
changeset
|
43 # Attempt to build Octave and dependencies with 64-bit indexing enabled. |
ec6f91539788
initial support for --enable-64
John W. Eaton <jwe@octave.org>
parents:
3014
diff
changeset
|
44 ENABLE_64 := no |
ec6f91539788
initial support for --enable-64
John W. Eaton <jwe@octave.org>
parents:
3014
diff
changeset
|
45 #ENABLE_64 := yes |
ec6f91539788
initial support for --enable-64
John W. Eaton <jwe@octave.org>
parents:
3014
diff
changeset
|
46 |
2997 | 47 ## end of configuration variables. |
48 | |
3013
bcc26ffe9a0f
use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents:
3012
diff
changeset
|
49 ifneq ($(MXE_NATIVE_BUILD),yes) |
bcc26ffe9a0f
use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents:
3012
diff
changeset
|
50 HOST_AND_BUILD_CONFIGURE_OPTIONS := \ |
bcc26ffe9a0f
use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents:
3012
diff
changeset
|
51 --host='$(TARGET)' --build='$(BUILD_SYSTEM)' |
bcc26ffe9a0f
use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents:
3012
diff
changeset
|
52 endif |
bcc26ffe9a0f
use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents:
3012
diff
changeset
|
53 |
3018
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
54 # are we doing a native mingw build ? |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
55 ifeq ($(MXE_NATIVE_BUILD),yes) |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
56 ifeq ($(MXE_SYSTEM),mingw) |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
57 MXE_NATIVE_MINGW_BUILD := yes |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
58 endif |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
59 endif |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
60 |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
61 # These can't be chosen arbitrarily. The way things are configured now, |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
62 # GCC expects to find cross-compiler include files in $(PREFIX)/$(TARGET). |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
63 # and it's not clear to me how to change that. |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
64 BUILD_TOOLS_PREFIX := $(PWD)/usr |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
65 HOST_PREFIX := $(PWD)/usr/$(TARGET) |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
66 |
2855
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
67 ifeq ($(BUILD_SHARED),yes) |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
68 ifeq ($(BUILD_STATIC),yes) |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
69 ENABLE_SHARED_OR_STATIC := --enable-shared --enable-static |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
70 WITH_SHARED_OR_STATIC := --with-shared --with-static |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
71 else |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
72 ENABLE_SHARED_OR_STATIC := --enable-shared --disable-static |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
73 WITH_SHARED_OR_STATIC := --with-shared --without-static |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
74 endif |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
75 else |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
76 ENABLE_SHARED_OR_STATIC := --disable-shared --enable-static |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
77 WITH_SHARED_OR_STATIC := --without-shared --with-static |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
78 endif |
47558e958113
Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents:
2778
diff
changeset
|
79 |
2997 | 80 ifeq ($(USE_PIC_FLAG),yes) |
81 MXE_CC_PICFLAG := -fPIC | |
82 MXE_CXX_PICFLAG := -fPIC | |
83 MXE_F77_PICFLAG := -fPIC | |
84 endif | |
85 | |
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
|
86 JOBS := 1 |
2696
fe58e4975380
replace sourceforge mirror
Mark Brand <mabrand@mabrand.nl>
parents:
2475
diff
changeset
|
87 SOURCEFORGE_MIRROR := freefr.dl.sourceforge.net |
2727
e474975121d6
add tertiary fallback for unavailable package files
Tony Theodore <tonyt@logyst.com>
parents:
2697
diff
changeset
|
88 PKG_MIRROR := s3.amazonaws.com/mxe-pkg |
2730 | 89 PKG_CDN := d1yihgixbnrglp.cloudfront.net |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
90 |
2369
4f5f4af84b12
Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2368
diff
changeset
|
91 SHELL := bash |
2380
f89dd4c9e49f
Portability fix: Define $(PWD) before $(SHELL)
Volker Grabsch <vog@notjusthosting.com>
parents:
2379
diff
changeset
|
92 |
2369
4f5f4af84b12
Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2368
diff
changeset
|
93 INSTALL := $(shell ginstall --help >/dev/null 2>&1 && echo g)install |
4f5f4af84b12
Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2368
diff
changeset
|
94 PATCH := $(shell gpatch --help >/dev/null 2>&1 && echo g)patch |
4f5f4af84b12
Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2368
diff
changeset
|
95 SED := $(shell gsed --help >/dev/null 2>&1 && echo g)sed |
2524
422cb29ca669
Makefile: add wget portability variable - $(WGET)
Tony Theodore <tonyt@logyst.com>
parents:
2500
diff
changeset
|
96 WGET := wget --no-check-certificate \ |
422cb29ca669
Makefile: add wget portability variable - $(WGET)
Tony Theodore <tonyt@logyst.com>
parents:
2500
diff
changeset
|
97 --user-agent=$(shell wget --version | \ |
422cb29ca669
Makefile: add wget portability variable - $(WGET)
Tony Theodore <tonyt@logyst.com>
parents:
2500
diff
changeset
|
98 $(SED) -n 's,GNU \(Wget\) \([0-9.]*\).*,\1/\2,p') |
2369
4f5f4af84b12
Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2368
diff
changeset
|
99 |
2991
07a5901747ae
drop intltoolize as dependency (along with dropping scons and yasm in previous changeset)
John W. Eaton <jwe@octave.org>
parents:
2990
diff
changeset
|
100 REQUIREMENTS := bash bzip2 gcc $(MAKE) openssl $(PATCH) $(PERL) \ |
07a5901747ae
drop intltoolize as dependency (along with dropping scons and yasm in previous changeset)
John W. Eaton <jwe@octave.org>
parents:
2990
diff
changeset
|
101 $(SED) unzip wget xz |
2369
4f5f4af84b12
Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2368
diff
changeset
|
102 |
2971
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
103 LIBTOOL := libtool |
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
104 LIBTOOLIZE := libtoolize |
2997 | 105 BUILD_TOOLS := $(patsubst src/%.mk, %, $(wildcard src/build-*.mk)) |
2971
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
106 |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
107 STAMP_DIR := $(PWD)/installed-packages |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
108 MSYS_INFO_DIR := $(PWD)/msys-info |
704
93f1be1d2089
use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents:
699
diff
changeset
|
109 LOG_DIR := $(PWD)/log |
93f1be1d2089
use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents:
699
diff
changeset
|
110 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
|
111 PKG_DIR := $(PWD)/pkg |
93f1be1d2089
use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents:
699
diff
changeset
|
112 TMP_DIR = $(PWD)/tmp-$(1) |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
113 TOP_DIR := $(PWD) |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
114 MAKEFILE := $(TOP_DIR)/Makefile |
2971
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
115 PKGS := $(filter-out $(BUILD_TOOLS), $(shell $(SED) -n 's/^.* id="\([^"]*\)-package">.*$$/\1/p' '$(TOP_DIR)/index.html')) |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
116 PATH := $(BUILD_TOOLS_PREFIX)/bin:$(PATH) |
1398
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
117 |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
118 CONFIGURE_CPPFLAGS := CPPFLAGS='-I$(HOST_PREFIX)/include' |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
119 CONFIGURE_LDFLAGS := LDFLAGS='-L$(HOST_PREFIX)/lib' |
2956 | 120 |
2997 | 121 ifeq ($(MXE_NATIVE_BUILD),yes) |
122 MXE_AR := ar | |
123 MXE_RANLIB := ranlib | |
124 MXE_CC := gcc | |
125 MXE_CXX := g++ | |
126 MXE_F77 := gfortran | |
127 ifeq ($(MXE_SYSTEM),mingw) | |
128 MXE_WINDRES := windres | |
129 else | |
130 MXE_WINDRES := true | |
131 endif | |
132 MXE_PKG_CONFIG := pkg-config | |
133 MXE_QMAKE := qmake | |
134 else | |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
135 MXE_AR := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-ar' |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
136 MXE_RANLIB := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-ranlib' |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
137 MXE_CC := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-gcc' |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
138 MXE_CXX := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-g++' |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
139 MXE_F77 := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-gfortran' |
2997 | 140 ifeq ($(MXE_SYSTEM),mingw) |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
141 MXE_WINDRES := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-windres' |
2997 | 142 else |
143 MXE_WINDRES := true | |
144 endif | |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
145 MXE_PKG_CONFIG := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-pkg-config' |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
146 MXE_QMAKE := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-qmake' |
2997 | 147 endif |
148 | |
149 ifeq ($(MXE_SYSTEM),mingw) | |
150 MAKE_SHARED_FROM_STATIC_OPTIONS := --windowsdll | |
151 endif | |
152 | |
3014
b6c7244a2f66
Use HOST_BINDIR, HOST_LIBDIR, and HOST_INCDIR instead of MXE_BINDIR, MXE_LIBDIR, and MXE_INCDIR. Attempt to use these variables consistently instead of using $(HOST_PREFIX)/bin, $(HOST_PREFIX)/lib, and $(HOST_PREFIX)/include
John W. Eaton <jwe@octave.org>
parents:
3013
diff
changeset
|
153 HOST_BINDIR := '$(HOST_PREFIX)/bin' |
b6c7244a2f66
Use HOST_BINDIR, HOST_LIBDIR, and HOST_INCDIR instead of MXE_BINDIR, MXE_LIBDIR, and MXE_INCDIR. Attempt to use these variables consistently instead of using $(HOST_PREFIX)/bin, $(HOST_PREFIX)/lib, and $(HOST_PREFIX)/include
John W. Eaton <jwe@octave.org>
parents:
3013
diff
changeset
|
154 HOST_LIBDIR := '$(HOST_PREFIX)/lib' |
b6c7244a2f66
Use HOST_BINDIR, HOST_LIBDIR, and HOST_INCDIR instead of MXE_BINDIR, MXE_LIBDIR, and MXE_INCDIR. Attempt to use these variables consistently instead of using $(HOST_PREFIX)/bin, $(HOST_PREFIX)/lib, and $(HOST_PREFIX)/include
John W. Eaton <jwe@octave.org>
parents:
3013
diff
changeset
|
155 HOST_INCDIR := '$(HOST_PREFIX)/include' |
2997 | 156 |
157 ifeq ($(MXE_SYSTEM),mingw) | |
158 ifneq ($(MXE_NATIVE_BUILD),yes) | |
159 MSYS_BASE_URL := http://sourceforge.net/projects/mingw/files/MSYS/Base | |
160 MSYS_BASE_VER := 1.0.13 | |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
161 MSYS_BASE_DIR := $(TOP_DIR)/msys-base |
2997 | 162 MSYS_BASE_PACKAGES := $(addprefix msys-,bash coreutils diffutils file findutils gawk grep gzip less libiconv libintl libmagic make msys-core regex sed tar termcap) |
163 | |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
164 NOTEPAD_BASE_DIR := $(TOP_DIR)/notepad++ |
2997 | 165 endif |
166 else | |
3014
b6c7244a2f66
Use HOST_BINDIR, HOST_LIBDIR, and HOST_INCDIR instead of MXE_BINDIR, MXE_LIBDIR, and MXE_INCDIR. Attempt to use these variables consistently instead of using $(HOST_PREFIX)/bin, $(HOST_PREFIX)/lib, and $(HOST_PREFIX)/include
John W. Eaton <jwe@octave.org>
parents:
3013
diff
changeset
|
167 LD_LIBRARY_PATH := '$(HOST_LIBDIR)' |
2997 | 168 export LD_LIBRARY_PATH |
3014
b6c7244a2f66
Use HOST_BINDIR, HOST_LIBDIR, and HOST_INCDIR instead of MXE_BINDIR, MXE_LIBDIR, and MXE_INCDIR. Attempt to use these variables consistently instead of using $(HOST_PREFIX)/bin, $(HOST_PREFIX)/lib, and $(HOST_PREFIX)/include
John W. Eaton <jwe@octave.org>
parents:
3013
diff
changeset
|
169 MXE_CPPFLAGS := '-I$(HOST_INCDIR)' |
b6c7244a2f66
Use HOST_BINDIR, HOST_LIBDIR, and HOST_INCDIR instead of MXE_BINDIR, MXE_LIBDIR, and MXE_INCDIR. Attempt to use these variables consistently instead of using $(HOST_PREFIX)/bin, $(HOST_PREFIX)/lib, and $(HOST_PREFIX)/include
John W. Eaton <jwe@octave.org>
parents:
3013
diff
changeset
|
170 MXE_LDFLAGS := '-L$(HOST_LIBDIR)' |
2997 | 171 endif |
2964 | 172 |
3006
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
173 LN := ln |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
174 LN_S := $(LN) -s |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
175 LN_SF := $(LN_S) -f |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
176 ifeq ($(MXE_SYSTEM),mingw) |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
177 ifeq ($(MXE_NATIVE_BUILD),yes) |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
178 LN := cp |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
179 LN_S := $(LN) |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
180 LN_SF := $(LN_S) |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
181 endif |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
182 endif |
dabfd7db980c
use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents:
3005
diff
changeset
|
183 |
2958
04791633efbc
Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents:
2956
diff
changeset
|
184 OCTAVE_FORGE_BASE_URL := 'http://sourceforge.net/projects/octave/files/Octave Forge Packages/Individual Package Releases' |
04791633efbc
Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents:
2956
diff
changeset
|
185 OCTAVE_FORGE_PACKAGES := $(addprefix of-,miscellaneous struct optim specfun general signal communications image io statistics control) |
04791633efbc
Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents:
2956
diff
changeset
|
186 |
2997 | 187 MAKE_SHARED_FROM_STATIC := \ |
188 $(TOP_DIR)/tools/make-shared-from-static $(MAKE_SHARED_FROM_STATIC_OPTIONS) | |
2858
7c6b29399d05
New script to make shared libraries from static libraries. This
John W. Eaton <jwe@octave.org>
parents:
2856
diff
changeset
|
189 |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
190 CMAKE_TOOLCHAIN_FILE := $(HOST_PREFIX)/share/cmake/mxe-conf.cmake |
1663
9577f70222f8
add cmake toolchain file and simplify build rules of relevant packages
Tony Theodore <tonyt@logyst.com>
parents:
1555
diff
changeset
|
191 |
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
|
192 # 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
|
193 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
|
194 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
|
195 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
|
196 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
|
197 |
3018
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
198 # mingw on windows ignores the compiled in pc-path so we need to tell pkg-config where it is |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
199 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
200 export PKG_CONFIG_PATH='$(HOST_LIBDIR)/pkgconfig' |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
201 endif |
051574ceb3fc
Update Makefile for native mingw compiling so pkg-config knows where its pc files should be.
John Donoghue <john.donoghue@ieee.org>
parents:
3015
diff
changeset
|
202 |
264
01aa6a0e1c9e
new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents:
259
diff
changeset
|
203 SHORT_PKG_VERSION = \ |
01aa6a0e1c9e
new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents:
259
diff
changeset
|
204 $(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
|
205 |
120
4edf6a519683
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
119
diff
changeset
|
206 UNPACK_ARCHIVE = \ |
1101
28abe875c217
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
1095
diff
changeset
|
207 $(if $(filter %.tgz, $(1)),tar xzf '$(1)', \ |
28abe875c217
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
1095
diff
changeset
|
208 $(if $(filter %.tar.gz, $(1)),tar xzf '$(1)', \ |
28abe875c217
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
1095
diff
changeset
|
209 $(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
|
210 $(if $(filter %.tar.lzma,$(1)),xz -dc -F lzma '$(1)' | tar xf -, \ |
1555 | 211 $(if $(filter %.tar.xz,$(1)),xz -dc '$(1)' | tar xf -, \ |
1101
28abe875c217
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
1095
diff
changeset
|
212 $(if $(filter %.zip, $(1)),unzip -q '$(1)', \ |
1555 | 213 $(error Unknown archive format: $(1)))))))) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
214 |
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
|
215 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
|
216 $(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
|
217 |
306
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
218 PKG_CHECKSUM = \ |
473
b0cc6cc3c1fc
improved status output
Volker Grabsch <vog@notjusthosting.com>
parents:
461
diff
changeset
|
219 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
|
220 |
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
221 CHECK_PKG_ARCHIVE = \ |
311
ce0d27e7993f
use "openssl sha1 ..." instead of "sha1sum -b ..."
Volker Grabsch <vog@notjusthosting.com>
parents:
310
diff
changeset
|
222 [ '$($(1)_CHECKSUM)' == "`$$(call PKG_CHECKSUM,$(1))`" ] |
306
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
223 |
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
224 DOWNLOAD_PKG_ARCHIVE = \ |
1159
782fbc148784
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
1136
diff
changeset
|
225 mkdir -p '$(PKG_DIR)' && \ |
306
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
226 $(if $($(1)_URL_2), \ |
2730 | 227 ( $(WGET) -T 30 -t 3 -O- '$($(1)_URL)' || \ |
228 $(WGET) -O- '$($(1)_URL_2)' || \ | |
229 $(WGET) -O- '$(PKG_MIRROR)/$($(1)_FILE)' || \ | |
230 $(WGET) -O- '$(PKG_CDN)/$($(1)_FILE)' ), \ | |
231 ( $(WGET) -O- '$($(1)_URL)' || \ | |
232 $(WGET) -O- '$(PKG_MIRROR)/$($(1)_FILE)' || \ | |
233 $(WGET) -O- '$(PKG_CDN)/$($(1)_FILE)' )) \ | |
1438
698e4de6d9a6
implemented $(PKG)_FIX_GZIP for GitWeb snapshots and similar issues
Volker Grabsch <vog@notjusthosting.com>
parents:
1437
diff
changeset
|
234 $(if $($(1)_FIX_GZIP), \ |
698e4de6d9a6
implemented $(PKG)_FIX_GZIP for GitWeb snapshots and similar issues
Volker Grabsch <vog@notjusthosting.com>
parents:
1437
diff
changeset
|
235 | gzip -d | gzip -9n, \ |
698e4de6d9a6
implemented $(PKG)_FIX_GZIP for GitWeb snapshots and similar issues
Volker Grabsch <vog@notjusthosting.com>
parents:
1437
diff
changeset
|
236 ) \ |
2729
6c492e126140
cleanup after failed download
Tony Theodore <tonyt@logyst.com>
parents:
2728
diff
changeset
|
237 > '$(PKG_DIR)/$($(1)_FILE)' || rm -f '$(PKG_DIR)/$($(1)_FILE)' |
306
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
238 |
2500
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
239 ifeq ($(IGNORE_SETTINGS),yes) |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
240 $(info [ignore settings.mk]) |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
241 else ifeq ($(wildcard $(PWD)/settings.mk),$(PWD)/settings.mk) |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
242 include $(PWD)/settings.mk |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
243 else |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
244 $(info [create settings.mk]) |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
245 $(shell { \ |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
246 echo '#JOBS = $(JOBS)'; \ |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
247 echo '#PKGS ='; \ |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
248 } >'$(PWD)/settings.mk') |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
249 endif |
8db5a297f243
Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents:
2475
diff
changeset
|
250 |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
251 .PHONY: all |
403
825505ea3855
improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
401
diff
changeset
|
252 all: $(PKGS) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
253 |
2971
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
254 $(PKGS): $(BUILD_TOOLS) |
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
255 |
2956 | 256 .PHONY: msys-base |
257 msys-base: $(MSYS_BASE_PACKAGES) | |
258 | |
2958
04791633efbc
Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents:
2956
diff
changeset
|
259 .PHONY: octave-forge-packages |
04791633efbc
Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents:
2956
diff
changeset
|
260 octave-forge-packages: $(OCTAVE_FORGE_PACKAGES) |
04791633efbc
Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents:
2956
diff
changeset
|
261 |
1398
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
262 .PHONY: check-requirements |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
263 define CHECK_REQUIREMENT |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
264 @if ! $(1) --help &>/dev/null; then \ |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
265 echo; \ |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
266 echo 'Missing requirement: $(1)'; \ |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
267 echo; \ |
2353
99516e73b368
Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2350
diff
changeset
|
268 echo 'Please have a look at "index.html" to ensure'; \ |
1398
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
269 echo 'that your system meets all requirements.'; \ |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
270 echo; \ |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
271 exit 1; \ |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
272 fi |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
273 |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
274 endef |
2287
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
275 define CHECK_REQUIREMENT_VERSION |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
276 @if ! $(1) --version | head -1 | grep ' \($(2)\)$$' >/dev/null; then \ |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
277 echo; \ |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
278 echo 'Wrong version of requirement: $(1)'; \ |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
279 echo; \ |
2353
99516e73b368
Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2350
diff
changeset
|
280 echo 'Please have a look at "index.html" to ensure'; \ |
2287
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
281 echo 'that your system meets all requirements.'; \ |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
282 echo; \ |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
283 exit 1; \ |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
284 fi |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
285 |
e9eed43704a2
Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents:
2153
diff
changeset
|
286 endef |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
287 check-requirements: $(STAMP_DIR)/check-requirements |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
288 $(STAMP_DIR)/check-requirements: $(MAKEFILE) |
1398
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
289 @echo '[check requirements]' |
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
290 $(foreach REQUIREMENT,$(REQUIREMENTS),$(call CHECK_REQUIREMENT,$(REQUIREMENT))) |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
291 @[ -d '$(STAMP_DIR)' ] || mkdir -p '$(STAMP_DIR)' |
2997 | 292 @if test "$(USE_SYSTEM_GCC)" = yes; then \ |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
293 $(INSTALL) -d '$(BUILD_TOOLS_PREFIX)/bin' ; \ |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
294 $(INSTALL) -m 755 tools/config.guess '$(BUILD_TOOLS_PREFIX)/bin/config.guess' ; \ |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
295 $(INSTALL) -m 755 tools/config.sub '$(BUILD_TOOLS_PREFIX)/bin/config.sub' ; \ |
2997 | 296 fi |
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
|
297 @touch '$@' |
1398
c6aaf7d9c746
check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents:
1397
diff
changeset
|
298 |
2350
2691d175df4e
Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2349
diff
changeset
|
299 define newline |
2691d175df4e
Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2349
diff
changeset
|
300 |
2691d175df4e
Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2349
diff
changeset
|
301 |
2349
f48c5b085a38
Move $(PKG)_VERSION and $(PKG)_WEBSITE from src/*.mk into doc/index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2348
diff
changeset
|
302 endef |
2350
2691d175df4e
Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2349
diff
changeset
|
303 $(eval $(subst #,$(newline),$(shell \ |
2691d175df4e
Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2349
diff
changeset
|
304 $(SED) -n \ |
2359
1726cefccf0c
Fix trailing space after version number
Volker Grabsch <vog@notjusthosting.com>
parents:
2357
diff
changeset
|
305 's/^.* id="\([A-Za-z0-9_+-]*\)-version">\([^<]*\)<.*$$/\1_VERSION := \2#/p' \ |
2353
99516e73b368
Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2350
diff
changeset
|
306 '$(TOP_DIR)/index.html' \ |
2350
2691d175df4e
Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
2349
diff
changeset
|
307 ))) |
2349
f48c5b085a38
Move $(PKG)_VERSION and $(PKG)_WEBSITE from src/*.mk into doc/index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2348
diff
changeset
|
308 |
2971
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
309 include $(patsubst %,$(TOP_DIR)/src/%.mk,$(BUILD_TOOLS)) |
2375
2023ebb23822
Load only *.mk files of packages mentioned in index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2370
diff
changeset
|
310 include $(patsubst %,$(TOP_DIR)/src/%.mk,$(PKGS)) |
2346
8746e2f1c758
Improve coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
2345
diff
changeset
|
311 |
394
bb2b329f85d3
new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents:
392
diff
changeset
|
312 .PHONY: download |
2971
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
313 download: $(addprefix download-,$(PKGS)) $(addprefix download-,$(BUILD_TOOLS)) |
394
bb2b329f85d3
new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents:
392
diff
changeset
|
314 |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
315 define PKG_RULE |
394
bb2b329f85d3
new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents:
392
diff
changeset
|
316 .PHONY: download-$(1) |
429
2fa394d22e1d
bugfix and simplification of "make download"
Volker Grabsch <vog@notjusthosting.com>
parents:
428
diff
changeset
|
317 download-$(1): $(addprefix download-,$($(1)_DEPS)) |
310
5c5e254fa32b
bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
306
diff
changeset
|
318 if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \ |
5c5e254fa32b
bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
306
diff
changeset
|
319 $(call DOWNLOAD_PKG_ARCHIVE,$(1)); \ |
5c5e254fa32b
bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
306
diff
changeset
|
320 $(call CHECK_PKG_ARCHIVE,$(1)) || { echo 'Wrong checksum!'; exit 1; }; \ |
430
5d2c64680021
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
429
diff
changeset
|
321 fi |
394
bb2b329f85d3
new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents:
392
diff
changeset
|
322 |
bb2b329f85d3
new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents:
392
diff
changeset
|
323 .PHONY: $(1) |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
324 $(1): $(STAMP_DIR)/$(1) |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
325 $(STAMP_DIR)/$(1): $(TOP_DIR)/src/$(1).mk \ |
394
bb2b329f85d3
new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents:
392
diff
changeset
|
326 $(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
|
327 $(wildcard $(TOP_DIR)/src/$(1)-test*) \ |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
328 $(addprefix $(STAMP_DIR)/,$($(1)_DEPS)) \ |
1399
6b28a4f27b8c
bugfix in the integration of "make check-requirements"
Volker Grabsch <vog@notjusthosting.com>
parents:
1398
diff
changeset
|
329 | check-requirements |
604
95aeaeacaf9c
improved layout of the log/ directory
Volker Grabsch <vog@notjusthosting.com>
parents:
596
diff
changeset
|
330 @[ -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
|
331 @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
|
332 echo '[download] $(1)'; \ |
3003
7d692ab680ab
Change makefile download and build rules to log to symbolic link file instead of log/timestamp/file.
John Donoghue <john.donoghue@ieee.org>
parents:
2997
diff
changeset
|
333 touch '$(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
|
334 ln -sf '$(TIMESTAMP)/$(1)-download' '$(LOG_DIR)/$(1)-download'; \ |
3003
7d692ab680ab
Change makefile download and build rules to log to symbolic link file instead of log/timestamp/file.
John Donoghue <john.donoghue@ieee.org>
parents:
2997
diff
changeset
|
335 ($(call DOWNLOAD_PKG_ARCHIVE,$(1))) &> '$(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
|
336 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
|
337 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
|
338 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
|
339 echo '------------------------------------------------------------'; \ |
595
f4b50cf506c6
keep separate download logs in log/PKG-download
Volker Grabsch <vog@notjusthosting.com>
parents:
594
diff
changeset
|
340 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
|
341 echo '------------------------------------------------------------'; \ |
595
f4b50cf506c6
keep separate download logs in log/PKG-download
Volker Grabsch <vog@notjusthosting.com>
parents:
594
diff
changeset
|
342 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
|
343 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
|
344 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
|
345 fi; \ |
430
5d2c64680021
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
429
diff
changeset
|
346 fi |
434
7fdb6628d83a
improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents:
431
diff
changeset
|
347 $(if $(value $(1)_BUILD), |
7fdb6628d83a
improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents:
431
diff
changeset
|
348 @echo '[build] $(1)' |
7fdb6628d83a
improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents:
431
diff
changeset
|
349 ,) |
1396
296b81e392cf
portability fix for MSYS
Volker Grabsch <vog@notjusthosting.com>
parents:
1296
diff
changeset
|
350 @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
|
351 @ln -sf '$(TIMESTAMP)/$(1)' '$(LOG_DIR)/$(1)' |
3003
7d692ab680ab
Change makefile download and build rules to log to symbolic link file instead of log/timestamp/file.
John Donoghue <john.donoghue@ieee.org>
parents:
2997
diff
changeset
|
352 @if ! (time $(MAKE) -f '$(MAKEFILE)' 'build-only-$(1)') &> '$(LOG_DIR)/$(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
|
353 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
|
354 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
|
355 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
|
356 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
|
357 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
|
358 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
|
359 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
|
360 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
|
361 fi |
435
80c86e6f7ca6
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
434
diff
changeset
|
362 @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
|
363 |
951e2a6d1e69
create a separate build log file "usr/log-PKG" for each package build
Volker Grabsch <vog@notjusthosting.com>
parents:
427
diff
changeset
|
364 .PHONY: build-only-$(1) |
2742
9276054dea28
Makefile: pass PKG variable to build rules
Tony Theodore <tonyt@logyst.com>
parents:
2730
diff
changeset
|
365 build-only-$(1): PKG = $(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
|
366 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
|
367 $(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
|
368 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
|
369 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
|
370 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
|
371 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
|
372 $(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
|
373 (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
|
374 $$(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
|
375 (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
|
376 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
|
377 ,) |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
378 [ -d '$(STAMP_DIR)' ] || mkdir -p '$(STAMP_DIR)' |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
379 touch '$(STAMP_DIR)/$(1)' |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
380 endef |
403
825505ea3855
improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
401
diff
changeset
|
381 $(foreach PKG,$(PKGS),$(eval $(call PKG_RULE,$(PKG),$(call TMP_DIR,$(PKG))))) |
2971
7145a94e4f4e
build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents:
2964
diff
changeset
|
382 $(foreach TOOL,$(BUILD_TOOLS),$(eval $(call PKG_RULE,$(TOOL),$(call TMP_DIR,$(TOOL))))) |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
383 |
119
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
384 .PHONY: clean |
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
385 clean: |
3012
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
386 rm -rf $(call TMP_DIR,*) $(BUILD_TOOLS_PREFIX) |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
387 rm -rf $(STAMP_DIR) $(MSYS_INFO_DIR) $(LOG_DIR) |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
388 rm -rf $(MSYS_BASE_DIR) $(NOTEPAD_BASE_DIR) |
100e618349f7
Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents:
3009
diff
changeset
|
389 rm -rf native-tools cross-tools octave gnuplot |
119
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
390 |
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
|
391 .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
|
392 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
|
393 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
|
394 $(filter-out \ |
403
825505ea3855
improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
401
diff
changeset
|
395 $(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
|
396 $(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
|
397 |
119
ff34f15ec142
improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
114
diff
changeset
|
398 .PHONY: update |
114
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
399 define UPDATE |
306
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
400 $(if $(2), |
448
e9afec55fd6b
improved version recognition, enable the notation of ignored (bad) package versions
Volker Grabsch <vog@notjusthosting.com>
parents:
443
diff
changeset
|
401 $(if $(filter $(2),$($(1)_IGNORE)), |
461
c489fb1015e2
improved output style of "make update" again
Volker Grabsch <vog@notjusthosting.com>
parents:
454
diff
changeset
|
402 $(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
|
403 $(if $(filter $(2),$($(1)_VERSION)), |
461
c489fb1015e2
improved output style of "make update" again
Volker Grabsch <vog@notjusthosting.com>
parents:
454
diff
changeset
|
404 $(info . $(1) $(2)), |
477
ffca44340844
improved output of "make update"
Volker Grabsch <vog@notjusthosting.com>
parents:
473
diff
changeset
|
405 $(info NEW $(1) $($(1)_VERSION) --> $(2)) |
2353
99516e73b368
Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2350
diff
changeset
|
406 $(SED) -i 's/\( id="$(1)-version"\)>[^<]*/\1>$(2)/' '$(TOP_DIR)/index.html' |
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
|
407 $(MAKE) -f '$(MAKEFILE)' 'update-checksum-$(1)' \ |
2353
99516e73b368
Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents:
2350
diff
changeset
|
408 || { $(SED) -i 's/\( id="$(1)-version"\)>[^<]*/\1>$($(1)_VERSION)/' '$(TOP_DIR)/index.html'; \ |
519
99a330c048df
bugfix for "make update": avoid silent package update failures
Volker Grabsch <vog@notjusthosting.com>
parents:
517
diff
changeset
|
409 exit 1; })), |
560
185e73877b08
improved error message for "make update"
Volker Grabsch <vog@notjusthosting.com>
parents:
545
diff
changeset
|
410 $(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
|
411 |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
412 endef |
771b6c26008d
completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff
changeset
|
413 update: |
403
825505ea3855
improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
401
diff
changeset
|
414 $(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
|
415 |
306
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
416 update-checksum-%: |
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
417 $(call DOWNLOAD_PKG_ARCHIVE,$*) |
2348
5ada143a0517
Improve coding style
Volker Grabsch <vog@notjusthosting.com>
parents:
2346
diff
changeset
|
418 $(SED) -i 's/^\([^ ]*_CHECKSUM *:=\).*/\1 '"`$(call PKG_CHECKSUM,$*)`"'/' '$(TOP_DIR)/src/$*.mk' |
306
85ffa9259036
validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents:
305
diff
changeset
|
419 |
2357
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
420 cleanup-style: |
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
421 @$(foreach FILE,$(wildcard $(addprefix $(TOP_DIR)/,Makefile index.html CNAME src/*.mk src/*test.* tools/*)),\ |
2368
5e6e989cb349
Improve "make cleanup-style" to touch only files that have to be fixed
Volker Grabsch <vog@notjusthosting.com>
parents:
2359
diff
changeset
|
422 $(SED) ' \ |
2357
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
423 s/\r//g; \ |
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
424 s/[ \t]\+$$//; \ |
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
425 s,^#!/bin/bash$$,#!/usr/bin/env bash,; \ |
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
426 $(if $(filter %Makefile,$(FILE)),,\ |
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
427 s/\t/ /g; \ |
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
428 ) \ |
2368
5e6e989cb349
Improve "make cleanup-style" to touch only files that have to be fixed
Volker Grabsch <vog@notjusthosting.com>
parents:
2359
diff
changeset
|
429 ' < $(FILE) > $(TOP_DIR)/tmp-cleanup-style; \ |
5e6e989cb349
Improve "make cleanup-style" to touch only files that have to be fixed
Volker Grabsch <vog@notjusthosting.com>
parents:
2359
diff
changeset
|
430 diff -u $(FILE) $(TOP_DIR)/tmp-cleanup-style >/dev/null \ |
5e6e989cb349
Improve "make cleanup-style" to touch only files that have to be fixed
Volker Grabsch <vog@notjusthosting.com>
parents:
2359
diff
changeset
|
431 || { echo '[cleanup] $(FILE)'; \ |
5e6e989cb349
Improve "make cleanup-style" to touch only files that have to be fixed
Volker Grabsch <vog@notjusthosting.com>
parents:
2359
diff
changeset
|
432 cp $(TOP_DIR)/tmp-cleanup-style $(FILE); }; \ |
5e6e989cb349
Improve "make cleanup-style" to touch only files that have to be fixed
Volker Grabsch <vog@notjusthosting.com>
parents:
2359
diff
changeset
|
433 rm -f $(TOP_DIR)/tmp-cleanup-style; \ |
2357
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
434 ) |
5a0c2bf69e55
Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents:
2356
diff
changeset
|
435 |