1efee1709Swdenk# 2f9328639SMarian Balakowicz# (C) Copyright 2000-2006 3efee1709Swdenk# Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4efee1709Swdenk# 5efee1709Swdenk# See file CREDITS for list of people who contributed to this 6efee1709Swdenk# project. 7efee1709Swdenk# 8efee1709Swdenk# This program is free software; you can redistribute it and/or 9efee1709Swdenk# modify it under the terms of the GNU General Public License as 10efee1709Swdenk# published by the Free Software Foundation; either version 2 of 11efee1709Swdenk# the License, or (at your option) any later version. 12efee1709Swdenk# 13efee1709Swdenk# This program is distributed in the hope that it will be useful, 14efee1709Swdenk# but WITHOUT ANY WARRANTY; without even the implied warranty of 15efee1709Swdenk# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16efee1709Swdenk# GNU General Public License for more details. 17efee1709Swdenk# 18efee1709Swdenk# You should have received a copy of the GNU General Public License 19efee1709Swdenk# along with this program; if not, write to the Free Software 20efee1709Swdenk# Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21efee1709Swdenk# MA 02111-1307 USA 22efee1709Swdenk# 23efee1709Swdenk 24566a494fSHeiko SchocherBIN_FILES = img2srec$(SFX) mkimage$(SFX) envcrc$(SFX) ubsha1$(SFX) gen_eth_addr$(SFX) bmp_logo$(SFX) 25efee1709Swdenk 26766529fcSBartlomiej SiekaOBJ_LINKS = environment.o crc32.o md5.o sha1.o image.o 27566a494fSHeiko SchocherOBJ_FILES = img2srec.o mkimage.o envcrc.o ubsha1.o gen_eth_addr.o bmp_logo.o 28efee1709Swdenk 293e38691eSwdenkifeq ($(ARCH),mips) 30f9328639SMarian BalakowiczBIN_FILES += inca-swap-bytes$(SFX) 31f9328639SMarian BalakowiczOBJ_FILES += inca-swap-bytes.o 323e38691eSwdenkendif 333e38691eSwdenk 34ef1464ccSwdenk# Don't build by default 35ef1464ccSwdenk#ifeq ($(ARCH),ppc) 36f9328639SMarian Balakowicz#BIN_FILES += mpc86x_clk$(SFX) 37f9328639SMarian Balakowicz#OBJ_FILES += mpc86x_clk.o 38ef1464ccSwdenk#endif 39ef1464ccSwdenk 40b9670dd8SAnatolij GustschinLIBFDT_OBJ_FILES = $(obj)fdt.o $(obj)fdt_ro.o $(obj)fdt_rw.o $(obj)fdt_strerror.o $(obj)fdt_wip.o 418cf30809SBartlomiej Sieka 42f9328639SMarian BalakowiczLOGO_H = $(OBJTREE)/include/bmp_logo.h 43efee1709Swdenk 44efee1709Swdenkifeq ($(LOGO_BMP),) 45efee1709SwdenkLOGO_BMP= logos/denx.bmp 46efee1709Swdenkendif 47efee1709Swdenk 48efee1709Swdenk#------------------------------------------------------------------------- 49efee1709Swdenk 50efee1709SwdenkHOSTARCH := $(shell uname -m | \ 51efee1709Swdenk sed -e s/i.86/i386/ \ 52efee1709Swdenk -e s/sun4u/sparc64/ \ 53efee1709Swdenk -e s/arm.*/arm/ \ 54efee1709Swdenk -e s/sa110/arm/ \ 55efee1709Swdenk -e s/powerpc/ppc/ \ 56efee1709Swdenk -e s/Power\ Macintosh/ppc/ \ 57efee1709Swdenk -e s/macppc/ppc/) 58efee1709Swdenk 59efee1709SwdenkHOSTOS := $(shell uname -s | tr A-Z a-z | \ 60efee1709Swdenk sed -e 's/\(cygwin\).*/cygwin/') 61efee1709Swdenk 62efee1709SwdenkTOOLSUBDIRS = 63efee1709Swdenk 64efee1709Swdenk# 65efee1709Swdenk# Mac OS X / Darwin's C preprocessor is Apple specific. It 66efee1709Swdenk# generates numerous errors and warnings. We want to bypass it 67efee1709Swdenk# and use GNU C's cpp. To do this we pass the -traditional-cpp 68efee1709Swdenk# option to the compiler. Note that the -traditional-cpp flag 69efee1709Swdenk# DOES NOT have the same semantics as GNU C's flag, all it does 70efee1709Swdenk# is invoke the GNU preprocessor in stock ANSI/ISO C fashion. 71efee1709Swdenk# 72efee1709Swdenk# Apple's linker is similar, thanks to the new 2 stage linking 73efee1709Swdenk# multiple symbol definitions are treated as errors, hence the 74efee1709Swdenk# -multiply_defined suppress option to turn off this error. 75efee1709Swdenk# 76efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc) 77efee1709SwdenkHOST_CFLAGS = -traditional-cpp -Wall 78efee1709SwdenkHOST_LDFLAGS =-multiply_defined suppress 795dfaa50eSAubrey.LiHOST_ENVIRO_CFLAGS = 80efee1709Swdenk 81efee1709Swdenkelse 82efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),netbsd-ppc) 83efee1709SwdenkHOST_CFLAGS = -Wall -pedantic 84efee1709SwdenkHOST_LDFLAGS = 85efee1709SwdenkHOST_ENVIRO_CFLAGS = 86efee1709Swdenk 87efee1709Swdenk# 88efee1709Swdenk# Everyone else 89efee1709Swdenk# 90efee1709Swdenkelse 91efee1709SwdenkHOST_CFLAGS = -Wall -pedantic 92efee1709SwdenkHOST_LDFLAGS = 93efee1709SwdenkHOST_ENVIRO_CFLAGS = 94efee1709Swdenkendif 95efee1709Swdenkendif 96efee1709Swdenk 97efee1709Swdenk# 98efee1709Swdenk# Cygwin needs .exe files :-( 99efee1709Swdenk# 100efee1709Swdenkifeq ($(HOSTOS),cygwin) 101efee1709SwdenkSFX = .exe 102883e3925Sraptorbrino@aim.comHOST_CFLAGS += -ansi 103efee1709Swdenkelse 104efee1709SwdenkSFX = 105efee1709Swdenkendif 106efee1709Swdenk 107efee1709Swdenk# 108efee1709Swdenk# Include this after HOSTOS HOSTARCH check 109efee1709Swdenk# so that we can act intelligently. 110efee1709Swdenk# 111efee1709Swdenkinclude $(TOPDIR)/config.mk 112efee1709Swdenk 113f9328639SMarian Balakowicz# now $(obj) is defined 114f9328639SMarian BalakowiczSRCS := $(addprefix $(obj),$(OBJ_LINKS:.o=.c)) $(OBJ_FILES:.o=.c) 115f9328639SMarian BalakowiczBINS := $(addprefix $(obj),$(BIN_FILES)) 116f9328639SMarian Balakowicz 117efee1709Swdenk# 118efee1709Swdenk# Use native tools and options 119efee1709Swdenk# 120f9328639SMarian BalakowiczCPPFLAGS = -idirafter $(SRCTREE)/include \ 121f9328639SMarian Balakowicz -idirafter $(OBJTREE)/include2 \ 122f9328639SMarian Balakowicz -idirafter $(OBJTREE)/include \ 123f9328639SMarian Balakowicz -DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC 124efee1709SwdenkCFLAGS = $(HOST_CFLAGS) $(CPPFLAGS) -O 1258cf30809SBartlomiej Sieka 1268cf30809SBartlomiej Sieka# No -pedantic switch to avoid libfdt compilation warnings 1278cf30809SBartlomiej SiekaFIT_CFLAGS = -Wall $(CPPFLAGS) -O 1288cf30809SBartlomiej Sieka 129efee1709SwdenkAFLAGS = -D__ASSEMBLY__ $(CPPFLAGS) 130efee1709SwdenkCC = $(HOSTCC) 131efee1709SwdenkSTRIP = $(HOSTSTRIP) 132efee1709SwdenkMAKEDEPEND = makedepend 133efee1709Swdenk 134f9328639SMarian Balakowiczall: $(obj).depend $(BINS) $(LOGO_H) subdirs 135efee1709Swdenk 136566a494fSHeiko Schocher$(obj)envcrc$(SFX): $(obj)envcrc.o $(obj)crc32.o $(obj)environment.o $(obj)sha1.o 137566a494fSHeiko Schocher $(CC) $(CFLAGS) -o $@ $^ 138566a494fSHeiko Schocher 139566a494fSHeiko Schocher$(obj)ubsha1$(SFX): $(obj)ubsha1.o $(obj)sha1.o 140efee1709Swdenk $(CC) $(CFLAGS) -o $@ $^ 141efee1709Swdenk 142f9328639SMarian Balakowicz$(obj)img2srec$(SFX): $(obj)img2srec.o 143efee1709Swdenk $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ 144efee1709Swdenk $(STRIP) $@ 145efee1709Swdenk 146766529fcSBartlomiej Sieka$(obj)mkimage$(SFX): $(obj)mkimage.o $(obj)crc32.o $(obj)image.o $(obj)md5.o $(obj)sha1.o $(LIBFDT_OBJ_FILES) 147efee1709Swdenk $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ 148efee1709Swdenk $(STRIP) $@ 149efee1709Swdenk 150f9328639SMarian Balakowicz$(obj)ncb$(SFX): $(obj)ncb.o 151eedcd078Swdenk $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ 152eedcd078Swdenk $(STRIP) $@ 153eedcd078Swdenk 154f9328639SMarian Balakowicz$(obj)gen_eth_addr$(SFX): $(obj)gen_eth_addr.o 155efee1709Swdenk $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ 156efee1709Swdenk $(STRIP) $@ 157efee1709Swdenk 158f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX): $(obj)bmp_logo.o 159efee1709Swdenk $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ 160efee1709Swdenk $(STRIP) $@ 161efee1709Swdenk 162f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX): $(obj)inca-swap-bytes.o 1633e38691eSwdenk $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ 1643e38691eSwdenk $(STRIP) $@ 1653e38691eSwdenk 166f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX): $(obj)mpc86x_clk.o 167ef1464ccSwdenk $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ 168ef1464ccSwdenk $(STRIP) $@ 169ef1464ccSwdenk 170f9328639SMarian Balakowicz$(obj)envcrc.o: $(src)envcrc.c 171f9328639SMarian Balakowicz $(CC) -g $(CFLAGS) -c -o $@ $< 172efee1709Swdenk 173566a494fSHeiko Schocher$(obj)ubsha1.o: $(src)ubsha1.c 174566a494fSHeiko Schocher $(CC) -g $(CFLAGS) -c -o $@ $< 175566a494fSHeiko Schocher 176f9328639SMarian Balakowicz$(obj)crc32.o: $(obj)crc32.c 177f9328639SMarian Balakowicz $(CC) -g $(CFLAGS) -c -o $@ $< 178efee1709Swdenk 179766529fcSBartlomiej Sieka$(obj)md5.o: $(obj)md5.c 180766529fcSBartlomiej Sieka $(CC) -g $(CFLAGS) -c -o $@ $< 181766529fcSBartlomiej Sieka 182566a494fSHeiko Schocher$(obj)sha1.o: $(obj)sha1.c 183566a494fSHeiko Schocher $(CC) -g $(CFLAGS) -c -o $@ $< 184566a494fSHeiko Schocher 185b97a2a0aSMarian Balakowicz$(obj)image.o: $(obj)image.c 1868cf30809SBartlomiej Sieka $(CC) -g $(FIT_CFLAGS) -c -o $@ $< 187b97a2a0aSMarian Balakowicz 188f9328639SMarian Balakowicz$(obj)mkimage.o: $(src)mkimage.c 1898cf30809SBartlomiej Sieka $(CC) -g $(FIT_CFLAGS) -c -o $@ $< 190efee1709Swdenk 191f9328639SMarian Balakowicz$(obj)ncb.o: $(src)ncb.c 192f9328639SMarian Balakowicz $(CC) -g $(CFLAGS) -c -o $@ $< 193eedcd078Swdenk 194f9328639SMarian Balakowicz$(obj)gen_eth_addr.o: $(src)gen_eth_addr.c 195f9328639SMarian Balakowicz $(CC) -g $(CFLAGS) -c -o $@ $< 196efee1709Swdenk 197f9328639SMarian Balakowicz$(obj)inca-swap-bytes.o: $(src)inca-swap-bytes.c 198f9328639SMarian Balakowicz $(CC) -g $(CFLAGS) -c -o $@ $< 1993e38691eSwdenk 200f9328639SMarian Balakowicz$(obj)mpc86x_clk.o: $(src)mpc86x_clk.c 201f9328639SMarian Balakowicz $(CC) -g $(CFLAGS) -c -o $@ $< 202ef1464ccSwdenk 2038cf30809SBartlomiej Sieka$(obj)fdt.o: $(obj)fdt.c 2048cf30809SBartlomiej Sieka $(CC) -g $(FIT_CFLAGS) -c -o $@ $< 2058cf30809SBartlomiej Sieka 2068cf30809SBartlomiej Sieka$(obj)fdt_ro.o: $(obj)fdt_ro.c 2078cf30809SBartlomiej Sieka $(CC) -g $(FIT_CFLAGS) -c -o $@ $< 2088cf30809SBartlomiej Sieka 2098cf30809SBartlomiej Sieka$(obj)fdt_rw.o: $(obj)fdt_rw.c 2108cf30809SBartlomiej Sieka $(CC) -g $(FIT_CFLAGS) -c -o $@ $< 2118cf30809SBartlomiej Sieka 2128cf30809SBartlomiej Sieka$(obj)fdt_strerror.o: $(obj)fdt_strerror.c 2138cf30809SBartlomiej Sieka $(CC) -g $(FIT_CFLAGS) -c -o $@ $< 2148cf30809SBartlomiej Sieka 2158cf30809SBartlomiej Sieka$(obj)fdt_wip.o: $(obj)fdt_wip.c 2168cf30809SBartlomiej Sieka $(CC) -g $(FIT_CFLAGS) -c -o $@ $< 2178cf30809SBartlomiej Sieka 218efee1709Swdenksubdirs: 219e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),) 220e0ac62d7Swdenk @: 221e0ac62d7Swdenkelse 222efee1709Swdenk @for dir in $(TOOLSUBDIRS) ; do \ 223efee1709Swdenk $(MAKE) \ 224efee1709Swdenk HOSTOS=$(HOSTOS) \ 225efee1709Swdenk HOSTARCH=$(HOSTARCH) \ 226efee1709Swdenk HOST_CFLAGS="$(HOST_CFLAGS)" \ 227efee1709Swdenk HOST_LDFLAGS="$(HOST_LDFLAGS)" \ 228efee1709Swdenk -C $$dir || exit 1 ; \ 229efee1709Swdenk done 230e0ac62d7Swdenkendif 231e0ac62d7Swdenk 232f9328639SMarian Balakowicz$(obj)environment.c: 233f9328639SMarian Balakowicz @rm -f $(obj)environment.c 234f9328639SMarian Balakowicz ln -s $(src)../common/environment.c $(obj)environment.c 235efee1709Swdenk 236f9328639SMarian Balakowicz$(obj)environment.o: $(obj)environment.c 237f9328639SMarian Balakowicz $(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $< 238efee1709Swdenk 239*89cdab78SMike Frysinger$(obj)zlib.h: 240*89cdab78SMike Frysinger @rm -f $@ 241*89cdab78SMike Frysinger ln -s $(src)../include/zlib.h $@ 242*89cdab78SMike Frysinger 243*89cdab78SMike Frysinger$(obj)crc32.c: $(obj)zlib.h 244f9328639SMarian Balakowicz @rm -f $(obj)crc32.c 245f9328639SMarian Balakowicz ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c 246efee1709Swdenk 247766529fcSBartlomiej Sieka$(obj)md5.c: 248766529fcSBartlomiej Sieka @rm -f $(obj)md5.c 249766529fcSBartlomiej Sieka ln -s $(src)../lib_generic/md5.c $(obj)md5.c 250766529fcSBartlomiej Sieka 251566a494fSHeiko Schocher$(obj)sha1.c: 252566a494fSHeiko Schocher @rm -f $(obj)sha1.c 253566a494fSHeiko Schocher ln -s $(src)../lib_generic/sha1.c $(obj)sha1.c 254566a494fSHeiko Schocher 255b97a2a0aSMarian Balakowicz$(obj)image.c: 256b97a2a0aSMarian Balakowicz @rm -f $(obj)image.c 257b97a2a0aSMarian Balakowicz ln -s $(src)../common/image.c $(obj)image.c 258b9670dd8SAnatolij Gustschin if [ ! -f $(obj)mkimage.h ] ; then \ 259b9670dd8SAnatolij Gustschin ln -s $(src)../tools/mkimage.h $(obj)mkimage.h; \ 260b9670dd8SAnatolij Gustschin fi 261b9670dd8SAnatolij Gustschin if [ ! -f $(obj)fdt_host.h ] ; then \ 262b9670dd8SAnatolij Gustschin ln -s $(src)../tools/fdt_host.h $(obj)fdt_host.h; \ 263b9670dd8SAnatolij Gustschin fi 264b97a2a0aSMarian Balakowicz 265b9670dd8SAnatolij Gustschin$(obj)fdt.c: $(obj)libfdt_internal.h 2668cf30809SBartlomiej Sieka @rm -f $(obj)fdt.c 2678cf30809SBartlomiej Sieka ln -s $(src)../libfdt/fdt.c $(obj)fdt.c 2688cf30809SBartlomiej Sieka 269b9670dd8SAnatolij Gustschin$(obj)fdt_ro.c: $(obj)libfdt_internal.h 2708cf30809SBartlomiej Sieka @rm -f $(obj)fdt_ro.c 2718cf30809SBartlomiej Sieka ln -s $(src)../libfdt/fdt_ro.c $(obj)fdt_ro.c 2728cf30809SBartlomiej Sieka 273b9670dd8SAnatolij Gustschin$(obj)fdt_rw.c: $(obj)libfdt_internal.h 2748cf30809SBartlomiej Sieka @rm -f $(obj)fdt_rw.c 2758cf30809SBartlomiej Sieka ln -s $(src)../libfdt/fdt_rw.c $(obj)fdt_rw.c 2768cf30809SBartlomiej Sieka 277b9670dd8SAnatolij Gustschin$(obj)fdt_strerror.c: $(obj)libfdt_internal.h 2788cf30809SBartlomiej Sieka @rm -f $(obj)fdt_strerror.c 2798cf30809SBartlomiej Sieka ln -s $(src)../libfdt/fdt_strerror.c $(obj)fdt_strerror.c 2808cf30809SBartlomiej Sieka 281b9670dd8SAnatolij Gustschin$(obj)fdt_wip.c: $(obj)libfdt_internal.h 2828cf30809SBartlomiej Sieka @rm -f $(obj)fdt_wip.c 2838cf30809SBartlomiej Sieka ln -s $(src)../libfdt/fdt_wip.c $(obj)fdt_wip.c 2848cf30809SBartlomiej Sieka 2858cf30809SBartlomiej Sieka$(obj)libfdt_internal.h: 2868cf30809SBartlomiej Sieka @rm -f $(obj)libfdt_internal.h 2878cf30809SBartlomiej Sieka ln -s $(src)../libfdt/libfdt_internal.h $(obj)libfdt_internal.h 2888cf30809SBartlomiej Sieka 289f9328639SMarian Balakowicz$(LOGO_H): $(obj)bmp_logo $(LOGO_BMP) 290f9328639SMarian Balakowicz $(obj)./bmp_logo $(LOGO_BMP) >$@ 291efee1709Swdenk 292efee1709Swdenk######################################################################### 293efee1709Swdenk 294f9328639SMarian Balakowicz# defines $(obj).depend target 295f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk 296efee1709Swdenk 297f9328639SMarian Balakowiczsinclude $(obj).depend 298efee1709Swdenk 299efee1709Swdenk######################################################################### 300