#
# (C) Copyright 2002
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# 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 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, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#

TOPDIR=../
#include Rules.mak

CFLAGS+=$(SSP_ALL_CFLAGS) -DUSE_HOSTCC -fPIC
CFLAGS+=-I$(TOPDIR)zlib
CFLAGS+=-I$(TOPDIR)include

CFLAGS+= -I$(ROOTDIR)/kernel_headers/include/
LDFLAGS=-shared --warn-common --warn-once -z combreloc -z defs -s -z relro -z now

LIBNVRAM=libnvram.a
LIBNVRAM_SHARED=libnvram.so
LIBNVRAM_SHARED_FULLNAME=libnvram.so.0.9.28
LIBNVRAM_SHARED_LEGACY_FULLNAME=libnvram-0.9.28.so


ifneq ($(CONFIG_RALINKAPP_USER_NVRAMD),)
OBJS	:= nvram_socket_cli.o linux_socket.o sys_debug.o
CFLAGS += -DCONFIG_RALINKAPP_USER_NVRAMD
else
OBJS	:= crc32.o nvram_env.o flash_api.o
endif
HEADERS := nvram_env.h nvram.h flash_api.h $(ROOTDIR)/kernel_headers/include/linux/autoconf.h

all:	$(LIBNVRAM)

$(OBJS): %.o : %.c
	$(CC) $(CFLAGS) -c $< -o $@
#	$(STRIPTOOL) -x -R .note -R .comment $*.o

shared: all
	$(LD) $(LDFLAGS) -soname=$(LIBNVRAM_SHARED).0 \
		-o $(LIBNVRAM_SHARED_FULLNAME) --whole-archive $(LIBNVRAM) \
		--no-whole-archive \
		-L$(TOPDIR)lib -I$(ROOTDIR)/$(NEW_LIB)/include -L$(ROOTDIR)/$(NEW_LIB)/lib -lc \
		$(LDADD_LIBFLOAT) $(LIBGCC);
	$(INSTALL) -d $(TOPDIR)lib
	$(RM) $(TOPDIR)lib/$(LIBNVRAM_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBNVRAM_SHARED).0
	$(INSTALL) -m 644 $(LIBNVRAM_SHARED_FULLNAME) $(TOPDIR)lib
	$(LN) -sf $(LIBNVRAM_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBNVRAM_SHARED)
	$(LN) -sf $(LIBNVRAM_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBNVRAM_SHARED).0
	$(LN) -sf $(LIBNVRAM_SHARED_FULLNAME) $(LIBNVRAM_SHARED_LEGACY_FULLNAME)
	ln -sf $(LIBNVRAM_SHARED_FULLNAME) $(LIBNVRAM_SHARED)
	ln -sf $(LIBNVRAM_SHARED_FULLNAME) $(LIBNVRAM_SHARED).0
	ln -sf $(LIBNVRAM_SHARED_FULLNAME) $(LIBNVRAM_SHARED_LEGACY_FULLNAME)

$(LIBNVRAM) ar-target: $(OBJS)
	$(AR) $(ARFLAGS) $(LIBNVRAM) $(OBJS)
	$(INSTALL) -d $(TOPDIR)lib
	$(RM) $(TOPDIR)lib/$(LIBNVRAM)
	$(INSTALL) -m 644 $(LIBNVRAM) $(TOPDIR)lib

$(OBJS): $(HEADERS) Makefile

clean:
	$(RM) *.[oa] $(LIBNVRAM_SHARED)* $(LIBNVRAM_SHARED_LEGACY_FULLNAME)

