os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/macosx/Makefile
Update contrib.
     1 ########################################################################################################
 
     3 # Makefile wrapper to build tcl on Mac OS X in a way compatible with the tk/macosx Xcode buildsystem
 
     4 #	uses the standard unix build system in tcl/unix (which can be used directly instead of this
 
     5 #	if you are not using the tk/macosx projects).
 
     7 # Copyright (c) 2002-2007 Daniel A. Steffen <das@users.sourceforge.net>
 
     9 # See the file "license.terms" for information on usage and redistribution of
 
    10 # this file, and for a DISCLAIMER OF ALL WARRANTIES.
 
    12 # RCS: @(#) $Id: Makefile,v 1.5.2.17 2007/04/29 02:21:33 das Exp $
 
    14 ########################################################################################################
 
    16 #-------------------------------------------------------------------------------------------------------
 
    17 # customizable settings
 
    20 INSTALL_ROOT		?= ${DESTDIR}
 
    22 BUILD_DIR		?= ${CURDIR}/../../build
 
    23 SYMROOT			?= ${BUILD_DIR}/${PROJECT}
 
    26 EXTRA_CONFIGURE_ARGS	?=
 
    29 INSTALL_PATH		?= /Library/Frameworks
 
    31 BINDIR			?= ${PREFIX}/bin
 
    32 LIBDIR			?= ${INSTALL_PATH}
 
    33 MANDIR			?= ${PREFIX}/man
 
    35 # set to non-empty value to install manpages in addition to html help:
 
    38 #-------------------------------------------------------------------------------------------------------
 
    41 meta			:= all install embedded install-embedded clean distclean test
 
    43 styles			:= develop deploy
 
    48 install			:= ${styles:%=install-%}
 
    50 install-%:		action := install-
 
    52 embedded		:= ${styles:%=embedded-%}
 
    53 embedded		: embedded-deploy
 
    54 install-embedded	:= ${embedded:%=install-%}
 
    55 install-embedded	: install-embedded-deploy
 
    57 clean			:= ${styles:%=clean-%}
 
    59 clean-%:		action := clean-
 
    60 distclean		:= ${styles:%=distclean-%}
 
    61 distclean		: ${distclean}
 
    62 distclean-%:		action := distclean-
 
    64 test			:= ${styles:%=test-%}
 
    66 test-%:			action := test-
 
    68 targets			:= $(foreach v,${meta},${$v})
 
    70 #-------------------------------------------------------------------------------------------------------
 
    75 OBJ_DIR			= ${OBJROOT}/${BUILD_STYLE}
 
    77 develop_make_args	:= BUILD_STYLE=Development CONFIGURE_ARGS=--enable-symbols
 
    78 deploy_make_args	:= BUILD_STYLE=Deployment INSTALL_TARGET=install-strip \
 
    79 			   GENERIC_FLAGS=-DNDEBUG
 
    80 embedded_make_args	:= EMBEDDED_BUILD=1
 
    81 install_make_args	:= INSTALL_BUILD=1
 
    84 	${MAKE} ${action}${PROJECT} \
 
    85 	$(foreach s,${styles} embedded install,$(if $(findstring $s,$@),${${s}_make_args}))
 
    87 #-------------------------------------------------------------------------------------------------------
 
    88 # project specific settings
 
    93 UNIX_DIR		:= ${CURDIR}/../unix
 
    94 VERSION			:= $(shell awk -F= '/^TCL_VERSION/ {print $$2; nextfile}' ${UNIX_DIR}/configure.in)
 
    95 TCLSH			:= tclsh${VERSION}
 
    97 BUILD_TARGET		:= all tcltest
 
    98 INSTALL_TARGET		:= install
 
   100 export CPPROG		:= cp -p
 
   102 INSTALL_TARGETS		= install-binaries install-libraries
 
   103 ifeq (${EMBEDDED_BUILD},)
 
   104 INSTALL_TARGETS		+= install-private-headers
 
   106 ifeq (${INSTALL_BUILD}_${EMBEDDED_BUILD}_${BUILD_STYLE},1__Deployment)
 
   107 INSTALL_TARGETS		+= html-tcl
 
   108 ifneq (${INSTALL_MANPAGES},)
 
   109 INSTALL_TARGETS		+= install-doc
 
   113 MAKE_VARS		:= INSTALL_ROOT INSTALL_TARGETS VERSION GENERIC_FLAGS
 
   114 MAKE_ARGS_V		= $(foreach v,${MAKE_VARS},$v='${$v}')
 
   116 build-${PROJECT}:	target = ${BUILD_TARGET}
 
   117 install-${PROJECT}:	target = ${INSTALL_TARGET}
 
   118 clean-${PROJECT} distclean-${PROJECT} test-${PROJECT}: \
 
   121 DO_MAKE			= +${MAKE} -C ${OBJ_DIR} ${target} ${MAKE_ARGS_V} ${MAKE_ARGS} ${EXTRA_MAKE_ARGS}
 
   123 #-------------------------------------------------------------------------------------------------------
 
   127 	${MAKE} install-${PROJECT} INSTALL_ROOT=${OBJ_DIR}/
 
   129 ${OBJ_DIR}/Makefile: ${UNIX_DIR}/Makefile.in ${UNIX_DIR}/configure \
 
   130 		     ${UNIX_DIR}/tclConfig.sh.in Tcl-Info.plist.in
 
   131 	mkdir -p ${OBJ_DIR} && cd ${OBJ_DIR} && \
 
   132 	if [ ${UNIX_DIR}/configure -nt config.status ]; then ${UNIX_DIR}/configure \
 
   133 	--prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} \
 
   134 	--mandir=${MANDIR} --enable-threads --enable-framework \
 
   135 	${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}; else ./config.status; fi
 
   137 build-${PROJECT}: ${OBJ_DIR}/Makefile
 
   139 ifeq (${INSTALL_BUILD},)
 
   140 # symolic link hackery to trick
 
   141 # 'make install INSTALL_ROOT=${OBJ_DIR}'
 
   142 # into building Tcl.framework and tclsh in ${SYMROOT}
 
   143 	@cd ${OBJ_DIR} && mkdir -p $(dir ./${LIBDIR}) $(dir ./${BINDIR}) ${SYMROOT} && \
 
   144 	rm -f ./${LIBDIR} ./${BINDIR} && ln -fs ${SYMROOT} ./${LIBDIR} && \
 
   145 	ln -fs ${SYMROOT} ./${BINDIR} && ln -fs ${OBJ_DIR}/tcltest ${SYMROOT}
 
   148 install-${PROJECT}: build-${PROJECT}
 
   149 ifeq (${EMBEDDED_BUILD}_${INSTALL_ROOT},1_)
 
   150 	@echo "Cannot install-embedded with empty INSTALL_ROOT !" && false
 
   152 ifeq (${EMBEDDED_BUILD},1)
 
   153 	@rm -rf "${INSTALL_ROOT}/${LIBDIR}/Tcl.framework"
 
   156 ifeq (${INSTALL_BUILD},1)
 
   157 ifeq (${EMBEDDED_BUILD},1)
 
   158 # if we are embedding frameworks, don't install tclsh
 
   159 	@rm -f "${INSTALL_ROOT}${BINDIR}/${TCLSH}" && \
 
   160 	rmdir -p "${INSTALL_ROOT}${BINDIR}" 2>&- || true
 
   162 # redo prebinding (when not building for Mac OS X 10.4 or later only)
 
   163 	@if [ "`echo "$${MACOSX_DEPLOYMENT_TARGET}" | \
 
   164 	awk -F '10\\.' '{print int($$2)}'`" -lt 4 -a "`echo "$${CFLAGS}" | \
 
   165 	awk -F '-mmacosx-version-min=10\\.' '{print int($$2)}'`" -lt 4 ]; \
 
   166 	then cd ${INSTALL_ROOT}/; \
 
   167 	if [ ! -d usr/lib ]; then mkdir -p usr && ln -fs /usr/lib usr/ && RM_USRLIB=1; fi; \
 
   168 	if [ ! -d System ]; then ln -fs /System . && RM_SYSTEM=1; fi; \
 
   169 	redo_prebinding -r . "./${LIBDIR}/${PRODUCT_NAME}.framework/Versions/${VERSION}/${PRODUCT_NAME}"; \
 
   170 	redo_prebinding -r . "./${BINDIR}/${TCLSH}"; \
 
   171 	if [ -n "$${RM_USRLIB:-}" ]; then rm -f usr/lib; rmdir -p usr 2>&-; fi; \
 
   172 	if [ -n "$${RM_SYSTEM:-}" ]; then rm -f System; fi; fi
 
   173 # install tclsh symbolic link
 
   174 	@ln -fs ${TCLSH} ${INSTALL_ROOT}${BINDIR}/tclsh
 
   177 ifeq (${BUILD_STYLE}_${EMBEDDED_BUILD},Development_)
 
   178 # keep copy of debug library around, so that
 
   179 # Deployment build can be installed on top
 
   180 # of Development build without overwriting
 
   182 	@cd ${INSTALL_ROOT}${LIBDIR}/${PRODUCT_NAME}.framework/Versions/${VERSION} && \
 
   183 	ln -f "${PRODUCT_NAME}" "${PRODUCT_NAME}_debug"
 
   186 clean-${PROJECT}: %-${PROJECT}:
 
   188 	rm -rf ${SYMROOT}/{${PRODUCT_NAME}.framework,${TCLSH},tcltest}
 
   189 	rm -f ${OBJ_DIR}{${LIBDIR},${BINDIR}} && \
 
   190 	rmdir -p ${OBJ_DIR}$(dir ${LIBDIR}) 2>&- || true && \
 
   191 	rmdir -p ${OBJ_DIR}$(dir ${BINDIR}) 2>&- || true
 
   193 distclean-${PROJECT}: %-${PROJECT}: clean-${PROJECT}
 
   197 test-${PROJECT}: %-${PROJECT}: build-${PROJECT}
 
   200 #-------------------------------------------------------------------------------------------------------
 
   202 .PHONY: ${meta} ${targets} ${PROJECT} build-${PROJECT} install-${PROJECT} \
 
   203 	clean-${PROJECT} distclean-${PROJECT}
 
   207 #-------------------------------------------------------------------------------------------------------