📄 makefile
字号:
###########################################################################
##
## 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.
##
###########################################################################
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 ($(DEBUG),1)
OUTPATH=bin/debug/$(DIR_PATH)
else
OUTPATH=bin/$(DIR_PATH)
endif
ifeq ($(STATIC),1)
UPNP=$(OUTPATH)libupnp.a
else
UPNP = $(OUTPATH)libupnp.so
endif
IXML_DIR = ../ixml
THREADUTIL_DIR = ../threadutil
SUBDIRS = src
VERSION=1.2.1
ifeq ($(INSURE),1)
STRIPU =
else
ifeq ($(DEBUG),1)
STRIPU =
else
STRIPU = $(STRIP) $(UPNP)
endif
endif
ifeq ($(STATIC),1)
STRIPU =
endif
ifndef DEBUG
export DEBUG=0
endif
ifndef WEB
export WEB=1
endif
ifndef TOOLS
export TOOLS=1
endif
ifndef CLIENT
export CLIENT=1
endif
ifndef DEVICE
export DEVICE=1
endif
ifeq ($(DEVICE),0)
export WEB=0
endif
ifndef JNI
export JNI=0
endif
all: upnp
upnp:
@if [ ! -d bin ]; then mkdir bin; fi
@if [ ! -d lib ]; then mkdir lib; fi
@if [ ! -d $(OUTPATH) ]; then mkdir -p $(OUTPATH); fi
@if [ ! -d src/lib ]; then mkdir src/lib; fi
@$(MAKE) DEBUG=$(DEBUG) all -C $(IXML_DIR)
# @cp $(IXML_DIR)/inc/*.h ./inc
ifeq ($(DEBUG),1)
@if [ -f $(IXML_DIR)/bin/debug/$(DIR_PATH)libixml.so ]; then \
cp $(IXML_DIR)/bin/debug/$(DIR_PATH)libixml.so \
./bin/debug/$(DIR_PATH); \
fi
else
@if [ -f $(IXML_DIR)/bin/$(DIR_PATH)libixml.so ]; then \
cp $(IXML_DIR)/bin/$(DIR_PATH)libixml.so ./bin/$(DIR_PATH); \
fi
endif
@$(MAKE) all DEBUG=$(DEBUG) all -C $(THREADUTIL_DIR)
# @cp $(THREADUTIL_DIR)/inc/*.h ./inc
ifeq ($(DEBUG),1)
@if [ -f $(THREADUTIL_DIR)/bin/debug/$(DIR_PATH)libthreadutil_dbg.so ]; then \
cp $(THREADUTIL_DIR)/bin/debug/$(DIR_PATH)libthreadutil_dbg.so \
./bin/debug/$(DIR_PATH); \
fi
else
@if [ -f $(THREADUTIL_DIR)/bin/$(DIR_PATH)libthreadutil.so ]; then \
cp $(THREADUTIL_DIR)/bin/$(DIR_PATH)libthreadutil.so \
./bin/$(DIR_PATH); \
fi
endif
@$(MAKE) DEBUG=$(DEBUG) all -C src
@$(STRIPU)
doc: html pdf
html:
@if [ -d doc/html ]; then rm -rf doc/html; fi
@cd doc; doc++ -nd -S -w -j -d html upnpsdk.dxx
pdf:
@cd doc; doc++ -nd -S -w -j -t --package a4wide -o upnpsdk.tex upnpsdk.dxx
@-cd doc; pdflatex "\scrollmode\input upnpsdk.tex" > latex.log
@-cd doc; pdflatex "\scrollmode\input upnpsdk.tex" >> latex.log
@-cd doc; pdflatex "\scrollmode\input upnpsdk.tex" >> latex.log
@$(MAKE) pdf -C $(IXML_DIR)
@cp $(IXML_DIR)/doc/*.pdf ./doc
clean:
@set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
@if [ -d bin ]; then rm -rf bin; fi
@-rm -f bin/Test
@-rm -rf doc/html
@if [ -f "doc/upnpsdk.tex" ]; then rm doc/upnpsdk.tex; fi
@if [ -f "doc/upnpsdk.dvi" ]; then rm doc/upnpsdk.dvi; fi
@if [ -f "doc/upnpsdk.ps" ]; then rm doc/upnpsdk.ps; fi
@if [ -f "doc/upnpsdk.log" ]; then rm doc/upnpsdk.log; fi
@if [ -f "doc/upnpsdk.aux" ]; then rm doc/upnpsdk.aux; fi
@if [ -f "doc/latex.log" ]; then rm doc/latex.log; fi
@$(MAKE) -C $(IXML_DIR) clean
@$(MAKE) -C $(THREADUTIL_DIR) clean
install: upnp
@if [ ! -d $(PREFIX)/usr/include/upnp ]; then \
install -d $(PREFIX)/usr/include/upnp; \
fi
@if [ ! -d $(PREFIX)/usr/lib ]; then \
install -d $(PREFIX)/usr/lib; \
fi
@if [ -f bin/$(DIR_PATH)upnp.jar ]; then \
install bin/$(DIR_PATH)upnp.jar $(PREFIX)/usr/lib; \
fi
@install bin/$(DIR_PATH)libupnp.so $(PREFIX)/usr/lib/libupnp.so.$(VERSION)
@ln -s $(PREFIX)/usr/lib/libupnp.so.$(VERSION) $(PREFIX)/usr/lib/libupnp.so
@install inc/upnp.h $(PREFIX)/usr/include/upnp
@install inc/config.h $(PREFIX)/usr/include/upnp
@install inc/upnptools.h $(PREFIX)/usr/include/upnp
uninstall:
@rm -f $(PREFIX)/usr/include/upnp/upnp.h
@rm -f $(PREFIX)/usr/include/upnp/config.h
@rm -f $(PREFIX)/usr/include/upnp/upnptools.h
@rm -f $(PREFIX)/usr/lib/libupnp.so
@rm -f $(PREFIX)/usr/lib/libupnp.so.$(VERSION)
test: upnp
if [ ! -d bin/tests ]; then mkdir -p bin/tests ; fi
if [ ! -d src/lib ]; then mkdir src/lib; fi
cp bin/libupnp.so bin/tests/.
cp ../ixml/bin/libixml.so bin/tests/.
cp ../threadutil/bin/libthreadutil.so bin/tests/.
$(MAKE) -C BuildTest
cp BuildTest/Test bin/tests/.
$(MAKE) -C upnptest
cp upnptest/bin/Sdk* bin/tests/.
cp upnptest/bin/*.* bin/tests/.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -