annotate Makefile @ 3013:bcc26ffe9a0f

use variable for --host and --build configure arguments
author John W. Eaton <jwe@octave.org>
date Sun, 02 Jun 2013 12:40:32 -0400
parents 100e618349f7
children b6c7244a2f66
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
8 # Set the following configuration variables with a configure script?
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
9
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
10 # Current valid values are mingw (cross) and gnu-linux (native).
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
11 MXE_SYSTEM := mingw
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
12 #MXE_SYSTEM := gnu-linux
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
13
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
14 # Set to "no" if doing a cross compile build.
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
15 MXE_NATIVE_BUILD := no
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
16 #MXE_NATIVE_BUILD := yes
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
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
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
22 USE_SYSTEM_GCC := no
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
23 #USE_SYSTEM_GCC := yes
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
24
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
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
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
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
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
39
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
40 USE_PIC_FLAG := no
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
41 #USE_PIC_FLAG := yes
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
42
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
43 ## end of configuration variables.
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
44
3013
bcc26ffe9a0f use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents: 3012
diff changeset
45 ifneq ($(MXE_NATIVE_BUILD),yes)
bcc26ffe9a0f use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents: 3012
diff changeset
46 HOST_AND_BUILD_CONFIGURE_OPTIONS := \
bcc26ffe9a0f use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents: 3012
diff changeset
47 --host='$(TARGET)' --build='$(BUILD_SYSTEM)'
bcc26ffe9a0f use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents: 3012
diff changeset
48 endif
bcc26ffe9a0f use variable for --host and --build configure arguments
John W. Eaton <jwe@octave.org>
parents: 3012
diff changeset
49
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
50 # 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
51 # 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
52 # 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
53 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
54 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
55
2855
47558e958113 Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents: 2778
diff changeset
56 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
57 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
58 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
59 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
60 else
47558e958113 Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents: 2778
diff changeset
61 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
62 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
63 endif
47558e958113 Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents: 2778
diff changeset
64 else
47558e958113 Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents: 2778
diff changeset
65 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
66 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
67 endif
47558e958113 Allow static/shared libraries to be configured in top-level Makefile.
John W. Eaton <jwe@octave.org>
parents: 2778
diff changeset
68
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
69 ifeq ($(USE_PIC_FLAG),yes)
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
70 MXE_CC_PICFLAG := -fPIC
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
71 MXE_CXX_PICFLAG := -fPIC
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
72 MXE_F77_PICFLAG := -fPIC
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
73 endif
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
74
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
75 JOBS := 1
2696
fe58e4975380 replace sourceforge mirror
Mark Brand <mabrand@mabrand.nl>
parents: 2475
diff changeset
76 SOURCEFORGE_MIRROR := freefr.dl.sourceforge.net
2727
e474975121d6 add tertiary fallback for unavailable package files
Tony Theodore <tonyt@logyst.com>
parents: 2697
diff changeset
77 PKG_MIRROR := s3.amazonaws.com/mxe-pkg
2730
38054572b13f add package cdn fallback
Tony Theodore <tonyt@logyst.com>
parents: 2729
diff changeset
78 PKG_CDN := d1yihgixbnrglp.cloudfront.net
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
79
2369
4f5f4af84b12 Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2368
diff changeset
80 SHELL := bash
2380
f89dd4c9e49f Portability fix: Define $(PWD) before $(SHELL)
Volker Grabsch <vog@notjusthosting.com>
parents: 2379
diff changeset
81
2369
4f5f4af84b12 Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2368
diff changeset
82 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
83 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
84 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
85 WGET := wget --no-check-certificate \
422cb29ca669 Makefile: add wget portability variable - $(WGET)
Tony Theodore <tonyt@logyst.com>
parents: 2500
diff changeset
86 --user-agent=$(shell wget --version | \
422cb29ca669 Makefile: add wget portability variable - $(WGET)
Tony Theodore <tonyt@logyst.com>
parents: 2500
diff changeset
87 $(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
88
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
89 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
90 $(SED) unzip wget xz
2369
4f5f4af84b12 Improve order of entries in main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2368
diff changeset
91
2971
7145a94e4f4e build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents: 2964
diff changeset
92 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
93 LIBTOOLIZE := libtoolize
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
94 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
95
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
96 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
97 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
98 LOG_DIR := $(PWD)/log
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
99 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
100 PKG_DIR := $(PWD)/pkg
93f1be1d2089 use glibtoolize instead of libtoolize where appropriate (by Tony Theodore)
Volker Grabsch <vog@notjusthosting.com>
parents: 699
diff changeset
101 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
102 TOP_DIR := $(PWD)
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
103 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
104 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
105 PATH := $(BUILD_TOOLS_PREFIX)/bin:$(PATH)
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
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 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
108 CONFIGURE_LDFLAGS := LDFLAGS='-L$(HOST_PREFIX)/lib'
2956
dfa81fbfc1f5 msys binary packages
John W. Eaton <jwe@octave.org>
parents: 2858
diff changeset
109
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
110 ifeq ($(MXE_NATIVE_BUILD),yes)
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
111 MXE_AR := ar
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
112 MXE_RANLIB := ranlib
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
113 MXE_CC := gcc
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
114 MXE_CXX := g++
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
115 MXE_F77 := gfortran
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
116 ifeq ($(MXE_SYSTEM),mingw)
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
117 MXE_WINDRES := windres
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
118 else
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
119 MXE_WINDRES := true
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
120 endif
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
121 MXE_PKG_CONFIG := pkg-config
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
122 MXE_QMAKE := qmake
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
123 else
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
124 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
125 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
126 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
127 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
128 MXE_F77 := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-gfortran'
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
129 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
130 MXE_WINDRES := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-windres'
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
131 else
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
132 MXE_WINDRES := true
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
133 endif
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
134 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
135 MXE_QMAKE := '$(BUILD_TOOLS_PREFIX)/bin/$(TARGET)-qmake'
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
136 endif
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
137
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
138 ifeq ($(MXE_SYSTEM),mingw)
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
139 MAKE_SHARED_FROM_STATIC_OPTIONS := --windowsdll
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
140 endif
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
141
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
142 MXE_BINDIR := '$(HOST_PREFIX)/bin'
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
143 MXE_LIBDIR := '$(HOST_PREFIX)/lib'
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
144 MXE_INCDIR := '$(HOST_PREFIX)/include'
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
145
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
146 ifeq ($(MXE_SYSTEM),mingw)
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
147 ifneq ($(MXE_NATIVE_BUILD),yes)
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
148 MSYS_BASE_URL := http://sourceforge.net/projects/mingw/files/MSYS/Base
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
149 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
150 MSYS_BASE_DIR := $(TOP_DIR)/msys-base
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
151 MSYS_BASE_PACKAGES := $(addprefix msys-,bash coreutils diffutils file findutils gawk grep gzip less libiconv libintl libmagic make msys-core regex sed tar termcap)
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
152
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
153 NOTEPAD_BASE_DIR := $(TOP_DIR)/notepad++
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
154 endif
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
155 else
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
156 LD_LIBRARY_PATH := '$(MXE_LIBDIR)'
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
157 export LD_LIBRARY_PATH
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
158 MXE_CPPFLAGS := '-I$(MXE_INCDIR)'
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
159 MXE_LDFLAGS := '-L$(MXE_LIBDIR)'
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
160 endif
2964
1955438b24dc get notepad++
John W. Eaton <jwe@octave.org>
parents: 2958
diff changeset
161
3006
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
162 LN := ln
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
163 LN_S := $(LN) -s
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
164 LN_SF := $(LN_S) -f
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
165 ifeq ($(MXE_SYSTEM),mingw)
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
166 ifeq ($(MXE_NATIVE_BUILD),yes)
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
167 LN := cp
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
168 LN_S := $(LN)
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
169 LN_SF := $(LN_S)
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
170 endif
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
171 endif
dabfd7db980c use cp for ln on mingw native builds
John W. Eaton <jwe@octave.org>
parents: 3005
diff changeset
172
2958
04791633efbc Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents: 2956
diff changeset
173 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
174 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
175
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
176 MAKE_SHARED_FROM_STATIC := \
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
177 $(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
178
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
179 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
180
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
181 # 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
182 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
183 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
184 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
185 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
186
264
01aa6a0e1c9e new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents: 259
diff changeset
187 SHORT_PKG_VERSION = \
01aa6a0e1c9e new macro SHORT_PKG_VERSION which assists in creating download URLs
Volker Grabsch <vog@notjusthosting.com>
parents: 259
diff changeset
188 $(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
189
120
4edf6a519683 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 119
diff changeset
190 UNPACK_ARCHIVE = \
1101
28abe875c217 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1095
diff changeset
191 $(if $(filter %.tgz, $(1)),tar xzf '$(1)', \
28abe875c217 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1095
diff changeset
192 $(if $(filter %.tar.gz, $(1)),tar xzf '$(1)', \
28abe875c217 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1095
diff changeset
193 $(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
194 $(if $(filter %.tar.lzma,$(1)),xz -dc -F lzma '$(1)' | tar xf -, \
1555
1669134dcd03 unpack .tar.xz archives
Mark Brand <mabrand@mabrand.nl>
parents: 1519
diff changeset
195 $(if $(filter %.tar.xz,$(1)),xz -dc '$(1)' | tar xf -, \
1101
28abe875c217 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1095
diff changeset
196 $(if $(filter %.zip, $(1)),unzip -q '$(1)', \
1555
1669134dcd03 unpack .tar.xz archives
Mark Brand <mabrand@mabrand.nl>
parents: 1519
diff changeset
197 $(error Unknown archive format: $(1))))))))
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
198
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
199 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
200 $(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
201
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
202 PKG_CHECKSUM = \
473
b0cc6cc3c1fc improved status output
Volker Grabsch <vog@notjusthosting.com>
parents: 461
diff changeset
203 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
204
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
205 CHECK_PKG_ARCHIVE = \
311
ce0d27e7993f use "openssl sha1 ..." instead of "sha1sum -b ..."
Volker Grabsch <vog@notjusthosting.com>
parents: 310
diff changeset
206 [ '$($(1)_CHECKSUM)' == "`$$(call PKG_CHECKSUM,$(1))`" ]
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
207
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
208 DOWNLOAD_PKG_ARCHIVE = \
1159
782fbc148784 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 1136
diff changeset
209 mkdir -p '$(PKG_DIR)' && \
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
210 $(if $($(1)_URL_2), \
2730
38054572b13f add package cdn fallback
Tony Theodore <tonyt@logyst.com>
parents: 2729
diff changeset
211 ( $(WGET) -T 30 -t 3 -O- '$($(1)_URL)' || \
38054572b13f add package cdn fallback
Tony Theodore <tonyt@logyst.com>
parents: 2729
diff changeset
212 $(WGET) -O- '$($(1)_URL_2)' || \
38054572b13f add package cdn fallback
Tony Theodore <tonyt@logyst.com>
parents: 2729
diff changeset
213 $(WGET) -O- '$(PKG_MIRROR)/$($(1)_FILE)' || \
38054572b13f add package cdn fallback
Tony Theodore <tonyt@logyst.com>
parents: 2729
diff changeset
214 $(WGET) -O- '$(PKG_CDN)/$($(1)_FILE)' ), \
38054572b13f add package cdn fallback
Tony Theodore <tonyt@logyst.com>
parents: 2729
diff changeset
215 ( $(WGET) -O- '$($(1)_URL)' || \
38054572b13f add package cdn fallback
Tony Theodore <tonyt@logyst.com>
parents: 2729
diff changeset
216 $(WGET) -O- '$(PKG_MIRROR)/$($(1)_FILE)' || \
38054572b13f add package cdn fallback
Tony Theodore <tonyt@logyst.com>
parents: 2729
diff changeset
217 $(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
218 $(if $($(1)_FIX_GZIP), \
698e4de6d9a6 implemented $(PKG)_FIX_GZIP for GitWeb snapshots and similar issues
Volker Grabsch <vog@notjusthosting.com>
parents: 1437
diff changeset
219 | gzip -d | gzip -9n, \
698e4de6d9a6 implemented $(PKG)_FIX_GZIP for GitWeb snapshots and similar issues
Volker Grabsch <vog@notjusthosting.com>
parents: 1437
diff changeset
220 ) \
2729
6c492e126140 cleanup after failed download
Tony Theodore <tonyt@logyst.com>
parents: 2728
diff changeset
221 > '$(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
222
2500
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
223 ifeq ($(IGNORE_SETTINGS),yes)
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
224 $(info [ignore settings.mk])
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
225 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
226 include $(PWD)/settings.mk
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
227 else
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
228 $(info [create settings.mk])
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
229 $(shell { \
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
230 echo '#JOBS = $(JOBS)'; \
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
231 echo '#PKGS ='; \
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
232 } >'$(PWD)/settings.mk')
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
233 endif
8db5a297f243 Add support for a local settings file settings.mk
Volker Grabsch <vog@notjusthosting.com>
parents: 2475
diff changeset
234
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
235 .PHONY: all
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
236 all: $(PKGS)
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
237
2971
7145a94e4f4e build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents: 2964
diff changeset
238 $(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
239
2956
dfa81fbfc1f5 msys binary packages
John W. Eaton <jwe@octave.org>
parents: 2858
diff changeset
240 .PHONY: msys-base
dfa81fbfc1f5 msys binary packages
John W. Eaton <jwe@octave.org>
parents: 2858
diff changeset
241 msys-base: $(MSYS_BASE_PACKAGES)
dfa81fbfc1f5 msys binary packages
John W. Eaton <jwe@octave.org>
parents: 2858
diff changeset
242
2958
04791633efbc Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents: 2956
diff changeset
243 .PHONY: octave-forge-packages
04791633efbc Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents: 2956
diff changeset
244 octave-forge-packages: $(OCTAVE_FORGE_PACKAGES)
04791633efbc Octave Forge package sources and build script
John W. Eaton <jwe@octave.org>
parents: 2956
diff changeset
245
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
246 .PHONY: check-requirements
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
247 define CHECK_REQUIREMENT
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
248 @if ! $(1) --help &>/dev/null; then \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
249 echo; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
250 echo 'Missing requirement: $(1)'; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
251 echo; \
2353
99516e73b368 Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2350
diff changeset
252 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
253 echo 'that your system meets all requirements.'; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
254 echo; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
255 exit 1; \
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
256 fi
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
257
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
258 endef
2287
e9eed43704a2 Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents: 2153
diff changeset
259 define CHECK_REQUIREMENT_VERSION
e9eed43704a2 Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents: 2153
diff changeset
260 @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
261 echo; \
e9eed43704a2 Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents: 2153
diff changeset
262 echo 'Wrong version of requirement: $(1)'; \
e9eed43704a2 Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents: 2153
diff changeset
263 echo; \
2353
99516e73b368 Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2350
diff changeset
264 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
265 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
266 echo; \
e9eed43704a2 Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents: 2153
diff changeset
267 exit 1; \
e9eed43704a2 Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents: 2153
diff changeset
268 fi
e9eed43704a2 Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents: 2153
diff changeset
269
e9eed43704a2 Check for required versions of Autoconf and Automake
Volker Grabsch <vog@notjusthosting.com>
parents: 2153
diff changeset
270 endef
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
271 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
272 $(STAMP_DIR)/check-requirements: $(MAKEFILE)
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
273 @echo '[check requirements]'
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
274 $(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
275 @[ -d '$(STAMP_DIR)' ] || mkdir -p '$(STAMP_DIR)'
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
276 @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
277 $(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
278 $(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
279 $(INSTALL) -m 755 tools/config.sub '$(BUILD_TOOLS_PREFIX)/bin/config.sub' ; \
2997
4f9b72cf7ee7 allow native builds too
John W. Eaton <jwe@octave.org>
parents: 2991
diff changeset
280 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
281 @touch '$@'
1398
c6aaf7d9c746 check most of the requirements in advance
Volker Grabsch <vog@notjusthosting.com>
parents: 1397
diff changeset
282
2350
2691d175df4e Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2349
diff changeset
283 define newline
2691d175df4e Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2349
diff changeset
284
2691d175df4e Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2349
diff changeset
285
2349
f48c5b085a38 Move $(PKG)_VERSION and $(PKG)_WEBSITE from src/*.mk into doc/index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2348
diff changeset
286 endef
2350
2691d175df4e Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2349
diff changeset
287 $(eval $(subst #,$(newline),$(shell \
2691d175df4e Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2349
diff changeset
288 $(SED) -n \
2359
1726cefccf0c Fix trailing space after version number
Volker Grabsch <vog@notjusthosting.com>
parents: 2357
diff changeset
289 '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
290 '$(TOP_DIR)/index.html' \
2350
2691d175df4e Improve performance of loading main Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 2349
diff changeset
291 )))
2349
f48c5b085a38 Move $(PKG)_VERSION and $(PKG)_WEBSITE from src/*.mk into doc/index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2348
diff changeset
292
2971
7145a94e4f4e build autoconf, automake, libtool, and cmake instead of expecting them to exist
John W. Eaton <jwe@octave.org>
parents: 2964
diff changeset
293 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
294 include $(patsubst %,$(TOP_DIR)/src/%.mk,$(PKGS))
2346
8746e2f1c758 Improve coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 2345
diff changeset
295
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
296 .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
297 download: $(addprefix download-,$(PKGS)) $(addprefix download-,$(BUILD_TOOLS))
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
298
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
299 define PKG_RULE
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
300 .PHONY: download-$(1)
429
2fa394d22e1d bugfix and simplification of "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 428
diff changeset
301 download-$(1): $(addprefix download-,$($(1)_DEPS))
310
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
302 if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
303 $(call DOWNLOAD_PKG_ARCHIVE,$(1)); \
5c5e254fa32b bugfix in handling checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 306
diff changeset
304 $(call CHECK_PKG_ARCHIVE,$(1)) || { echo 'Wrong checksum!'; exit 1; }; \
430
5d2c64680021 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 429
diff changeset
305 fi
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
306
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
307 .PHONY: $(1)
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
308 $(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
309 $(STAMP_DIR)/$(1): $(TOP_DIR)/src/$(1).mk \
394
bb2b329f85d3 new command "make download"
Volker Grabsch <vog@notjusthosting.com>
parents: 392
diff changeset
310 $(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
311 $(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
312 $(addprefix $(STAMP_DIR)/,$($(1)_DEPS)) \
1399
6b28a4f27b8c bugfix in the integration of "make check-requirements"
Volker Grabsch <vog@notjusthosting.com>
parents: 1398
diff changeset
313 | check-requirements
604
95aeaeacaf9c improved layout of the log/ directory
Volker Grabsch <vog@notjusthosting.com>
parents: 596
diff changeset
314 @[ -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
315 @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
316 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
317 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
318 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
319 ($(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
320 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
321 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
322 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
323 echo '------------------------------------------------------------'; \
595
f4b50cf506c6 keep separate download logs in log/PKG-download
Volker Grabsch <vog@notjusthosting.com>
parents: 594
diff changeset
324 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
325 echo '------------------------------------------------------------'; \
595
f4b50cf506c6 keep separate download logs in log/PKG-download
Volker Grabsch <vog@notjusthosting.com>
parents: 594
diff changeset
326 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
327 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
328 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
329 fi; \
430
5d2c64680021 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 429
diff changeset
330 fi
434
7fdb6628d83a improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents: 431
diff changeset
331 $(if $(value $(1)_BUILD),
7fdb6628d83a improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents: 431
diff changeset
332 @echo '[build] $(1)'
7fdb6628d83a improved output: don't show "[build]" for download-only packages
Volker Grabsch <vog@notjusthosting.com>
parents: 431
diff changeset
333 ,)
1396
296b81e392cf portability fix for MSYS
Volker Grabsch <vog@notjusthosting.com>
parents: 1296
diff changeset
334 @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
335 @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
336 @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
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 '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
339 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
340 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
341 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
342 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
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
435
80c86e6f7ca6 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 434
diff changeset
346 @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
347
951e2a6d1e69 create a separate build log file "usr/log-PKG" for each package build
Volker Grabsch <vog@notjusthosting.com>
parents: 427
diff changeset
348 .PHONY: build-only-$(1)
2742
9276054dea28 Makefile: pass PKG variable to build rules
Tony Theodore <tonyt@logyst.com>
parents: 2730
diff changeset
349 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
350 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
351 $(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
352 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
353 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
354 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
355 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
356 $(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
357 (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
358 $$(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
359 (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
360 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
361 ,)
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
362 [ -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
363 touch '$(STAMP_DIR)/$(1)'
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
364 endef
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
365 $(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
366 $(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
367
119
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
368 .PHONY: clean
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
369 clean:
3012
100e618349f7 Improve handling of prefix directories by defining HOST_PREFIX and
John W. Eaton <jwe@octave.org>
parents: 3009
diff changeset
370 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
371 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
372 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
373 rm -rf native-tools cross-tools octave gnuplot
119
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
374
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
375 .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
376 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
377 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
378 $(filter-out \
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
379 $(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
380 $(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
381
119
ff34f15ec142 improved coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 114
diff changeset
382 .PHONY: update
114
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
383 define UPDATE
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
384 $(if $(2),
448
e9afec55fd6b improved version recognition, enable the notation of ignored (bad) package versions
Volker Grabsch <vog@notjusthosting.com>
parents: 443
diff changeset
385 $(if $(filter $(2),$($(1)_IGNORE)),
461
c489fb1015e2 improved output style of "make update" again
Volker Grabsch <vog@notjusthosting.com>
parents: 454
diff changeset
386 $(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
387 $(if $(filter $(2),$($(1)_VERSION)),
461
c489fb1015e2 improved output style of "make update" again
Volker Grabsch <vog@notjusthosting.com>
parents: 454
diff changeset
388 $(info . $(1) $(2)),
477
ffca44340844 improved output of "make update"
Volker Grabsch <vog@notjusthosting.com>
parents: 473
diff changeset
389 $(info NEW $(1) $($(1)_VERSION) --> $(2))
2353
99516e73b368 Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2350
diff changeset
390 $(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
391 $(MAKE) -f '$(MAKEFILE)' 'update-checksum-$(1)' \
2353
99516e73b368 Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2350
diff changeset
392 || { $(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
393 exit 1; })),
560
185e73877b08 improved error message for "make update"
Volker Grabsch <vog@notjusthosting.com>
parents: 545
diff changeset
394 $(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
395
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
396 endef
771b6c26008d completely rewritten from scratch as Makefile
Volker Grabsch <vog@notjusthosting.com>
parents:
diff changeset
397 update:
403
825505ea3855 improved variable naming in the Makefile
Volker Grabsch <vog@notjusthosting.com>
parents: 401
diff changeset
398 $(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
399
306
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
400 update-checksum-%:
85ffa9259036 validate downloads using SHA-1 checksums
Volker Grabsch <vog@notjusthosting.com>
parents: 305
diff changeset
401 $(call DOWNLOAD_PKG_ARCHIVE,$*)
2348
5ada143a0517 Improve coding style
Volker Grabsch <vog@notjusthosting.com>
parents: 2346
diff changeset
402 $(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
403
2357
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
404 cleanup-style:
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
405 @$(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
406 $(SED) ' \
2357
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
407 s/\r//g; \
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
408 s/[ \t]\+$$//; \
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
409 s,^#!/bin/bash$$,#!/usr/bin/env bash,; \
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
410 $(if $(filter %Makefile,$(FILE)),,\
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
411 s/\t/ /g; \
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
412 ) \
2368
5e6e989cb349 Improve "make cleanup-style" to touch only files that have to be fixed
Volker Grabsch <vog@notjusthosting.com>
parents: 2359
diff changeset
413 ' < $(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
414 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
415 || { 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
416 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
417 rm -f $(TOP_DIR)/tmp-cleanup-style; \
2357
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
418 )
5a0c2bf69e55 Add new command "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2356
diff changeset
419