contrib: add a userspace port of the Broadcom NVRAM kernel api, allows NVRAM manipula...
[project/luci.git] / contrib / userspace-nvram / Makefile
diff --git a/contrib/userspace-nvram/Makefile b/contrib/userspace-nvram/Makefile
new file mode 100644 (file)
index 0000000..b0e4471
--- /dev/null
@@ -0,0 +1,39 @@
+CC      = gcc
+LN      = ln
+CFLAGS  = -Wall -g
+LDFLAGS =
+
+LIB_VERMAJOR = 0
+LIB_VERMINOR = 1
+LIB_FILENAME = libnvram.so
+
+LIB_CFLAGS  = $(CFLAGS) -shared -fPIC
+LIB_LDFLAGS = $(LDFLAGS) -Wl,-soname,$(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)
+
+CLI_CFLAGS  = $(CFLAGS)
+CLI_LDFLAGS = $(LDFLAGS) -lc -L. -lnvram
+
+CLI_OBJ = cli.o
+LIB_OBJ = crc.o nvram.o
+
+all: cli libnvram
+
+cli: libnvram
+       $(CC) $(CLI_CFLAGS) -c -o cli.o cli.c
+       $(CC) -o nvram $(CLI_OBJ) $(CLI_LDFLAGS)
+
+cli.o: cli.c
+       $(CC) $(CLI_CFLAGS) -c -o $@ $<
+
+libnvram:
+       $(CC) $(LIB_CFLAGS) -c -o crc.o crc.c
+       $(CC) $(LIB_CFLAGS) -c -o nvram.o nvram.c
+       $(CC) $(LIB_CFLAGS) $(LIB_LDFLAGS) \
+               -o $(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR) $(LIB_OBJ)
+       $(LN) -s $(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR) \
+               $(LIB_FILENAME).$(LIB_VERMAJOR)
+       $(LN) -s $(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR) \
+               $(LIB_FILENAME)
+
+clean:
+       rm -f nvram $(LIB_FILENAME)* *.o