# $Id: Makefile,v 1.2 2009/01/13 02:50:10 bradhuang Exp $

.SUFFIXES:
.SUFFIXES: .o .c
.PHONY: clean all depend

LIBS = 
INCS = -I$(TOP_USERS_DIR)/include
#CFLAGS = -g -O2 -Wall
CFLAGS := -Os -Wall $(CFLAGS) $(INCS)
CPPFLAGS =  -I. -I.
DEPEND = .depend
LDFLAGS	+= -g -s

#CC = rsdk-linux-gcc
#CC = $(CROSS_COMPILE)gcc

CPP = gcc -E
#AR = rsdk-linux-ar
#AR = $(CROSS_COMPILE)ar

SOURCES = minixml.c, upnphttp.c, upnpreplyparse.c, upnpsoap.c \
	mini_upnp.c		
OBJS = $(SOURCES:.c=.o)

UPNP_DAEMON = mini_upnpd

# For mini_upnp stand alone
STATIC_LIB=1

ifeq ($(STATIC_LIB),1)
########## Build Static Library ##################
all: mini_upnp.a	

UPNP_LIB = mini_upnp.a

mini_upnp.a: mini_upnp.o minixml.o upnphttp.o upnpreplyparse.o upnpsoap.o
	$(AR) rcs $@ mini_upnp.o minixml.o upnphttp.o upnpreplyparse.o upnpsoap.o

else
########## Build Shared Library ##################
all: $(UPNP_DAEMON) $(UPNP_LIB)	

UPNP_LIB = mini_upnp.so

CFLAGS += -DUSE_SHARED_DAEMON

minixml.o: minixml.c
	$(CC) -c -o $@ -fpic $(CFLAGS) $(IFLAGS) $<

upnphttp.o: upnphttp.c
	$(CC) -c -o $@ -fpic $(CFLAGS) $(IFLAGS) $<	

upnpreplyparse.o: upnpreplyparse.c
	$(CC) -c -o $@ -fpic $(CFLAGS) $(IFLAGS) $<		
	
upnpsoap.o: upnpsoap.c
	$(CC) -c -o $@ -fpic $(CFLAGS) $(IFLAGS) $<		
	
$(UPNP_LIB): minixml.o upnphttp.o upnpreplyparse.o upnpsoap.o
	$(CC) -s -shared -o $@ minixml.o upnphttp.o upnpreplyparse.o upnpsoap.o

$(UPNP_DAEMON): mini_upnp.o $(UPNP_LIB)
	$(CC) -o $@ $(APMIB_LIB) $^ $(LDFLAGS) $(LIBS)

endif


clean:
	rm -f *.o *.so *.a $(UPNP_DAEMON)

romfs:
ifeq ($(STATIC_LIB),1)
	@echo "Do nothing here."
else
	$(ROMFSINST) mini_upnpd /bin/mini_upnpd
	$(ROMFSINST) mini_upnp.so /lib/mini_upnp.so
endif

# depend stuff
depend: $(SOURCES)
	$(CPP) $(CPPFLAGS) -MM $^ > $(DEPEND)
        
-include $(DEPEND)

# tags
tags:	$(SOURCES)
	ctags -o tags $^ *.h

.c.o:
	$(CC) -c -o $@ $(CFLAGS) $(IFLAGS) $<