summaryrefslogtreecommitdiff
path: root/api_examples/Makefile
diff options
context:
space:
mode:
authorJon Loeliger <jdl@freescale.com>2008-01-10 14:28:18 -0600
committerJon Loeliger <jdl@freescale.com>2008-01-10 14:28:18 -0600
commitbb66f5613672fc80a6b38a0e1651d893bbe590a5 (patch)
tree9a8af7224b4dc2162a5cec00cf44d5afae43622f /api_examples/Makefile
parentb830b7f1635984ba607219fcbd78597c28eeb529 (diff)
parent422b1a01602b6e2fbf8444a1192c7ba31461fd4c (diff)
downloadu-boot-imx-bb66f5613672fc80a6b38a0e1651d893bbe590a5.zip
u-boot-imx-bb66f5613672fc80a6b38a0e1651d893bbe590a5.tar.gz
u-boot-imx-bb66f5613672fc80a6b38a0e1651d893bbe590a5.tar.bz2
Merge commit 'wd/master'
Diffstat (limited to 'api_examples/Makefile')
-rw-r--r--api_examples/Makefile103
1 files changed, 103 insertions, 0 deletions
diff --git a/api_examples/Makefile b/api_examples/Makefile
new file mode 100644
index 0000000..cb49a9e
--- /dev/null
+++ b/api_examples/Makefile
@@ -0,0 +1,103 @@
+#
+# (C) Copyright 2007 Semihalf
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# 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 Foundatio; 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+ifeq ($(ARCH),ppc)
+LOAD_ADDR = 0x40000
+endif
+
+#ifeq ($(ARCH),arm)
+#LOAD_ADDR = 0xc100000
+#endif
+
+include $(TOPDIR)/config.mk
+
+ELF += demo
+BIN += demo.bin
+
+#CFLAGS += -v
+
+COBJS := $(ELF:=.o)
+SOBJS := crt0.o
+ifeq ($(ARCH),ppc)
+SOBJS += ppcstring.o
+endif
+
+LIB = $(obj)libglue.a
+LIBCOBJS= glue.o crc32.o ctype.o string.o vsprintf.o libgenwrap.o
+
+LIBOBJS = $(addprefix $(obj),$(SOBJS) $(LIBCOBJS))
+
+SRCS := $(COBJS:.o=.c) $(LIBCOBJS:.o=.c) $(SOBJS:.o=.S)
+OBJS := $(addprefix $(obj),$(COBJS))
+ELF := $(addprefix $(obj),$(ELF))
+BIN := $(addprefix $(obj),$(BIN))
+
+gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
+
+CPPFLAGS += -I..
+
+all: $(obj).depend $(OBJS) $(LIB) $(BIN) $(ELF)
+
+#########################################################################
+$(LIB): $(obj).depend $(LIBOBJS)
+ $(AR) $(ARFLAGS) $@ $(LIBOBJS)
+
+$(ELF):
+$(obj)%: $(obj)%.o $(LIB)
+ $(LD) $(obj)crt0.o -Ttext $(LOAD_ADDR) \
+ -o $@ $< $(LIB) \
+ -L$(gcclibdir) -lgcc
+
+$(BIN):
+$(obj)%.bin: $(obj)%
+ $(OBJCOPY) -O binary $< $@ 2>/dev/null
+
+$(obj)crc32.c:
+ @rm -f $(obj)crc32.c
+ ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c
+
+$(obj)ctype.c:
+ @rm -f $(obj)ctype.c
+ ln -s $(src)../lib_generic/ctype.c $(obj)ctype.c
+
+$(obj)string.c:
+ @rm -f $(obj)string.c
+ ln -s $(src)../lib_generic/string.c $(obj)string.c
+
+$(obj)vsprintf.c:
+ @rm -f $(obj)vsprintf.c
+ ln -s $(src)../lib_generic/vsprintf.c $(obj)vsprintf.c
+
+ifeq ($(ARCH),ppc)
+$(obj)ppcstring.S:
+ @rm -f $(obj)ppcstring.S
+ ln -s $(src)../lib_ppc/ppcstring.S $(obj)ppcstring.S
+endif
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################