[Buildroot] migrating manual makefile to autotools-based packages

aurelien coulaud aurelien.coulaud at thalesgroup.com
Fri Apr 8 08:49:27 UTC 2016


> 
> Using hand-written Makefiles is bad, as you lose many features of the
> package infrastructure: legal-info, source, source-check, etc. Please
> don't use hand-written Makefiles, use one of the available package
> infrastructures. Doing the conversion is generally very easy. If you
> don't know how to do it, please post your current .mk file and we'll
> give you some hints.
> 
> Best regards,
> 
> Thomas

Hello Thomas, thank in advance.

Here is my file: codebase.mk

#############################################################
#
# codebase
#
#############################################################

CODEBASE_SOURCE=codebase__20061027.tgz
CODEBASE_DIR:=$(BUILD_DIR)/codebase


$(CODEBASE_DIR)/.source: $(DL_DIR)/$(CODEBASE_SOURCE)
	$(ZCAT) $(DL_DIR)/$(CODEBASE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	toolchain/patch-kernel.sh $(CODEBASE_DIR) package/codebase/ patch*
	touch $(CODEBASE_DIR)/.source

$(CODEBASE_DIR)/.configured: $(CODEBASE_DIR)/.source
	(cd $(CODEBASE_DIR); \
	export PATH="/usr/local/bin:$(PATH)" ; \
	./bootstrap ; \
        $(TARGET_CONFIGURE_OPTS) \
	CPPFLAGS=-DS4NO_FCVT \
        CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
        LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \
	./configure \
	--target=$(GNU_TARGET_NAME) \
	--host=$(GNU_TARGET_NAME) \
	--build=$(GNU_HOST_NAME) \
	--prefix=/usr );
	touch $(CODEBASE_DIR)/.configured
	
$(CODEBASE_DIR)/.compiled: $(CODEBASE_DIR)/.configured
	        $(MAKE) -C $(CODEBASE_DIR)
	        touch $(CODEBASE_DIR)/.compiled

$(STAGING_DIR)/usr/lib/libcb.so: $(CODEBASE_DIR)/.compiled
	$(MAKE) -C $(CODEBASE_DIR) install prefix=$(STAGING_DIR)/usr
exec_prefix=$(STAGING_DIR)/usr
	touch -c $(STAGING_DIR)/usr/lib/libcb.so

$(TARGET_DIR)/usr/lib/libcb.so: $(STAGING_DIR)/usr/lib/libcb.so
	cp -dpf $(STAGING_DIR)/usr/lib/libcb* $(STAGING_DIR)/usr/lib/libcbx*
$(TARGET_DIR)/usr/lib/
	-$(STRIP) --strip-unneeded \
		$(TARGET_DIR)/usr/lib/libcb.so \
		$(TARGET_DIR)/usr/lib/libcbx.so \
	

codebase: $(TARGET_DIR)/usr/lib/libcb.so


#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(strip $(BR2_PACKAGE_CODEBASE)),y)
TARGETS+=codebase
endif





More information about the buildroot mailing list