fix and enable the sdk
fix and enable the sdk

git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4037 3c298f89-4303-0410-b956-a3cf2f4a3e73

file:a/Config.in -> file:b/Config.in
--- a/Config.in
+++ b/Config.in
@@ -40,7 +40,42 @@
 	help
 	    Number of jobs to run simultanesouly
 
+source "target/sdk/Config.in"
 source "toolchain/Config.in"
+
+menu "Target Images"
+	config TARGET_ROOTFS_INITRAMFS
+		bool "ramdisk"
+		default n
+		depends LINUX_2_6
+		help
+		  Embed the rootfs into the kernel (initramfs)
+
+	config TARGET_ROOTFS_JFFS2
+		bool "jffs2"
+		default y
+		depends !TARGET_ROOTFS_INITRAMFS
+		help
+		  Build a jffs2 root filesystem
+
+	config TARGET_ROOTFS_SQUASHFS
+		bool "squashfs"
+		default y
+		depends !LINUX_2_6_ARUBA
+		depends !LINUX_2_6_XSCALE
+		depends !TARGET_ROOTFS_INITRAMFS
+		help
+		  Build a squashfs-lzma root filesystem
+
+	config TARGET_ROOTFS_TGZ
+		bool "tgz"
+		default y if !LINUX_2_4_BRCM && !LINUX_2_6_BRCM && !LINUX_2_6_ARUBA && !LINUX_2_4_AR531X
+		depends !TARGET_ROOTFS_INITRAMFS
+		help
+		  Build a compressed tar archive of the the root filesystem
+
+endmenu
+
 source "target/linux/Config.in"
 source ".config.in"
 

--- a/package/Makefile
+++ b/package/Makefile
@@ -27,9 +27,12 @@
 %-clean: $(STAMP_DIR) $(TARGET_DIR)
 	$(MAKE) -C $(patsubst %-clean,%,$@) clean MAKEFLAGS="$(BUILD_MAKEFLAGS)"
 
+ifeq ($(SDK),1)
+GENDEP_OPTS := -s
+endif
 
 $(TOPDIR)/.pkgdeps: $(TOPDIR)/.pkginfo
-	@$(TOPDIR)/scripts/gen_deps.pl < $< > $@ || rm -f $@
+	@$(TOPDIR)/scripts/gen_deps.pl $(GENDEP_OPTS) < $< > $@ || rm -f $@
 
 all: compile
 clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m))

--- a/target/Makefile
+++ b/target/Makefile
@@ -5,16 +5,18 @@
 $(BIN_DIR):
 	mkdir -p $(BIN_DIR)
 
-TARGETS:=linux utils
+TARGETS-y := linux utils
+TARGETS-$(CONFIG_SDK) += sdk
 
 linux-compile: utils-install
 linux-install: $(BIN_DIR)
+sdk-compile: linux-install
 
-download: $(patsubst %,%-source,$(TARGETS))
+download: $(patsubst %,%-source,$(TARGETS-y))
 prepare: linux-prepare
 compile: linux-compile
-install: image_clean linux-install
-clean: $(patsubst %,%-clean,$(TARGETS)) image_clean
+install: image_clean $(patsubst %,%-install,$(TARGETS-y))
+clean: $(patsubst %,%-clean,$(TARGETS-y)) image_clean
 
 image_clean: FORCE
 	rm -f $(BIN_DIR)/openwrt-*

