Makefile-opendreambox-1.6: mention dm800se
[obi/makefile-opendreambox.git] / Makefile-opendreambox-1.5
1 #!/usr/bin/make -f
2 #
3 #  Makefile-opendreambox v0.4.7 (2010-10-11)
4 #
5
6 # Note: You can override all variables by storing them
7 # in an external file called "build.conf".
8 -include build.conf
9
10 # target platform: dm500hd, dm500plus, dm600pvr, dm7020, dm7025, dm800, dm8000
11 MACHINE ?= dm8000
12
13 # for a list of some other repositories have
14 # a look at http://git.opendreambox.org/
15 GIT_URL ?= git://git.opendreambox.org/git/openembedded
16
17 # in case you want to send pull requests or generate patches
18 #GIT_AUTHOR_NAME ?= Your Name
19 #GIT_AUTHOR_EMAIL ?= you@example.com
20
21 # Uncomment this if you want to use only one Git repository
22 # for all platforms.
23 #SINGLE_REPOSITORY ?= 1
24
25 # Uncomment this if you're upgrading an installation
26 # from Monotone. This changes the directory layout
27 # to the old version without shared directories.
28 #UPGRADE_FROM_MONOTONE ?= 1
29
30 # you should not need to change anything below
31 BB_URL ?= git://git.opendreambox.org/git/bitbake
32 BB_BRANCH ?= 1.4.2-git
33
34 GIT = git
35 GIT_BRANCH = opendreambox-1.5
36
37 PWD := $(shell pwd)
38
39 ifeq ($(UPGRADE_FROM_MONOTONE),1)
40 OE_BASE = $(PWD)
41 else
42 OE_BASE = $(PWD)/$(MACHINE)
43 endif
44
45 ifeq ($(SINGLE_REPOSITORY),1)
46 GIT_DIR = $(PWD)/openembedded
47 else
48 GIT_DIR = $(OE_BASE)/openembedded
49 endif
50
51 ifeq ($(findstring $(MACHINE),dm500plus dm600pvr dm7020),$(MACHINE))
52 ARCH = powerpc
53 else
54 ARCH = mipsel
55 endif
56
57 all: initialize
58         @echo
59         @echo "Openembedded for the Dreambox environment has been initialized"
60         @echo "properly. Now you can either:"
61         @echo
62         @echo "  - make the 'image'-target to build an image, or"
63         @echo "  - go into $(MACHINE)/build/, source env.source and start on your own!"
64         @echo
65
66 bb: bb/.git
67
68 bb/.git:
69         @if [ -e bb/.svn ]; then \
70                 echo "BitBake needs to be updated. Please remove the \"bb\" directory manually!"; \
71                 exit 1; \
72         fi
73         $(GIT) clone -n $(BB_URL) bb
74         cd bb && ( \
75                 if [ -n "$(GIT_AUTHOR_EMAIL)" ]; then git config user.email "$(GIT_AUTHOR_EMAIL)"; fi; \
76                 if [ -n "$(GIT_AUTHOR_NAME)" ]; then git config user.name "$(GIT_AUTHOR_NAME)"; fi; \
77                 $(GIT) branch --track $(BB_BRANCH) origin/$(BB_BRANCH) || true; \
78                 $(GIT) checkout -f $(BB_BRANCH) \
79         )
80
81 bb-update: bb/.git
82         cd bb && $(GIT) pull origin $(BB_BRANCH)
83
84 .PHONY: bb-update image initialize openembedded-update openembedded-update-all
85
86 image: bb-update initialize openembedded-update
87         cd $(OE_BASE)/build; . ./env.source; bitbake -k dreambox-image
88
89 initialize: $(OE_BASE)/cache sources $(OE_BASE)/build $(OE_BASE)/build/conf \
90         $(OE_BASE)/build/tmp $(GIT_DIR) $(OE_BASE)/build/conf/local.conf \
91         $(OE_BASE)/build/env.source bb
92
93 openembedded-update: $(GIT_DIR)
94         cd $(GIT_DIR) && $(GIT) pull origin $(GIT_BRANCH)
95
96 openembedded-update-all:
97         @for dir in dm*/openembedded; do \
98                 echo "running $(GIT) pull origin $(GIT_BRANCH) in $$dir"; \
99                 cd $$dir && $(GIT) pull origin $(GIT_BRANCH) && cd -; \
100         done
101
102
103 $(OE_BASE)/build $(OE_BASE)/build/conf $(OE_BASE)/build/tmp $(OE_BASE)/cache sources:
104         mkdir -p $@
105
106 $(OE_BASE)/build/conf/local.conf:
107         echo 'DL_DIR = "$(PWD)/sources"' > $@
108         echo 'OE_BASE = "$(OE_BASE)"' >> $@
109         echo 'BBFILES = "$(GIT_DIR)/packages/*/*.bb"' >> $@
110         echo 'BBMASK = "(nslu.*|.*-sdk.*)"' >> $@
111         echo 'PREFERRED_PROVIDERS += " virtual/$${TARGET_PREFIX}gcc-initial:gcc-cross-initial"' >> $@
112         echo 'PREFERRED_PROVIDERS += " virtual/$${TARGET_PREFIX}gcc:gcc-cross"' >> $@
113         echo 'PREFERRED_PROVIDERS += " virtual/$${TARGET_PREFIX}g++:gcc-cross"' >> $@
114         echo 'MACHINE = "$(MACHINE)"' >> $@
115         echo 'TARGET_OS = "linux"' >> $@
116         echo 'DISTRO = "opendreambox-1.5"' >> $@
117         echo 'CACHE = "$(OE_BASE)/cache/oe-cache.$${USER}"' >> $@
118
119 $(OE_BASE)/build/env.source:
120         echo 'OE_BASE=$(OE_BASE)' > $@
121         echo 'export BBPATH="$(GIT_DIR)/:$(PWD)/bb/:$${OE_BASE}/build/"' >> $@
122         echo 'PATH=$(PWD)/bb/bin:$${OE_BASE}/build/tmp/cross/bin:$${PATH}' >> $@
123         echo 'export PATH' >> $@
124         echo 'export LD_LIBRARY_PATH=' >> $@
125         echo 'export LANG=C' >> $@
126         cat $@
127
128 $(GIT_DIR): $(GIT_DIR)/.git
129
130 $(GIT_DIR)/.git:
131         @if [ -d $(GIT_DIR)/_MTN ]; then echo "Please remove your old monotone repository from $(GIT_DIR)!"; exit 1; fi
132         $(GIT) clone -n $(GIT_URL) $(GIT_DIR)
133         cd $(GIT_DIR) && ( \
134                 if [ -n "$(GIT_AUTHOR_EMAIL)" ]; then git config user.email "$(GIT_AUTHOR_EMAIL)"; fi; \
135                 if [ -n "$(GIT_AUTHOR_NAME)" ]; then git config user.name "$(GIT_AUTHOR_NAME)"; fi; \
136                 $(GIT) branch --track $(GIT_BRANCH) origin/$(GIT_BRANCH) || true; \
137                 $(GIT) checkout -f $(GIT_BRANCH) \
138         )
139