aboutsummaryrefslogtreecommitdiff
path: root/Makefile.gen
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2010-12-01 09:51:44 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2010-12-01 09:51:44 +1100
commitaaad509cdca2ed5f2c92a26f5279ec0e89c4fd5f (patch)
treedfffc0d8f3d21f6736b7f09219c95e2370052d8a /Makefile.gen
downloadSLOF-aaad509cdca2ed5f2c92a26f5279ec0e89c4fd5f.zip
SLOF-aaad509cdca2ed5f2c92a26f5279ec0e89c4fd5f.tar.gz
SLOF-aaad509cdca2ed5f2c92a26f5279ec0e89c4fd5f.tar.bz2
Initial import of slof-JX-1.7.0-4
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'Makefile.gen')
-rw-r--r--Makefile.gen213
1 files changed, 213 insertions, 0 deletions
diff --git a/Makefile.gen b/Makefile.gen
new file mode 100644
index 0000000..3c5d116
--- /dev/null
+++ b/Makefile.gen
@@ -0,0 +1,213 @@
+# *****************************************************************************
+# * Copyright (c) 2004, 2008 IBM Corporation
+# * All rights reserved.
+# * This program and the accompanying materials
+# * are made available under the terms of the BSD License
+# * which accompanies this distribution, and is available at
+# * http://www.opensource.org/licenses/bsd-license.php
+# *
+# * Contributors:
+# * IBM Corporation - initial implementation
+# ****************************************************************************/
+
+
+MAKEARG = BOARD=$(BOARD) PLATFORM=$(PLATFORM) FLAG=$(FLAG) TARG=$(TARG)
+
+BUILDS = tools_build romfs_build
+
+include ../make.rules
+
+ifdef DRIVER
+RELEASE=$(shell cat ../VERSION)
+export DRIVER_NAME=$(shell cat ../VERSION | sed -e "s/-/./g" | awk -F . '{ printf("%s%02d%02d%1s%02s",$$1,$$2,$$3,$$4,$$5); }')
+else
+RELEASE="$(USER)@$(HOSTNAME)(private build)"
+export DRIVER_NAME=HEAD
+endif
+
+
+DRVDATE=$(shell date +%Y-%h%d)
+
+FLASH_SIZE_MB = `echo $$[ $(FLASH_SIZE)/1024/1024 ]`
+
+DTB_ROMFS_FLAG ?= 0
+DTB_ROMFS_ADDR ?= 0
+
+llfw_disassembly:
+ make -C $(LLFWBRDDIR) stage1.dis stage2.dis stageS.dis
+
+clients_build:
+ @echo " ====== Building clients ======"
+ make -C ../clients $(MAKEARG)
+
+other_licence_build:
+ make -C ../other-licence $(MAKEARG)
+
+tools_build:
+ make -C ../tools
+
+romfs_build:
+ make -C ../romfs/tools $(MAKEARG)
+
+../build_info.img:
+ @echo "$(CC)" > ../build_info.img
+ @$(CC) -v >> ../build_info.img 2>&1
+ @$(LD) -V >> ../build_info.img 2>&1
+
+../$(SUBBOARD).dtb:
+ @if [ -e dts/$(SUBBOARD).dts ]; then \
+ dtc -q -I dts -O dtb dts/$(SUBBOARD).dts > $@; \
+ fi
+
+boot_rom.bin boot_xdr.bin: $(BUILDS) ../build_info.img ../$(SUBBOARD).dtb
+ifeq ($(DO_COMPRESS),1)
+
+ @echo " ====== Building packed $@ ======"
+ @if [ -e $(ROMFSBRDDIR)/boot_rom.$(SUBBOARD).ffs ]; then \
+ cat $(ROMFSBRDDIR)/boot_rom.$(SUBBOARD).ffs > ../.boot_rom.ffs; \
+ cat $(ROMFSBRDDIR)/boot_rom.$(SUBBOARD).pack.ffs > ../.boot_rom.pack.ffs; \
+ else \
+ cat $(ROMFSBRDDIR)/boot_rom.ffs > ../.boot_rom.ffs; \
+ cat $(ROMFSBRDDIR)/boot_rom.pack.ffs > ../.boot_rom.pack.ffs; \
+ fi
+ @if [ -e $(PCDBRDDIR)/pcdfiles.ffs ]; then \
+ cat $(PCDBRDDIR)/pcdfiles.ffs >> ../.boot_rom.ffs; \
+ cat $(PCDBRDDIR)/pcdfiles.ffs >> ../.boot_rom.pack.ffs; \
+ fi
+
+ @echo "romfs.pack boot_rom.bin.pack.nv 0 0" >> ../.boot_rom.ffs
+
+ cat $(SLOFBRDDIR)/OF.ffs >> ../.boot_rom.pack.ffs
+ @echo build_info.img build_info.img 0 0 >> ../.boot_rom.pack.ffs
+ @if [ -e ../$(SUBBOARD).dtb ]; then \
+ echo dtb $(SUBBOARD).dtb $(DTB_ROMFS_FLAG) \
+ $(DTB_ROMFS_ADDR) >> ../.boot_rom.pack.ffs; \
+ fi;
+ cd .. && ./romfs/tools/build_romfs $(ROMFS_OPTIONS) .boot_rom.pack.ffs boot_rom.bin.pack
+ cd .. && ./tools/pknova -q boot_rom.bin.pack boot_rom.bin.pack.nv;
+ cd .. && ./romfs/tools/build_romfs $(ROMFS_OPTIONS) .boot_rom.ffs $@
+ if [ "$@" = "boot_rom.bin" ]; then \
+ rm ../boot_rom.bin.pack; \
+ rm ../boot_rom.bin.pack.nv; \
+ fi;
+else
+ @echo " ====== Building $@ ======"
+ @if [ -e $(ROMFSBRDDIR)/boot_rom.$(SUBBOARD).ffs ]; then \
+ cat $(ROMFSBRDDIR)/boot_rom.$(SUBBOARD).ffs > ../.boot_rom.ffs; \
+ else \
+ cat $(ROMFSBRDDIR)/boot_rom.ffs > ../.boot_rom.ffs; \
+ fi
+ @if [ -e $(PCDBRDDIR)/pcdfiles.ffs ]; then \
+ cat $(PCDBRDDIR)/pcdfiles.ffs >> ../.boot_rom.ffs; \
+ fi
+ cat $(SLOFBRDDIR)/OF.ffs >> ../.boot_rom.ffs
+ @echo build_info.img build_info.img 0 0 >> ../.boot_rom.ffs
+ @if [ -e ../$(SUBBOARD).dtb ]; then \
+ echo dtb $(SUBBOARD).dtb $(DTB_ROMFS_FLAG) \
+ $(DTB_ROMFS_ADDR) >> ../.boot_rom.ffs; \
+ fi
+ @if [ -e slik.elf ]; then \
+ echo "slik.elf available ..."; \
+ echo slik board-$(BOARD)/slik.elf 0 0 >> \
+ ../.boot_rom.ffs; \
+ fi
+ cd .. && ./romfs/tools/build_romfs $(ROMFS_OPTIONS) .boot_rom.ffs $@
+endif
+ cd .. && if [ -f $@.gz ]; then rm -f $@.gz; gzip -9 $@ ; fi
+ rm -f ../.boot_rom.*ffs
+ rm -f ../$(SUBBOARD).dtb
+
+../boot_l2b.bin: $(BUILDS) ../romfs/copyright.img ../$(SUBBOARD).dtb
+ @if [ -e $(ROMFSBRDDIR)/boot_l2.$(SUBBOARD).ffs ]; then \
+ cd .. && ./romfs/tools/build_romfs $(ROMFS_OPTIONS) $(ROMFSBRDDIR)/boot_l2.$(SUBBOARD).ffs boot_l2b.bin; \
+ else \
+ cd .. && ./romfs/tools/build_romfs $(ROMFS_OPTIONS) $(ROMFSBRDDIR)/boot_l2.ffs boot_l2b.bin; \
+ fi
+ @if [ -e ../$(SUBBOARD).dtb ]; then \
+ echo dtb $(SUBBOARD).dtb $(DTB_ROMFS_FLAG) \
+ $(DTB_ROMFS_ADDR) >> ../.boot_rom.ffs; \
+ fi
+ rm -f ../$(SUBBOARD).dtb
+
+boot_l2.ad boot_l2-dd2.ad: ../boot_l2b.bin
+ @cd ../tools && ./elf2l2 dd2 ../boot_l2b.bin 0 ../$@
+
+external_flasher: ../boot_rom.bin
+ ../tools/make-flasher-image.sh $(FLASH_SIZE) ../boot_rom.bin \
+ ../boot_rom-$(FLASH_SIZE_MB)MB-BigEndian.bin
+
+driver_dirs:
+ @rm -rf ../driver-$(RELEASE)
+ @mkdir -p ../driver-$(RELEASE)/{rom,l2b,disassemblies}
+
+driver_prep:
+ @echo "Building driver "$(RELEASE)" for $(BOARD)"
+
+copy_disassemblies: llfw_disassembly
+ cp $(LLFWBRDDIR)/stage1.dis \
+ ../driver-$(RELEASE)/disassemblies/$(RELEASE)-stage1.dis
+ cp $(LLFWBRDDIR)/stage2.dis \
+ ../driver-$(RELEASE)/disassemblies/$(RELEASE)-stage2.dis
+ cp $(LLFWBRDDIR)/stageS.dis \
+ ../driver-$(RELEASE)/disassemblies/$(RELEASE)-stageS.dis
+ cp $(LLFWBRDDIR)/meminit.dis \
+ ../driver-$(RELEASE)/disassemblies/$(RELEASE)-meminit.dis
+ @if [ -e ../clients/snk/client.dis ]; then cp ../clients/snk/client.dis \
+ ../driver-$(RELEASE)/disassemblies/$(RELEASE)-client.dis; fi
+
+copy_driver: copy_disassemblies external_flasher
+ mv ../boot_rom-$(FLASH_SIZE_MB)MB-BigEndian.bin \
+ ../driver-$(RELEASE)/rom/$(RELEASE)-boot_rom-$(FLASH_SIZE_MB)MB-BigEndian.bin
+ mv ../boot_rom.bin \
+ ../driver-$(RELEASE)/rom/$(RELEASE)-boot_rom.bin
+ if [ -e ../boot_l2-dd2.ad ]; then \
+ mv ../boot_l2-dd2.ad \
+ ../driver-$(RELEASE)/l2b/; \
+ else \
+ mv ../boot_l2.ad \
+ ../driver-$(RELEASE)/l2b/; fi
+ mv ../boot_xdr.bin \
+ ../driver-$(RELEASE)/l2b/
+ cp ../VERSION ../driver-$(RELEASE)
+ cd ../driver-$(RELEASE) && md5sum rom/*.bin > md5sum.txt
+
+tar_gz: copy_driver
+ @cp -a ../driver-$(RELEASE) ../driver-$(RELEASE)-$(DRVDATE)-devel
+ tar czf ../driver-$(RELEASE)-$(DRVDATE)-devel.tar.gz \
+ ../driver-$(RELEASE)-$(DRVDATE)-devel > /dev/null 2>&1
+ @rm -rf ../driver-$(RELEASE)-$(DRVDATE)-devel
+ @rm -rf ../driver-$(RELEASE)/disassemblies
+ @mv ../driver-$(RELEASE) ../driver-$(RELEASE)-$(DRVDATE)
+ tar czf ../driver-$(RELEASE)-$(DRVDATE).tar.gz \
+ ../driver-$(RELEASE)-$(DRVDATE) > /dev/null 2>&1
+ @rm -rf ../driver-$(RELEASE)-$(DRVDATE)
+
+clean_top:
+ @rm -f ../build_info.img
+ @rm -f ../.crc_flash
+ @rm -f ../$(SUBBOARD).dtb
+
+clean_gen: clean_top
+ make -C ../romfs/tools BOARD=$(BOARD) clean
+ make -C ../tools clean
+ make -C ../other-licence clean
+ make -C ../clients clean
+ @for dir in $(COMMON_LIBS); do \
+ $(MAKE) -C ../lib/$$dir clean || exit 1; \
+ done
+
+distclean_gen: clean_top
+ make -C ../romfs/tools BOARD=$(BOARD) distclean
+ make -C ../tools distclean
+ make -C ../other-licence distclean
+ make -C ../clients distclean
+ @for dir in $(COMMON_LIBS); do \
+ $(MAKE) -C ../lib/$$dir distclean || exit 1; \
+ done
+
+common-libs:
+ @echo " ====== Building common libraries ======"
+ $(MAKE) -C $(LIBCMNDIR) $(COMMON_LIBS)
+
+board-libs:
+ $(MAKE) -C lib $(MAKEARG)