summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Config.in35
-rw-r--r--package/Makefile5
-rw-r--r--target/Makefile10
-rw-r--r--target/linux/Config.in33
-rw-r--r--target/sdk/Config.in8
-rw-r--r--target/sdk/Makefile19
-rw-r--r--target/sdk/files/Makefile.sdk86
-rw-r--r--target/sdk/files/depend.mk6
8 files changed, 112 insertions, 90 deletions
diff --git a/Config.in b/Config.in
index 740205e3ec..74bd648465 100644
--- a/Config.in
+++ b/Config.in
@@ -40,7 +40,42 @@ config JLEVEL
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"
diff --git a/package/Makefile b/package/Makefile
index 2b7f0db764..e947bcfaea 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -27,9 +27,12 @@ $(STAMP_DIR) $(TARGET_DIR):
%-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))
diff --git a/target/Makefile b/target/Makefile
index 9205f5b986..0a1434472a 100644
--- a/target/Makefile
+++ b/target/Makefile
@@ -5,16 +5,18 @@ all: install
$(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-*
diff --git a/target/linux/Config.in b/target/linux/Config.in
index 23c96b76df..71f88d7a52 100644
--- 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"
diff --git a/target/sdk/Config.in b/target/sdk/Config.in
index 343352ad05..538b473d00 100644
--- a/target/sdk/Config.in
+++ b/target/sdk/Config.in
@@ -1,9 +1,9 @@
-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
+
diff --git a/target/sdk/Makefile b/target/sdk/Makefile
index cfcf8c5e05..01438a6e0d 100644
--- 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); \
diff --git a/target/sdk/files/Makefile.sdk b/target/sdk/files/Makefile.sdk
index 6d5f61ad11..50723232bc 100644
--- a/target/sdk/files/Makefile.sdk
+++ b/target/sdk/files/Makefile.sdk
@@ -1,42 +1,66 @@
-# 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
-export DEVELOPER
-include $(TOPDIR)/rules.mk
-include $(TOPDIR)/package/depend.mk
+include $(TOPDIR)/.version.mk
+export OPENWRTVERSION
-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)
+DEVELOPER=1
+export DEVELOPER
-all: compile package_index
-compile: $(PACKAGES_COMPILE)
-clean: $(PACKAGES_CLEAN)
- rm -rf $(BUILD_DIR)
- rm -rf bin
+all: world
-distclean: clean
- rm -rf $(DL_DIR)
+.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
+
+pkginfo-clean: FORCE
+ -rm -f .pkginfo .config.in
-%-prepare: $(BUILD_DIR)
- @$(MAKE) -C package/$(patsubst %-prepare,%,$@) prepare
+package/%: .pkginfo FORCE
+ $(MAKE) -C package $(patsubst package/%,%,$@) SDK=1
-%-compile: %-prepare
- @$(MAKE) -C package/$(patsubst %-compile,%,$@) compile
+download: FORCE
+ $(MAKE) package/download
-%-clean:
- @$(MAKE) -C package/$(patsubst %-clean,%,$@) clean
+world: FORCE
+ $(MAKE) package/compile
+clean: FORCE
+ rm -rf build_* bin
-$(BUILD_DIR):
- mkdir -p $@
- mkdir -p $(DL_DIR)
-
-package_index:
- (cd $(PACKAGE_DIR); \
- $(STAGING_DIR)/usr/bin/ipkg-make-index . > Packages \
- )
+distclean: clean
+ rm -rf dl .pkg*
+.PHONY: FORCE
+FORCE:
diff --git a/target/sdk/files/depend.mk b/target/sdk/files/depend.mk
deleted file mode 100644
index d7b844db55..0000000000
--- a/target/sdk/files/depend.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# 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