[Buildroot] [PATCH] small patches (was: skeleton patch)
Roberto A. Foglietta
roberto.foglietta at gmail.com
Wed Nov 19 14:46:43 UTC 2008
2008/11/19 Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>:
[cut]
>> $(FREETYPE_HOOK_POST_BUILD):
>>- -cp -a $(FREETYPE_DIR)/objs/.libs/libfreetype.so* $(TARGET_DIR)/usr/lib/
>>+ mkdir -p $(TARGET_DIR)/usr/lib
>>+ cp -af $(FREETYPE_DIR)/objs/.libs/libfreetype.so* $(TARGET_DIR)/usr/lib
>
> This will not work properly for a number of host systems (see ML archives)
> Either use "cp -dpRf" or the preferred $(INSTALL), like:
>
> $(INSTALL) -d $(TARGET_DIR)/usr/lib
> $(INSTALL) -m0644 $(FREETYPE_DIR)/objs/.libs/libfreetype.so* $(TARGET_DIR)/usr/lib/
>
>> $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libfreetype.so
>> $(SED) "s,^prefix=.*,prefix=\'$(STAGING_DIR)/usr\',g" $(FREETYPE_DIR)/builds/unix/freetype-config
>> $(SED) "s,^exec_prefix=.*,exec_prefix=\'$(STAGING_DIR)/usr\',g" $(FREETYPE_DIR)/builds/unix/freetype-config
>
Ok, acknowledged and reported http://bugs.uclibc.org/view.php?id=6394
There is another problem related to libfreetype which happens in grub
and probably Mesa package too.
At least these three packages relay on .installed flag and sometimes
it does not do its job properly and the package would not be installed
expecially if root and .root has been removed in order to regenerate
them
roberto at rafbook:~/gles/buildroot.002$ find build_i586 -name .installed
build_i586/Mesa-7.0.3/.installed
build_i586/font-util-1.0.1/.installed
build_i586/grub-0.97/.installed
My personal solution is adding some makefile targets called rootclean
and softclean an expressing all clean targets in that way:
-clean: $(TARGETS_CLEAN)
- rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE)
$(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps
-dirclean: $(TARGETS_DIRCLEAN)
- rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE)
$(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps
+install: softclean all
+softclean:
+ rm -rf $(IMAGE) $(PROJECT_BUILD_DIR)/autotools-stamps
+ rm -f $(find $(BUILD_DIR) -name .installed | grep -v _staging_)
+
+rootclean: softclean
+ rm -rf $(TARGET_DIR) $(PROJECT_BUILD_DIR)/.root
+
+clean: $(TARGETS_CLEAN) rootclean
+ rm -rf $(STAGING_DIR)
+
+dirclean: $(TARGETS_DIRCLEAN) clean
+
I know this patch has been criticized but I hope its evolution could
be better rated than previous.
http://bugs.uclibc.org/view.php?id=5614
Please remember that this report is still open and users are expect
that "make clean; make" works properly
Ciao,
--
/roberto
More information about the buildroot
mailing list