From 1010bab0f42cdee1a72e6b86c976d9394a7227f6 Mon Sep 17 00:00:00 2001 From: Fred Wright <fw@fwright.net> Date: Fri, 15 Nov 2024 19:17:21 -0800 Subject: [PATCH] Add tool to create temporary tool Makefile. This creates a simple Makefile for C programs, with architecture(s) derived from macports.conf. TESTED: Makefile has proper architectures with all options on all platforms. --- tools/archsetup.sh | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 tools/archsetup.sh diff --git a/tools/archsetup.sh b/tools/archsetup.sh new file mode 100755 index 0000000..bbf67da --- /dev/null +++ b/tools/archsetup.sh @@ -0,0 +1,76 @@ +#! /bin/bash + +# Tool to create temporary simple "C" Makefile for misc tools, based on +# the architecture settings in macports.conf. +# +# Usage is: archsetup.sh [-m32|-m64|-unv] [<output dir>] +# Options modify the architecture specification. + +DIR=$(dirname "$0") + +OPT="" +case "$1" in + "-m32" | "-m64" | "-unv" ) + OPT="$1" + shift + ;; +esac + +if [ "$1" != "" ]; then + DEST="$1" +else + DEST="$DIR" +fi + +PREFIX="/opt/local/" +CONF="$PREFIX/etc/macports/macports.conf" +OUT="Makefile" + +BUILD_ARCH="$(grep '^build_arch' $CONF | awk '{print $2}')" +UNV_ARCHS="$(grep '^universal_archs' $CONF \ + | sed 's|universal_archs[[:blank:]]*||')" + +case "$OPT" in + "-m32" ) + case "$BUILD_ARCH" in + "ppc64" ) + ARCHS="ppc" + ;; + "x86_64" ) + ARCHS="i386" + ;; + * ) + ARCHS="$BUILD_ARCH" + esac + ;; + "-m64" ) + case "$BUILD_ARCH" in + "ppc" | "ppc7400" ) + ARCHS="ppc64" + ;; + "i386" ) + ARCHS="x86_64" + ;; + * ) + ARCHS="$BUILD_ARCH" + esac + ;; + "-unv" ) + ARCHS="$UNV_ARCHS" + ;; + * ) + ARCHS="$BUILD_ARCH" + ;; +esac + +if [ "$CC" == "" ]; then + CC="cc" +fi + +ARCHFLAGS="$(for a in $ARCHS; do echo -n ' -arch' $a; done)" +CCCMD=$'\t'"$CC$ARCHFLAGS \$^ -o \$@" + +cat >"$DEST/$OUT" <<EOF +%: %.c +$CCCMD +EOF -- GitLab