sunxi-tools/Makefile

166 lines
6.4 KiB
Makefile
Raw Normal View History

Add copyright headers to various files. I'd like to package sunxi-tools for Debian and therefore it is important for the licensing information to be complete/accurate. I believe the intention was for everything here to be GPL2+ by default, since that is the license on every file which has one and COPYING contains GPL2. Early on the license applied to this repo was GPLv3 however this was changed to GPL2+ by Alejandro in 79ea14d4e050 at which point he had been the only contributor. This patch adds the standard GPL2+ stanza used already in sunxi-tools.git or the MIT license stanza when requested by the copyright holder to various files which were missing one as follows: adb-devprobe.sh fel-gpio According to git all of these were written by Henrik. Copyright years according to git. Henrik requested that these be put under an MIT license, so that is what has been done. boot_head.lds fel-pio.lds fel-sdboot.lds jtag-loop.lds According to git all of these were written by Henrik. Copyright years according to git. According to Henrik "These linker scripts are all GPLv2+ as the C / ASM sources they refer to". include/endian_compat.h The content of this file was originally added to fel.c (commit c71ff92c02d3), which had a GPL2+ stanza at the time, by Eric Molitor and later those lines were moved by Alejandro (commit bcde0fc72170) into this file. I originally added GPL2+ from fel.c and added Eric's copyright with the correct year according to git but Eric said "Ack but also would prefer MIT/Dual :)", so it has now been changed to MIT. include/types.h: Henrik originally added some of these lines to bootinfo.c, along with a GPL2+ stanza, in the original version (commit c26e5ff80af6). Later on Alejandro moved them into this file (commit 329a13ed75e5) and added more. I've copied the stanza from bootinfo.c and added both copyrights with the years according to git. Authors: Henrik, who says "OK". Alejandro Mery Makefile: GPL2+ with copyrights and years according to git. Authors are: Alejandro Mery Henrik Nordstrom, who says "Yes" Pat Wood, who says "Fine with me" usb-boot: Henrik is the primary author, added MIT license on Henrik's request with his copyright and years according to git. Authors are: Henrik Nordstrom, who says "Yes, that too should be MIT" Alejandro Mery (typo fix) Michal Suchanek (typo fix) Everyone affected by the above is CCd. This probably seems pretty obvious to most people, sorry for being so pedantic about it. It will save hassel when it comes to getting it into Debian though. Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Cc: Henrik Nordstrom <henrik@henriknordstrom.net> Cc: Eric Molitor <eric@molitor.org> Cc: Alejandro Mery <amery@geeks.cl> Cc: Pat Wood <Pat.Wood@efi.com> Cc: Michal Suchanek <hramrach@gmail.com> --- v2: Gathered feedback from the authors - Pat said "Fine with me" - Henrik asked that adb-devprobe.sh, fel-gpio and usb-boot be MIT, acked *.lds, types.h and Makefile - Explicitly listed authors of Makefile and usb-boot - Michal Suchanek make a typo fix to usb-boot but wasn't CCd, sorry. - Reworded commit message due to some bits now being MIT on request of the author.
2014-06-05 20:03:45 +01:00
# Copyright (C) 2012 Alejandro Mery <amery@geeks.cl>
# Copyright (C) 2012,2013 Henrik Nordstrom <henrik@henriknordstrom.net>
# Copyright (C) 2013 Patrick Wood <patrickhwood@gmail.com>
# Copyright (C) 2013 Pat Wood <Pat.Wood@efi.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
CC ?= gcc
CFLAGS = -g -O0 -Wall -Wextra $(EXTRA_CFLAGS)
CFLAGS += -std=c99 $(DEFINES)
CFLAGS += -Iinclude/
2012-05-02 09:35:52 +02:00
DEFINES = -D_POSIX_C_SOURCE=200112L
# Define _BSD_SOURCE, necessary to expose all endian conversions properly.
# See http://linux.die.net/man/3/endian
DEFINES += -D_BSD_SOURCE
# glibc 2.20+ also requires _DEFAULT_SOURCE
DEFINES += -D_DEFAULT_SOURCE
ifeq (NetBSD,$(OS))
# add explicit _NETBSD_SOURCE, see https://github.com/linux-sunxi/sunxi-tools/pull/22
DEFINES += -D_NETBSD_SOURCE
endif
# Tools useful on host and target
TOOLS = sunxi-fexc sunxi-bootinfo sunxi-fel sunxi-nand-part
# Symlinks to sunxi-fexc
FEXC_LINKS = bin2fex fex2bin
2012-05-02 09:35:52 +02:00
# Tools which are only useful on the target
TARGET_TOOLS = sunxi-pio
MISC_TOOLS = phoenix_info
2012-09-04 21:48:23 +02:00
CROSS_COMPILE ?= arm-none-eabi-
DESTDIR ?=
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
.PHONY: all clean tools target-tools install install-tools install-target-tools
all: tools target-tools
2012-05-02 09:35:52 +02:00
tools: $(TOOLS) $(FEXC_LINKS)
target-tools: $(TARGET_TOOLS)
2012-05-02 09:35:52 +02:00
misc: $(MISC_TOOLS)
install: install-tools install-target-tools
install-tools: $(TOOLS)
install -d $(DESTDIR)$(BINDIR)
@set -ex ; for t in $^ ; do \
install -m0755 $$t $(DESTDIR)$(BINDIR)/$$t ; \
done
@set -ex ; for l in $(FEXC_LINKS) ; do \
ln -nfs sunxi-fexc $(DESTDIR)$(BINDIR)/$$l ; \
done
2012-05-02 09:35:52 +02:00
install-target-tools: $(TARGET_TOOLS)
install -d $(DESTDIR)$(BINDIR)
@set -ex ; for t in $^ ; do \
install -m0755 $$t $(DESTDIR)$(BINDIR)/$$t ; \
done
clean:
@rm -vf $(TOOLS) $(FEXC_LINKS) $(TARGET_TOOLS) $(MISC_TOOLS)
@rm -vf *.o *.elf *.sunxi *.bin *.nm *.orig
$(TOOLS) $(TARGET_TOOLS): Makefile common.h
fex2bin bin2fex: sunxi-fexc
ln -nsf $< $@
sunxi-fexc: fexc.h script.h script.c \
2012-09-29 18:42:17 +02:00
script_uboot.h script_uboot.c \
script_bin.h script_bin.c \
script_fex.h script_fex.c
2012-05-11 09:22:47 +02:00
LIBUSB = libusb-1.0
LIBUSB_CFLAGS = `pkg-config --cflags $(LIBUSB)`
LIBUSB_LIBS = `pkg-config --libs $(LIBUSB)`
sunxi-fel: fel.c fel-to-spl-thunk.h progress.c progress.h
$(CC) $(CFLAGS) $(LIBUSB_CFLAGS) $(LDFLAGS) -o $@ $(filter %.c,$^) $(LIBS) $(LIBUSB_LIBS)
sunxi-nand-part: nand-part-main.c nand-part.c nand-part-a10.h nand-part-a20.h
$(CC) $(CFLAGS) -c -o nand-part-main.o nand-part-main.c
$(CC) $(CFLAGS) -c -o nand-part-a10.o nand-part.c -D A10
$(CC) $(CFLAGS) -c -o nand-part-a20.o nand-part.c -D A20
$(CC) $(LDFLAGS) -o $@ nand-part-main.o nand-part-a10.o nand-part-a20.o $(LIBS)
sunxi-%: %.c
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(filter %.c,$^) $(LIBS)
fel-pio.bin: fel-pio.elf fel-pio.nm
2012-09-04 21:48:23 +02:00
$(CROSS_COMPILE)objcopy -O binary fel-pio.elf fel-pio.bin
2012-09-04 21:48:23 +02:00
fel-pio.elf: fel-pio.c fel-pio.lds
$(CROSS_COMPILE)gcc -g -Os -fpic -fno-common -fno-builtin -ffreestanding -nostdinc -mno-thumb-interwork -Wall -Wstrict-prototypes -fno-stack-protector -Wno-format-nonliteral -Wno-format-security -fno-toplevel-reorder fel-pio.c -nostdlib -o fel-pio.elf -T fel-pio.lds
fel-pio.nm: fel-pio.elf
2012-09-04 21:48:23 +02:00
$(CROSS_COMPILE)nm fel-pio.elf | grep -v " _" >fel-pio.nm
jtag-loop.elf: jtag-loop.c jtag-loop.lds
$(CROSS_COMPILE)gcc -g -Os -fpic -fno-common -fno-builtin -ffreestanding -nostdinc -mno-thumb-interwork -Wall -Wstrict-prototypes -fno-stack-protector -Wno-format-nonliteral -Wno-format-security -fno-toplevel-reorder jtag-loop.c -nostdlib -o jtag-loop.elf -T jtag-loop.lds -Wl,-N
jtag-loop.bin: jtag-loop.elf
$(CROSS_COMPILE)objcopy -O binary jtag-loop.elf jtag-loop.bin
jtag-loop.sunxi: jtag-loop.bin
mksunxiboot jtag-loop.bin jtag-loop.sunxi
fel-sdboot.elf: fel-sdboot.c fel-sdboot.lds
$(CROSS_COMPILE)gcc -g -Os -fpic -fno-common -fno-builtin -ffreestanding -nostdinc -mno-thumb-interwork -Wall -Wstrict-prototypes -fno-stack-protector -Wno-format-nonliteral -Wno-format-security -fno-toplevel-reorder fel-sdboot.c -nostdlib -o fel-sdboot.elf -T fel-sdboot.lds -Wl,-N
2012-09-04 21:52:56 +02:00
fel-sdboot.bin: fel-sdboot.elf
$(CROSS_COMPILE)objcopy -O binary fel-sdboot.elf fel-sdboot.bin
2012-09-04 21:52:56 +02:00
fel-sdboot.sunxi: fel-sdboot.bin
mksunxiboot fel-sdboot.bin fel-sdboot.sunxi
2012-09-04 21:52:56 +02:00
boot_head_sun3i.elf: boot_head_sun3i.S boot_head_sun3i.lds
$(CROSS_COMPILE)gcc -g -Os -fpic -fno-common -fno-builtin -ffreestanding -nostdinc -mno-thumb-interwork -Wall -Wstrict-prototypes -fno-stack-protector -Wno-format-nonliteral -Wno-format-security -fno-toplevel-reorder boot_head.S -nostdlib -o boot_head_sun3i.elf -T boot_head.lds -Wl,-N -DMACHID=0x1094
boot_head_sun3i.bin: boot_head_sun3i.elf
$(CROSS_COMPILE)objcopy -O binary boot_head_sun3i.elf boot_head_sun3i.bin
boot_head_sun4i.elf: boot_head.S boot_head.lds
$(CROSS_COMPILE)gcc -g -Os -fpic -fno-common -fno-builtin -ffreestanding -nostdinc -mno-thumb-interwork -Wall -Wstrict-prototypes -fno-stack-protector -Wno-format-nonliteral -Wno-format-security -fno-toplevel-reorder boot_head.S -nostdlib -o boot_head_sun4i.elf -T boot_head.lds -Wl,-N -DMACHID=0x1008
boot_head_sun4i.bin: boot_head_sun4i.elf
$(CROSS_COMPILE)objcopy -O binary boot_head_sun4i.elf boot_head_sun4i.bin
boot_head_sun5i.elf: boot_head.S boot_head.lds
$(CROSS_COMPILE)gcc -g -Os -fpic -fno-common -fno-builtin -ffreestanding -nostdinc -mno-thumb-interwork -Wall -Wstrict-prototypes -fno-stack-protector -Wno-format-nonliteral -Wno-format-security -fno-toplevel-reorder boot_head.S -nostdlib -o boot_head_sun5i.elf -T boot_head.lds -Wl,-N -DMACHID=0x102A
boot_head_sun5i.bin: boot_head_sun5i.elf
$(CROSS_COMPILE)objcopy -O binary boot_head_sun5i.elf boot_head_sun5i.bin
sunxi-bootinfo: bootinfo.c
sunxi-meminfo: meminfo.c
$(CROSS_COMPILE)gcc -g -O0 -Wall -static -o $@ $^
sunxi-script_extractor: script_extractor.c
$(CROSS_COMPILE)gcc -g -O0 -Wall -static -o $@ $^
2012-05-02 09:35:52 +02:00
.gitignore: Makefile
@for x in $(TOOLS) $(FEXC_LINKS) $(TARGET_TOOLS) '*.o' '*.swp'; do \
2012-07-31 14:27:04 +02:00
echo "$$x"; \
2012-05-02 09:35:52 +02:00
done > $@