Small bugfix for dependency handling - mostly for base-files and symlinks
[openwrt-10.03/.git] / include / host-build.mk
1
2 # Copyright (C) 2006 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(INCLUDE_DIR)/host.mk
9 include $(INCLUDE_DIR)/unpack.mk
10 include $(INCLUDE_DIR)/depends.mk
11
12 STAMP_PREPARED=$(PKG_BUILD_DIR)/.prepared
13 STAMP_CONFIGURED=$(PKG_BUILD_DIR)/.configured
14 STAMP_BUILT=$(PKG_BUILD_DIR)/.built
15
16 ifneq ($(strip $(PKG_UNPACK)),)
17   define Build/Prepare/Default
18         $(PKG_UNPACK)
19         @if [ -d ./patches ]; then \
20                 $(PATCH) $(PKG_BUILD_DIR) ./patches; \
21         fi
22   endef
23 endif
24
25 define Build/Prepare
26   $(call Build/Prepare/Default)
27 endef
28
29 define Build/Configure/Default
30         @(cd $(PKG_BUILD_DIR)/$(3); \
31         [ -x configure ] && \
32                 $(2) \
33                 CPPFLAGS="-I$(STAGING_DIR)/host/include" \
34                 LDFLAGS="-L$(STAGING_DIR)/host/lib" \
35                 ./configure \
36                 --target=$(GNU_TARGET_NAME) \
37                 --host=$(GNU_TARGET_NAME) \
38                 --build=$(GNU_HOST_NAME) \
39                 --program-prefix="" \
40                 --program-suffix="" \
41                 --prefix=/usr \
42                 --exec-prefix=/usr \
43                 --bindir=/usr/bin \
44                 --sbindir=/usr/sbin \
45                 --libexecdir=/usr/lib \
46                 --sysconfdir=/etc \
47                 --datadir=/usr/share \
48                 --localstatedir=/var \
49                 --mandir=/usr/man \
50                 --infodir=/usr/info \
51                 $(DISABLE_NLS) \
52                 $(1); \
53                 true; \
54         )
55 endef
56
57 define Build/Configure
58   $(call Build/Configure/Default)
59 endef
60
61 define Build/Compile/Default
62         $(MAKE) -C $(PKG_BUILD_DIR) $(1)
63 endef
64
65 define Build/Compile
66   $(call Build/Compile/Default)
67 endef
68
69                 
70 ifneq ($(strip $(PKG_SOURCE)),)
71   download: $(DL_DIR)/$(PKG_SOURCE)
72
73   $(DL_DIR)/$(PKG_SOURCE):
74         mkdir -p $(DL_DIR)
75         $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL)
76
77   $(STAMP_PREPARED): $(DL_DIR)/$(PKG_SOURCE)
78 endif
79
80 ifneq ($(CONFIG_AUTOREBUILD),)
81   define HostBuild/Autoclean
82     $(PKG_BUILD_DIR)/.dep_files: $(STAMP_PREPARED)
83     $(call rdep,${CURDIR} $(PKG_FILE_DEPEND),$(STAMP_PREPARED),$(TMP_DIR)/.packagedir_$(shell echo "${CURDIR}" | md5s))
84     $(call rdep,$(PKG_BUILD_DIR),$(STAMP_BUILT),$(PKG_BUILD_DIR)/.dep_files, -and -not -path "/.*" -and -not -path "*/ipkg*")
85   endef
86 endif
87
88 define HostBuild
89   ifeq ($(DUMP),)
90     $(call HostBuild/Autoclean)
91   endif
92   
93   $(STAMP_PREPARED):
94         @-rm -rf $(PKG_BUILD_DIR)
95         @mkdir -p $(PKG_BUILD_DIR)
96         $(call Build/Prepare)
97         touch $$@
98
99   $(STAMP_CONFIGURED): $(STAMP_PREPARED)
100         $(call Build/Configure)
101         touch $$@
102
103   $(STAMP_BUILT): $(STAMP_CONFIGURED)
104         $(call Build/Compile)
105         @$(NO_TRACE_MAKE) $(PKG_BUILD_DIR)/.dep_files
106         touch $$@
107
108   $(STAGING_DIR)/stampfiles/.host_$(PKG_NAME)-installed: $(STAMP_BUILT)
109         $(call Build/Install)
110         mkdir -p $$(shell dirname $$@)
111         touch $$@
112         
113   ifdef Build/Install
114     install: $(STAGING_DIR)/stampfiles/.host_$(PKG_NAME)-installed
115   endif
116
117   package-clean: FORCE
118         $(call Build/Clean)
119         $(call Build/Uninstall)
120         rm -f $(STAGING_DIR)/stampfiles/.host_$(PKG_NAME)-installed
121
122   download:
123   prepare: $(STAMP_PREPARED)
124   configure: $(STAMP_CONFIGURED)
125   compile: $(STAMP_BUILT)
126   install:
127   clean: FORCE
128         $(call Build/Clean)
129         rm -rf $(PKG_BUILD_DIR)
130
131 endef