make file for sample code: how to make the version with static linked lib

Kan ke <[email protected]> Tue, 30 Aug 2005 10:36:18 -0700 (PDT)
Newsgroups gmane.linux.upnp-sdk.general
Message-ID <[email protected]>
Hi all

I am working on sample code on upnp_tv_device.
I got dynamic link lib approach works. But when
I am trying to make static link to lib version,
I got error message: /usr/bin/ld: cannot find
-llibupnp.a

I did copy all three lib into my working directory:
libupnp.a libixml.a and libthreadutil.a

Is there any one could help me to update Makefile on
this
sample and can static link to the lib file(*.a).

Thanks so much

Kan

==========================================
Here is my makefile

I did copy all related *.c and *.h file (they are 
in three different places as original set up)
and create working dir under upnp and parallel with
bin as ../upnp/myWork/

I used command like:

make STATIC=1
==========================================
###########################################################################
##
## Copyright (c) 2000-2003 Intel Corporation 
## All rights reserved. 
##
## Redistribution and use in source and binary forms,
with or without 
## modification, are permitted provided that the
following conditions are met: 
##
## * Redistributions of source code must retain the
above copyright notice, 
## this list of conditions and the following
disclaimer. 
## * Redistributions in binary form must reproduce the
above copyright notice, 
## this list of conditions and the following
disclaimer in the documentation 
## and/or other materials provided with the
distribution. 
## * Neither name of Intel Corporation nor the names
of its contributors 
## may be used to endorse or promote products derived
from this software 
## without specific prior written permission.
## 
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
AND CONTRIBUTORS 
## ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT 
## LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR 
## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL INTEL OR 
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, 
## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, 
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR 
## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY 
## OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING
## NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS 
## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
##
###########################################################################

INCLUDES= -I../inc
ifdef TARGET
DIR_PATH=$(TARGET)/
CROSS=$(TARGET)-

CC=$(CROSS)gcc
AR=$(CROSS)ar
LD=$(CROSS)ld
STRIP=$(CROSS)strip
else
CC = gcc
AR = ar
LD = ld
STRIP = strip
endif

ifeq ($(STATIC),1)
LIB_EXT = a
else
LIB_EXT = so
endif

ifeq ($(DEBUG),1)
OPT = -g -O2
DEBUG_OPTION = DEBUG=1
LIBS= ../bin/debug/$(DIR_PATH)libupnp.$(LIB_EXT)
../bin/debug/$(DIR_PATH)libixml.$(LIB_EXT) \
     
../bin/debug/$(DIR_PATH)libthreadutil_dbg.$(LIB_EXT)
else
DEBUG_OPTION =
OPT = -O2

ifeq ($(STATIC),1)
LIBS= -llibupnp.$(LIB_EXT) -L../bin/$(DIR_PATH)
-llibixml.$(LIB_EXT) \
      -L../bin/$(DIR_PATH) -llibthreadutil.$(LIB_EXT)
else
LIBS= ../bin/$(DIR_PATH)libupnp.$(LIB_EXT)
../bin/$(DIR_PATH)libixml.$(LIB_EXT) \
      ../bin/$(DIR_PATH)libthreadutil.$(LIB_EXT)
endif
endif

CFLAGS += -Wall $(OPT)

APPS = upnp_tv_device 

all: $(APPS)
WEB_DIR = ./web

ifeq ($(STATIC),1)
upnp_tv_device: upnp_tv_device.o sample_util.o
upnp_tv_device_main.o
	$(CC)  $(CFLAGS) upnp_tv_device.o  sample_util.o
upnp_tv_device_main.o $(LIBS) -o  $@  
else
upnp_tv_device: $(LIBS) upnp_tv_device.o sample_util.o
upnp_tv_device_main.o
	$(CC)  $(CFLAGS) upnp_tv_device.o  sample_util.o
upnp_tv_device_main.o $(LIBS) -o  $@  
endif
#	cp -rf ./web .
	@echo "make $@ finished on `date`"


../bin/libupnp.so:
	cd ../;make 
../bin/debug/libupnp.so:
	cd ../;make DEBUG=1


%.o:	%.c
	$(CC) $(CFLAGS) $(INCLUDES) -c $<

clean:
	rm -f *.o $(APPS)



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf