summaryrefslogtreecommitdiff
path: root/tools/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'tools/Makefile')
-rw-r--r--tools/Makefile67
1 files changed, 67 insertions, 0 deletions
diff --git a/tools/Makefile b/tools/Makefile
new file mode 100644
index 0000000..8749fc7
--- /dev/null
+++ b/tools/Makefile
@@ -0,0 +1,67 @@
+# 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
+CFLAGS += -std=c99 $(DEFINES)
+CFLAGS += -Iinclude/
+
+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
+
+# Symlinks to sunxi-fexc
+FEXC_LINKS = bin2fex fex2bin
+
+.PHONY: all clean
+
+all: tools
+
+tools: $(FEXC_LINKS)
+
+clean:
+ @rm -vf $(TOOLS) $(FEXC_LINKS)
+ @rm -vf *.o *.elf *.sunxi *.bin *.nm *.orig
+
+$(TOOLS): Makefile common.h
+
+fex2bin bin2fex: sunxi-fexc
+ ln -nsf $< $@
+
+sunxi-fexc: fexc.h script.h script.c \
+ script_uboot.h script_uboot.c \
+ script_bin.h script_bin.c \
+ script_fex.h script_fex.c
+
+sunxi-%: %.c
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(filter %.c,$^) $(LIBS)
+
+.gitignore: Makefile
+ @for x in $(TOOLS) $(FEXC_LINKS) '*.o' '*.swp'; do \
+ echo "$$x"; \
+ done > $@