Changeset 3679


Ignore:
Timestamp:
2006-04-20T05:45:03+02:00 (12 years ago)
Author:
nbd
Message:

add proper package dependency handling

Location:
branches/buildroot-ng/openwrt
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/buildroot-ng/openwrt/package/rules.mk

    r3676 r3679  
    44else 
    55all: compile 
    6 endif 
    76 
    87define Build/DefaultTargets 
     
    1312        touch $$@ 
    1413 
    15 $(PKG_BUILD_DIR)/.configured: 
     14$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.prepared 
    1615        $(call Build/Configure) 
    1716        touch $$@ 
    1817 
    19 $(PKG_BUILD_DIR)/.built: 
     18ifeq ($(shell $(SCRIPT_DIR)/timestamp.pl -p $(PKG_BUILD_DIR) .),.) 
     19$(PKG_BUILD_DIR)/.prepared: clean 
     20endif 
     21 
     22$(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/.configured 
    2023        $(call Build/Compile) 
    2124        touch $$@ 
    2225 
     26package-clean: 
     27        $(call Build/Clean) 
     28        rm -f $(PKG_BUILD_DIR)/.built 
     29 
     30package-recompile: 
     31        rm -f $(PKG_BUILD_DIR)/.built 
     32 
     33.PHONY: package-clean package-recompile 
     34 
    2335define Build/DefaultTargets 
    2436endef 
    2537endef 
    26  
     38endif 
    2739 
    2840define Package/Default 
     
    6577 
    6678ifneq ($(PACKAGE_$(1)),) 
    67 compile-targets: $$(IPKG_$(1)) 
     79COMPILE_$(1):=1 
    6880endif 
    6981ifneq ($(DEVELOPER),) 
    70 compile-targets: $$(IPKG_$(1)) 
     82COMPILE_$(1):=1 
    7183endif 
    7284ifeq ($(PACKAGE_$(1)),y) 
    7385install-targets: $$(INFO_$(1)) 
    7486endif 
     87 
     88ifneq ($$(COMPILE_$(1)),) 
     89ifeq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p -x ipkg $$(IPKG_$(1)) $(PKG_BUILD_DIR)),$(PKG_BUILD_DIR)) 
     90$(PKG_BUILD_DIR)/.built: package-recompile 
     91endif 
     92 
     93compile-targets: $$(IPKG_$(1)) 
     94endif 
     95 
    7596 
    7697IDEPEND_$(1):=$$(strip $$(DEPENDS)) 
     
    98119        echo "Architecture: $(PKGARCH)" >> $$(IDIR_$(1))/CONTROL/control 
    99120        echo "Description: $(TITLE)" >> $$(IDIR_$(1))/CONTROL/control 
    100         echo "$(DESCRIPTION)" | sed -e 's,\\,\n ,g' >> $$(IDIR_$(1))/CONTROL/control 
     121        echo "  $(DESCRIPTION)" | sed -e 's,\\,\n ,g' >> $$(IDIR_$(1))/CONTROL/control 
    101122        chmod 644 $$(IDIR_$(1))/CONTROL/control 
    102123        for file in conffiles preinst postinst prerm postrm; do \ 
     
    104125        done 
    105126 
    106 $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $(PKG_BUILD_DIR)/.built $(PACKAGE_DIR) 
     127$$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $(PKG_BUILD_DIR)/.built 
    107128        $(call Package/$(1)/install,$$(IDIR_$(1))) 
     129        mkdir -p $(PACKAGE_DIR) 
    108130        $(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR) 
    109131 
     
    112134 
    113135$(1)-clean: 
    114         rm -f $$(IPKG_$(1)) 
     136        rm -f $(PACKAGE_DIR)/$(1)_* 
    115137clean: $(1)-clean 
    116  
    117 PACKAGES += $(1) 
    118138 
    119139ifneq ($(__DEFAULT_TARGETS),1) 
     
    164184endef 
    165185 
     186define Build/Clean 
     187        $(MAKE) clean 
     188endef 
     189 
    166190ifneq ($(DUMP),) 
    167191dumpinfo: 
     
    192216        @$(MAKE) install-targets $(MAKE_TRACE) 
    193217 
    194 mostlyclean: 
    195218rebuild: 
    196219        $(CMD_TRACE) "rebuilding... " 
    197         @-$(MAKE) mostlyclean 2>&1 >/dev/null 
    198         if [ -f $(PKG_BUILD_DIR)/.built ]; then \ 
    199                 $(MAKE) clean $(MAKE_TRACE); \ 
    200         fi 
    201         $(MAKE) compile $(MAKE_TRACE) 
     220        $(MAKE) package-clean compile $(MAKE_TRACE) 
    202221 
    203222$(PACKAGE_DIR): 
     
    211230endif 
    212231 
    213 .PHONY: all source prepare compile install clean dumpinfo 
     232.PHONY: all source prepare compile install clean rebuild dumpinfo compile-targets install-targets clean-targets 
  • branches/buildroot-ng/openwrt/rules.mk

    r3112 r3679  
     1ifeq ($(DUMP),) 
    12include $(TOPDIR)/.config 
     3endif 
     4 
    25SHELL=/bin/bash 
    36export SHELL 
  • branches/buildroot-ng/openwrt/scripts/timestamp.pl

    r3678 r3679  
    22use strict; 
    33 
    4 sub get_ts($) { 
     4sub get_ts($$) { 
    55        my $path = shift; 
     6        my $options = shift; 
    67        my $ts = 0; 
    7         open FIND, "find $path -not -path \\*.svn\\* -and -not -path \\*CVS\\* 2>/dev/null |"; 
     8        my $fn = ""; 
     9        -d "$path" and $path .= "/*"; 
     10        open FIND, "find $path -not -path \\*.svn\\* -and -not -path \\*CVS\\* $options 2>/dev/null |"; 
    811        while (<FIND>) { 
    9                 open FILE, "<$_"; 
     12                chomp; 
     13                my $file = $_; 
     14                open FILE, "<$file"; 
    1015                my @stat = stat FILE; 
    1116                close FILE; 
    12                 $ts = $stat[9] if ($stat[9] > $ts); 
     17                if ($stat[9] > $ts) { 
     18                        $ts = $stat[9]; 
     19                        $fn = $file; 
     20                } 
    1321        } 
    1422        close FIND; 
    15         return $ts; 
     23        return ($ts, $fn); 
    1624} 
    1725 
     
    2028my $n = "."; 
    2129my %options; 
    22 foreach my $path (@ARGV) { 
    23         if ($path =~ /^-/) { 
     30while (@ARGV > 0) { 
     31        my $path = shift @ARGV; 
     32        if ($path =~ /^-x/) { 
     33                my $str = shift @ARGV; 
     34                $options{"-x"} .= " -and -not -path \\*".$str."\\*" 
     35        } elsif ($path =~ /^-/) { 
    2436                $options{$path} = 1; 
    2537        } else { 
    26                 my $tmp = get_ts($path); 
     38                my ($tmp, $fname) = get_ts($path, $options{"-x"}); 
    2739                if ($tmp > $ts) { 
    28                         $n = $path; 
     40                        if ($options{'-f'}) { 
     41                                $n = $fname; 
     42                        } else { 
     43                                $n = $path; 
     44                        } 
    2945                        $ts = $tmp; 
    3046                } 
Note: See TracChangeset for help on using the changeset viewer.