diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-12-14 00:33:25 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-12-14 00:33:25 +0000 | 
| commit | 7a694d4e5f8054d5c4b05fbed69fb1a38f387e29 (patch) | |
| tree | 4c6520daf312b09c3d797d2e2d73ed5aeb3e474b | |
| parent | 9a371dce303c472a82fff666857a48a1022d16ec (diff) | |
fix the sdk
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9747 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rw-r--r-- | include/scan.mk | 2 | ||||
| -rw-r--r-- | include/toplevel.mk | 7 | ||||
| -rw-r--r-- | package/Makefile | 10 | ||||
| -rw-r--r-- | scripts/metadata.pm | 2 | ||||
| -rw-r--r-- | target/sdk/Makefile | 33 | ||||
| -rw-r--r-- | target/sdk/files/Makefile | 119 | ||||
| -rw-r--r-- | target/sdk/files/package/rules.mk | 10 | 
7 files changed, 84 insertions, 99 deletions
diff --git a/include/scan.mk b/include/scan.mk index 28f526aa3..3d97a4f5c 100644 --- a/include/scan.mk +++ b/include/scan.mk @@ -49,7 +49,7 @@ $(TMP_DIR)/info/.files-$(SCAN_TARGET).mk: $(FILELIST)  -include $(TMP_DIR)/info/.files-$(SCAN_TARGET).mk -$(TARGET_STAMP): +$(TARGET_STAMP)::  	( \  		$(NO_TRACE_MAKE) $(FILELIST); \  		MD5SUM=$$(cat $(FILELIST) | (md5sum || md5) | awk '{print $$1}'); \ diff --git a/include/toplevel.mk b/include/toplevel.mk index 63325aa01..4e194bf50 100644 --- a/include/toplevel.mk +++ b/include/toplevel.mk @@ -12,7 +12,12 @@ PREP_MK= OPENWRT_BUILD= QUIET=0  include $(TOPDIR)/include/verbose.mk -REVISION:=$(shell $(TOPDIR)/scripts/getver.sh) +ifeq ($(SDK),1) +  include $(TOPDIR)/include/version.mk +else +  REVISION:=$(shell $(TOPDIR)/scripts/getver.sh) +endif +  OPENWRTVERSION:=$(RELEASE)$(if $(REVISION), ($(REVISION)))  export RELEASE  export REVISION diff --git a/package/Makefile b/package/Makefile index 1df4537db..e618a90b6 100644 --- a/package/Makefile +++ b/package/Makefile @@ -10,9 +10,13 @@ curdir:=package  -include $(TMP_DIR)/.packagedeps  $(curdir)/builddirs:=$(sort $(package-) $(package-y) $(package-m)) -$(curdir)/builddirs-default:=. $(sort $(package-y) $(package-m)) -$(curdir)/builddirs-prereq:=. $(sort $(prereq-y) $(prereq-m)) -$(curdir)/builddirs-install:=. $(sort $(package-y)) +ifeq ($(SDK),1) +  $(curdir)/builddirs-install:=. +else +  $(curdir)/builddirs-default:=. $(sort $(package-y) $(package-m)) +  $(curdir)/builddirs-prereq:=. $(sort $(prereq-y) $(prereq-m)) +  $(curdir)/builddirs-install:=. $(sort $(package-y)) +endif  $(curdir)/install:=$(curdir)/install-cleanup diff --git a/scripts/metadata.pm b/scripts/metadata.pm index 917fbec07..a220231f0 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -115,7 +115,7 @@ sub parse_package_metadata($) {  		/^Preconfig-Default:\s*(.*?)\s*$/ and $preconfig->{default} = $1;  	}  	close FILE; -	return %category; +	return 1;  }  1; diff --git a/target/sdk/Makefile b/target/sdk/Makefile index a05b7c628..05ae32161 100644 --- a/target/sdk/Makefile +++ b/target/sdk/Makefile @@ -15,27 +15,32 @@ PKG_CPU:=$(shell uname -m)  SDK_NAME:=OpenWrt-SDK-$(BOARD)-for-$(PKG_OS)-$(PKG_CPU)  SDK_BUILD_DIR:=$(BUILD_DIR)/$(SDK_NAME) -EXCLUDE_DIRS:=ccache stamp +EXCLUDE_DIRS:=*/ccache */stamp */man */share */stampfiles */info  all: compile  $(BIN_DIR)/$(SDK_NAME).tar.bz2: clean  	mkdir -p $(SDK_BUILD_DIR)/dl $(SDK_BUILD_DIR)/package  	$(CP) $(INCLUDE_DIR) $(SCRIPT_DIR) $(TOPDIR)/docs $(SDK_BUILD_DIR)/ -	$(TAR) -cf - -C $(TOPDIR) --exclude="$(EXCLUDE_DIRS)" staging_dir/$(ARCH) | \ +	$(TAR) -cf - -C $(TOPDIR) $(foreach exclude,$(EXCLUDE_DIRS),--exclude="$(exclude)") --exclude="staging_dir/$(ARCH)" staging_dir | \  		$(TAR) -xf - -C $(SDK_BUILD_DIR) -	(cd $(SDK_BUILD_DIR)/staging_dir/$(ARCH); \ -		rm -rf info man share stampfiles; \ -		cd usr; \ -		rm -rf doc info man share; \ -	) -	$(CP) $(TOPDIR)/rules.mk $(TOPDIR)/.config $(SDK_BUILD_DIR)/ -	$(CP) $(TOPDIR)/package/Makefile $(SDK_BUILD_DIR)/package/ -	$(CP) ./files/Makefile $(SDK_BUILD_DIR)/ -	$(CP) ./files/README.SDK $(SDK_BUILD_DIR)/ -	$(CP) ./files/package/rules.mk $(SDK_BUILD_DIR)/package/ -	echo OPENWRTVERSION:="$(OPENWRTVERSION)" > $(SDK_BUILD_DIR)/.version.mk -	rm -rf $(SDK_BUILD_DIR)/staging_dir/$(ARCH)/{ccache,stamp} +	mkdir -p $(SDK_BUILD_DIR)/target/linux +	$(CP) $(GENERIC_PLATFORM_DIR) $(PLATFORM_DIR) $(SDK_BUILD_DIR)/target/linux/ +	rm -rf \ +		$(SDK_BUILD_DIR)/target/linux/*/files \ +		$(SDK_BUILD_DIR)/target/linux/*/patches +	$(CP) \ +		$(TOPDIR)/rules.mk \ +		$(TOPDIR)/.config \ +		./files/Makefile \ +		./files/README.SDK \ +		$(SDK_BUILD_DIR)/ +	$(CP) \ +		./files/package/rules.mk \ +		$(TOPDIR)/package/Makefile \ +		$(SDK_BUILD_DIR)/package/ +	echo REVISION:="$(REVISION)" > $(SDK_BUILD_DIR)/include/version.mk +	find $(SDK_BUILD_DIR) -name .git | $(XARGS) rm -rf  	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 b/target/sdk/files/Makefile index 8b054b447..f1e0eadbe 100644 --- a/target/sdk/files/Makefile +++ b/target/sdk/files/Makefile @@ -1,89 +1,54 @@  # Makefile for OpenWrt  # -# Copyright (C) 2006 by Felix Fietkau <openwrt@nbd.name> +# Copyright (C) 2007 OpenWrt.org  # -# 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 is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information.  # -# 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 - -SDK=1 -export SDK - -export IS_TTY=$(shell tty -s && echo 1 || echo 0) -include $(TOPDIR)/include/verbose.mk - -all: world -define stamp -tmp/info/.stamp-$(1)-$(shell ls $(2)/*/Makefile $(5) | (md5sum || md5) 2>/dev/null | cut -d' ' -f1) -endef - -STAMP=$(call stamp,packageinfo,package) - -$(STAMP): -	@mkdir -p tmp/info -	@rm -f tmp/info/.stamp-packageinfo* +TOPDIR:=${CURDIR} +LC_ALL:=C +LANG:=C +SDK:=1 +export TOPDIR LC_ALL LANG SDK + +world: + +include $(TOPDIR)/include/host.mk + +ifneq ($(OPENWRT_BUILD),1) +  override OPENWRT_BUILD=1 +  export OPENWRT_BUILD +  include $(TOPDIR)/include/debug.mk +  include $(TOPDIR)/include/depends.mk +  include $(TOPDIR)/include/toplevel.mk +else +  include rules.mk +  include $(INCLUDE_DIR)/depends.mk +  include $(INCLUDE_DIR)/subdir.mk +  include package/Makefile + +$(package/stamp-compile): $(BUILD_DIR)/.prepared +$(BUILD_DIR)/.prepared: Makefile +	@mkdir -p $$(dirname $@) +	@mkdir -p bin/packages  	@touch $@ -define filedep -$(foreach FILE,$(shell ls package/*/Makefile), -tmp/.packageinfo: $(FILE) -$(FILE): -	@true -) -endef - -$(eval $(filedep)) - -tmp/.packageinfo: $(STAMP) -	@echo -n Collecting package info...  -	@$(NO_TRACE_MAKE) -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="" - -package/%: FORCE -	@$(NO_TRACE_MAKE) -s tmp/.packageinfo -	$(MAKE) -C package $(patsubst package/%,%,$@) SDK=1 +clean: FORCE +	rm -rf $(BUILD_DIR) $(BIN_DIR) -download: FORCE -	$(MAKE) package/download +dirclean: clean +	rm -rf $(TMP_DIR) -world: FORCE -	$(MAKE) package/compile -	-( \ -		cd package; \ -		for configfile in `find . -maxdepth 2 -name Config.in` ; do \ -			$(MAKE) compile -C `dirname $$configfile` ; \ -		done \ -	) +# check prerequisites before starting to build +prereq: $(package/stamp-prereq) ; -clean: FORCE -	rm -rf build_* bin +world: prepare $(package/stamp-compile) FORCE +	@for configfile in `find package -maxdepth 2 -name Config.in` ; do \ +		$(MAKE) compile -C `dirname $$configfile`; \ +	done +	@$(MAKE) package/index -distclean: clean -	rm -rf dl .pkg* +.PHONY: clean dirclean prereq prepare world -.PHONY: FORCE -FORCE: +endif diff --git a/target/sdk/files/package/rules.mk b/target/sdk/files/package/rules.mk index 43bdcc870..7adb2e379 100644 --- a/target/sdk/files/package/rules.mk +++ b/target/sdk/files/package/rules.mk @@ -1,7 +1,13 @@  # invoke ipkg with configuration in $(STAGING_DIR)/etc/ipkg.conf  -IPKG := IPKG_INSTROOT=$(TARGET_DIR) IPKG_CONF_DIR=$(IPKG_CONF) $(SCRIPT_DIR)/ipkg -force-defaults -force-depends +IPKG := IPKG_INSTROOT=$(TARGET_DIR) IPKG_CONF_DIR=$(STAGING_DIR)/etc $(SCRIPT_DIR)/ipkg -force-defaults -force-depends  IPKG_STATE_DIR := $(TARGET_DIR)/usr/lib/ipkg +# invoke ipkg-build with some default options +IPKG_BUILD := PATH="$(TARGET_PATH)" ipkg-build -c -o root -g root + +# where to build (and put) .ipk packages +IPKG_TARGET_DIR := $(PACKAGE_DIR) +  ifneq ($(DUMP),)  dump:  .PHONY: dump @@ -15,7 +21,7 @@ INFO_$(1):=$(IPKG_STATE_DIR)/info/$(2).list  ifneq ($(BR2_PACKAGE_$(1)),)  compile-targets: $$(IPKG_$(1))  endif -ifneq ($(DEVELOPER),) +ifneq ($(DEVELOPER)$(SDK),)  compile-targets: $$(IPKG_$(1))  endif  ifeq ($(BR2_PACKAGE_$(1)),y)  | 
