next round of build system cleanup - convert package/ to new structure
[openwrt.org/openwrt.git] / package / Makefile
blob:a/package/Makefile -> blob:b/package/Makefile
# #
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
# #
# $Id$ # $Id$
   
include $(TOPDIR)/rules.mk curdir:=package
include $(TOPDIR)/.config  
include $(INCLUDE_DIR)/host.mk  
   
all: compile include .config
  -include $(TMP_DIR)/.packagedeps
  $(curdir)/builddirs:=$(sort $(package-) $(package-y) $(package-m))
  $(curdir)/builddirs-compile:=$(sort $(package-y) $(package-m))
  $(curdir)/builddirs-install:=. $(sort $(package-y))
  $(curdir)/builddirs-prereq:=. $(sort $(prereq-y) $(prereq-m))
   
include $(TMP_DIR)/.packagedeps $(curdir)//compile:=.config prereq
  $(curdir)/install:=$(curdir)/install-cleanup
PREREQ_PACKAGES:=$(patsubst %,%-prereq,$(prereq-y) $(prereq-m)) $(curdir)/install-cleanup:
DOWNLOAD_PACKAGES:=$(patsubst %,%-download,$(package-y) $(package-m))  
COMPILE_PACKAGES:=$(patsubst %,%-compile,$(package-y) $(package-m))  
INSTALL_PACKAGES:=$(patsubst %,%-install,$(package-y))  
   
$(STAMP_DIR) $(TARGET_DIR):  
mkdir -p $@  
   
ifeq ($(QUIET),1)  
%-compile %-install: FORCE  
$(MAKE) -j1 -C $* $(patsubst $*-%,%,$@) || { $(call MESSAGE, "*** $* $(patsubst $*-%,%,$@) failed"); false; }  
   
%-prepare %-prereq %-download %-clean: FORCE  
else  
%-prepare %-prereq %-download %-clean %-compile %-install: FORCE  
endif  
$(MAKE) -j1 -C $* $(patsubst $*-%,%,$@)  
   
%-refresh %-update:  
-$(MAKE) -C $* $(patsubst $*-%,%,$@)  
   
%-autorefresh:  
-$(MAKE) -C $* clean refresh QUILT=1  
   
   
# .IGNORE: $(COMPILE_PACKAGES)  
   
$(TMP_DIR)/.packagedeps: $(TMP_DIR)/.packageinfo  
@$(TOPDIR)/scripts/metadata.pl package_mk < $< > $@ || rm -f $@  
   
preconfig:  
clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m))  
prereq: $(PREREQ_PACKAGES)  
download: $(DOWNLOAD_PACKAGES)  
compile: $(COMPILE_PACKAGES)  
refresh: $(patsubst %,%-autorefresh,$(package-y) $(package-m) $(package-))  
   
install-targets: $(INSTALL_PACKAGES)  
install:  
rm -rf $(BUILD_DIR)/root rm -rf $(BUILD_DIR)/root
$(MAKE) install-targets $(MAKE) install-targets
$(MAKE) preconfig $(MAKE) preconfig
@if [ -d $(TOPDIR)/files ]; then \ @if [ -d $(TOPDIR)/files ]; then \
$(CP) $(TOPDIR)/files/. $(BUILD_DIR)/root; \ $(CP) $(TOPDIR)/files/. $(BUILD_DIR)/root; \
fi fi
@mkdir -p $(BUILD_DIR)/root/etc/rc.d @mkdir -p $(BUILD_DIR)/root/etc/rc.d
@( \ @( \
cd $(BUILD_DIR)/root; \ cd $(BUILD_DIR)/root; \
for script in ./etc/init.d/*; do \ for script in ./etc/init.d/*; do \
grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \ grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \
IPKG_INSTROOT=$(BUILD_DIR)/root $(which bash) ./etc/rc.common $$script enable; \ IPKG_INSTROOT=$(BUILD_DIR)/root $(which bash) ./etc/rc.common $$script enable; \
done || true \ done || true \
) )
@-find $(BUILD_DIR)/root -name CVS | $(XARGS) rm -rf @-find $(BUILD_DIR)/root -name CVS | $(XARGS) rm -rf
@-find $(BUILD_DIR)/root -name .svn | $(XARGS) rm -rf @-find $(BUILD_DIR)/root -name .svn | $(XARGS) rm -rf
@-find $(BUILD_DIR)/root -name '.#*' | $(XARGS) rm -f @-find $(BUILD_DIR)/root -name '.#*' | $(XARGS) rm -f
   
index: $(PACKAGE_DIR)/Packages $(curdir)/index: FORCE
   
$(PACKAGE_DIR)/Packages: $(PACKAGE_DIR)/*.ipk  
(cd $(PACKAGE_DIR); $(SCRIPT_DIR)/ipkg-make-index.sh . > Packages) (cd $(PACKAGE_DIR); $(SCRIPT_DIR)/ipkg-make-index.sh . > Packages)
   
symlinks: $(eval $(call stampfile,$(curdir),package,prereq))
../scripts/feeds.sh $(CONFIG_SOURCE_FEEDS) $(CONFIG_SOURCE_FEEDS_REV) $(eval $(call subdir,$(curdir)))
   
ifeq ($(MAKECMDGOALS),compile)  
MAKEFLAGS:=$(MAKEFLAGS) -j$(CONFIG_JLEVEL)  
else  
.NOTPARALLEL:  
endif  
   
comments