diff --git a/openwrt/package/Config.in b/openwrt/package/Config.in index b5fe1d261f..dfb87ce1b5 100644 --- a/openwrt/package/Config.in +++ b/openwrt/package/Config.in @@ -68,6 +68,9 @@ source "package/postgresql/Config.in" source "package/fuse/Config.in" source "package/speex/Config.in" +comment "Extra stuff" +source "package/sdk/Config.in" + endmenu menu "Kernel Configuration" diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile index 23fefcd0cc..9259e4c334 100644 --- a/openwrt/package/Makefile +++ b/openwrt/package/Makefile @@ -47,6 +47,7 @@ package-$(BR2_PACKAGE_PPTP) += pptp package-$(BR2_PACKAGE_PPTPD) += pptpd package-$(BR2_PACKAGE_QUAGGA) += quagga package-$(BR2_PACKAGE_RADVD) += radvd +package-$(BR2_PACKAGE_SDK) += sdk package-$(BR2_PACKAGE_SER) += ser package-$(BR2_PACKAGE_SETSERIAL) += setserial package-$(BR2_PACKAGE_SHFS) += shfs @@ -62,6 +63,9 @@ package-$(BR2_PACKAGE_LIBMYSQLCLIENT) += mysql package-$(BR2_PACKAGE_LIBPCAP) += libpcap package-$(BR2_PACKAGE_LIBPQ) += postgresql +DEV_LIBS:=tcp_wrappers glib ncurses openssl pcre popt zlib libnet libpcap mysql postgresql iptables matrixssl lzo gmp fuse portmap libelf +DEV_LIBS_COMPILE:=$(patsubst %,%-compile,$(DEV_LIBS)) + all: compile install clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m)) linux-clean compile: $(patsubst %,%-compile,$(package-y) $(package-m)) @@ -79,7 +83,6 @@ endif ifneq ($(BR2_PACKAGE_ASTERISK_MYSQL),) asterisk-compile: mysql-compile endif - openswan-compile: gmp-compile nocatsplash-compile: glib-compile arpwatch-compile: libpcap-compile @@ -94,6 +97,7 @@ libnet-compile: libpcap-compile mysql-compile: ncurses-compile zlib-compile postgresql-compile: zlib-compile +sdk-compile: $(DEV_LIBS_COMPILE) $(patsubst %,%-prepare,$(package-y) $(package-m) $(package-)): linux-install %-prepare: diff --git a/openwrt/package/sdk/Config.in b/openwrt/package/sdk/Config.in new file mode 100644 index 0000000000..1b0c7ce586 --- /dev/null +++ b/openwrt/package/sdk/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_SDK + bool "OpenWrt SDK" + default y + 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/openwrt/package/sdk/Makefile b/openwrt/package/sdk/Makefile new file mode 100644 index 0000000000..b42dda4e42 --- /dev/null +++ b/openwrt/package/sdk/Makefile @@ -0,0 +1,41 @@ +# $Id$ + +include $(TOPDIR)/rules.mk + +PKG_OS:=$(shell uname -s) +PKG_CPU:=$(shell uname -m) + +PKG_RELEASE:=1 +PKG_NAME:=OpenWrt-SDK-$(PKG_OS)-$(PKG_CPU)-$(PKG_RELEASE) + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +all: compile + +$(BIN_DIR)/$(PKG_NAME).tar.bz2: + (cd $(STAGING_DIR); \ + rm -rf info man share; \ + cd usr; \ + rm -rf doc info man share; \ + ) + rm -rf $(PKG_BUILD_DIR) + mkdir -p $(PKG_BUILD_DIR)/dl $(PKG_BUILD_DIR)/examples $(PKG_BUILD_DIR)/package + cp -a $(STAGING_DIR) $(SCRIPT_DIR) $(TOPDIR)/docs $(PKG_BUILD_DIR)/ + cp -a $(TOPDIR)/package/strace $(TOPDIR)/package/iproute2 $(PKG_BUILD_DIR)/examples + cp $(TOPDIR)/rules.mk $(PKG_BUILD_DIR)/ + cp ./files/Makefile.sdk $(PKG_BUILD_DIR)/Makefile + cp ./files/README.SDK $(PKG_BUILD_DIR)/ + cp ./files/depend.mk $(PKG_BUILD_DIR)/package/ + egrep '^BR2_(ARCH|WGET|STAGING|JLEVEL|LARGEFILE|TARGET_OPT)' $(TOPDIR)/.config > $(PKG_BUILD_DIR)/.config + find $(PKG_BUILD_DIR) -name CVS | xargs rm -rf + (cd $(BUILD_DIR); \ + tar cfj $@ $(PKG_NAME); \ + ) + +source: +prepare: +compile: $(BIN_DIR)/$(PKG_NAME).tar.bz2 +install: + +clean: + rm -rf $(PKG_BUILD_DIR) diff --git a/openwrt/package/sdk/files/Makefile.sdk b/openwrt/package/sdk/files/Makefile.sdk new file mode 100644 index 0000000000..d222a3276d --- /dev/null +++ b/openwrt/package/sdk/files/Makefile.sdk @@ -0,0 +1,34 @@ +# OpenWrt SDK Makefile +TOPDIR:=${shell pwd} +export TOPDIR + +include $(TOPDIR)/rules.mk +include $(TOPDIR)/package/depend.mk + +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) + +all: compile +compile: $(PACKAGES_COMPILE) +clean: $(PACKAGES_CLEAN) + rm -rf $(BUILD_DIR) + rm -rf bin + +distclean: clean + rm -rf $(DL_DIR) + +%-prepare: $(BUILD_DIR) + @$(MAKE) -C package/$(patsubst %-prepare,%,$@) prepare + +%-compile: %-prepare + @$(MAKE) -C package/$(patsubst %-compile,%,$@) compile + +%-clean: + @$(MAKE) -C package/$(patsubst %-clean,%,$@) clean + + +$(BUILD_DIR): + mkdir -p $@ + mkdir -p $(DL_DIR) diff --git a/openwrt/package/sdk/files/README.SDK b/openwrt/package/sdk/files/README.SDK new file mode 100644 index 0000000000..454e32b2fc --- /dev/null +++ b/openwrt/package/sdk/files/README.SDK @@ -0,0 +1,7 @@ +This is the OpenWrt SDK. It contains a stripped-down version of +the buildroot. You can use it to test/develop packages without +having to compile your own toolchain or any of the libraries +included with OpenWrt. + +To use it, just put your buildroot-compatible package directory +in the subdir 'package/' and run 'make' from this directory. diff --git a/openwrt/package/sdk/files/depend.mk b/openwrt/package/sdk/files/depend.mk new file mode 100644 index 0000000000..d7b844db55 --- /dev/null +++ b/openwrt/package/sdk/files/depend.mk @@ -0,0 +1,6 @@ +# 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