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