3 # Copyright (C) 2007-2009 OpenWrt.org
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
12 export TOPDIR LC_ALL LANG
13 export KBUILD_VERBOSE
=99
16 include $(TOPDIR
)/include/host.mk
18 ifneq ($(OPENWRT_BUILD
),1)
19 override OPENWRT_BUILD
=1
24 include $(INCLUDE_DIR
)/debug.mk
25 include $(INCLUDE_DIR
)/depends.mk
26 include $(INCLUDE_DIR
)/version.mk
31 info: Show a list of available target profiles
32 clean: Remove images and temporary build files
33 image
: Build an image
(see below for more information
).
36 By default
'make image' will create an image with the default
37 target profile and package set. You can use the following parameters
40 make image PROFILE
="<profilename>" # override the default target profile
41 make image PACKAGES
="<pkg1> [<pkg2> [<pkg3> ...]]" # include extra packages
42 make image FILES
="<path>" # include extra files from <path>
45 $(eval
$(call shexport
,Helptext
))
48 echo
"$$$(call shvar,Helptext)"
51 # override variables from rules.mk
52 PACKAGE_DIR
:=$(TOPDIR
)/packages
54 IPKG_TMP
="$(TOPDIR)/tmp/ipkgtmp" \
55 IPKG_INSTROOT
="$(TARGET_DIR)" \
56 IPKG_CONF_DIR
="$(TOPDIR)/tmp" \
57 IPKG_OFFLINE_ROOT
="$(TARGET_DIR)" \
58 $(SCRIPT_DIR
)/ipkg
-force-defaults
61 $(eval
$(call Profile
/Default
))
62 $(eval
$(call Profile
/$(1)))
67 $(1)_PACKAGES
:=$(PACKAGES
)
69 echo
'$(1):'; [ -z
'$(NAME)' ] || echo
' $(NAME)'; echo
' Packages: $(PACKAGES)';
72 include $(INCLUDE_DIR
)/target.mk
75 echo
'Current Target: "$(BOARD)$(if $(SUBTARGET), ($(BOARDNAME)))"'
76 echo
'Default Packages: $(DEFAULT_PACKAGES)'
77 echo
'Available Profiles:'
80 $(TOPDIR
)/tmp
/ipkg.conf
: FORCE
81 @mkdir
-p
$(TOPDIR
)/tmp
82 @echo
'dest root /' > $@
83 @echo
'src packages file:$(PACKAGE_DIR)' >> $@
85 BUILD_PACKAGES
:=$(sort $(DEFAULT_PACKAGES
) $(PACKAGES
) $($(PROFILE
)_PACKAGES
) kernel
)
86 BUILD_PACKAGES
:=$(patsubst base-files
,base-files-
$(BOARD
),$(BUILD_PACKAGES
))
87 # "-pkgname" in the package list means remove "pkgname" from the package list
88 BUILD_PACKAGES
:=$(filter-out $(filter -%,$(BUILD_PACKAGES
)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES
))),$(BUILD_PACKAGES
))
91 echo
'Building images for $(BOARD)$(if $($(PROFILE)_NAME), - $($(PROFILE)_NAME))'
92 echo
'Packages: $(BUILD_PACKAGES)'
95 mkdir
-p
$(TARGET_DIR
) $(BIN_DIR
) $(TMP_DIR
)
97 $(MAKE
) package_install
101 $(MAKE
) package_postinst
104 package_index
: $(TOPDIR
)/tmp
/ipkg.conf FORCE
106 @echo Building package index...
107 (cd
$(PACKAGE_DIR
); $(SCRIPT_DIR
)/ipkg-make-index.sh .
> Packages
&& \
108 gzip
-9c Packages
> Packages.gz \
109 ) >/dev
/null
2>/dev
/null
112 package_install
: FORCE
114 @echo Installing packages...
115 $(IPKG
) install $(BUILD_PACKAGES
)
119 @echo Copying extra files
120 $(CP
) $(FILES
)/* $(TARGET_DIR
)/
122 package_postinst
: FORCE
124 @echo Activating init scripts
127 for script in .
/etc
/init.d
/*; do \
128 grep
'#!/bin/sh /etc/rc.common' $$script >/dev
/null || continue
; \
129 IPKG_INSTROOT
=$(TARGET_DIR
) $(which bash
) .
/etc
/rc.common
$$script enable
; \
135 @echo Building images...
136 $(NO_TRACE_MAKE
) -C target
/linux
/$(BOARD
)/image
install TARGET_BUILD
=1 IB
=1
139 rm -rf tmp
$(TARGET_DIR
) $(BIN_DIR
)
142 .SILENT
: help
info image