Skip to contentSkip to conversation

Create zlib installation directory in the staging dir

PATCH New Thomas Petazzoni 3 participants 6 messages Oct 30, 2008 – Oct 31, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Create zlib installation directory in the staging dir

Create zlib installation directory in the staging dir

A simple .config with just Busybox and zlib, using an external binary toolchain, leads to the following build failure:

touch -c /home/thomas/local/buildroot2/build_arm/zlib-1.2.3/libz.so
cp -dpf /home/thomas/local/buildroot2/build_arm/zlib-1.2.3/libz.a /home/thomas/local/buildroot2/build_arm/staging_dir/usr/lib/
cp: cannot create regular file `/home/thomas/local/buildroot2/build_arm/staging_dir/usr/lib/': Is a directory
make: *** [/home/thomas/local/buildroot2/build_arm/staging_dir/usr/lib/libz.so] Error 1

This is because no one creates $(STAGING_DIR)/usr/lib, and the installation of zlib is done manually. Fix that by creating $(STAGING_DIR)/usr/lib and $(STAGING_DIR)/usr/include in zlib installation target.

---
 package/zlib/zlib.mk |    2 ++
 1 file changed, 2 insertions(+)
package/zlib/zlib.mk +2 -0
Index: buildroot2/package/zlib/zlib.mk
===================================================================
@@ -37,6 +37,8 @@
 	touch -c $@
 
 $(STAGING_DIR)/usr/lib/libz.so: $(ZLIB_DIR)/libz.so
+	mkdir -p $(STAGING_DIR)/usr/lib/
+	mkdir -p $(STAGING_DIR)/usr/include/
 	cp -dpf $(ZLIB_DIR)/libz.a $(STAGING_DIR)/usr/lib/
 	cp -dpf $(ZLIB_DIR)/zlib.h $(STAGING_DIR)/usr/include/
 	cp -dpf $(ZLIB_DIR)/zconf.h $(STAGING_DIR)/usr/include/
Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
#1 lore raw

PATCH 1/1 Create zlib installation directory in the staging dir

Quoted 30 lines · Thomas Petazzoni

Create zlib installation directory in the staging dir

A simple .config with just Busybox and zlib, using an external binary toolchain, leads to the following build failure:

touch -c /home/thomas/local/buildroot2/build_arm/zlib-1.2.3/libz.so
cp -dpf /home/thomas/local/buildroot2/build_arm/zlib-1.2.3/libz.a /home/thomas/local/buildroot2/build_arm/staging_dir/usr/lib/
cp: cannot create regular file `/home/thomas/local/buildroot2/build_arm/staging_dir/usr/lib/': Is a directory
make: *** [/home/thomas/local/buildroot2/build_arm/staging_dir/usr/lib/libz.so] Error 1

This is because no one creates $(STAGING_DIR)/usr/lib, and the installation of zlib is done manually. Fix that by creating $(STAGING_DIR)/usr/lib and $(STAGING_DIR)/usr/include in zlib installation target.

---
package/zlib/zlib.mk | 2 ++

1 file changed, 2 insertions(+)

Index: buildroot2/package/zlib/zlib.mk
===================================================================

package/zlib/zlib.mk +0 -0
@@ -37,6 +37,8 @@
 	touch -c $@
 

$(STAGING_DIR)/usr/lib/libz.so: $(ZLIB_DIR)/libz.so

package/zlib/zlib.mk +2 -0
+	mkdir -p $(STAGING_DIR)/usr/lib/
+	mkdir -p $(STAGING_DIR)/usr/include/
Quoted 3 lines
	cp -dpf $(ZLIB_DIR)/libz.a $(STAGING_DIR)/usr/lib/
	cp -dpf $(ZLIB_DIR)/zlib.h $(STAGING_DIR)/usr/include/
	cp -dpf $(ZLIB_DIR)/zconf.h $(STAGING_DIR)/usr/include/

$(INSTALL) -D $(ZLIB_DIR)/libz.a $(STAGING_DIR)/usr/lib/libz.a $(INSTALL) -D $(ZLIB_DIR)/zlib.h $(STAGING_DIR)/usr/include/zlib.h $(INSTALL) $(ZLIB_DIR)/zconf.h $(STAGING_DIR)/usr/include/zconf.h