--- a/target/linux/Config.in
+++ b/target/linux/Config.in
@@ -1,36 +1,3 @@
-menu "Target Root Filesystem"
-	config TARGET_ROOTFS_INITRAMFS
-		bool "ramdisk"
-		default n
-		depends LINUX_2_6
-		help
-		  Embed the rootfs into the kernel (initramfs)
-
-	config TARGET_ROOTFS_JFFS2
-		bool "jffs2"
-		default y
-		depends !TARGET_ROOTFS_INITRAMFS
-		help
-		  Build a jffs2 root filesystem
-
-	config TARGET_ROOTFS_SQUASHFS
-		bool "squashfs"
-		default y
-		depends !LINUX_2_6_ARUBA
-		depends !LINUX_2_6_XSCALE
-		depends !TARGET_ROOTFS_INITRAMFS
-		help
-		  Build a squashfs-lzma root filesystem
-
-	config TARGET_ROOTFS_TGZ
-		bool "tgz"
-		default y if !LINUX_2_4_BRCM && !LINUX_2_6_BRCM && !LINUX_2_6_ARUBA && !LINUX_2_4_AR531X
-		depends !TARGET_ROOTFS_INITRAMFS
-		help
-		  Build a compressed tar archive of the the root filesystem
-
-endmenu
-
 menu "Kernel Configuration / Device Support"
 
 comment "Device specific configuration"

--- a/target/sdk/Config.in
+++ b/target/sdk/Config.in
@@ -1,10 +1,10 @@
-config PACKAGE_SDK
-	bool "OpenWrt SDK"
-	default y if DEVEL
+config SDK
+	bool "Build the OpenWrt SDK"
+	default n
 	help
-	  Build an OpenWrt SDK.
 	  This is essentially a stripped-down version of the buildroot
 	  with a precompiled toolchain. It can be used to develop and
 	  test packages for OpenWrt before including them in the buildroot
 
 
+

--- a/target/sdk/Makefile
+++ b/target/sdk/Makefile
@@ -1,33 +1,30 @@
 # $Id$
 
 include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
 
 PKG_OS:=$(shell uname -s)
 PKG_CPU:=$(shell uname -m)
 
-PKG_RELEASE:=1
-SDK_NAME:=OpenWrt-SDK-$(PKG_OS)-$(PKG_CPU)-$(PKG_RELEASE)
-
+SDK_NAME:=OpenWrt-SDK-$(BOARD)-$(KERNEL)-for-$(PKG_OS)-$(PKG_CPU)
 SDK_BUILD_DIR:=$(BUILD_DIR)/$(SDK_NAME)
 
 all: compile
 
 $(BIN_DIR)/$(SDK_NAME).tar.bz2:
 	(cd $(STAGING_DIR); \
-		rm -rf info man share; \
+		rm -rf info man share stampfiles; \
 		cd usr; \
 		rm -rf doc info man share; \
 	)
 	rm -rf $(SDK_BUILD_DIR)
-	mkdir -p $(SDK_BUILD_DIR)/dl $(SDK_BUILD_DIR)/examples $(SDK_BUILD_DIR)/package
-	$(CP) $(STAGING_DIR) $(SCRIPT_DIR) $(TOPDIR)/docs $(SDK_BUILD_DIR)/
-	$(CP) $(TOPDIR)/package/strace $(TOPDIR)/package/iproute2 $(SDK_BUILD_DIR)/examples
-	$(CP) $(TOPDIR)/rules.mk $(SDK_BUILD_DIR)/
+	mkdir -p $(SDK_BUILD_DIR)/dl $(SDK_BUILD_DIR)/package
+	$(CP) $(STAGING_DIR) $(INCLUDE_DIR) $(SCRIPT_DIR) $(TOPDIR)/docs $(SDK_BUILD_DIR)/
+	$(CP) $(TOPDIR)/rules.mk $(TOPDIR)/.config $(SDK_BUILD_DIR)/
+	$(CP) $(TOPDIR)/package/Makefile $(SDK_BUILD_DIR)/package/
 	$(CP) ./files/Makefile.sdk $(SDK_BUILD_DIR)/Makefile
 	$(CP) ./files/README.SDK $(SDK_BUILD_DIR)/
