[uClibc][PATCH] Update uClibc build script to new config system

M. R. Brown mrbrown at 0xd6.org
Tue Nov 5 07:07:12 UTC 2002


Looks like the second patch got cut off.  Sorry if it's a duplicate.

M. R.
-------------- next part --------------
--- gcc-3.2.orig/Makefile	2002-09-16 13:07:32.000000000 -0500
+++ gcc-3.2/Makefile	2002-11-05 00:53:51.000000000 -0600
@@ -38,6 +38,10 @@
 #ARCH:=mipsel
 #ARCH:=powerpc
 
+# Set this to the path of a custom .config that will be used in place
+# of the uClibc default.
+USE_CONFIG:=false
+
 # Set this to `false' if you are building for a CPU does not have
 # a memory management unit (MMU) -- i.e. an uClinux system..  If
 # you are targeting a regular Linux system, leave this "true".
@@ -320,47 +324,54 @@
 	touch $(UCLIBC_DIR)/.unpacked
 
 $(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked
-	cp $(UCLIBC_DIR)/extra/Configs/Config.$(ARCH) $(UCLIBC_DIR)/Config~;
-	echo "TARGET_ARCH=$(ARCH)" >> $(UCLIBC_DIR)/Config~
-	perl -i -p -e 's,^HAS_WCHAR.*,HAS_WCHAR=true,g' $(UCLIBC_DIR)/Config~
-	perl -i -p -e 's,^PREFIX.*,,g' $(UCLIBC_DIR)/Config~
-	perl -i -p -e 's,^CROSS.*,CROSS=,g' $(UCLIBC_DIR)/Config~
-	perl -i -p -e 's,^SYSTEM_DEVEL_PREFIX.*,SYSTEM_DEVEL_PREFIX=$(STAGING_DIR),g' \
-		$(UCLIBC_DIR)/Config~
-	perl -i -p -e 's,^UNIX98PTY_ONLY.*,UNIX98PTY_ONLY=false,g' $(UCLIBC_DIR)/Config~
-	$(UCLIBC_DIR)/extra/Configs/uClibc_config_fix.pl \
-		--arch=$(ARCH) \
-		--cross=$(STAGING_DIR)/bin/$(ARCH)-uclibc- \
-		--c99_math=$(HAS_MMU) \
-		--devel_prefix=$(STAGING_DIR) \
-		--kernel_dir=$(LINUX_DIR) \
-		--long_long=true \
-		--float=true \
-		--shadow=true \
-		--threads=true \
-		--rpc_support=true \
-		--large_file=$(HAS_MMU) \
-		--mmu=$(HAS_MMU) \
-		--debug=false \
-		--ldso_path="/lib" \
-		--shared_support=$(HAS_MMU) \
-		--file=$(UCLIBC_DIR)/Config~ \
-		> $(UCLIBC_DIR)/Config; 
+ifneq ($(USE_CONFIG),false)
+	cp $(USE_CONFIG) $(UCLIBC_DIR)/.config
+else
+	cp $(UCLIBC_DIR)/extra/Configs/Config.$(TARGET_ARCH).default \
+		$(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^# UCLIBC_HAS_FLOATS.*,UCLIBC_HAS_FLOATS=y,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^# HAS_SHADOW.*,HAS_SHADOW=y,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^# UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^# UCLIBC_HAS_THREADS.*,UCLIBC_HAS_THREADS=y,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^# UCLIBC_HAS_RPC.*,UCLIBC_HAS_RPC=y,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^UNIX98PTY_ONLY=y.*,# UNIX98PTY_ONLY is not set,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^DODEBUG=y.*,# DODEBUG is not set,g' $(UCLIBC_DIR)/.config
+ifeq ($(HAS_MMU),true)
+	perl -i -p -e 's,^# UCLIBC_HAS_MMU.*,UCLIBC_HAS_MMU=y,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^# DO_C99_MATH.*,DO_C99_MATH=y,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^# UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=y,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^# HAVE_SHARED.*,HAVE_SHARED=y,g' $(UCLIBC_DIR)/.config
+else
+	perl -i -p -e 's,^UCLIBC_HAS_MMU=y.*,# UCLIBC_HAS_MMU is not set,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^DO_C99_MATH=y.*,# DO_C99_MATH is not set,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^UCLIBC_HAS_LFS=y.*,# UCLIBC_HAS_LFS is not set,g' $(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^HAVE_SHARED=y.*,# HAVE_SHARED is not set,g' $(UCLIBC_DIR)/.config
+endif
+endif
+	perl -i -p -e 's,^DEVEL_PREFIX.*,DEVEL_PREFIX=\"$(STAGING_DIR)\",g' \
+		$(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^SYSTEM_DEVEL_PREFIX.*,SYSTEM_DEVEL_PREFIX=\"$(STAGING_DIR)\",g' \
+		$(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^KERNEL_SOURCE.*,KERNEL_SOURCE=\"$(LINUX_DIR)\",g' \
+		$(UCLIBC_DIR)/.config
+	perl -i -p -e 's,^SHARED_LIB_LOADER_PATH.*,SHARED_LIB_LOADER_PATH=\"/lib\",g' \
+		$(UCLIBC_DIR)/.config
+	$(MAKE) -C $(UCLIBC_DIR) oldconfig
 	# Note that since the target compiler does not yet exist, we will not
 	# be able to properly generate include/bits/syscall.h so we will need
 	# to run part again later...
-	$(MAKE) -C $(UCLIBC_DIR) headers uClibc_config install_dev;
+	$(MAKE) -C $(UCLIBC_DIR) headers install_dev
 	touch $(UCLIBC_DIR)/.configured
 
 # Now that we have a working target compiler, rebuild the header files for the
 # target so things like include/bits/syscall.h can actually be built this time
 # around...
 $(UCLIBC_DIR)/.config_final: $(UCLIBC_DIR)/.configured
-	$(MAKE) -C $(UCLIBC_DIR) headers uClibc_config install_dev
+	$(MAKE) -C $(UCLIBC_DIR) headers install_dev
 	touch $(UCLIBC_DIR)/.config_final
 
 $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.config_final
-	$(MAKE) -C $(UCLIBC_DIR)
+	$(MAKE) -C $(UCLIBC_DIR) CROSS=$(STAGING_DIR)/bin/$(ARCH)-uclibc-
 
 $(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
 	$(MAKE) -C $(UCLIBC_DIR) install_dev install_runtime install_utils
@@ -369,7 +380,7 @@
 
 uclibc-clean:
 	-$(MAKE) -C $(UCLIBC_DIR) clean
-	rm -f $(UCLIBC_DIR)/Config
+	rm -f $(UCLIBC_DIR)/.config
 
 uclibc-dirclean:
 	rm -rf $(UCLIBC_DIR)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.busybox.net/pipermail/uclibc/attachments/20021105/d0925af1/attachment.pgp 


More information about the uClibc mailing list