summaryrefslogtreecommitdiff
path: root/ubi-utils/new-utils/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'ubi-utils/new-utils/Makefile')
-rw-r--r--ubi-utils/new-utils/Makefile63
1 files changed, 63 insertions, 0 deletions
diff --git a/ubi-utils/new-utils/Makefile b/ubi-utils/new-utils/Makefile
new file mode 100644
index 0000000..fe60ffe
--- /dev/null
+++ b/ubi-utils/new-utils/Makefile
@@ -0,0 +1,63 @@
+#
+# Makefile for ubi-utils
+#
+
+OPTFLAGS := -O2 -Wall
+KERNELHDR := ../../include
+DESTDIR := /usr/local
+SBINDIR=/usr/sbin
+MANDIR=/usr/man
+INCLUDEDIR=/usr/include
+
+CC := $(CROSS)gcc
+CFLAGS := -Iinclude -Isrc -I$(KERNELHDR) $(OPTFLAGS) -Werror -Wall
+
+LIBS = libubi libubigen libiniparser
+UTILS = ubi-update ubi-mkvol ubi-rmvol ubi-crc32 ubi-info ubi-attach \
+ ubi-detach ubi-nize
+
+vpath %.c src
+
+all: $(UTILS)
+
+# The below cancels existing implicite rule to make programs from .c files,
+# in order to force make using our rule defined below
+%: %.c
+
+# The below is the rule to get an .o file from a .c file
+%.o: %.c
+ $(CC) $(CFLAGS) $< -c -o $@
+
+# And the below is the rule to get final executable from its .o and common.o
+%: libubi %.o common.o
+ $(CC) $(CFLAGS) $(filter %.o, $^) -L. -lubi -o $@
+
+ubi-crc32: ubi-crc32.o crc32.o
+ $(CC) $(CFLAGS) -o $@ $^
+
+ubi-nize: ubi-nize.o common.o crc32.o libiniparser libubigen
+ $(CC) $(CFLAGS) $(filter %.o, $^) -L. -liniparser -lubigen -o $@
+
+libubi: libubi.o
+ $(AR) crv $@.a $^
+ ranlib $@.a
+
+libubigen: libubigen.o
+ $(AR) crv $@.a $^
+ ranlib $@.a
+
+libiniparser: libiniparser.o dictionary.o
+ $(AR) crv $@.a $^
+ ranlib $@.a
+
+clean:
+ rm -rf *.o $(addsuffix .a, $(LIBS)) $(UTILS) .*.c.dep
+
+install: ${UTILS}
+ mkdir -p ${DESTDIR}/${SBINDIR}
+ install -m0755 ${UTILS} ${DESTDIR}/${SBINDIR}/
+
+uninstall:
+ for file in ${UTILS}; do \
+ $(RM) ${DESTDIR}/${SBINDIR}/$$file; \
+ done