-	$(CP) ./files/depend.mk $(SDK_BUILD_DIR)/package/
-	$(CP) $(TOPDIR)/package/rules.mk $(SDK_BUILD_DIR)/package/
-	egrep '^CONFIG_(ARCH|WGET|STAGING|JLEVEL|LARGEFILE|TARGET_OPT)' $(TOPDIR)/.config > $(SDK_BUILD_DIR)/.config
+	echo OPENWRTVERSION:=$(OPENWRTVERSION) > $(SDK_BUILD_DIR)/.version.mk
 	find $(SDK_BUILD_DIR) -name .svn | xargs rm -rf 
 	find $(SDK_BUILD_DIR) -name CVS | xargs rm -rf 
 	(cd $(BUILD_DIR); \

--- a/target/sdk/files/Makefile.sdk
+++ b/target/sdk/files/Makefile.sdk
@@ -1,43 +1,67 @@
-# OpenWrt SDK Makefile
-TOPDIR:=${shell pwd}
+# Makefile for OpenWrt
+#
+# Copyright (C) 2006 by Felix Fietkau <openwrt@nbd.name>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+RELEASE:=Kamikaze
+#VERSION:=2.0 # uncomment for final release
+
+#--------------------------------------------------------------
+# Just run 'make menuconfig', configure stuff, then run 'make'.
+# You shouldn't need to mess with anything beyond this point...
+#--------------------------------------------------------------
+TOPDIR=${shell pwd}
 export TOPDIR
-DEVELOPER:=1
+
+include $(TOPDIR)/.version.mk
+export OPENWRTVERSION
+
+DEVELOPER=1
 export DEVELOPER
 
-include $(TOPDIR)/rules.mk
-include $(TOPDIR)/package/depend.mk
+all: world
 
-PACKAGES:=$(filter-out %.mk,$(shell ls $(TOPDIR)/package))
-PACKAGES_PREPARE:=$(foreach package,$(PACKAGES),$(package)-prepare)
-PACKAGES_COMPILE:=$(foreach package,$(PACKAGES),$(package)-compile)
-PACKAGES_CLEAN:=$(foreach package,$(PACKAGES),$(package)-clean)
+.pkginfo: FORCE
+ifneq ($(shell ./scripts/timestamp.pl -p .pkginfo package Makefile),.pkginfo)
+	@echo Collecting package info...
+	@-for dir in package/*/; do \
+		echo Source-Makefile: $${dir}Makefile; \
+		$(MAKE) --no-print-dir DUMP=1 -C $$dir 2>&- || true; \
+	done > $@
+endif
 
-all: compile package_index
-compile: $(PACKAGES_COMPILE)
-clean: $(PACKAGES_CLEAN)
-	rm -rf $(BUILD_DIR)
-	rm -rf bin
+pkginfo-clean: FORCE
+	-rm -f .pkginfo .config.in
+
+package/%: .pkginfo FORCE
+	$(MAKE) -C package $(patsubst package/%,%,$@) SDK=1
+
+download: FORCE
+	$(MAKE) package/download
+
+world: FORCE
+	$(MAKE) package/compile
+
+clean: FORCE
+	rm -rf build_* bin
 
 distclean: clean
-	rm -rf $(DL_DIR)
+	rm -rf dl .pkg*
 
-%-prepare: $(BUILD_DIR)
-	@$(MAKE) -C package/$(patsubst %-prepare,%,$@) prepare
+.PHONY: FORCE
+FORCE:
 
-%-compile: %-prepare 
-	@$(MAKE) -C package/$(patsubst %-compile,%,$@) compile
-
-%-clean:
-	@$(MAKE) -C package/$(patsubst %-clean,%,$@) clean
-
-
-$(BUILD_DIR):
-	mkdir -p $@
-	mkdir -p $(DL_DIR)
-	
-package_index:
-	(cd $(PACKAGE_DIR); \
-		$(STAGING_DIR)/usr/bin/ipkg-make-index . > Packages \
-	)
-
-

--- a/target/sdk/files/depend.mk
+++ /dev/null
@@ -1,7 +1,1 @@
-# You can put your package dependencies in here
-# Example (make openvpn depend on openssl):
-#	openvpn-compile: openssl-compile
-#
-# Note: This file is not present in the full buildroot. There you
-# have to put your package dependencies in buildroot/package/Makefile
 

comments