[175] | 1 | #set -x
|
---|
| 2 |
|
---|
| 3 | args="$*"
|
---|
| 4 |
|
---|
| 5 | verbose=0; case $1 in -v) verbose=1; shift ;; esac
|
---|
| 6 |
|
---|
| 7 | root=`dirname $1`
|
---|
| 8 | base=`basename $1`
|
---|
| 9 | shift
|
---|
| 10 |
|
---|
| 11 | case $root in .) root=8.4;; esac
|
---|
| 12 | path=$root/$base
|
---|
| 13 |
|
---|
| 14 | if test ! -d $root
|
---|
| 15 | then echo "error: directory '$root' does not exist"; exit 1; fi
|
---|
| 16 |
|
---|
| 17 | for v in allenc allmsgs aqua b64 cli dyn gui ppc \
|
---|
| 18 | gcov gprof sym thread tzdata univ x86
|
---|
| 19 | do eval $v=0; done
|
---|
| 20 |
|
---|
| 21 | while test $# != 0
|
---|
| 22 | do eval $1=1; shift; done
|
---|
| 23 |
|
---|
| 24 | #for v in thread allenc allmsgs tzdata cli dyn gui aqua x86 ppc univ
|
---|
| 25 | # do eval val=$`echo $v`; echo $v = "$val"; done
|
---|
| 26 |
|
---|
| 27 | make=$path/Makefile
|
---|
| 28 | mach=`uname`
|
---|
| 29 | plat=unix
|
---|
| 30 |
|
---|
| 31 | echo "Configuring $make for $mach."
|
---|
| 32 | mkdir -p $path
|
---|
| 33 |
|
---|
| 34 | case $cli-$dyn-$gui in 0-0-0) cli=1 dyn=1 gui=1 ;; esac
|
---|
| 35 |
|
---|
| 36 | ( echo "# Generated `date`:"
|
---|
| 37 | echo "# `basename $0` $args"
|
---|
| 38 | echo
|
---|
| 39 |
|
---|
| 40 | case $mach in
|
---|
| 41 |
|
---|
| 42 | Darwin)
|
---|
| 43 | case $aqua in
|
---|
| 44 | 1) echo "GUI_OPTS = -framework Carbon -framework IOKit" ;;
|
---|
| 45 | *) echo "GUI_OPTS = -L/usr/X11R6/lib -lX11 -weak-lXss -lXext" ;;
|
---|
| 46 | esac
|
---|
| 47 |
|
---|
| 48 | echo "LDFLAGS = -framework CoreFoundation"
|
---|
| 49 | echo "LDSTRIP = -x"
|
---|
| 50 |
|
---|
| 51 | case $b64-$univ-$ppc-$x86 in
|
---|
| 52 | 0-0-0-0) ;;
|
---|
| 53 | 0-0-1-0) echo "CFLAGS += -arch ppc" ;;
|
---|
| 54 | 0-0-0-1) echo "CFLAGS += -arch x86" ;;
|
---|
| 55 | 0-?-?-?) echo "CFLAGS += -arch ppc -arch i386" ;;
|
---|
| 56 | 1-0-1-0) echo "CFLAGS += -arch ppc64" ;;
|
---|
| 57 | 1-0-0-1) echo "CFLAGS += -arch x86_64" ;;
|
---|
| 58 | 1-?-?-?) echo "CFLAGS += -arch ppc64 -arch x86_64" ;;
|
---|
| 59 | esac
|
---|
| 60 | echo "CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk" \
|
---|
| 61 | "-mmacosx-version-min=10.4"
|
---|
| 62 |
|
---|
| 63 | case $aqua in 1)
|
---|
| 64 | echo "TK_OPTS = --enable-aqua"
|
---|
| 65 | echo "TKDYN_OPTS = --enable-aqua" ;;
|
---|
| 66 | esac
|
---|
| 67 | ;;
|
---|
| 68 |
|
---|
| 69 | Linux)
|
---|
| 70 | echo "LDFLAGS = -ldl -lm"
|
---|
| 71 | echo "GUI_OPTS = -L/usr/X11R6/lib -lX11 -lXft -lXss -lfontconfig"
|
---|
| 72 | case $b64 in 1)
|
---|
| 73 | echo "CFLAGS += -m64" ;;
|
---|
| 74 | esac
|
---|
| 75 | ;;
|
---|
| 76 |
|
---|
| 77 | *BSD)
|
---|
| 78 | echo "CFLAGS += -I/usr/X11R6/include"
|
---|
| 79 | echo "LDFLAGS = -lm"
|
---|
| 80 | echo "GUI_OPTS = -L/usr/X11R6/lib -lX11 -lXss"
|
---|
| 81 | case $b64 in 1)
|
---|
| 82 | echo "CFLAGS += -m64" ;;
|
---|
| 83 | esac
|
---|
| 84 | ;;
|
---|
| 85 |
|
---|
| 86 | MINGW*)
|
---|
| 87 | echo 'LDFLAGS = -lws2_32 build/lib/dde1*/tcldde1*.a build/lib/reg1*/tclreg1*.a'
|
---|
| 88 | echo 'GUI_OPTS = -lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32'
|
---|
| 89 | echo 'GUI_OPTS += -lole32 -loleaut32 -luuid -lwinspool'
|
---|
| 90 | echo 'GUI_OPTS += build/tk/wish.res.o -mwindows'
|
---|
| 91 | echo 'CLIOBJ = $(OBJ) $(OUTDIR)/tclAppInit.o $(OUTDIR)/tclkitsh.res.o'
|
---|
| 92 | echo 'DYNOBJ = $(CLIOBJ) $(OUTDIR)/tkdyn/wish.res.o'
|
---|
| 93 | echo 'GUIOBJ = $(OBJ) $(OUTDIR)/winMain.o $(OUTDIR)/tclkit.res.o'
|
---|
| 94 | echo 'PRIV = install-private-headers'
|
---|
| 95 | echo 'EXE = .exe'
|
---|
| 96 | plat=win
|
---|
| 97 | ;;
|
---|
| 98 |
|
---|
| 99 | SunOS)
|
---|
| 100 | echo "LDFLAGS = -ldl -lsocket -lnsl -lm"
|
---|
| 101 | echo "GUI_OPTS = -lX11 -lXext"
|
---|
| 102 | ;;
|
---|
| 103 |
|
---|
| 104 | *) echo "warning: no settings known for '$mach'" >&2 ;;
|
---|
| 105 | esac
|
---|
| 106 |
|
---|
| 107 | echo "PLAT = $plat"
|
---|
| 108 | case $plat in unix)
|
---|
| 109 | echo "PRIV = install-private-headers" ;;
|
---|
| 110 | esac
|
---|
| 111 | case $b64 in 1)
|
---|
| 112 | echo "TCL_OPTS += --enable-64bit"
|
---|
| 113 | echo "TK_OPTS += --enable-64bit"
|
---|
| 114 | echo "VFS_OPTS += --enable-64bit"
|
---|
| 115 | echo "VLERQ_OPTS += --enable-64bit" ;;
|
---|
| 116 | esac
|
---|
| 117 |
|
---|
| 118 | #case $verbose in 1) kitopts=" -d" ;; esac
|
---|
| 119 | case $allenc in 1) kitopts="$kitopts -e" ;; esac
|
---|
| 120 | case $allmsgs in 1) kitopts="$kitopts -m" ;; esac
|
---|
| 121 | case $tzdata in 1) kitopts="$kitopts -z" ;; esac
|
---|
| 122 |
|
---|
| 123 | case $thread in
|
---|
| 124 | 1) case $mach in Linux|SunOS)
|
---|
| 125 | echo "LDFLAGS += -lpthread" ;;
|
---|
| 126 | esac
|
---|
| 127 | echo "TCL_OPTS = --enable-threads"
|
---|
| 128 | echo "KIT_OPTS = -t$kitopts" ;;
|
---|
| 129 | 0) echo "KIT_OPTS =$kitopts" ;;
|
---|
| 130 | esac
|
---|
| 131 |
|
---|
| 132 | case $tzdata in 1) echo "TCL_OPTS += --with-tzdata" ;; esac
|
---|
| 133 |
|
---|
| 134 | case $gprof in 1)
|
---|
| 135 | echo "CFLAGS += -pg"
|
---|
| 136 | sym=1 ;;
|
---|
| 137 | esac
|
---|
| 138 |
|
---|
| 139 | case $gcov in 1)
|
---|
| 140 | echo "CFLAGS += -fprofile-arcs -ftest-coverage -O0"
|
---|
| 141 | echo "LDFLAGS += -lgcov"
|
---|
| 142 | sym=1 ;;
|
---|
| 143 | esac
|
---|
| 144 |
|
---|
| 145 | case $sym in 1)
|
---|
| 146 | echo "STRIP = :"
|
---|
| 147 | echo
|
---|
| 148 | echo "TCL_OPTS += --enable-symbols"
|
---|
| 149 | echo "THREADDYN_OPTS += --enable-symbols"
|
---|
| 150 | echo "TK_OPTS += --enable-symbols"
|
---|
| 151 | echo "TKDYN_OPTS += --enable-symbols"
|
---|
| 152 | echo "VFS_OPTS += --enable-symbols"
|
---|
| 153 | echo "VLERQ_OPTS += --enable-symbols"
|
---|
| 154 | echo ;;
|
---|
| 155 | esac
|
---|
| 156 |
|
---|
| 157 | case $cli in 1) targets="$targets tclkit-cli" ;; esac
|
---|
| 158 | case $dyn in 1) targets="$targets tclkit-dyn" ;; esac
|
---|
| 159 | case $gui in 1) targets="$targets tclkit-gui" ;; esac
|
---|
| 160 |
|
---|
| 161 | case $thread in
|
---|
| 162 | 1) echo "all: threaded$targets" ;;
|
---|
| 163 | 0) echo "all:$targets" ;;
|
---|
| 164 | esac
|
---|
| 165 |
|
---|
| 166 | case $mach in MINGW*)
|
---|
| 167 | echo
|
---|
| 168 | echo "tclkit-cli: tclkit-cli.exe"
|
---|
| 169 | echo "tclkit-dyn: tclkit-dyn.exe"
|
---|
| 170 | echo "tclkit-gui: tclkit-gui.exe"
|
---|
| 171 | esac
|
---|
| 172 |
|
---|
| 173 | echo
|
---|
| 174 | echo "include ../../makefile.include"
|
---|
| 175 |
|
---|
| 176 | ) >$make
|
---|
| 177 |
|
---|
| 178 | case $verbose in 1)
|
---|
| 179 | echo
|
---|
| 180 | echo "Contents of $make:"
|
---|
| 181 | echo "======================================================================="
|
---|
| 182 | cat $make
|
---|
| 183 | echo "======================================================================="
|
---|
| 184 | echo
|
---|
| 185 | echo "To build, run these commands:"
|
---|
| 186 | echo " cd $path"
|
---|
| 187 | echo " make"
|
---|
| 188 | echo
|
---|
| 189 | echo "This produces the following executable(s):"
|
---|
| 190 | case $cli in 1) echo " $path/tclkit-cli (command-line)" ;; esac
|
---|
| 191 | case $dyn in 1) echo " $path/tclkit-dyn (Tk as shared lib)" ;; esac
|
---|
| 192 | case $gui in 1) echo " $path/tclkit-gui (Tk linked statically)" ;; esac
|
---|
| 193 | echo
|
---|
| 194 | echo "To remove all intermediate builds, use 'make clean'."
|
---|
| 195 | echo "To remove all executables as well, use 'make distclean'."
|
---|
| 196 | echo
|
---|
| 197 | esac
|
---|