~vcs-imports/ipfire/ipfire-2.x

« back to all changes in this revision

Viewing changes to lfs/Config

  • Committer: ipfire
  • Date: 2006-02-15 21:15:54 UTC
  • Revision ID: git-v1:cd1a2927226c734d96478e12bb768256fb64a06a


git-svn-id: http://svn.ipfire.org/svn/ipfire/IPFire/source@16 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
###############################################################################
 
2
#                                   LFSMake                                   #
 
3
#                    by Rod Roark <rod@sunsetsystems.com>                     #
 
4
#                                                                             #
 
5
#                        Copyright (C) 2002 Rod Roark                         #
 
6
#                                                                             #
 
7
# See http://www.lfsmake.org/ for the most current standard version.          #
 
8
#                                                                             #
 
9
# These Makefiles are made available under the terms of the Artistic License, #
 
10
# found at http://www.opensource.org/licenses/artistic-license.html.          #
 
11
###############################################################################
 
12
 
 
13
# URLs that are common sources of downloads.  If you're having trouble with
 
14
# a site you should change its URL to that of a suitable mirror site.
 
15
#
 
16
URL_CPAN    = http://www.cpan.org/modules/by-module
 
17
URL_AGNU    = ftp://alpha.gnu.org/gnu
 
18
URL_DEBIAN  = http://http.us.debian.org/debian/pool/main
 
19
URL_GNU     = http://ftp.gnu.org/gnu
 
20
URL_KERNEL  = http://www.kernel.org/pub
 
21
URL_TUE     = ftp://ftp.win.tue.nl/pub
 
22
URL_LFS_FTP = http://ftp.at.linuxfromscratch.org/pub/lfs/lfs-packages/5.1.1
 
23
URL_LFS     = http://www.linuxfromscratch.org/patches/downloads
 
24
URL_SFNET   = http://switch.dl.sourceforge.net/sourceforge
 
25
 
 
26
# Default compiler optimizations.
 
27
#
 
28
FLAGS_OPT   = -O2
 
29
FLAGS_CPU   = -mcpu=$(MACHINE)
 
30
FLAGS_ARCH  = -march=$(MACHINE)
 
31
 
 
32
# Don't change this; it will be overridden by other makefiles where necessary.
 
33
#
 
34
ROOT =
 
35
 
 
36
# For most packages tarballs are unpacked here and then deleted after
 
37
# installation.
 
38
#
 
39
DIR_SRC = $(ROOT)/usr/src
 
40
 
 
41
# Files are downloaded into DIR_TMP and then moved to DIR_DL, to avoid
 
42
# messes with partially retrieved files.  DIR_DL is where we will
 
43
# save all the files that are downloaded.  DIR_INFO contains the
 
44
# file lists of installed packages.
 
45
#
 
46
DIR_DL      = $(LFS_BASEDIR)/cache
 
47
DIR_CHK     = $(LFS_BASEDIR)/cache/check
 
48
DIR_INFO    = $(LFS_BASEDIR)/log
 
49
DIR_TMP     = /tmp
 
50
 
 
51
KGCC = ccache /usr/bin/gcc
 
52
 
 
53
###############################################################################
 
54
# Common Macro Definitions
 
55
###############################################################################
 
56
 
 
57
# For each package we create a list of files that it installed under 
 
58
# log/<TARGET> name. Modified files are not identified
 
59
#
 
60
define FIND_FILES
 
61
        cd $(ROOT)/ && find -mount \
 
62
        -not -path './tools*' -not -path './tmp*' -not -path './usr/src*' \
 
63
        -not -path './dev*' -not -path './proc*' -not -path './install*'
 
64
endef
 
65
 
 
66
# This is common starting logic for builds.
 
67
#
 
68
ifeq "$(ROOT)" ""
 
69
define PREBUILD
 
70
        echo "====================================== Installing $(THISAPP) ..."
 
71
        @echo "Install started; saving file list to $(DIR_SRC)/lsalr ..."
 
72
        @if [ ! -f $(DIR_SRC)/lsalr ]; then $(FIND_FILES) > $(DIR_SRC)/lsalr; fi
 
73
endef
 
74
else
 
75
define PREBUILD
 
76
        echo "====================================== Installing $(THISAPP) ..."
 
77
endef
 
78
endif
 
79
 
 
80
# Common end-of-installation logic for Stage 2 and beyond.
 
81
#
 
82
ifeq "$(ROOT)" ""
 
83
define POSTBUILD
 
84
        @echo "Install done; saving file list to $(DIR_INFO)/$(THISAPP) ..."
 
85
        @$(FIND_FILES) > $(DIR_SRC)/lsalrnew
 
86
        @diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' | sort > $(TARGET)_1
 
87
        @cp -f $(DIR_SRC)/lsalrnew $(DIR_SRC)/lsalr
 
88
        @rm -f $(DIR_SRC)/lsalrnew
 
89
        sed -i -e 's+.\/++' $(TARGET)_1
 
90
        # compare roofile ( same name as lfs script) with the list of installed files
 
91
        # special cases
 
92
        # - on a partial rebuild without a new file inside TARGET_1, just touch TARGET
 
93
        if [ -s "$(TARGET)_1" ]; then \
 
94
                ROOTFILE=$(DIR_SRC)/src/ROOTFILES.$(MACHINE); \
 
95
                for line in `cat $(TARGET)_1`; do \
 
96
                        if grep -qE "^#$$line$$" $$ROOTFILE ; then echo "#$$line" >> $(TARGET); \
 
97
                        elif grep -qE "^$$line$$" $$ROOTFILE ; then echo "$$line" >> $(TARGET); \
 
98
                        else echo "+$$line" >> $(TARGET); \
 
99
                        fi; \
 
100
                done; \
 
101
        else \
 
102
                touch $(TARGET); \
 
103
        fi
 
104
        @rm -f $(TARGET)_1
 
105
endef
 
106
else
 
107
define POSTBUILD
 
108
        @echo "===================================== Install done for $(THISAPP)."
 
109
        touch $(TARGET)
 
110
endef
 
111
endif
 
112
 
 
113
define CHECK
 
114
        @echo -e "$(MESSAGE)Check: $($(notdir $@))"
 
115
        wget -T 120 -t 1 --spider -nv $($(notdir $@)) -O /dev/null
 
116
        @touch $(DIR_CHK)/$(notdir $@)
 
117
endef
 
118
 
 
119
define LOAD
 
120
        @echo -e "$(MESSAGE)Download: $($(notdir $@))"
 
121
        wget -T 120 -t 1 -c -nv $($(notdir $@)) -O $(DIR_TMP)/$(notdir $@)
 
122
        [ "$($(notdir $@)_MD5)" = `md5sum $(DIR_TMP)/$(notdir $@) | awk '{ print $$1 }'` ] # detect page not found answer
 
123
        mv $(DIR_TMP)/$(notdir $@) $(DIR_DL)
 
124
endef
 
125
 
 
126
define MD5
 
127
        # error mean file signature don't match the one in lfs script
 
128
        [ "$($@_MD5)" = `md5sum $(DIR_DL)/$@ | awk '{ print $$1 }'` ]
 
129
        echo "$@ checksum OK"
 
130
endef