summaryrefslogtreecommitdiffstats
path: root/macosx/Makefile
blob: 2f8f482e22dfac22ef9cef28af1477f06f965ffe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
################################################################################
#
# Makefile to build AquaTk on Mac OS X packaged as a Framework
#	uses Project Builder command line tool 'pbxbuild'
#
# RCS: @(#) $Id: Makefile,v 1.15 2004/11/11 01:24:32 das Exp $
#
################################################################################

#-------------------------------------------------------------------------------
# customizable settings

DESTDIR			?=
INSTALL_ROOT		?= ${DESTDIR}

BUILD_DIR		?= ${CURDIR}/../../build
SYMROOT			?= ${BUILD_DIR}/${PROJECT}
OBJROOT			?= ${SYMROOT}

EXTRA_MAKE_ARGS		?= 

INSTALL_PATH		?= /Library/Frameworks
APPLICATION_INSTALL_PATH ?= /Applications/Utilities

PREFIX			?= /usr
BINDIR			?= ${PREFIX}/bin
MANDIR			?= ${PREFIX}/man

TCL_FRAMEWORK_DIR	?= ${BUILD_DIR}/tcl
TCLSH_DIR		?= ${TCL_FRAMEWORK_DIR}

# set to non-empty value to install manpages in addition to html help:
INSTALL_MANPAGES 	?= 

#-------------------------------------------------------------------------------

PROJECT			= tk
TARGET			= Wish

DEVBUILDSTYLE		= Development
DEPBUILDSTYLE		= Deployment

PBXBUILD		= /usr/bin/pbxbuild
XCODEBUILD		= /usr/bin/xcodebuild

BUILDCMD		= `if [ -f $(XCODEBUILD) ]; then \
			    echo "$(XCODEBUILD) -project $$(ls -d *.pbproj)"; \
			    else echo "$(PBXBUILD)"; fi`

MAKE_VARS		:= SYMROOT OBJROOT BINDIR APPLICATION_INSTALL_PATH \
				TCL_FRAMEWORK_DIR TCLSH_DIR
MAKE_ARGS_V		= $(foreach v,${MAKE_VARS},$v=${$v})

BUILD			= ${BUILDCMD} -target "${TARGET}" ${MAKE_ARGS_V} \
				DYLIB_INSTALL_PATH="${INSTALL_PATH}" \
				${EXTRA_MAKE_ARGS} ${MAKEOVERRIDES}

DEVBUILD		= ${BUILD} -buildstyle "${DEVBUILDSTYLE}"
DEPBUILD		= ${BUILD} -buildstyle "${DEPBUILDSTYLE}"

INSTALLOPTS		= INSTALL_ROOT="${INSTALL_ROOT}"

EMBEDDEDOPTS		= EMBEDDED_BUILD=1

################################################################################

all: develop deploy

install: install-develop install-deploy

embedded: embedded-deploy

install-embedded: install-embedded-deploy cleanup-embedded

clean: clean-develop clean-deploy

################################################################################

develop:
	${DEVBUILD}

deploy:
	${DEPBUILD}

install-develop: 
	${DEVBUILD} install ${INSTALLOPTS}

install-deploy:
	${DEPBUILD} install ${INSTALLOPTS}
ifneq (${INSTALL_MANPAGES},)
# install manpages
	${MAKE} -C "$(CURDIR)/../unix" -f Makefile.in install-doc \
	        SRC_DIR="$(CURDIR)/.." UNIX_DIR="$(CURDIR)/../unix" \
	        mandir="$(MANDIR)" ${INSTALLOPTS} ${EXTRA_MAKE_ARGS}
endif

embedded-develop:
	${DEVBUILD} ${EMBEDDEDOPTS}

embedded-deploy:
	${DEPBUILD} ${EMBEDDEDOPTS}

install-embedded-develop:
	${DEVBUILD} install ${INSTALLOPTS} ${EMBEDDEDOPTS}

install-embedded-deploy:
	${DEPBUILD} install ${INSTALLOPTS} ${EMBEDDEDOPTS}

clean-develop:
	${DEVBUILD} clean

clean-deploy:
	${DEPBUILD} clean

################################################################################

cleanup-embedded:
	@-cd ${INSTALL_ROOT}/; \
	chmod -RH u+w Library/Frameworks/Tcl.framework; \
	rm -rf Library/Frameworks/Tcl.framework; \
	chmod -RH u+w Library/Frameworks/Tk.framework; \
	rm -rf Library/Frameworks/Tk.framework; \
	rmdir -p Library/Frameworks 2>&-;

################################################################################

.PHONY: all install embedded clean develop deploy install-develop install-deploy \
embedded-develop embedded-deploy install-embedded-develop install-embedded-deploy \
clean-develop clean-deploy cleanup-embedded

.NOTPARALLEL:

################################################################################