Overview
Comment: | Added NSF build script |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
2ae580efcd7d99ff7427235e9f5b8869 |
User & Date: | rkeene on 2015-10-15 14:21:18 |
Other Links: | manifest | tags |
Context
2015-10-23
| ||
20:09 | Use TCLSH_NATIVE only when cross-compiling (as indicated by KC_CROSSCOMPILE) check-in: 40706ce9b4 user: ssoberni tags: trunk | |
2015-10-15
| ||
14:21 | Added NSF build script check-in: 2ae580efcd user: rkeene tags: trunk | |
2015-10-08
| ||
18:32 | Simplify change in the previous check-in. check-in: 78bb12c14d user: mistachkin tags: trunk | |
Changes
Added nsf/build.sh version [15ddc9112c].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 134 135 136 137 138 139 140 141 142 | #! /usr/bin/env bash if [ ! -f 'build.sh' ]; then echo 'ERROR: This script must be run from the directory it is in' >&2 exit 1 fi if [ -z "${TCLVERS}" ]; then echo 'ERROR: The TCLVERS environment variable is not set' >&2 exit 1 fi NSFVERS="2.0.0" NSFVERSEXTRA="" SRC="src/nsf${NSFVERS}.tar.gz" SRCURL="http://sourceforge.net/projects/next-scripting/files/${NSFVERS}/nsf${NSFVERS}.tar.gz/download" BUILDDIR="$(pwd)/build/nsf${NSFVERS}" OUTDIR="$(pwd)/out" INSTDIR="$(pwd)/inst" export NSFVERS SRC SRCURL BUILDDIR OUTDIR INSTDIR # Set configure options for this sub-project LDFLAGS="${LDFLAGS} ${KC_NSF_LDFLAGS}" CFLAGS="${CFLAGS} ${KC_NSF_CFLAGS}" CPPFLAGS="${CPPFLAGS} ${KC_NSF_CPPFLAGS}" LIBS="${LIBS} ${KC_NSF_LIBS}" export LDFLAGS CFLAGS CPPFLAGS LIBS rm -rf 'build' 'out' 'inst' mkdir 'build' 'out' 'inst' || exit 1 if [ ! -f "${SRC}" ]; then mkdir 'src' >/dev/null 2>/dev/null if [ ! -d 'buildsrc' ]; then rm -f "${SRC}.tmp" wget -O "${SRC}.tmp" "${SRCURL}" || exit 1 mv "${SRC}.tmp" "${SRC}" fi fi ( cd 'build' || exit 1 if [ ! -d '../buildsrc' ]; then gzip -dc "../${SRC}" | tar -xf - else cp -rp ../buildsrc/* './' fi cd "${BUILDDIR}" || exit 1 # There's a STATIC<packageInAllUpperCase>=-1,0,1 # ... where -1 means no (i.e., shared), # ... 0 means try not to (try shared first, if that # doesn't work do static), # ... and 1 means try to (try only static) if [ "${STATICNSF}" = "0" ]; then tryopts="--enable-shared --disable-shared" elif [ "${STATICNSF}" = "1" ]; then tryopts="--disable-shared" else # -1 tryopts="--enable-shared" fi SAVE_CFLAGS="${CFLAGS}" for tryopt in $tryopts __fail__; do # Clean up, if needed make distclean >/dev/null 2>/dev/null rm -rf "${INSTDIR}" mkdir "${INSTDIR}" if [ "${tryopt}" = "__fail__" ]; then exit 1 fi if [ "${tryopt}" == "--enable-shared" ]; then isshared="1" else isshared="0" fi # If build a static NSF for KitDLL, ensure that we use PIC # so that it can be linked into the shared object if [ "${isshared}" = "0" -a "${KITTARGET}" = "kitdll" ]; then CFLAGS="${SAVE_CFLAGS} -fPIC" else CFLAGS="${SAVE_CFLAGS}" fi export CFLAGS if [ "${isshared}" = '0' ]; then sed 's@USE_TCL_STUBS@XXX_TCL_STUBS@g' configure > configure.new else sed 's@XXX_TCL_STUBS@USE_TCL_STUBS@g' configure > configure.new fi cat configure.new > configure rm -f configure.new ( # Build echo "Running: ./configure $tryopt --disable-symbols --prefix=\"${INSTDIR}\" --exec-prefix=\"${INSTDIR}\" --libdir=\"${INSTDIR}/lib\" --with-tcl=\"${TCLCONFIGDIR}\" ${CONFIGUREEXTRA}" ./configure $tryopt --disable-symbols --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --libdir="${INSTDIR}/lib" --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA} echo "Running: ${MAKE:-make} TCLSH=${TCLSH_NATIVE}" ${MAKE:-make} TCLSH=${TCLSH_NATIVE} || exit 1 echo "Running: ${MAKE:-make} install TCLSH=${TCLSH_NATIVE}" ${MAKE:-make} install TCLSH=${TCLSH_NATIVE} ) || continue break done mkdir "${OUTDIR}/lib" || exit 1 cp -r "${INSTDIR}/lib"/nsf*/serialize "${OUTDIR}/lib/nsf${NSFVERS}-serialize" cp -r "${INSTDIR}/lib"/nsf*/lib "${OUTDIR}/lib/nsf${NSFVERS}-lib" cp -r "${INSTDIR}/lib"/nsf*/nx "${OUTDIR}/lib/nsf${NSFVERS}-nx" cp -r "${INSTDIR}/lib"/nsf*/xotcl "${OUTDIR}/lib/nsf${NSFVERS}-xotcl" mkdir "${OUTDIR}/lib/nsf${NSFVERS}" || exit 1 if [ "${isshared}" = '0' ]; then cat << _EOF_ > "${OUTDIR}/lib/nsf${NSFVERS}/pkgIndex.tcl" package ifneeded nsf ${NSFVERS} "[list load "" nsf]; package provide nsf ${NSFVERS}" _EOF_ else cp -r "${INSTDIR}/lib"/nsf*/*nsf*.* "${OUTDIR}/lib/nsf${NSFVERS}/" cp -r "${INSTDIR}/lib"/nsf*/pkgIndex.tcl "${OUTDIR}/lib/nsf${NSFVERS}/" fi rm -f "${OUTDIR}"/lib/nsf*/*.a "${STRIP:-strip}" -g "${OUTDIR}"/lib/nsf*/*.so >/dev/null 2>/dev/null exit 0 ) || exit 1 exit 0 |