diff options
Diffstat (limited to 'target/sdk')
-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 |
3 files changed, 69 insertions, 93 deletions
diff --git a/target/sdk/Makefile b/target/sdk/Makefile index a05b7c6281..05ae321616 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 8b054b447f..f1e0eadbea 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 43bdcc8709..7adb2e3797 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) |