1 #############################################################
5 #############################################################
7 SED_SOURCE
:=sed-
$(SED_VER
).
tar.gz
8 SED_SITE
:=ftp
://ftp.gnu.org
/gnu
/sed
10 SED_DIR1
:=$(TOOL_BUILD_DIR
)/sed-
$(SED_VER
)
11 SED_DIR2
:=$(BUILD_DIR
)/sed-
$(SED_VER
)
13 SED_TARGET_BINARY
:=bin
/sed
14 ifeq ($(strip $(BUILD_WITH_LARGEFILE
)),true
)
15 SED_CPPFLAGS
=-D_FILE_OFFSET_BITS
=64
17 #HOST_SED_DIR:=$(STAGING_DIR)
18 HOST_SED_DIR
:=$(TOOL_BUILD_DIR
)
19 SED
:=$(HOST_SED_DIR
)/bin
/sed
-i
-e
20 HOST_SED_TARGET
=$(shell package
/sed
/sedcheck.sh
)
22 $(DL_DIR
)/$(SED_SOURCE
):
24 $(WGET
) -P
$(DL_DIR
) $(SED_SITE
)/$(SED_SOURCE
)
26 sed-source
: $(DL_DIR
)/$(SED_SOURCE
)
29 #############################################################
31 # build sed for use on the host system
33 #############################################################
34 $(SED_DIR1
)/.unpacked
: $(DL_DIR
)/$(SED_SOURCE
)
35 mkdir
-p
$(TOOL_BUILD_DIR
)
36 mkdir
-p
$(HOST_SED_DIR
)/bin
;
37 $(SED_CAT
) $(DL_DIR
)/$(SED_SOURCE
) |
tar -C
$(TOOL_BUILD_DIR
) $(TAR_OPTIONS
) -
38 touch
$(SED_DIR1
)/.unpacked
40 $(SED_DIR1
)/.configured
: $(SED_DIR1
)/.unpacked
41 (cd
$(SED_DIR1
); rm -rf config.cache
; \
43 --prefix=$(HOST_SED_DIR
) \
46 touch
$(SED_DIR1
)/.configured
48 $(SED_DIR1
)/$(SED_BINARY
): $(SED_DIR1
)/.configured
49 $(MAKE
) -C
$(SED_DIR1
)
51 # This stuff is needed to work around GNU make deficiencies
52 build-sed-host-binary
: $(SED_DIR1
)/$(SED_BINARY
)
53 @if
[ -L
$(HOST_SED_DIR
)/$(SED_TARGET_BINARY
) ] ; then \
54 rm -f
$(HOST_SED_DIR
)/$(SED_TARGET_BINARY
); fi
;
55 @if
[ ! -f
$(HOST_SED_DIR
)/$(SED_TARGET_BINARY
) -o
$(HOST_SED_DIR
)/$(SED_TARGET_BINARY
) \
56 -ot
$(SED_DIR1
)/$(SED_BINARY
) ] ; then \
58 mkdir
-p
$(HOST_SED_DIR
)/bin
; \
59 $(MAKE
) DESTDIR
=$(HOST_SED_DIR
) -C
$(SED_DIR1
) install; \
60 mv
$(HOST_SED_DIR
)/usr
/bin
/sed
$(HOST_SED_DIR
)/bin
/; \
61 rm -rf
$(HOST_SED_DIR
)/share
/locale
$(HOST_SED_DIR
)/usr
/info \
62 $(HOST_SED_DIR
)/usr
/man
$(HOST_SED_DIR
)/usr
/share
/doc
; fi
65 @if
[ -x
/usr
/bin
/sed
] ; then \
66 SED
="/usr/bin/sed" ; \
68 if
[ -x
/bin
/sed
] ; then \
72 if
[ ! -e
"$(HOST_SED_DIR)/$(SED_TARGET_BINARY)" ] ; then \
73 mkdir
-p
"$(HOST_SED_DIR)/bin"; \
74 rm -f
"$(HOST_SED_DIR)/$(SED_TARGET_BINARY)"; \
75 ln
-sf
"$$SED" "$(HOST_SED_DIR)/$(SED_TARGET_BINARY)"; \
78 host-sed
: $(HOST_SED_TARGET
)
80 ifeq ($(HOST_SED_TARGET
),build-sed-host-binary
)
82 $(MAKE
) DESTDIR
=$(HOST_SED_DIR
) -C
$(SED_DIR1
) uninstall
83 -$(MAKE
) -C
$(SED_DIR1
) clean
89 host-sed-clean host-sed-dirclean
:
93 #############################################################
95 # build sed for use on the target system
97 #############################################################
98 $(SED_DIR2
)/.unpacked
: $(DL_DIR
)/$(SED_SOURCE
)
99 $(SED_CAT
) $(DL_DIR
)/$(SED_SOURCE
) |
tar -C
$(BUILD_DIR
) $(TAR_OPTIONS
) -
100 touch
$(SED_DIR2
)/.unpacked
102 $(SED_DIR2
)/.configured
: $(SED_DIR2
)/.unpacked
103 (cd
$(SED_DIR2
); rm -rf config.cache
; \
104 $(TARGET_CONFIGURE_OPTS
) \
105 CFLAGS
="$(TARGET_CFLAGS)" \
106 CPPFLAGS
="$(SED_CFLAGS)" \
108 --target
=$(GNU_TARGET_NAME
) \
109 --host
=$(GNU_TARGET_NAME
) \
110 --build
=$(GNU_HOST_NAME
) \
114 --sbindir
=/usr
/sbin \
115 --libexecdir
=/usr
/lib \
117 --datadir=/usr
/share \
118 --localstatedir
=/var \
120 --infodir=/usr
/info \
123 touch
$(SED_DIR2
)/.configured
125 $(SED_DIR2
)/$(SED_BINARY
): $(SED_DIR2
)/.configured
126 $(MAKE
) CC
=$(TARGET_CC
) -C
$(SED_DIR2
)
128 # This stuff is needed to work around GNU make deficiencies
129 sed-target_binary
: $(SED_DIR2
)/$(SED_BINARY
)
130 @if
[ -L
$(TARGET_DIR
)/$(SED_TARGET_BINARY
) ] ; then \
131 rm -f
$(TARGET_DIR
)/$(SED_TARGET_BINARY
); fi
;
133 @if
[ ! -f
$(SED_DIR2
)/$(SED_BINARY
) -o
$(TARGET_DIR
)/$(SED_TARGET_BINARY
) \
134 -ot
$(SED_DIR2
)/$(SED_BINARY
) ] ; then \
136 $(MAKE
) DESTDIR
=$(TARGET_DIR
) CC
=$(TARGET_CC
) -C
$(SED_DIR2
) install; \
137 mv
$(TARGET_DIR
)/usr
/bin
/sed
$(TARGET_DIR
)/bin
/; \
138 rm -rf
$(TARGET_DIR
)/share
/locale
$(TARGET_DIR
)/usr
/info \
139 $(TARGET_DIR
)/usr
/man
$(TARGET_DIR
)/usr
/share
/doc
; fi
141 sed
: uclibc sed-target_binary
144 $(MAKE
) DESTDIR
=$(TARGET_DIR
) CC
=$(TARGET_CC
) -C
$(SED_DIR2
) uninstall
145 -$(MAKE
) -C
$(SED_DIR2
) clean
151 #############################################################
153 # Toplevel Makefile options
155 #############################################################
156 ifeq ($(strip $(BR2_PACKAGE_SED
)),y
)