fixed.

#2 lore raw

PATCH 1/1 Create zlib installation directory in the staging dir

Applied in r23879.

Thanks.

#3 lore raw

PATCH 1/1 Create zlib installation directory in the staging dir

Quoted 1 line · Thiago A. Corr?a

Applied in r23879.

You applied something different, fwiw. But it doesn't matter much, you're building zlib incorrectly anyway *shrug* i've fixed this now..

#4 lore raw

PATCH 1/1 Create zlib installation directory in the staging dir

Quoted 6 lines · Bernhard Reutner-Fischer
Quoted 1 line · Thiago A. Corr?a

Applied in r23879.

You applied something different, fwiw. But it doesn't matter much, you're building zlib incorrectly anyway *shrug* i've fixed this now..

Diff between svn and git gives me:

-$(TARGET_DIR)/usr/lib/libz.a: $(STAGING_DIR)/usr/lib/libz.so
- $(INSTALL) -D $(STAGING_DIR)/usr/include/zlib.h
$(TARGET_DIR)/usr/include/
- $(INSTALL) $(STAGING_DIR)/usr/include/zconf.h $(TARGET_DIR)/usr/include/
- $(INSTALL) -D $(STAGING_DIR)/usr/lib/libz.a $(TARGET_DIR)/usr/lib/
+$(TARGET_DIR)/usr/lib/libz.a: $(STAGING_DIR)/usr/lib/libz.so.$(ZLIB_VERSION)

+       mkdir -p $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/lib
+       cp -dpf $(STAGING_DIR)/usr/include/zlib.h $(TARGET_DIR)/usr/include/
+       cp -dpf $(STAGING_DIR)/usr/include/zconf.h $(TARGET_DIR)/usr/include/
+       cp -dpf $(STAGING_DIR)/usr/lib/libz.a $(TARGET_DIR)/usr/lib/
+       rm -f $(TARGET_DIR)/lib/libz.so $(TARGET_DIR)/usr/lib/libz.so
+       ln -sf libz.so.$(ZLIB_VERSION) $(TARGET_DIR)/usr/lib/libz.so
        touch -c $@

Why not use $(INSTALL) here? That's what I did in addition to that point where you and Thomas pointed out.

#5 lore raw

PATCH 1/1 Create zlib installation directory in the staging dir

Quoted 25 lines · Thiago A. Corr?a
Quoted 6 lines · Bernhard Reutner-Fischer
Quoted 1 line · Thiago A. Corr?a

Applied in r23879.

You applied something different, fwiw. But it doesn't matter much, you're building zlib incorrectly anyway *shrug* i've fixed this now..

Diff between svn and git gives me:

-$(TARGET_DIR)/usr/lib/libz.a: $(STAGING_DIR)/usr/lib/libz.so
- $(INSTALL) -D $(STAGING_DIR)/usr/include/zlib.h
$(TARGET_DIR)/usr/include/

(quoted diff) +7 -2
-       $(INSTALL) $(STAGING_DIR)/usr/include/zconf.h $(TARGET_DIR)/usr/include/
-       $(INSTALL) -D $(STAGING_DIR)/usr/lib/libz.a $(TARGET_DIR)/usr/lib/
+$(TARGET_DIR)/usr/lib/libz.a: $(STAGING_DIR)/usr/lib/libz.so.$(ZLIB_VERSION)
+       mkdir -p $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/lib
+       cp -dpf $(STAGING_DIR)/usr/include/zlib.h $(TARGET_DIR)/usr/include/
+       cp -dpf $(STAGING_DIR)/usr/include/zconf.h $(TARGET_DIR)/usr/include/
+       cp -dpf $(STAGING_DIR)/usr/lib/libz.a $(TARGET_DIR)/usr/lib/
+       rm -f $(TARGET_DIR)/lib/libz.so $(TARGET_DIR)/usr/lib/libz.so
+       ln -sf libz.so.$(ZLIB_VERSION) $(TARGET_DIR)/usr/lib/libz.so
       touch -c $@
Quoted 2 lines

Why not use $(INSTALL) here? That's what I did in addition to that point where you and Thomas pointed out.

I overlooked that you creaded the dirs before installing the files, so this is ok, sorry.